From a9117af4b5c25f399aa48ef90678abd7c36fe4b4 Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 16 Jan 2018 23:53:36 +0000 Subject: [PATCH] Updates SDK to v2.183.0 --- .changes/2.183.0.json | 17 + CHANGELOG.md | 7 +- README.md | 2 +- ...ication-autoscaling-2016-02-06.normal.json | 44 +- ...autoscaling-plans-2018-01-06.examples.json | 5 + apis/autoscaling-plans-2018-01-06.min.json | 293 + apis/autoscaling-plans-2018-01-06.normal.json | 465 + ...toscaling-plans-2018-01-06.paginators.json | 4 + apis/metadata.json | 4 + apis/rds-2014-10-31.min.json | 246 +- apis/rds-2014-10-31.normal.json | 77 +- clients/all.d.ts | 1 + clients/all.js | 3 +- clients/applicationautoscaling.d.ts | 42 +- clients/autoscalingplans.d.ts | 192 + clients/autoscalingplans.js | 18 + clients/rds.d.ts | 62 +- dist/aws-sdk-core-react-native.js | 23734 +++++----- dist/aws-sdk-react-native.js | 36142 ++++++++-------- dist/aws-sdk.js | 7163 +-- dist/aws-sdk.min.js | 58 +- lib/config_service_placeholders.d.ts | 2 + lib/core.js | 2 +- package.json | 4 +- 24 files changed, 32896 insertions(+), 35691 deletions(-) create mode 100644 .changes/2.183.0.json create mode 100644 apis/autoscaling-plans-2018-01-06.examples.json create mode 100644 apis/autoscaling-plans-2018-01-06.min.json create mode 100644 apis/autoscaling-plans-2018-01-06.normal.json create mode 100644 apis/autoscaling-plans-2018-01-06.paginators.json create mode 100644 clients/autoscalingplans.d.ts create mode 100644 clients/autoscalingplans.js diff --git a/.changes/2.183.0.json b/.changes/2.183.0.json new file mode 100644 index 0000000000..55995c8021 --- /dev/null +++ b/.changes/2.183.0.json @@ -0,0 +1,17 @@ +[ + { + "type": "feature", + "category": "ApplicationAutoScaling", + "description": "Application Auto Scaling is adding support for Target Tracking Scaling for ECS services." + }, + { + "type": "feature", + "category": "AutoScalingPlans", + "description": "AWS Auto Scaling enables you to quickly discover all of the scalable resources underlying your application and set up application scaling in minutes using built-in scaling recommendations." + }, + { + "type": "feature", + "category": "RDS", + "description": "With this release you can now integrate RDS DB instances with CloudWatch Logs. We have added parameters to the operations for creating and modifying DB instances (for example CreateDBInstance) to allow you to take advantage of this capability through the CLI and API. Once you enable this feature, a stream of log events will publish to CloudWatch Logs for each log type you enable." + } +] \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ed3a21294..37d34c3f21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,12 @@ # Changelog for AWS SDK for JavaScript - + +## 2.183.0 +* feature: ApplicationAutoScaling: Application Auto Scaling is adding support for Target Tracking Scaling for ECS services. +* feature: AutoScalingPlans: AWS Auto Scaling enables you to quickly discover all of the scalable resources underlying your application and set up application scaling in minutes using built-in scaling recommendations. +* feature: RDS: With this release you can now integrate RDS DB instances with CloudWatch Logs. We have added parameters to the operations for creating and modifying DB instances (for example CreateDBInstance) to allow you to take advantage of this capability through the CLI and API. Once you enable this feature, a stream of log events will publish to CloudWatch Logs for each log type you enable. + ## 2.182.0 * feature: Lambda: Support for creating Lambda Functions using 'dotnetcore2.0' and 'go1.x'. diff --git a/README.md b/README.md index c6214343d2..619c22015e 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ version. To use the SDK in the browser, simply add the following script tag to your HTML pages: - + You can also build a custom browser SDK with your specified set of AWS services. This can allow you to reduce the SDK's size, specify different API versions of diff --git a/apis/application-autoscaling-2016-02-06.normal.json b/apis/application-autoscaling-2016-02-06.normal.json index 09b992a522..608b62d6c0 100644 --- a/apis/application-autoscaling-2016-02-06.normal.json +++ b/apis/application-autoscaling-2016-02-06.normal.json @@ -75,7 +75,7 @@ {"shape":"ConcurrentUpdateException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Provides descriptive information about the scalable targets in the specified namespace.

You can filter the results using the ResourceIds and ScalableDimension parameters.

To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget.

" + "documentation":"

Gets information about the scalable targets in the specified namespace.

You can filter the results using the ResourceIds and ScalableDimension parameters.

To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget.

" }, "DescribeScalingActivities":{ "name":"DescribeScalingActivities", @@ -142,7 +142,7 @@ {"shape":"FailedResourceAccessException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates or updates a policy for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy without first registering a scalable target using RegisterScalableTarget.

To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request.

You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy.

" + "documentation":"

Creates or updates a policy for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you register the scalable target using RegisterScalableTarget.

To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request.

You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy.

" }, "PutScheduledAction":{ "name":"PutScheduledAction", @@ -159,7 +159,7 @@ {"shape":"ConcurrentUpdateException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Creates or updates a scheduled action for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action without first registering a scalable target using RegisterScalableTarget.

To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request.

You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction.

" + "documentation":"

Creates or updates a scheduled action for an Application Auto Scaling scalable target.

Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you register the scalable target using RegisterScalableTarget.

To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request.

You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction.

" }, "RegisterScalableTarget":{ "name":"RegisterScalableTarget", @@ -175,7 +175,7 @@ {"shape":"ConcurrentUpdateException"}, {"shape":"InternalServiceException"} ], - "documentation":"

Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for your scalable dimension.

After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget.

" + "documentation":"

Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for its scalable dimension.

After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it using DeregisterScalableTarget.

" } }, "shapes":{ @@ -357,7 +357,7 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" + "documentation":"

The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" }, "NextToken":{ "shape":"XmlString", @@ -370,7 +370,7 @@ "members":{ "ScalableTargets":{ "shape":"ScalableTargets", - "documentation":"

The list of scalable targets that matches the request parameters.

" + "documentation":"

The scalable targets that match the request parameters.

" }, "NextToken":{ "shape":"XmlString", @@ -396,7 +396,7 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" + "documentation":"

The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" }, "NextToken":{ "shape":"XmlString", @@ -439,7 +439,7 @@ }, "MaxResults":{ "shape":"MaxResults", - "documentation":"

The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" + "documentation":"

The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50.

If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable.

" }, "NextToken":{ "shape":"XmlString", @@ -510,7 +510,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

Failed access to resources caused an exception. This exception is thrown when Application Auto Scaling is unable to retrieve the alarms associated with a scaling policy due to a client error, for example, if the role ARN specified for a scalable target does not have permission to call the CloudWatch DescribeAlarms API operation on behalf of your account.

", + "documentation":"

Failed access to resources caused an exception. This exception is thrown when Application Auto Scaling is unable to retrieve the alarms associated with a scaling policy due to a client error, for example, if the role ARN specified for a scalable target does not have permission to call the CloudWatch DescribeAlarms on your behalf.

", "exception":true }, "InternalServiceException":{ @@ -534,7 +534,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

Your account exceeded a limit. This exception is thrown when a per-account resource limit is exceeded. For more information, see Application Auto Scaling Limits.

", + "documentation":"

A per-account resource limit is exceeded. For more information, see Application Auto Scaling Limits.

", "exception":true }, "MaxResults":{"type":"integer"}, @@ -593,7 +593,9 @@ "RDSReaderAverageDatabaseConnections", "EC2SpotFleetRequestAverageCPUUtilization", "EC2SpotFleetRequestAverageNetworkIn", - "EC2SpotFleetRequestAverageNetworkOut" + "EC2SpotFleetRequestAverageNetworkOut", + "ECSServiceAverageCPUUtilization", + "ECSServiceAverageMemoryUtilization" ] }, "MetricUnit":{"type":"string"}, @@ -603,7 +605,7 @@ "members":{ "Message":{"shape":"ErrorMessage"} }, - "documentation":"

The specified object could not be found. For any Put or Register API operation, which depends on the existence of a scalable target, this exception is thrown if the scalable target with the specified service namespace, resource ID, and scalable dimension does not exist. For any Delete or Deregister API operation, this exception is thrown if the resource that is to be deleted or deregistered cannot be found.

", + "documentation":"

The specified object could not be found. For any operation that depends on the existence of a scalable target, this exception is thrown if the scalable target with the specified service namespace, resource ID, and scalable dimension does not exist. For any operation that deletes or deregisters a resource, this exception is thrown if the resource cannot be found.

", "exception":true }, "PolicyName":{ @@ -625,11 +627,11 @@ "members":{ "PredefinedMetricType":{ "shape":"MetricType", - "documentation":"

The metric type. The ALBRequestCountPerTarget metric type applies only to Spot fleet requests.

" + "documentation":"

The metric type. The ALBRequestCountPerTarget metric type applies only to Spot fleet requests and ECS services.

" }, "ResourceLabel":{ "shape":"ResourceLabel", - "documentation":"

Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot fleet request.

The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where:

" + "documentation":"

Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot fleet request or ECS service.

The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where:

" } }, "documentation":"

Configures a predefined metric for a target tracking policy.

" @@ -661,7 +663,7 @@ }, "PolicyType":{ "shape":"PolicyType", - "documentation":"

The policy type. If you are creating a new policy, this parameter is required. If you are updating a policy, this parameter is not required.

For DynamoDB, only TargetTrackingScaling is supported. For any other service, only StepScaling is supported.

" + "documentation":"

The policy type. This parameter is required if you are creating a policy.

For DynamoDB, only TargetTrackingScaling is supported. For Amazon ECS, Spot Fleet, and Amazon RDS, both StepScaling and TargetTrackingScaling are supported. For any other service, only StepScaling is supported.

" }, "StepScalingPolicyConfiguration":{ "shape":"StepScalingPolicyConfiguration", @@ -669,7 +671,7 @@ }, "TargetTrackingScalingPolicyConfiguration":{ "shape":"TargetTrackingScalingPolicyConfiguration", - "documentation":"

A target tracking policy.

This parameter is required if you are creating a new policy and the policy type is TargetTrackingScaling.

" + "documentation":"

A target tracking policy.

This parameter is required if you are creating a policy and the policy type is TargetTrackingScaling.

" } } }, @@ -713,7 +715,7 @@ }, "ScalableDimension":{ "shape":"ScalableDimension", - "documentation":"

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

" + "documentation":"

The scalable dimension. This parameter is required if you are creating a scheduled action. This string consists of the service namespace, resource type, and scaling property.

" }, "StartTime":{ "shape":"TimestampType", @@ -756,15 +758,15 @@ }, "MinCapacity":{ "shape":"ResourceCapacity", - "documentation":"

The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target and optional if you are updating one.

" + "documentation":"

The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target.

" }, "MaxCapacity":{ "shape":"ResourceCapacity", - "documentation":"

The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target and optional if you are updating one.

" + "documentation":"

The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target.

" }, "RoleARN":{ "shape":"ResourceIdMaxLen1600", - "documentation":"

The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

With Amazon RDS resources, permissions are granted using a service-linked role. For more information, see Service-Linked Roles for Application Auto Scaling.

For resources that are not supported using a service-linked role, this parameter is required when you register a scalable target and optional when you update one.

" + "documentation":"

Application Auto Scaling creates a service-linked role that grants it permissions to modify the scalable target on your behalf. For more information, see Service-Linked Roles for Application Auto Scaling.

For resources that are not supported using a service-linked role, this parameter is required and must specify the ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf.

" } } }, @@ -1172,5 +1174,5 @@ "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" } }, - "documentation":"

With Application Auto Scaling, you can automatically scale your AWS resources. The experience is similar to that of Auto Scaling. You can use Application Auto Scaling to accomplish the following tasks:

Application Auto Scaling can scale the following AWS resources:

For a list of supported regions, see AWS Regions and Endpoints: Application Auto Scaling in the AWS General Reference.

" + "documentation":"

With Application Auto Scaling, you can automatically scale your AWS resources. The experience is similar to that of Auto Scaling. You can use Application Auto Scaling to accomplish the following tasks:

Application Auto Scaling can scale the following AWS resources:

For a list of supported regions, see AWS Regions and Endpoints: Application Auto Scaling in the AWS General Reference.

" } diff --git a/apis/autoscaling-plans-2018-01-06.examples.json b/apis/autoscaling-plans-2018-01-06.examples.json new file mode 100644 index 0000000000..0ea7e3b0bb --- /dev/null +++ b/apis/autoscaling-plans-2018-01-06.examples.json @@ -0,0 +1,5 @@ +{ + "version": "1.0", + "examples": { + } +} diff --git a/apis/autoscaling-plans-2018-01-06.min.json b/apis/autoscaling-plans-2018-01-06.min.json new file mode 100644 index 0000000000..8cd5107888 --- /dev/null +++ b/apis/autoscaling-plans-2018-01-06.min.json @@ -0,0 +1,293 @@ +{ + "version": "2.0", + "metadata": { + "apiVersion": "2018-01-06", + "endpointPrefix": "autoscaling", + "jsonVersion": "1.1", + "protocol": "json", + "serviceFullName": "AWS Auto Scaling Plans", + "serviceId": "Auto Scaling Plans", + "signatureVersion": "v4", + "signingName": "autoscaling-plans", + "targetPrefix": "AnyScaleScalingPlannerFrontendService", + "uid": "autoscaling-plans-2018-01-06" + }, + "operations": { + "CreateScalingPlan": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ApplicationSource", + "ScalingInstructions" + ], + "members": { + "ScalingPlanName": {}, + "ApplicationSource": { + "shape": "S3" + }, + "ScalingInstructions": { + "shape": "S5" + } + } + }, + "output": { + "type": "structure", + "required": [ + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanVersion": { + "type": "long" + } + } + } + }, + "DeleteScalingPlan": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + } + } + }, + "output": { + "type": "structure", + "members": {} + } + }, + "DescribeScalingPlanResources": { + "input": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPlanResources": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "ScalingStatusCode" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "ScalingPolicies": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "PolicyName", + "PolicyType" + ], + "members": { + "PolicyName": {}, + "PolicyType": {}, + "TargetTrackingConfiguration": { + "shape": "Sc" + } + } + } + }, + "ScalingStatusCode": {}, + "ScalingStatusMessage": {} + } + } + }, + "NextToken": {} + } + } + }, + "DescribeScalingPlans": { + "input": { + "type": "structure", + "members": { + "ScalingPlanNames": { + "type": "list", + "member": {} + }, + "ScalingPlanVersion": { + "type": "long" + }, + "ApplicationSources": { + "type": "list", + "member": { + "shape": "S3" + } + }, + "MaxResults": { + "type": "integer" + }, + "NextToken": {} + } + }, + "output": { + "type": "structure", + "members": { + "ScalingPlans": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ScalingPlanName", + "ScalingPlanVersion", + "ApplicationSource", + "ScalingInstructions", + "StatusCode" + ], + "members": { + "ScalingPlanName": {}, + "ScalingPlanVersion": { + "type": "long" + }, + "ApplicationSource": { + "shape": "S3" + }, + "ScalingInstructions": { + "shape": "S5" + }, + "StatusCode": {}, + "StatusMessage": {}, + "CreationTime": { + "type": "timestamp" + } + } + } + }, + "NextToken": {} + } + } + } + }, + "shapes": { + "S3": { + "type": "structure", + "members": { + "CloudFormationStackARN": {} + } + }, + "S5": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "MinCapacity", + "MaxCapacity", + "TargetTrackingConfigurations" + ], + "members": { + "ServiceNamespace": {}, + "ResourceId": {}, + "ScalableDimension": {}, + "MinCapacity": { + "type": "integer" + }, + "MaxCapacity": { + "type": "integer" + }, + "TargetTrackingConfigurations": { + "type": "list", + "member": { + "shape": "Sc" + } + } + } + } + }, + "Sc": { + "type": "structure", + "required": [ + "TargetValue" + ], + "members": { + "PredefinedScalingMetricSpecification": { + "type": "structure", + "required": [ + "PredefinedScalingMetricType" + ], + "members": { + "PredefinedScalingMetricType": {}, + "ResourceLabel": {} + } + }, + "CustomizedScalingMetricSpecification": { + "type": "structure", + "required": [ + "MetricName", + "Namespace", + "Statistic" + ], + "members": { + "MetricName": {}, + "Namespace": {}, + "Dimensions": { + "type": "list", + "member": { + "type": "structure", + "required": [ + "Name", + "Value" + ], + "members": { + "Name": {}, + "Value": {} + } + } + }, + "Statistic": {}, + "Unit": {} + } + }, + "TargetValue": { + "type": "double" + }, + "DisableScaleIn": { + "type": "boolean" + }, + "ScaleOutCooldown": { + "type": "integer" + }, + "ScaleInCooldown": { + "type": "integer" + }, + "EstimatedInstanceWarmup": { + "type": "integer" + } + } + } + } +} \ No newline at end of file diff --git a/apis/autoscaling-plans-2018-01-06.normal.json b/apis/autoscaling-plans-2018-01-06.normal.json new file mode 100644 index 0000000000..8b40ccf993 --- /dev/null +++ b/apis/autoscaling-plans-2018-01-06.normal.json @@ -0,0 +1,465 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-01-06", + "endpointPrefix":"autoscaling", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"AWS Auto Scaling Plans", + "serviceId":"Auto Scaling Plans", + "signatureVersion":"v4", + "signingName":"autoscaling-plans", + "targetPrefix":"AnyScaleScalingPlannerFrontendService", + "uid":"autoscaling-plans-2018-01-06" + }, + "operations":{ + "CreateScalingPlan":{ + "name":"CreateScalingPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateScalingPlanRequest"}, + "output":{"shape":"CreateScalingPlanResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"LimitExceededException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + }, + "DeleteScalingPlan":{ + "name":"DeleteScalingPlan", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteScalingPlanRequest"}, + "output":{"shape":"DeleteScalingPlanResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ObjectNotFoundException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + }, + "DescribeScalingPlanResources":{ + "name":"DescribeScalingPlanResources", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScalingPlanResourcesRequest"}, + "output":{"shape":"DescribeScalingPlanResourcesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + }, + "DescribeScalingPlans":{ + "name":"DescribeScalingPlans", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeScalingPlansRequest"}, + "output":{"shape":"DescribeScalingPlansResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"InvalidNextTokenException"}, + {"shape":"ConcurrentUpdateException"}, + {"shape":"InternalServiceException"} + ] + } + }, + "shapes":{ + "ApplicationSource":{ + "type":"structure", + "members":{ + "CloudFormationStackARN":{"shape":"XmlString"} + } + }, + "ApplicationSources":{ + "type":"list", + "member":{"shape":"ApplicationSource"} + }, + "ConcurrentUpdateException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "Cooldown":{"type":"integer"}, + "CreateScalingPlanRequest":{ + "type":"structure", + "required":[ + "ScalingPlanName", + "ApplicationSource", + "ScalingInstructions" + ], + "members":{ + "ScalingPlanName":{"shape":"ScalingPlanName"}, + "ApplicationSource":{"shape":"ApplicationSource"}, + "ScalingInstructions":{"shape":"ScalingInstructions"} + } + }, + "CreateScalingPlanResponse":{ + "type":"structure", + "required":["ScalingPlanVersion"], + "members":{ + "ScalingPlanVersion":{"shape":"ScalingPlanVersion"} + } + }, + "CustomizedScalingMetricSpecification":{ + "type":"structure", + "required":[ + "MetricName", + "Namespace", + "Statistic" + ], + "members":{ + "MetricName":{"shape":"MetricName"}, + "Namespace":{"shape":"MetricNamespace"}, + "Dimensions":{"shape":"MetricDimensions"}, + "Statistic":{"shape":"MetricStatistic"}, + "Unit":{"shape":"MetricUnit"} + } + }, + "DeleteScalingPlanRequest":{ + "type":"structure", + "required":[ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members":{ + "ScalingPlanName":{"shape":"ScalingPlanName"}, + "ScalingPlanVersion":{"shape":"ScalingPlanVersion"} + } + }, + "DeleteScalingPlanResponse":{ + "type":"structure", + "members":{ + } + }, + "DescribeScalingPlanResourcesRequest":{ + "type":"structure", + "required":[ + "ScalingPlanName", + "ScalingPlanVersion" + ], + "members":{ + "ScalingPlanName":{"shape":"ScalingPlanName"}, + "ScalingPlanVersion":{"shape":"ScalingPlanVersion"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeScalingPlanResourcesResponse":{ + "type":"structure", + "members":{ + "ScalingPlanResources":{"shape":"ScalingPlanResources"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeScalingPlansRequest":{ + "type":"structure", + "members":{ + "ScalingPlanNames":{"shape":"ScalingPlanNames"}, + "ScalingPlanVersion":{"shape":"ScalingPlanVersion"}, + "ApplicationSources":{"shape":"ApplicationSources"}, + "MaxResults":{"shape":"MaxResults"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DescribeScalingPlansResponse":{ + "type":"structure", + "members":{ + "ScalingPlans":{"shape":"ScalingPlans"}, + "NextToken":{"shape":"NextToken"} + } + }, + "DisableScaleIn":{"type":"boolean"}, + "ErrorMessage":{"type":"string"}, + "InternalServiceException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "InvalidNextTokenException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "LimitExceededException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "MaxResults":{"type":"integer"}, + "MetricDimension":{ + "type":"structure", + "required":[ + "Name", + "Value" + ], + "members":{ + "Name":{"shape":"MetricDimensionName"}, + "Value":{"shape":"MetricDimensionValue"} + } + }, + "MetricDimensionName":{"type":"string"}, + "MetricDimensionValue":{"type":"string"}, + "MetricDimensions":{ + "type":"list", + "member":{"shape":"MetricDimension"} + }, + "MetricName":{"type":"string"}, + "MetricNamespace":{"type":"string"}, + "MetricScale":{"type":"double"}, + "MetricStatistic":{ + "type":"string", + "enum":[ + "Average", + "Minimum", + "Maximum", + "SampleCount", + "Sum" + ] + }, + "MetricUnit":{"type":"string"}, + "NextToken":{"type":"string"}, + "ObjectNotFoundException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "PolicyName":{ + "type":"string", + "max":256, + "min":1, + "pattern":"\\p{Print}+" + }, + "PolicyType":{ + "type":"string", + "enum":["TargetTrackingScaling"] + }, + "PredefinedScalingMetricSpecification":{ + "type":"structure", + "required":["PredefinedScalingMetricType"], + "members":{ + "PredefinedScalingMetricType":{"shape":"ScalingMetricType"}, + "ResourceLabel":{"shape":"ResourceLabel"} + } + }, + "ResourceCapacity":{"type":"integer"}, + "ResourceIdMaxLen1600":{ + "type":"string", + "max":1600, + "min":1, + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + }, + "ResourceLabel":{ + "type":"string", + "max":1023, + "min":1 + }, + "ScalableDimension":{ + "type":"string", + "enum":[ + "autoscaling:autoScalingGroup:DesiredCapacity", + "ecs:service:DesiredCount", + "ec2:spot-fleet-request:TargetCapacity", + "rds:cluster:ReadReplicaCount", + "dynamodb:table:ReadCapacityUnits", + "dynamodb:table:WriteCapacityUnits", + "dynamodb:index:ReadCapacityUnits", + "dynamodb:index:WriteCapacityUnits" + ] + }, + "ScalingInstruction":{ + "type":"structure", + "required":[ + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "MinCapacity", + "MaxCapacity", + "TargetTrackingConfigurations" + ], + "members":{ + "ServiceNamespace":{"shape":"ServiceNamespace"}, + "ResourceId":{"shape":"ResourceIdMaxLen1600"}, + "ScalableDimension":{"shape":"ScalableDimension"}, + "MinCapacity":{"shape":"ResourceCapacity"}, + "MaxCapacity":{"shape":"ResourceCapacity"}, + "TargetTrackingConfigurations":{"shape":"TargetTrackingConfigurations"} + } + }, + "ScalingInstructions":{ + "type":"list", + "member":{"shape":"ScalingInstruction"} + }, + "ScalingMetricType":{ + "type":"string", + "enum":[ + "ASGAverageCPUUtilization", + "ASGAverageNetworkIn", + "ASGAverageNetworkOut", + "DynamoDBReadCapacityUtilization", + "DynamoDBWriteCapacityUtilization", + "ECSServiceAverageCPUUtilization", + "ECSServiceAverageMemoryUtilization", + "ALBRequestCountPerTarget", + "RDSReaderAverageCPUUtilization", + "RDSReaderAverageDatabaseConnections", + "EC2SpotFleetRequestAverageCPUUtilization", + "EC2SpotFleetRequestAverageNetworkIn", + "EC2SpotFleetRequestAverageNetworkOut" + ] + }, + "ScalingPlan":{ + "type":"structure", + "required":[ + "ScalingPlanName", + "ScalingPlanVersion", + "ApplicationSource", + "ScalingInstructions", + "StatusCode" + ], + "members":{ + "ScalingPlanName":{"shape":"ScalingPlanName"}, + "ScalingPlanVersion":{"shape":"ScalingPlanVersion"}, + "ApplicationSource":{"shape":"ApplicationSource"}, + "ScalingInstructions":{"shape":"ScalingInstructions"}, + "StatusCode":{"shape":"ScalingPlanStatusCode"}, + "StatusMessage":{"shape":"XmlString"}, + "CreationTime":{"shape":"TimestampType"} + } + }, + "ScalingPlanName":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\p{Print}&&[^|]]+" + }, + "ScalingPlanNames":{ + "type":"list", + "member":{"shape":"ScalingPlanName"} + }, + "ScalingPlanResource":{ + "type":"structure", + "required":[ + "ScalingPlanName", + "ScalingPlanVersion", + "ServiceNamespace", + "ResourceId", + "ScalableDimension", + "ScalingStatusCode" + ], + "members":{ + "ScalingPlanName":{"shape":"ScalingPlanName"}, + "ScalingPlanVersion":{"shape":"ScalingPlanVersion"}, + "ServiceNamespace":{"shape":"ServiceNamespace"}, + "ResourceId":{"shape":"ResourceIdMaxLen1600"}, + "ScalableDimension":{"shape":"ScalableDimension"}, + "ScalingPolicies":{"shape":"ScalingPolicies"}, + "ScalingStatusCode":{"shape":"ScalingStatusCode"}, + "ScalingStatusMessage":{"shape":"XmlString"} + } + }, + "ScalingPlanResources":{ + "type":"list", + "member":{"shape":"ScalingPlanResource"} + }, + "ScalingPlanStatusCode":{ + "type":"string", + "enum":[ + "Active", + "ActiveWithProblems", + "CreationInProgress", + "CreationFailed", + "DeletionInProgress", + "DeletionFailed" + ] + }, + "ScalingPlanVersion":{"type":"long"}, + "ScalingPlans":{ + "type":"list", + "member":{"shape":"ScalingPlan"} + }, + "ScalingPolicies":{ + "type":"list", + "member":{"shape":"ScalingPolicy"} + }, + "ScalingPolicy":{ + "type":"structure", + "required":[ + "PolicyName", + "PolicyType" + ], + "members":{ + "PolicyName":{"shape":"PolicyName"}, + "PolicyType":{"shape":"PolicyType"}, + "TargetTrackingConfiguration":{"shape":"TargetTrackingConfiguration"} + } + }, + "ScalingStatusCode":{ + "type":"string", + "enum":[ + "Inactive", + "PartiallyActive", + "Active" + ] + }, + "ServiceNamespace":{ + "type":"string", + "enum":[ + "autoscaling", + "ecs", + "ec2", + "rds", + "dynamodb" + ] + }, + "TargetTrackingConfiguration":{ + "type":"structure", + "required":["TargetValue"], + "members":{ + "PredefinedScalingMetricSpecification":{"shape":"PredefinedScalingMetricSpecification"}, + "CustomizedScalingMetricSpecification":{"shape":"CustomizedScalingMetricSpecification"}, + "TargetValue":{"shape":"MetricScale"}, + "DisableScaleIn":{"shape":"DisableScaleIn"}, + "ScaleOutCooldown":{"shape":"Cooldown"}, + "ScaleInCooldown":{"shape":"Cooldown"}, + "EstimatedInstanceWarmup":{"shape":"Cooldown"} + } + }, + "TargetTrackingConfigurations":{ + "type":"list", + "member":{"shape":"TargetTrackingConfiguration"} + }, + "TimestampType":{"type":"timestamp"}, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"ErrorMessage"} + }, + "exception":true + }, + "XmlString":{ + "type":"string", + "pattern":"[\\u0020-\\uD7FF\\uE000-\\uFFFD\\uD800\\uDC00-\\uDBFF\\uDFFF\\r\\n\\t]*" + } + } +} diff --git a/apis/autoscaling-plans-2018-01-06.paginators.json b/apis/autoscaling-plans-2018-01-06.paginators.json new file mode 100644 index 0000000000..5677bd8e4a --- /dev/null +++ b/apis/autoscaling-plans-2018-01-06.paginators.json @@ -0,0 +1,4 @@ +{ + "pagination": { + } +} diff --git a/apis/metadata.json b/apis/metadata.json index 81366332ff..ec8bfea9ff 100644 --- a/apis/metadata.json +++ b/apis/metadata.json @@ -532,5 +532,9 @@ }, "workmail": { "name": "WorkMail" + }, + "autoscalingplans": { + "prefix": "autoscaling-plans", + "name": "AutoScalingPlans" } } \ No newline at end of file diff --git a/apis/rds-2014-10-31.min.json b/apis/rds-2014-10-31.min.json index b85df15cb6..e5c57a38e8 100644 --- a/apis/rds-2014-10-31.min.json +++ b/apis/rds-2014-10-31.min.json @@ -444,7 +444,10 @@ "EnablePerformanceInsights": { "type": "boolean" }, - "PerformanceInsightsKMSKeyId": {} + "PerformanceInsightsKMSKeyId": {}, + "EnableCloudwatchLogsExports": { + "shape": "S1x" + } } }, "output": { @@ -452,7 +455,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -506,6 +509,9 @@ "type": "boolean" }, "PerformanceInsightsKMSKeyId": {}, + "EnableCloudwatchLogsExports": { + "shape": "S1x" + }, "SourceRegion": {} } }, @@ -514,7 +520,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -608,7 +614,7 @@ "DBSubnetGroupName": {}, "DBSubnetGroupDescription": {}, "SubnetIds": { - "shape": "S2o" + "shape": "S2q" }, "Tags": { "shape": "Sa" @@ -620,7 +626,7 @@ "type": "structure", "members": { "DBSubnetGroup": { - "shape": "S22" + "shape": "S23" } } } @@ -763,7 +769,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -887,7 +893,7 @@ "members": { "CertificateIdentifier": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -929,7 +935,7 @@ "members": { "DBClusterParameterGroupName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -962,7 +968,7 @@ "DBClusterParameterGroupName": {}, "Source": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -975,7 +981,7 @@ "type": "structure", "members": { "Parameters": { - "shape": "S3q" + "shape": "S3s" }, "Marker": {} } @@ -996,7 +1002,7 @@ "type": "structure", "members": { "DBClusterSnapshotAttributesResult": { - "shape": "S3v" + "shape": "S3x" } } } @@ -1009,7 +1015,7 @@ "DBClusterSnapshotIdentifier": {}, "SnapshotType": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1044,7 +1050,7 @@ "members": { "DBClusterIdentifier": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1075,7 +1081,7 @@ "EngineVersion": {}, "DBParameterGroupFamily": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1109,12 +1115,12 @@ "DBEngineDescription": {}, "DBEngineVersionDescription": {}, "DefaultCharacterSet": { - "shape": "S49" + "shape": "S4b" }, "SupportedCharacterSets": { "type": "list", "member": { - "shape": "S49", + "shape": "S4b", "locationName": "CharacterSet" } }, @@ -1145,6 +1151,12 @@ "TimezoneName": {} } } + }, + "ExportableLogTypes": { + "shape": "S1x" + }, + "SupportsLogExportsToCloudwatchLogs": { + "type": "boolean" } } } @@ -1158,7 +1170,7 @@ "members": { "DBInstanceIdentifier": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1174,7 +1186,7 @@ "DBInstances": { "type": "list", "member": { - "shape": "S1y", + "shape": "S1z", "locationName": "DBInstance" } } @@ -1197,7 +1209,7 @@ "type": "long" }, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1235,7 +1247,7 @@ "members": { "DBParameterGroupName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1268,7 +1280,7 @@ "DBParameterGroupName": {}, "Source": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1281,7 +1293,7 @@ "type": "structure", "members": { "Parameters": { - "shape": "S3q" + "shape": "S3s" }, "Marker": {} } @@ -1293,7 +1305,7 @@ "members": { "DBSecurityGroupName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1331,7 +1343,7 @@ "type": "structure", "members": { "DBSnapshotAttributesResult": { - "shape": "S4w" + "shape": "S4y" } } } @@ -1344,7 +1356,7 @@ "DBSnapshotIdentifier": {}, "SnapshotType": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1379,7 +1391,7 @@ "members": { "DBSubnetGroupName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1395,7 +1407,7 @@ "DBSubnetGroups": { "type": "list", "member": { - "shape": "S22", + "shape": "S23", "locationName": "DBSubnetGroup" } } @@ -1411,7 +1423,7 @@ "members": { "DBParameterGroupFamily": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1424,7 +1436,7 @@ "type": "structure", "members": { "EngineDefaults": { - "shape": "S57" + "shape": "S59" } } } @@ -1438,7 +1450,7 @@ "members": { "DBParameterGroupFamily": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1451,7 +1463,7 @@ "type": "structure", "members": { "EngineDefaults": { - "shape": "S57" + "shape": "S59" } } } @@ -1462,7 +1474,7 @@ "members": { "SourceType": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" } } }, @@ -1493,7 +1505,7 @@ "members": { "SubscriptionName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1535,7 +1547,7 @@ "shape": "S7" }, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1580,7 +1592,7 @@ "EngineName": {}, "MajorEngineVersion": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1679,7 +1691,7 @@ "members": { "OptionGroupName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "Marker": {}, "MaxRecords": { @@ -1719,7 +1731,7 @@ "type": "boolean" }, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1744,7 +1756,7 @@ "AvailabilityZones": { "type": "list", "member": { - "shape": "S25", + "shape": "S26", "locationName": "AvailabilityZone" } }, @@ -1805,7 +1817,7 @@ "members": { "ResourceIdentifier": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "Marker": {}, "MaxRecords": { @@ -1842,7 +1854,7 @@ "type": "boolean" }, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1858,7 +1870,7 @@ "ReservedDBInstances": { "type": "list", "member": { - "shape": "S6b", + "shape": "S6d", "locationName": "ReservedDBInstance" } } @@ -1878,7 +1890,7 @@ "type": "boolean" }, "Filters": { - "shape": "S3f" + "shape": "S3h" }, "MaxRecords": { "type": "integer" @@ -1915,7 +1927,7 @@ "type": "boolean" }, "RecurringCharges": { - "shape": "S6d" + "shape": "S6f" } }, "wrapper": true @@ -1934,7 +1946,7 @@ }, "Marker": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" } } }, @@ -1983,10 +1995,10 @@ "members": { "StorageType": {}, "StorageSize": { - "shape": "S6s" + "shape": "S6u" }, "ProvisionedIops": { - "shape": "S6s" + "shape": "S6u" }, "IopsToStorageRatio": { "type": "list", @@ -2067,7 +2079,7 @@ "members": { "ResourceName": {}, "Filters": { - "shape": "S3f" + "shape": "S3h" } } }, @@ -2132,12 +2144,12 @@ "members": { "DBClusterParameterGroupName": {}, "Parameters": { - "shape": "S3q" + "shape": "S3s" } } }, "output": { - "shape": "S75", + "shape": "S77", "resultWrapper": "ModifyDBClusterParameterGroupResult" } }, @@ -2152,10 +2164,10 @@ "DBClusterSnapshotIdentifier": {}, "AttributeName": {}, "ValuesToAdd": { - "shape": "S3y" + "shape": "S40" }, "ValuesToRemove": { - "shape": "S3y" + "shape": "S40" } } }, @@ -2164,7 +2176,7 @@ "type": "structure", "members": { "DBClusterSnapshotAttributesResult": { - "shape": "S3v" + "shape": "S3x" } } } @@ -2242,7 +2254,18 @@ "EnablePerformanceInsights": { "type": "boolean" }, - "PerformanceInsightsKMSKeyId": {} + "PerformanceInsightsKMSKeyId": {}, + "CloudwatchLogsExportConfiguration": { + "type": "structure", + "members": { + "EnableLogTypes": { + "shape": "S1x" + }, + "DisableLogTypes": { + "shape": "S1x" + } + } + } } }, "output": { @@ -2250,7 +2273,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -2265,12 +2288,12 @@ "members": { "DBParameterGroupName": {}, "Parameters": { - "shape": "S3q" + "shape": "S3s" } } }, "output": { - "shape": "S7b", + "shape": "S7e", "resultWrapper": "ModifyDBParameterGroupResult" } }, @@ -2307,10 +2330,10 @@ "DBSnapshotIdentifier": {}, "AttributeName": {}, "ValuesToAdd": { - "shape": "S3y" + "shape": "S40" }, "ValuesToRemove": { - "shape": "S3y" + "shape": "S40" } } }, @@ -2319,7 +2342,7 @@ "type": "structure", "members": { "DBSnapshotAttributesResult": { - "shape": "S4w" + "shape": "S4y" } } } @@ -2335,7 +2358,7 @@ "DBSubnetGroupName": {}, "DBSubnetGroupDescription": {}, "SubnetIds": { - "shape": "S2o" + "shape": "S2q" } } }, @@ -2344,7 +2367,7 @@ "type": "structure", "members": { "DBSubnetGroup": { - "shape": "S22" + "shape": "S23" } } } @@ -2453,7 +2476,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -2500,7 +2523,7 @@ "type": "structure", "members": { "ReservedDBInstance": { - "shape": "S6b" + "shape": "S6d" } } } @@ -2523,7 +2546,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -2591,12 +2614,12 @@ "type": "boolean" }, "Parameters": { - "shape": "S3q" + "shape": "S3s" } } }, "output": { - "shape": "S75", + "shape": "S77", "resultWrapper": "ResetDBClusterParameterGroupResult" } }, @@ -2612,12 +2635,12 @@ "type": "boolean" }, "Parameters": { - "shape": "S3q" + "shape": "S3s" } } }, "output": { - "shape": "S7b", + "shape": "S7e", "resultWrapper": "ResetDBParameterGroupResult" } }, @@ -2819,6 +2842,9 @@ "DomainIAMRoleName": {}, "EnableIAMDatabaseAuthentication": { "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "shape": "S1x" } } }, @@ -2827,7 +2853,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -2912,7 +2938,10 @@ "EnablePerformanceInsights": { "type": "boolean" }, - "PerformanceInsightsKMSKeyId": {} + "PerformanceInsightsKMSKeyId": {}, + "EnableCloudwatchLogsExports": { + "shape": "S1x" + } } }, "output": { @@ -2920,7 +2949,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -2976,6 +3005,9 @@ "DomainIAMRoleName": {}, "EnableIAMDatabaseAuthentication": { "type": "boolean" + }, + "EnableCloudwatchLogsExports": { + "shape": "S1x" } } }, @@ -2984,7 +3016,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -3028,7 +3060,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -3049,7 +3081,7 @@ "type": "structure", "members": { "DBInstance": { - "shape": "S1y" + "shape": "S1z" } } } @@ -3486,7 +3518,11 @@ "locationName": "DBSecurityGroupName" } }, - "S1y": { + "S1x": { + "type": "list", + "member": {} + }, + "S1z": { "type": "structure", "members": { "DBInstanceIdentifier": {}, @@ -3534,7 +3570,7 @@ }, "AvailabilityZone": {}, "DBSubnetGroup": { - "shape": "S22" + "shape": "S23" }, "PreferredMaintenanceWindow": {}, "PendingModifiedValues": { @@ -3562,7 +3598,18 @@ "DBInstanceIdentifier": {}, "StorageType": {}, "CACertificateIdentifier": {}, - "DBSubnetGroupName": {} + "DBSubnetGroupName": {}, + "PendingCloudwatchLogsExports": { + "type": "structure", + "members": { + "LogTypesToEnable": { + "shape": "S1x" + }, + "LogTypesToDisable": { + "shape": "S1x" + } + } + } } }, "LatestRestorableTime": { @@ -3667,11 +3714,14 @@ "PerformanceInsightsEnabled": { "type": "boolean" }, - "PerformanceInsightsKMSKeyId": {} + "PerformanceInsightsKMSKeyId": {}, + "EnabledCloudwatchLogsExports": { + "shape": "S1x" + } }, "wrapper": true }, - "S22": { + "S23": { "type": "structure", "members": { "DBSubnetGroupName": {}, @@ -3686,7 +3736,7 @@ "members": { "SubnetIdentifier": {}, "SubnetAvailabilityZone": { - "shape": "S25" + "shape": "S26" }, "SubnetStatus": {} } @@ -3696,20 +3746,20 @@ }, "wrapper": true }, - "S25": { + "S26": { "type": "structure", "members": { "Name": {} }, "wrapper": true }, - "S2o": { + "S2q": { "type": "list", "member": { "locationName": "SubnetIdentifier" } }, - "S3f": { + "S3h": { "type": "list", "member": { "locationName": "Filter", @@ -3729,7 +3779,7 @@ } } }, - "S3q": { + "S3s": { "type": "list", "member": { "locationName": "Parameter", @@ -3750,7 +3800,7 @@ } } }, - "S3v": { + "S3x": { "type": "structure", "members": { "DBClusterSnapshotIdentifier": {}, @@ -3762,7 +3812,7 @@ "members": { "AttributeName": {}, "AttributeValues": { - "shape": "S3y" + "shape": "S40" } } } @@ -3770,20 +3820,20 @@ }, "wrapper": true }, - "S3y": { + "S40": { "type": "list", "member": { "locationName": "AttributeValue" } }, - "S49": { + "S4b": { "type": "structure", "members": { "CharacterSetName": {}, "CharacterSetDescription": {} } }, - "S4w": { + "S4y": { "type": "structure", "members": { "DBSnapshotIdentifier": {}, @@ -3795,7 +3845,7 @@ "members": { "AttributeName": {}, "AttributeValues": { - "shape": "S3y" + "shape": "S40" } }, "wrapper": true @@ -3804,18 +3854,18 @@ }, "wrapper": true }, - "S57": { + "S59": { "type": "structure", "members": { "DBParameterGroupFamily": {}, "Marker": {}, "Parameters": { - "shape": "S3q" + "shape": "S3s" } }, "wrapper": true }, - "S6b": { + "S6d": { "type": "structure", "members": { "ReservedDBInstanceId": {}, @@ -3844,13 +3894,13 @@ }, "State": {}, "RecurringCharges": { - "shape": "S6d" + "shape": "S6f" }, "ReservedDBInstanceArn": {} }, "wrapper": true }, - "S6d": { + "S6f": { "type": "list", "member": { "locationName": "RecurringCharge", @@ -3864,7 +3914,7 @@ "wrapper": true } }, - "S6s": { + "S6u": { "type": "list", "member": { "locationName": "Range", @@ -3882,13 +3932,13 @@ } } }, - "S75": { + "S77": { "type": "structure", "members": { "DBClusterParameterGroupName": {} } }, - "S7b": { + "S7e": { "type": "structure", "members": { "DBParameterGroupName": {} diff --git a/apis/rds-2014-10-31.normal.json b/apis/rds-2014-10-31.normal.json index c4f2a1674e..2d8d39efae 100644 --- a/apis/rds-2014-10-31.normal.json +++ b/apis/rds-2014-10-31.normal.json @@ -2910,6 +2910,20 @@ }, "documentation": "

This data type is used as a response element in the action DescribeDBEngineVersions.

" }, + "CloudwatchLogsExportConfiguration": { + "type": "structure", + "members": { + "EnableLogTypes": { + "shape": "LogTypeList", + "documentation": "

The list of log types to enable.

" + }, + "DisableLogTypes": { + "shape": "LogTypeList", + "documentation": "

The list of log types to disable.

" + } + }, + "documentation": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.

" + }, "CopyDBClusterParameterGroupMessage": { "type": "structure", "required": [ @@ -3448,6 +3462,10 @@ "PerformanceInsightsKMSKeyId": { "shape": "String", "documentation": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

" + }, + "EnableCloudwatchLogsExports": { + "shape": "LogTypeList", + "documentation": "

The list of log types that need to be enabled for exporting to CloudWatch Logs.

" } }, "documentation": "

" @@ -3481,7 +3499,7 @@ }, "MultiAZ": { "shape": "BooleanOptional", - "documentation": "

Specifies whether the read replica is in a Multi-AZ deployment.

" + "documentation": "

Specifies whether the read replica is in a Multi-AZ deployment.

You can create a Read Replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another Availability Zone for failover support for the replica. Creating your Read Replica as a Multi-AZ DB instance is independent of whether the source database is a Multi-AZ DB instance.

Currently PostgreSQL Read Replicas can only be created as single-AZ DB instances.

" }, "AutoMinorVersionUpgrade": { "shape": "BooleanOptional", @@ -3542,6 +3560,10 @@ "shape": "String", "documentation": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

" }, + "EnableCloudwatchLogsExports": { + "shape": "LogTypeList", + "documentation": "

The list of logs that the new DB instance is to export to CloudWatch Logs.

" + }, "SourceRegion": { "shape": "String", "documentation": "

The ID of the region that contains the source for the read replica.

" @@ -4363,6 +4385,14 @@ "SupportedTimezones": { "shape": "SupportedTimezonesList", "documentation": "

A list of the time zones supported by this engine for the Timezone parameter of the CreateDBInstance action.

" + }, + "ExportableLogTypes": { + "shape": "LogTypeList", + "documentation": "

The types of logs that the database engine has available for export to CloudWatch Logs.

" + }, + "SupportsLogExportsToCloudwatchLogs": { + "shape": "Boolean", + "documentation": "

A value that indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs.

" } }, "documentation": "

This data type is used as a response element in the action DescribeDBEngineVersions.

" @@ -4594,6 +4624,10 @@ "PerformanceInsightsKMSKeyId": { "shape": "String", "documentation": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

" + }, + "EnabledCloudwatchLogsExports": { + "shape": "LogTypeList", + "documentation": "

A list of log types that this DB instance is configured to export to CloudWatch Logs.

" } }, "documentation": "

Contains the details of an Amazon RDS DB instance.

This data type is used as a response element in the DescribeDBInstances action.

", @@ -6957,6 +6991,12 @@ }, "documentation": "

" }, + "LogTypeList": { + "type": "list", + "member": { + "shape": "String" + } + }, "Long": { "type": "long" }, @@ -7222,6 +7262,10 @@ "PerformanceInsightsKMSKeyId": { "shape": "String", "documentation": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key.

" + }, + "CloudwatchLogsExportConfiguration": { + "shape": "CloudwatchLogsExportConfiguration", + "documentation": "

The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster.

" } }, "documentation": "

" @@ -8003,6 +8047,20 @@ "locationName": "Parameter" } }, + "PendingCloudwatchLogsExports": { + "type": "structure", + "members": { + "LogTypesToEnable": { + "shape": "LogTypeList", + "documentation": "

Log types that are in the process of being deactivated. After they are deactivated, these log types aren't exported to CloudWatch Logs.

" + }, + "LogTypesToDisable": { + "shape": "LogTypeList", + "documentation": "

Log types that are in the process of being enabled. After they are enabled, these log types are exported to CloudWatch Logs.

" + } + }, + "documentation": "

A list of the log types whose configuration is still pending. In other words, these log types are in the process of being activated or deactivated.

" + }, "PendingMaintenanceAction": { "type": "structure", "members": { @@ -8115,6 +8173,9 @@ "DBSubnetGroupName": { "shape": "String", "documentation": "

The new DB subnet group for the DB instance.

" + }, + "PendingCloudwatchLogsExports": { + "shape": "PendingCloudwatchLogsExports" } }, "documentation": "

This data type is used as a response element in the ModifyDBInstance action.

" @@ -8996,6 +9057,10 @@ "EnableIAMDatabaseAuthentication": { "shape": "BooleanOptional", "documentation": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

Default: false

" + }, + "EnableCloudwatchLogsExports": { + "shape": "LogTypeList", + "documentation": "

The list of logs that the restored DB instance is to export to CloudWatch Logs.

" } }, "documentation": "

" @@ -9171,6 +9236,10 @@ "PerformanceInsightsKMSKeyId": { "shape": "String", "documentation": "

The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or the KMS key alias for the KMS encryption key.

" + }, + "EnableCloudwatchLogsExports": { + "shape": "LogTypeList", + "documentation": "

The list of logs that the restored DB instance is to export to CloudWatch Logs.

" } } }, @@ -9191,7 +9260,7 @@ "members": { "SourceDBInstanceIdentifier": { "shape": "String", - "documentation": "

The identifier of the source DB instance from which to restore.

Constraints:

" + "documentation": "

The identifier of the source DB instance from which to restore.

Constraints:

" }, "TargetDBInstanceIdentifier": { "shape": "String", @@ -9283,6 +9352,10 @@ "EnableIAMDatabaseAuthentication": { "shape": "BooleanOptional", "documentation": "

True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false.

You can enable IAM database authentication for the following database engines

Default: false

" + }, + "EnableCloudwatchLogsExports": { + "shape": "LogTypeList", + "documentation": "

The list of logs that the restored DB instance is to export to CloudWatch Logs.

" } }, "documentation": "

" diff --git a/clients/all.d.ts b/clients/all.d.ts index a0145cfee2..d9527d936c 100644 --- a/clients/all.d.ts +++ b/clients/all.d.ts @@ -128,3 +128,4 @@ export import Cloud9 = require('./cloud9'); export import ServerlessApplicationRepository = require('./serverlessapplicationrepository'); export import ServiceDiscovery = require('./servicediscovery'); export import WorkMail = require('./workmail'); +export import AutoScalingPlans = require('./autoscalingplans'); diff --git a/clients/all.js b/clients/all.js index 32ae9960e3..2eee0f37f9 100644 --- a/clients/all.js +++ b/clients/all.js @@ -129,5 +129,6 @@ module.exports = { Cloud9: require('./cloud9'), ServerlessApplicationRepository: require('./serverlessapplicationrepository'), ServiceDiscovery: require('./servicediscovery'), - WorkMail: require('./workmail') + WorkMail: require('./workmail'), + AutoScalingPlans: require('./autoscalingplans') }; \ No newline at end of file diff --git a/clients/applicationautoscaling.d.ts b/clients/applicationautoscaling.d.ts index 08e5099498..261860ad58 100644 --- a/clients/applicationautoscaling.d.ts +++ b/clients/applicationautoscaling.d.ts @@ -36,11 +36,11 @@ declare class ApplicationAutoScaling extends Service { */ deregisterScalableTarget(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DeregisterScalableTargetResponse) => void): Request; /** - * Provides descriptive information about the scalable targets in the specified namespace. You can filter the results using the ResourceIds and ScalableDimension parameters. To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. + * Gets information about the scalable targets in the specified namespace. You can filter the results using the ResourceIds and ScalableDimension parameters. To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. */ describeScalableTargets(params: ApplicationAutoScaling.Types.DescribeScalableTargetsRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalableTargetsResponse) => void): Request; /** - * Provides descriptive information about the scalable targets in the specified namespace. You can filter the results using the ResourceIds and ScalableDimension parameters. To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. + * Gets information about the scalable targets in the specified namespace. You can filter the results using the ResourceIds and ScalableDimension parameters. To create a scalable target or update an existing one, see RegisterScalableTarget. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. */ describeScalableTargets(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScalableTargetsResponse) => void): Request; /** @@ -68,27 +68,27 @@ declare class ApplicationAutoScaling extends Service { */ describeScheduledActions(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.DescribeScheduledActionsResponse) => void): Request; /** - * Creates or updates a policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy without first registering a scalable target using RegisterScalableTarget. To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request. You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. + * Creates or updates a policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you register the scalable target using RegisterScalableTarget. To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request. You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. */ putScalingPolicy(params: ApplicationAutoScaling.Types.PutScalingPolicyRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScalingPolicyResponse) => void): Request; /** - * Creates or updates a policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy without first registering a scalable target using RegisterScalableTarget. To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request. You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. + * Creates or updates a policy for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scaling policy applies to the scalable target identified by those three attributes. You cannot create a scaling policy until you register the scalable target using RegisterScalableTarget. To update a policy, specify its policy name and the parameters that you want to change. Any parameters that you don't specify are not changed by this update request. You can view the scaling policies for a service namespace using DescribeScalingPolicies. If you are no longer using a scaling policy, you can delete it using DeleteScalingPolicy. */ putScalingPolicy(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScalingPolicyResponse) => void): Request; /** - * Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action without first registering a scalable target using RegisterScalableTarget. To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request. You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction. + * Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you register the scalable target using RegisterScalableTarget. To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request. You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction. */ putScheduledAction(params: ApplicationAutoScaling.Types.PutScheduledActionRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScheduledActionResponse) => void): Request; /** - * Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action without first registering a scalable target using RegisterScalableTarget. To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request. You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction. + * Creates or updates a scheduled action for an Application Auto Scaling scalable target. Each scalable target is identified by a service namespace, resource ID, and scalable dimension. A scheduled action applies to the scalable target identified by those three attributes. You cannot create a scheduled action until you register the scalable target using RegisterScalableTarget. To update an action, specify its name and the parameters that you want to change. If you don't specify start and end times, the old values are deleted. Any other parameters that you don't specify are not changed by this update request. You can view the scheduled actions using DescribeScheduledActions. If you are no longer using a scheduled action, you can delete it using DeleteScheduledAction. */ putScheduledAction(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.PutScheduledActionResponse) => void): Request; /** - * Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for your scalable dimension. After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. + * Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for its scalable dimension. After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it using DeregisterScalableTarget. */ registerScalableTarget(params: ApplicationAutoScaling.Types.RegisterScalableTargetRequest, callback?: (err: AWSError, data: ApplicationAutoScaling.Types.RegisterScalableTargetResponse) => void): Request; /** - * Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for your scalable dimension. After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you are no longer using a scalable target, you can deregister it using DeregisterScalableTarget. + * Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for its scalable dimension. After you register a scalable target, you can create and apply scaling policies using PutScalingPolicy. You can view the scaling policies for a service namespace using DescribeScalableTargets. If you no longer need a scalable target, you can deregister it using DeregisterScalableTarget. */ registerScalableTarget(callback?: (err: AWSError, data: ApplicationAutoScaling.Types.RegisterScalableTargetResponse) => void): Request; } @@ -198,7 +198,7 @@ declare namespace ApplicationAutoScaling { */ ScalableDimension?: ScalableDimension; /** - * The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + * The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. */ MaxResults?: MaxResults; /** @@ -208,7 +208,7 @@ declare namespace ApplicationAutoScaling { } export interface DescribeScalableTargetsResponse { /** - * The list of scalable targets that matches the request parameters. + * The scalable targets that match the request parameters. */ ScalableTargets?: ScalableTargets; /** @@ -230,7 +230,7 @@ declare namespace ApplicationAutoScaling { */ ScalableDimension?: ScalableDimension; /** - * The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + * The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. */ MaxResults?: MaxResults; /** @@ -266,7 +266,7 @@ declare namespace ApplicationAutoScaling { */ ScalableDimension?: ScalableDimension; /** - * The maximum number of scalable target results. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. + * The maximum number of scalable targets. This value can be between 1 and 50. The default value is 50. If this parameter is used, the operation returns up to MaxResults results at a time, along with a NextToken value. To get the next set of results, include the NextToken value in a subsequent call. If this parameter is not used, the operation returns up to 50 results and a NextToken value, if applicable. */ MaxResults?: MaxResults; /** @@ -341,18 +341,18 @@ declare namespace ApplicationAutoScaling { export type MetricNamespace = string; export type MetricScale = number; export type MetricStatistic = "Average"|"Minimum"|"Maximum"|"SampleCount"|"Sum"|string; - export type MetricType = "DynamoDBReadCapacityUtilization"|"DynamoDBWriteCapacityUtilization"|"ALBRequestCountPerTarget"|"RDSReaderAverageCPUUtilization"|"RDSReaderAverageDatabaseConnections"|"EC2SpotFleetRequestAverageCPUUtilization"|"EC2SpotFleetRequestAverageNetworkIn"|"EC2SpotFleetRequestAverageNetworkOut"|string; + export type MetricType = "DynamoDBReadCapacityUtilization"|"DynamoDBWriteCapacityUtilization"|"ALBRequestCountPerTarget"|"RDSReaderAverageCPUUtilization"|"RDSReaderAverageDatabaseConnections"|"EC2SpotFleetRequestAverageCPUUtilization"|"EC2SpotFleetRequestAverageNetworkIn"|"EC2SpotFleetRequestAverageNetworkOut"|"ECSServiceAverageCPUUtilization"|"ECSServiceAverageMemoryUtilization"|string; export type MetricUnit = string; export type MinAdjustmentMagnitude = number; export type PolicyName = string; export type PolicyType = "StepScaling"|"TargetTrackingScaling"|string; export interface PredefinedMetricSpecification { /** - * The metric type. The ALBRequestCountPerTarget metric type applies only to Spot fleet requests. + * The metric type. The ALBRequestCountPerTarget metric type applies only to Spot fleet requests and ECS services. */ PredefinedMetricType: MetricType; /** - * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot fleet request. The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. + * Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ALBRequestCountPerTarget and there is a target group attached to the Spot fleet request or ECS service. The format is app/<load-balancer-name>/<load-balancer-id>/targetgroup/<target-group-name>/<target-group-id>, where: app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN. */ ResourceLabel?: ResourceLabel; } @@ -374,7 +374,7 @@ declare namespace ApplicationAutoScaling { */ ScalableDimension: ScalableDimension; /** - * The policy type. If you are creating a new policy, this parameter is required. If you are updating a policy, this parameter is not required. For DynamoDB, only TargetTrackingScaling is supported. For any other service, only StepScaling is supported. + * The policy type. This parameter is required if you are creating a policy. For DynamoDB, only TargetTrackingScaling is supported. For Amazon ECS, Spot Fleet, and Amazon RDS, both StepScaling and TargetTrackingScaling are supported. For any other service, only StepScaling is supported. */ PolicyType?: PolicyType; /** @@ -382,7 +382,7 @@ declare namespace ApplicationAutoScaling { */ StepScalingPolicyConfiguration?: StepScalingPolicyConfiguration; /** - * A target tracking policy. This parameter is required if you are creating a new policy and the policy type is TargetTrackingScaling. + * A target tracking policy. This parameter is required if you are creating a policy and the policy type is TargetTrackingScaling. */ TargetTrackingScalingPolicyConfiguration?: TargetTrackingScalingPolicyConfiguration; } @@ -414,7 +414,7 @@ declare namespace ApplicationAutoScaling { */ ResourceId: ResourceIdMaxLen1600; /** - * The scalable dimension. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. + * The scalable dimension. This parameter is required if you are creating a scheduled action. This string consists of the service namespace, resource type, and scaling property. ecs:service:DesiredCount - The desired task count of an ECS service. ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request. elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group. appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet. dynamodb:table:ReadCapacityUnits - The provisioned read capacity for a DynamoDB table. dynamodb:table:WriteCapacityUnits - The provisioned write capacity for a DynamoDB table. dynamodb:index:ReadCapacityUnits - The provisioned read capacity for a DynamoDB global secondary index. dynamodb:index:WriteCapacityUnits - The provisioned write capacity for a DynamoDB global secondary index. rds:cluster:ReadReplicaCount - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition. */ ScalableDimension?: ScalableDimension; /** @@ -446,15 +446,15 @@ declare namespace ApplicationAutoScaling { */ ScalableDimension: ScalableDimension; /** - * The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target and optional if you are updating one. + * The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target. */ MinCapacity?: ResourceCapacity; /** - * The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target and optional if you are updating one. + * The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target. */ MaxCapacity?: ResourceCapacity; /** - * The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. With Amazon RDS resources, permissions are granted using a service-linked role. For more information, see Service-Linked Roles for Application Auto Scaling. For resources that are not supported using a service-linked role, this parameter is required when you register a scalable target and optional when you update one. + * Application Auto Scaling creates a service-linked role that grants it permissions to modify the scalable target on your behalf. For more information, see Service-Linked Roles for Application Auto Scaling. For resources that are not supported using a service-linked role, this parameter is required and must specify the ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. */ RoleARN?: ResourceIdMaxLen1600; } diff --git a/clients/autoscalingplans.d.ts b/clients/autoscalingplans.d.ts new file mode 100644 index 0000000000..32a2ec2768 --- /dev/null +++ b/clients/autoscalingplans.d.ts @@ -0,0 +1,192 @@ +import {Request} from '../lib/request'; +import {Response} from '../lib/response'; +import {AWSError} from '../lib/error'; +import {Service} from '../lib/service'; +import {ServiceConfigurationOptions} from '../lib/service'; +import {ConfigBase as Config} from '../lib/config'; +interface Blob {} +declare class AutoScalingPlans extends Service { + /** + * Constructs a service object. This object has one method for each API operation. + */ + constructor(options?: AutoScalingPlans.Types.ClientConfiguration) + config: Config & AutoScalingPlans.Types.ClientConfiguration; + /** + * + */ + createScalingPlan(params: AutoScalingPlans.Types.CreateScalingPlanRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.CreateScalingPlanResponse) => void): Request; + /** + * + */ + createScalingPlan(callback?: (err: AWSError, data: AutoScalingPlans.Types.CreateScalingPlanResponse) => void): Request; + /** + * + */ + deleteScalingPlan(params: AutoScalingPlans.Types.DeleteScalingPlanRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.DeleteScalingPlanResponse) => void): Request; + /** + * + */ + deleteScalingPlan(callback?: (err: AWSError, data: AutoScalingPlans.Types.DeleteScalingPlanResponse) => void): Request; + /** + * + */ + describeScalingPlanResources(params: AutoScalingPlans.Types.DescribeScalingPlanResourcesRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlanResourcesResponse) => void): Request; + /** + * + */ + describeScalingPlanResources(callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlanResourcesResponse) => void): Request; + /** + * + */ + describeScalingPlans(params: AutoScalingPlans.Types.DescribeScalingPlansRequest, callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlansResponse) => void): Request; + /** + * + */ + describeScalingPlans(callback?: (err: AWSError, data: AutoScalingPlans.Types.DescribeScalingPlansResponse) => void): Request; +} +declare namespace AutoScalingPlans { + export interface ApplicationSource { + CloudFormationStackARN?: XmlString; + } + export type ApplicationSources = ApplicationSource[]; + export type Cooldown = number; + export interface CreateScalingPlanRequest { + ScalingPlanName: ScalingPlanName; + ApplicationSource: ApplicationSource; + ScalingInstructions: ScalingInstructions; + } + export interface CreateScalingPlanResponse { + ScalingPlanVersion: ScalingPlanVersion; + } + export interface CustomizedScalingMetricSpecification { + MetricName: MetricName; + Namespace: MetricNamespace; + Dimensions?: MetricDimensions; + Statistic: MetricStatistic; + Unit?: MetricUnit; + } + export interface DeleteScalingPlanRequest { + ScalingPlanName: ScalingPlanName; + ScalingPlanVersion: ScalingPlanVersion; + } + export interface DeleteScalingPlanResponse { + } + export interface DescribeScalingPlanResourcesRequest { + ScalingPlanName: ScalingPlanName; + ScalingPlanVersion: ScalingPlanVersion; + MaxResults?: MaxResults; + NextToken?: NextToken; + } + export interface DescribeScalingPlanResourcesResponse { + ScalingPlanResources?: ScalingPlanResources; + NextToken?: NextToken; + } + export interface DescribeScalingPlansRequest { + ScalingPlanNames?: ScalingPlanNames; + ScalingPlanVersion?: ScalingPlanVersion; + ApplicationSources?: ApplicationSources; + MaxResults?: MaxResults; + NextToken?: NextToken; + } + export interface DescribeScalingPlansResponse { + ScalingPlans?: ScalingPlans; + NextToken?: NextToken; + } + export type DisableScaleIn = boolean; + export type ErrorMessage = string; + export type MaxResults = number; + export interface MetricDimension { + Name: MetricDimensionName; + Value: MetricDimensionValue; + } + export type MetricDimensionName = string; + export type MetricDimensionValue = string; + export type MetricDimensions = MetricDimension[]; + export type MetricName = string; + export type MetricNamespace = string; + export type MetricScale = number; + export type MetricStatistic = "Average"|"Minimum"|"Maximum"|"SampleCount"|"Sum"|string; + export type MetricUnit = string; + export type NextToken = string; + export type PolicyName = string; + export type PolicyType = "TargetTrackingScaling"|string; + export interface PredefinedScalingMetricSpecification { + PredefinedScalingMetricType: ScalingMetricType; + ResourceLabel?: ResourceLabel; + } + export type ResourceCapacity = number; + export type ResourceIdMaxLen1600 = string; + export type ResourceLabel = string; + export type ScalableDimension = "autoscaling:autoScalingGroup:DesiredCapacity"|"ecs:service:DesiredCount"|"ec2:spot-fleet-request:TargetCapacity"|"rds:cluster:ReadReplicaCount"|"dynamodb:table:ReadCapacityUnits"|"dynamodb:table:WriteCapacityUnits"|"dynamodb:index:ReadCapacityUnits"|"dynamodb:index:WriteCapacityUnits"|string; + export interface ScalingInstruction { + ServiceNamespace: ServiceNamespace; + ResourceId: ResourceIdMaxLen1600; + ScalableDimension: ScalableDimension; + MinCapacity: ResourceCapacity; + MaxCapacity: ResourceCapacity; + TargetTrackingConfigurations: TargetTrackingConfigurations; + } + export type ScalingInstructions = ScalingInstruction[]; + export type ScalingMetricType = "ASGAverageCPUUtilization"|"ASGAverageNetworkIn"|"ASGAverageNetworkOut"|"DynamoDBReadCapacityUtilization"|"DynamoDBWriteCapacityUtilization"|"ECSServiceAverageCPUUtilization"|"ECSServiceAverageMemoryUtilization"|"ALBRequestCountPerTarget"|"RDSReaderAverageCPUUtilization"|"RDSReaderAverageDatabaseConnections"|"EC2SpotFleetRequestAverageCPUUtilization"|"EC2SpotFleetRequestAverageNetworkIn"|"EC2SpotFleetRequestAverageNetworkOut"|string; + export interface ScalingPlan { + ScalingPlanName: ScalingPlanName; + ScalingPlanVersion: ScalingPlanVersion; + ApplicationSource: ApplicationSource; + ScalingInstructions: ScalingInstructions; + StatusCode: ScalingPlanStatusCode; + StatusMessage?: XmlString; + CreationTime?: TimestampType; + } + export type ScalingPlanName = string; + export type ScalingPlanNames = ScalingPlanName[]; + export interface ScalingPlanResource { + ScalingPlanName: ScalingPlanName; + ScalingPlanVersion: ScalingPlanVersion; + ServiceNamespace: ServiceNamespace; + ResourceId: ResourceIdMaxLen1600; + ScalableDimension: ScalableDimension; + ScalingPolicies?: ScalingPolicies; + ScalingStatusCode: ScalingStatusCode; + ScalingStatusMessage?: XmlString; + } + export type ScalingPlanResources = ScalingPlanResource[]; + export type ScalingPlanStatusCode = "Active"|"ActiveWithProblems"|"CreationInProgress"|"CreationFailed"|"DeletionInProgress"|"DeletionFailed"|string; + export type ScalingPlanVersion = number; + export type ScalingPlans = ScalingPlan[]; + export type ScalingPolicies = ScalingPolicy[]; + export interface ScalingPolicy { + PolicyName: PolicyName; + PolicyType: PolicyType; + TargetTrackingConfiguration?: TargetTrackingConfiguration; + } + export type ScalingStatusCode = "Inactive"|"PartiallyActive"|"Active"|string; + export type ServiceNamespace = "autoscaling"|"ecs"|"ec2"|"rds"|"dynamodb"|string; + export interface TargetTrackingConfiguration { + PredefinedScalingMetricSpecification?: PredefinedScalingMetricSpecification; + CustomizedScalingMetricSpecification?: CustomizedScalingMetricSpecification; + TargetValue: MetricScale; + DisableScaleIn?: DisableScaleIn; + ScaleOutCooldown?: Cooldown; + ScaleInCooldown?: Cooldown; + EstimatedInstanceWarmup?: Cooldown; + } + export type TargetTrackingConfigurations = TargetTrackingConfiguration[]; + export type TimestampType = Date; + export type XmlString = string; + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + export type apiVersion = "2018-01-06"|"latest"|string; + export interface ClientApiVersions { + /** + * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version. + */ + apiVersion?: apiVersion; + } + export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions; + /** + * Contains interfaces for use with the AutoScalingPlans client. + */ + export import Types = AutoScalingPlans; +} +export = AutoScalingPlans; diff --git a/clients/autoscalingplans.js b/clients/autoscalingplans.js new file mode 100644 index 0000000000..aaf48ebb0d --- /dev/null +++ b/clients/autoscalingplans.js @@ -0,0 +1,18 @@ +require('../lib/node_loader'); +var AWS = require('../lib/core'); +var Service = AWS.Service; +var apiLoader = AWS.apiLoader; + +apiLoader.services['autoscalingplans'] = {}; +AWS.AutoScalingPlans = Service.defineService('autoscalingplans', ['2018-01-06']); +Object.defineProperty(apiLoader.services['autoscalingplans'], '2018-01-06', { + get: function get() { + var model = require('../apis/autoscaling-plans-2018-01-06.min.json'); + model.paginators = require('../apis/autoscaling-plans-2018-01-06.paginators.json').pagination; + return model; + }, + enumerable: true, + configurable: true +}); + +module.exports = AWS.AutoScalingPlans; diff --git a/clients/rds.d.ts b/clients/rds.d.ts index c17a39a724..80bb104e1a 100644 --- a/clients/rds.d.ts +++ b/clients/rds.d.ts @@ -932,6 +932,16 @@ declare namespace RDS { */ CharacterSetDescription?: String; } + export interface CloudwatchLogsExportConfiguration { + /** + * The list of log types to enable. + */ + EnableLogTypes?: LogTypeList; + /** + * The list of log types to disable. + */ + DisableLogTypes?: LogTypeList; + } export interface CopyDBClusterParameterGroupMessage { /** * The identifier or Amazon Resource Name (ARN) for the source DB cluster parameter group. For information about creating an ARN, see Constructing an RDS Amazon Resource Name (ARN). Constraints: Must specify a valid DB cluster parameter group. If the source DB cluster parameter group is in the same AWS Region as the copy, specify a valid DB parameter group identifier, for example my-db-cluster-param-group, or a valid ARN. If the source DB parameter group is in a different AWS Region than the copy, specify a valid DB cluster parameter group ARN, for example arn:aws:rds:us-east-1:123456789012:cluster-pg:custom-cluster-group1. @@ -1341,6 +1351,10 @@ declare namespace RDS { * The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. */ PerformanceInsightsKMSKeyId?: String; + /** + * The list of log types that need to be enabled for exporting to CloudWatch Logs. + */ + EnableCloudwatchLogsExports?: LogTypeList; } export interface CreateDBInstanceReadReplicaMessage { /** @@ -1364,7 +1378,7 @@ declare namespace RDS { */ Port?: IntegerOptional; /** - * Specifies whether the read replica is in a Multi-AZ deployment. + * Specifies whether the read replica is in a Multi-AZ deployment. You can create a Read Replica as a Multi-AZ DB instance. RDS creates a standby of your replica in another Availability Zone for failover support for the replica. Creating your Read Replica as a Multi-AZ DB instance is independent of whether the source database is a Multi-AZ DB instance. Currently PostgreSQL Read Replicas can only be created as single-AZ DB instances. */ MultiAZ?: BooleanOptional; /** @@ -1424,6 +1438,10 @@ declare namespace RDS { * The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. */ PerformanceInsightsKMSKeyId?: String; + /** + * The list of logs that the new DB instance is to export to CloudWatch Logs. + */ + EnableCloudwatchLogsExports?: LogTypeList; /** * The ID of the region that contains the source for the read replica. */ @@ -1941,6 +1959,14 @@ declare namespace RDS { * A list of the time zones supported by this engine for the Timezone parameter of the CreateDBInstance action. */ SupportedTimezones?: SupportedTimezonesList; + /** + * The types of logs that the database engine has available for export to CloudWatch Logs. + */ + ExportableLogTypes?: LogTypeList; + /** + * A value that indicates whether the engine version supports exporting the log types specified by ExportableLogTypes to CloudWatch Logs. + */ + SupportsLogExportsToCloudwatchLogs?: Boolean; } export type DBEngineVersionList = DBEngineVersion[]; export interface DBEngineVersionMessage { @@ -2158,6 +2184,10 @@ declare namespace RDS { * The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. */ PerformanceInsightsKMSKeyId?: String; + /** + * A list of log types that this DB instance is configured to export to CloudWatch Logs. + */ + EnabledCloudwatchLogsExports?: LogTypeList; } export type DBInstanceList = DBInstance[]; export interface DBInstanceMessage { @@ -3498,6 +3528,7 @@ declare namespace RDS { */ Filters?: FilterList; } + export type LogTypeList = String[]; export type Long = number; export interface ModifyDBClusterMessage { /** @@ -3724,6 +3755,10 @@ declare namespace RDS { * The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. */ PerformanceInsightsKMSKeyId?: String; + /** + * The configuration setting for the log types to be enabled for export to CloudWatch Logs for a specific DB instance or DB cluster. + */ + CloudwatchLogsExportConfiguration?: CloudwatchLogsExportConfiguration; } export interface ModifyDBInstanceResult { DBInstance?: DBInstance; @@ -4252,6 +4287,16 @@ declare namespace RDS { ApplyMethod?: ApplyMethod; } export type ParametersList = Parameter[]; + export interface PendingCloudwatchLogsExports { + /** + * Log types that are in the process of being deactivated. After they are deactivated, these log types aren't exported to CloudWatch Logs. + */ + LogTypesToEnable?: LogTypeList; + /** + * Log types that are in the process of being enabled. After they are enabled, these log types are exported to CloudWatch Logs. + */ + LogTypesToDisable?: LogTypeList; + } export interface PendingMaintenanceAction { /** * The type of pending maintenance action that is available for the resource. @@ -4343,6 +4388,7 @@ declare namespace RDS { * The new DB subnet group for the DB instance. */ DBSubnetGroupName?: String; + PendingCloudwatchLogsExports?: PendingCloudwatchLogsExports; } export interface PromoteReadReplicaDBClusterMessage { /** @@ -4922,6 +4968,10 @@ declare namespace RDS { * True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false */ EnableIAMDatabaseAuthentication?: BooleanOptional; + /** + * The list of logs that the restored DB instance is to export to CloudWatch Logs. + */ + EnableCloudwatchLogsExports?: LogTypeList; } export interface RestoreDBInstanceFromDBSnapshotResult { DBInstance?: DBInstance; @@ -5079,13 +5129,17 @@ declare namespace RDS { * The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), the KMS key identifier, or the KMS key alias for the KMS encryption key. */ PerformanceInsightsKMSKeyId?: String; + /** + * The list of logs that the restored DB instance is to export to CloudWatch Logs. + */ + EnableCloudwatchLogsExports?: LogTypeList; } export interface RestoreDBInstanceFromS3Result { DBInstance?: DBInstance; } export interface RestoreDBInstanceToPointInTimeMessage { /** - * The identifier of the source DB instance from which to restore. Constraints: Must match the identifier of an existing DBInstance. + * The identifier of the source DB instance from which to restore. Constraints: Must match the identifier of an existing DB instance. */ SourceDBInstanceIdentifier: String; /** @@ -5177,6 +5231,10 @@ declare namespace RDS { * True to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts, and otherwise false. You can enable IAM database authentication for the following database engines For MySQL 5.6, minor version 5.6.34 or higher For MySQL 5.7, minor version 5.7.16 or higher Aurora 5.6 or higher. Default: false */ EnableIAMDatabaseAuthentication?: BooleanOptional; + /** + * The list of logs that the restored DB instance is to export to CloudWatch Logs. + */ + EnableCloudwatchLogsExports?: LogTypeList; } export interface RestoreDBInstanceToPointInTimeResult { DBInstance?: DBInstance; diff --git a/dist/aws-sdk-core-react-native.js b/dist/aws-sdk-core-react-native.js index 471157a4e3..21f17525fc 100644 --- a/dist/aws-sdk-core-react-native.js +++ b/dist/aws-sdk-core-react-native.js @@ -61,1042 +61,1042 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ (function(module, exports, __webpack_require__) { - /** - * The main AWS namespace - */ - var AWS = { util: __webpack_require__(2) }; - - /** - * @api private - * @!macro [new] nobrowser - * @note This feature is not supported in the browser environment of the SDK. - */ - var _hidden = {}; _hidden.toString(); // hack to parse macro - - module.exports = AWS; - - AWS.util.update(AWS, { - - /** - * @constant - */ - VERSION: '2.182.0', - - /** - * @api private - */ - Signers: {}, - - /** - * @api private - */ - Protocol: { - Json: __webpack_require__(13), - Query: __webpack_require__(16), - Rest: __webpack_require__(20), - RestJson: __webpack_require__(21), - RestXml: __webpack_require__(22) - }, - - /** - * @api private - */ - XML: { - Builder: __webpack_require__(23), - Parser: null // conditionally set based on environment - }, - - /** - * @api private - */ - JSON: { - Builder: __webpack_require__(14), - Parser: __webpack_require__(15) - }, - - /** - * @api private - */ - Model: { - Api: __webpack_require__(182), - Operation: __webpack_require__(183), - Shape: __webpack_require__(18), - Paginator: __webpack_require__(184), - ResourceWaiter: __webpack_require__(185) - }, - - /** - * @api private - */ - apiLoader: __webpack_require__(186) - }); - - __webpack_require__(187); - __webpack_require__(190); - - __webpack_require__(193); - __webpack_require__(194); - __webpack_require__(195); - __webpack_require__(199); - __webpack_require__(202); - __webpack_require__(203); - __webpack_require__(204); - __webpack_require__(212); - - /** - * @readonly - * @return [AWS.SequentialExecutor] a collection of global event listeners that - * are attached to every sent request. - * @see AWS.Request AWS.Request for a list of events to listen for - * @example Logging the time taken to send a request - * AWS.events.on('send', function startSend(resp) { - * resp.startTime = new Date().getTime(); - * }).on('complete', function calculateTime(resp) { - * var time = (new Date().getTime() - resp.startTime) / 1000; - * console.log('Request took ' + time + ' seconds'); - * }); - * - * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' - */ - AWS.events = new AWS.SequentialExecutor(); + /** + * The main AWS namespace + */ + var AWS = { util: __webpack_require__(2) }; + + /** + * @api private + * @!macro [new] nobrowser + * @note This feature is not supported in the browser environment of the SDK. + */ + var _hidden = {}; _hidden.toString(); // hack to parse macro + + module.exports = AWS; + + AWS.util.update(AWS, { + + /** + * @constant + */ + VERSION: '2.183.0', + + /** + * @api private + */ + Signers: {}, + + /** + * @api private + */ + Protocol: { + Json: __webpack_require__(13), + Query: __webpack_require__(16), + Rest: __webpack_require__(20), + RestJson: __webpack_require__(21), + RestXml: __webpack_require__(22) + }, + + /** + * @api private + */ + XML: { + Builder: __webpack_require__(23), + Parser: null // conditionally set based on environment + }, + + /** + * @api private + */ + JSON: { + Builder: __webpack_require__(14), + Parser: __webpack_require__(15) + }, + + /** + * @api private + */ + Model: { + Api: __webpack_require__(182), + Operation: __webpack_require__(183), + Shape: __webpack_require__(18), + Paginator: __webpack_require__(184), + ResourceWaiter: __webpack_require__(185) + }, + + /** + * @api private + */ + apiLoader: __webpack_require__(186) + }); + + __webpack_require__(187); + __webpack_require__(190); + + __webpack_require__(193); + __webpack_require__(194); + __webpack_require__(195); + __webpack_require__(199); + __webpack_require__(202); + __webpack_require__(203); + __webpack_require__(204); + __webpack_require__(212); + + /** + * @readonly + * @return [AWS.SequentialExecutor] a collection of global event listeners that + * are attached to every sent request. + * @see AWS.Request AWS.Request for a list of events to listen for + * @example Logging the time taken to send a request + * AWS.events.on('send', function startSend(resp) { + * resp.startTime = new Date().getTime(); + * }).on('complete', function calculateTime(resp) { + * var time = (new Date().getTime() - resp.startTime) / 1000; + * console.log('Request took ' + time + ' seconds'); + * }); + * + * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' + */ + AWS.events = new AWS.SequentialExecutor(); /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* eslint guard-for-in:0 */ - var AWS; - - /** - * A set of utility methods for use with the AWS SDK. - * - * @!attribute abort - * Return this value from an iterator function {each} or {arrayEach} - * to break out of the iteration. - * @example Breaking out of an iterator function - * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { - * if (key == 'b') return AWS.util.abort; - * }); - * @see each - * @see arrayEach - * @api private - */ - var util = { - environment: 'nodejs', - engine: function engine() { - if (util.isBrowser() && typeof navigator !== 'undefined') { - return navigator.userAgent; - } else { - var engine = process.platform + '/' + process.version; - if (process.env.AWS_EXECUTION_ENV) { - engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV; - } - return engine; - } - }, - - userAgent: function userAgent() { - var name = util.environment; - var agent = 'aws-sdk-' + name + '/' + __webpack_require__(1).VERSION; - if (name === 'nodejs') agent += ' ' + util.engine(); - return agent; - }, - - isBrowser: function isBrowser() { return process && process.browser; }, - isNode: function isNode() { return !util.isBrowser(); }, - uriEscape: function uriEscape(string) { - var output = encodeURIComponent(string); - output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); - - // AWS percent-encodes some extra non-standard characters in a URI - output = output.replace(/[*]/g, function(ch) { - return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); - }); - - return output; - }, - - uriEscapePath: function uriEscapePath(string) { - var parts = []; - util.arrayEach(string.split('/'), function (part) { - parts.push(util.uriEscape(part)); - }); - return parts.join('/'); - }, - - urlParse: function urlParse(url) { - return util.url.parse(url); - }, - - urlFormat: function urlFormat(url) { - return util.url.format(url); - }, - - queryStringParse: function queryStringParse(qs) { - return util.querystring.parse(qs); - }, - - queryParamsToString: function queryParamsToString(params) { - var items = []; - var escape = util.uriEscape; - var sortedKeys = Object.keys(params).sort(); - - util.arrayEach(sortedKeys, function(name) { - var value = params[name]; - var ename = escape(name); - var result = ename + '='; - if (Array.isArray(value)) { - var vals = []; - util.arrayEach(value, function(item) { vals.push(escape(item)); }); - result = ename + '=' + vals.sort().join('&' + ename + '='); - } else if (value !== undefined && value !== null) { - result = ename + '=' + escape(value); - } - items.push(result); - }); - - return items.join('&'); - }, - - readFileSync: function readFileSync(path) { - if (util.isBrowser()) return null; - return __webpack_require__(6).readFileSync(path, 'utf-8'); - }, - - base64: { - encode: function encode64(string) { - if (typeof string === 'number') { - throw util.error(new Error('Cannot base64 encode number ' + string)); - } - if (string === null || typeof string === 'undefined') { - return string; - } - var buf = (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string) : new util.Buffer(string); - return buf.toString('base64'); - }, - - decode: function decode64(string) { - if (typeof string === 'number') { - throw util.error(new Error('Cannot base64 decode number ' + string)); - } - if (string === null || typeof string === 'undefined') { - return string; - } - return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string, 'base64') : new util.Buffer(string, 'base64'); - } - - }, - - buffer: { - toStream: function toStream(buffer) { - if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer); - - var readable = new (util.stream.Readable)(); - var pos = 0; - readable._read = function(size) { - if (pos >= buffer.length) return readable.push(null); - - var end = pos + size; - if (end > buffer.length) end = buffer.length; - readable.push(buffer.slice(pos, end)); - pos = end; - }; - - return readable; - }, - - /** - * Concatenates a list of Buffer objects. - */ - concat: function(buffers) { - var length = 0, - offset = 0, - buffer = null, i; - - for (i = 0; i < buffers.length; i++) { - length += buffers[i].length; - } - - buffer = new util.Buffer(length); - - for (i = 0; i < buffers.length; i++) { - buffers[i].copy(buffer, offset); - offset += buffers[i].length; - } - - return buffer; - } - }, - - string: { - byteLength: function byteLength(string) { - if (string === null || string === undefined) return 0; - if (typeof string === 'string') string = new util.Buffer(string); - - if (typeof string.byteLength === 'number') { - return string.byteLength; - } else if (typeof string.length === 'number') { - return string.length; - } else if (typeof string.size === 'number') { - return string.size; - } else if (typeof string.path === 'string') { - return __webpack_require__(6).lstatSync(string.path).size; - } else { - throw util.error(new Error('Cannot determine length of ' + string), - { object: string }); - } - }, - - upperFirst: function upperFirst(string) { - return string[0].toUpperCase() + string.substr(1); - }, - - lowerFirst: function lowerFirst(string) { - return string[0].toLowerCase() + string.substr(1); - } - }, - - ini: { - parse: function string(ini) { - var currentSection, map = {}; - util.arrayEach(ini.split(/\r?\n/), function(line) { - line = line.split(/(^|\s)[;#]/)[0]; // remove comments - var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); - if (section) { - currentSection = section[1]; - } else if (currentSection) { - var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); - if (item) { - map[currentSection] = map[currentSection] || {}; - map[currentSection][item[1]] = item[2]; - } - } - }); - - return map; - } - }, - - fn: { - noop: function() {}, - - /** - * Turn a synchronous function into as "async" function by making it call - * a callback. The underlying function is called with all but the last argument, - * which is treated as the callback. The callback is passed passed a first argument - * of null on success to mimick standard node callbacks. - */ - makeAsync: function makeAsync(fn, expectedArgs) { - if (expectedArgs && expectedArgs <= fn.length) { - return fn; - } - - return function() { - var args = Array.prototype.slice.call(arguments, 0); - var callback = args.pop(); - var result = fn.apply(null, args); - callback(result); - }; - } - }, - - /** - * Date and time utility functions. - */ - date: { - - /** - * @return [Date] the current JavaScript date object. Since all - * AWS services rely on this date object, you can override - * this function to provide a special time value to AWS service - * requests. - */ - getDate: function getDate() { - if (!AWS) AWS = __webpack_require__(1); - if (AWS.config.systemClockOffset) { // use offset when non-zero - return new Date(new Date().getTime() + AWS.config.systemClockOffset); - } else { - return new Date(); - } - }, - - /** - * @return [String] the date in ISO-8601 format - */ - iso8601: function iso8601(date) { - if (date === undefined) { date = util.date.getDate(); } - return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); - }, - - /** - * @return [String] the date in RFC 822 format - */ - rfc822: function rfc822(date) { - if (date === undefined) { date = util.date.getDate(); } - return date.toUTCString(); - }, - - /** - * @return [Integer] the UNIX timestamp value for the current time - */ - unixTimestamp: function unixTimestamp(date) { - if (date === undefined) { date = util.date.getDate(); } - return date.getTime() / 1000; - }, - - /** - * @param [String,number,Date] date - * @return [Date] - */ - from: function format(date) { - if (typeof date === 'number') { - return new Date(date * 1000); // unix timestamp - } else { - return new Date(date); - } - }, - - /** - * Given a Date or date-like value, this function formats the - * date into a string of the requested value. - * @param [String,number,Date] date - * @param [String] formatter Valid formats are: - # * 'iso8601' - # * 'rfc822' - # * 'unixTimestamp' - * @return [String] - */ - format: function format(date, formatter) { - if (!formatter) formatter = 'iso8601'; - return util.date[formatter](util.date.from(date)); - }, - - parseTimestamp: function parseTimestamp(value) { - if (typeof value === 'number') { // unix timestamp (number) - return new Date(value * 1000); - } else if (value.match(/^\d+$/)) { // unix timestamp - return new Date(value * 1000); - } else if (value.match(/^\d{4}/)) { // iso8601 - return new Date(value); - } else if (value.match(/^\w{3},/)) { // rfc822 - return new Date(value); - } else { - throw util.error( - new Error('unhandled timestamp format: ' + value), - {code: 'TimestampParserError'}); - } - } - - }, - - crypto: { - crc32Table: [ - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, - 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, - 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, - 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, - 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, - 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, - 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, - 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, - 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, - 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, - 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, - 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, - 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, - 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, - 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, - 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, - 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, - 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, - 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, - 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, - 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, - 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, - 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, - 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, - 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, - 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, - 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, - 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, - 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, - 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, - 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, - 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, - 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, - 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, - 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, - 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, - 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, - 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, - 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, - 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, - 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, - 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, - 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, - 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, - 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, - 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, - 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, - 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, - 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, - 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, - 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, - 0x2D02EF8D], - - crc32: function crc32(data) { - var tbl = util.crypto.crc32Table; - var crc = 0 ^ -1; - - if (typeof data === 'string') { - data = new util.Buffer(data); - } - - for (var i = 0; i < data.length; i++) { - var code = data.readUInt8(i); - crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; - } - return (crc ^ -1) >>> 0; - }, - - hmac: function hmac(key, string, digest, fn) { - if (!digest) digest = 'binary'; - if (digest === 'buffer') { digest = undefined; } - if (!fn) fn = 'sha256'; - if (typeof string === 'string') string = new util.Buffer(string); - return util.crypto.lib.createHmac(fn, key).update(string).digest(digest); - }, - - md5: function md5(data, digest, callback) { - return util.crypto.hash('md5', data, digest, callback); - }, - - sha256: function sha256(data, digest, callback) { - return util.crypto.hash('sha256', data, digest, callback); - }, - - hash: function(algorithm, data, digest, callback) { - var hash = util.crypto.createHash(algorithm); - if (!digest) { digest = 'binary'; } - if (digest === 'buffer') { digest = undefined; } - if (typeof data === 'string') data = new util.Buffer(data); - var sliceFn = util.arraySliceFn(data); - var isBuffer = util.Buffer.isBuffer(data); - //Identifying objects with an ArrayBuffer as buffers - if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; - - if (callback && typeof data === 'object' && - typeof data.on === 'function' && !isBuffer) { - data.on('data', function(chunk) { hash.update(chunk); }); - data.on('error', function(err) { callback(err); }); - data.on('end', function() { callback(null, hash.digest(digest)); }); - } else if (callback && sliceFn && !isBuffer && - typeof FileReader !== 'undefined') { - // this might be a File/Blob - var index = 0, size = 1024 * 512; - var reader = new FileReader(); - reader.onerror = function() { - callback(new Error('Failed to read data.')); - }; - reader.onload = function() { - var buf = new util.Buffer(new Uint8Array(reader.result)); - hash.update(buf); - index += buf.length; - reader._continueReading(); - }; - reader._continueReading = function() { - if (index >= data.size) { - callback(null, hash.digest(digest)); - return; - } - - var back = index + size; - if (back > data.size) back = data.size; - reader.readAsArrayBuffer(sliceFn.call(data, index, back)); - }; - - reader._continueReading(); - } else { - if (util.isBrowser() && typeof data === 'object' && !isBuffer) { - data = new util.Buffer(new Uint8Array(data)); - } - var out = hash.update(data).digest(digest); - if (callback) callback(null, out); - return out; - } - }, - - toHex: function toHex(data) { - var out = []; - for (var i = 0; i < data.length; i++) { - out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); - } - return out.join(''); - }, - - createHash: function createHash(algorithm) { - return util.crypto.lib.createHash(algorithm); - } - - }, - - /** @!ignore */ - - /* Abort constant */ - abort: {}, - - each: function each(object, iterFunction) { - for (var key in object) { - if (Object.prototype.hasOwnProperty.call(object, key)) { - var ret = iterFunction.call(this, key, object[key]); - if (ret === util.abort) break; - } - } - }, - - arrayEach: function arrayEach(array, iterFunction) { - for (var idx in array) { - if (Object.prototype.hasOwnProperty.call(array, idx)) { - var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); - if (ret === util.abort) break; - } - } - }, - - update: function update(obj1, obj2) { - util.each(obj2, function iterator(key, item) { - obj1[key] = item; - }); - return obj1; - }, - - merge: function merge(obj1, obj2) { - return util.update(util.copy(obj1), obj2); - }, - - copy: function copy(object) { - if (object === null || object === undefined) return object; - var dupe = {}; - // jshint forin:false - for (var key in object) { - dupe[key] = object[key]; - } - return dupe; - }, - - isEmpty: function isEmpty(obj) { - for (var prop in obj) { - if (Object.prototype.hasOwnProperty.call(obj, prop)) { - return false; - } - } - return true; - }, - - arraySliceFn: function arraySliceFn(obj) { - var fn = obj.slice || obj.webkitSlice || obj.mozSlice; - return typeof fn === 'function' ? fn : null; - }, - - isType: function isType(obj, type) { - // handle cross-"frame" objects - if (typeof type === 'function') type = util.typeName(type); - return Object.prototype.toString.call(obj) === '[object ' + type + ']'; - }, - - typeName: function typeName(type) { - if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name; - var str = type.toString(); - var match = str.match(/^\s*function (.+)\(/); - return match ? match[1] : str; - }, - - error: function error(err, options) { - var originalError = null; - if (typeof err.message === 'string' && err.message !== '') { - if (typeof options === 'string' || (options && options.message)) { - originalError = util.copy(err); - originalError.message = err.message; - } - } - err.message = err.message || null; - - if (typeof options === 'string') { - err.message = options; - } else if (typeof options === 'object' && options !== null) { - util.update(err, options); - if (options.message) - err.message = options.message; - if (options.code || options.name) - err.code = options.code || options.name; - if (options.stack) - err.stack = options.stack; - } - - if (typeof Object.defineProperty === 'function') { - Object.defineProperty(err, 'name', {writable: true, enumerable: false}); - Object.defineProperty(err, 'message', {enumerable: true}); - } - - err.name = options && options.name || err.name || err.code || 'Error'; - err.time = new Date(); - - if (originalError) err.originalError = originalError; - - return err; - }, - - /** - * @api private - */ - inherit: function inherit(klass, features) { - var newObject = null; - if (features === undefined) { - features = klass; - klass = Object; - newObject = {}; - } else { - var ctor = function ConstructorWrapper() {}; - ctor.prototype = klass.prototype; - newObject = new ctor(); - } - - // constructor not supplied, create pass-through ctor - if (features.constructor === Object) { - features.constructor = function() { - if (klass !== Object) { - return klass.apply(this, arguments); - } - }; - } - - features.constructor.prototype = newObject; - util.update(features.constructor.prototype, features); - features.constructor.__super__ = klass; - return features.constructor; - }, - - /** - * @api private - */ - mixin: function mixin() { - var klass = arguments[0]; - for (var i = 1; i < arguments.length; i++) { - // jshint forin:false - for (var prop in arguments[i].prototype) { - var fn = arguments[i].prototype[prop]; - if (prop !== 'constructor') { - klass.prototype[prop] = fn; - } - } - } - return klass; - }, - - /** - * @api private - */ - hideProperties: function hideProperties(obj, props) { - if (typeof Object.defineProperty !== 'function') return; - - util.arrayEach(props, function (key) { - Object.defineProperty(obj, key, { - enumerable: false, writable: true, configurable: true }); - }); - }, - - /** - * @api private - */ - property: function property(obj, name, value, enumerable, isValue) { - var opts = { - configurable: true, - enumerable: enumerable !== undefined ? enumerable : true - }; - if (typeof value === 'function' && !isValue) { - opts.get = value; - } - else { - opts.value = value; opts.writable = true; - } - - Object.defineProperty(obj, name, opts); - }, - - /** - * @api private - */ - memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { - var cachedValue = null; - - // build enumerable attribute for each value with lazy accessor. - util.property(obj, name, function() { - if (cachedValue === null) { - cachedValue = get(); - } - return cachedValue; - }, enumerable); - }, - - /** - * TODO Remove in major version revision - * This backfill populates response data without the - * top-level payload name. - * - * @api private - */ - hoistPayloadMember: function hoistPayloadMember(resp) { - var req = resp.request; - var operation = req.operation; - var output = req.service.api.operations[operation].output; - if (output.payload) { - var payloadMember = output.members[output.payload]; - var responsePayload = resp.data[output.payload]; - if (payloadMember.type === 'structure') { - util.each(responsePayload, function(key, value) { - util.property(resp.data, key, value, false); - }); - } - } - }, - - /** - * Compute SHA-256 checksums of streams - * - * @api private - */ - computeSha256: function computeSha256(body, done) { - if (util.isNode()) { - var Stream = util.stream.Stream; - var fs = __webpack_require__(6); - if (body instanceof Stream) { - if (typeof body.path === 'string') { // assume file object - var settings = {}; - if (typeof body.start === 'number') { - settings.start = body.start; - } - if (typeof body.end === 'number') { - settings.end = body.end; - } - body = fs.createReadStream(body.path, settings); - } else { // TODO support other stream types - return done(new Error('Non-file stream objects are ' + - 'not supported with SigV4')); - } - } - } - - util.crypto.sha256(body, 'hex', function(err, sha) { - if (err) done(err); - else done(null, sha); - }); - }, - - /** - * @api private - */ - isClockSkewed: function isClockSkewed(serverTime) { - if (serverTime) { - util.property(AWS.config, 'isClockSkewed', - Math.abs(new Date().getTime() - serverTime) >= 300000, false); - return AWS.config.isClockSkewed; - } - }, - - applyClockOffset: function applyClockOffset(serverTime) { - if (serverTime) - AWS.config.systemClockOffset = serverTime - new Date().getTime(); - }, - - /** - * @api private - */ - extractRequestId: function extractRequestId(resp) { - var requestId = resp.httpResponse.headers['x-amz-request-id'] || - resp.httpResponse.headers['x-amzn-requestid']; - - if (!requestId && resp.data && resp.data.ResponseMetadata) { - requestId = resp.data.ResponseMetadata.RequestId; - } - - if (requestId) { - resp.requestId = requestId; - } - - if (resp.error) { - resp.error.requestId = requestId; - } - }, - - /** - * @api private - */ - addPromises: function addPromises(constructors, PromiseDependency) { - if (PromiseDependency === undefined && AWS && AWS.config) { - PromiseDependency = AWS.config.getPromisesDependency(); - } - if (PromiseDependency === undefined && typeof Promise !== 'undefined') { - PromiseDependency = Promise; - } - if (typeof PromiseDependency !== 'function') var deletePromises = true; - if (!Array.isArray(constructors)) constructors = [constructors]; - - for (var ind = 0; ind < constructors.length; ind++) { - var constructor = constructors[ind]; - if (deletePromises) { - if (constructor.deletePromisesFromClass) { - constructor.deletePromisesFromClass(); - } - } else if (constructor.addPromisesToClass) { - constructor.addPromisesToClass(PromiseDependency); - } - } - }, - - /** - * @api private - */ - promisifyMethod: function promisifyMethod(methodName, PromiseDependency) { - return function promise() { - var self = this; - return new PromiseDependency(function(resolve, reject) { - self[methodName](function(err, data) { - if (err) { - reject(err); - } else { - resolve(data); - } - }); - }); - }; - }, - - /** - * @api private - */ - isDualstackAvailable: function isDualstackAvailable(service) { - if (!service) return false; - var metadata = __webpack_require__(7); - if (typeof service !== 'string') service = service.serviceIdentifier; - if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false; - return !!metadata[service].dualstackAvailable; - }, - - /** - * @api private - */ - calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions) { - if (!retryDelayOptions) retryDelayOptions = {}; - var customBackoff = retryDelayOptions.customBackoff || null; - if (typeof customBackoff === 'function') { - return customBackoff(retryCount); - } - var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100; - var delay = Math.random() * (Math.pow(2, retryCount) * base); - return delay; - }, - - /** - * @api private - */ - handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) { - if (!options) options = {}; - var http = AWS.HttpClient.getInstance(); - var httpOptions = options.httpOptions || {}; - var retryCount = 0; - - var errCallback = function(err) { - var maxRetries = options.maxRetries || 0; - if (err && err.code === 'TimeoutError') err.retryable = true; - if (err && err.retryable && retryCount < maxRetries) { - retryCount++; - var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions); - setTimeout(sendRequest, delay + (err.retryAfter || 0)); - } else { - cb(err); - } - }; - - var sendRequest = function() { - var data = ''; - http.handleRequest(httpRequest, httpOptions, function(httpResponse) { - httpResponse.on('data', function(chunk) { data += chunk.toString(); }); - httpResponse.on('end', function() { - var statusCode = httpResponse.statusCode; - if (statusCode < 300) { - cb(null, data); - } else { - var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0; - var err = util.error(new Error(), - { retryable: statusCode >= 500 || statusCode === 429 } - ); - if (retryAfter && err.retryable) err.retryAfter = retryAfter; - errCallback(err); - } - }); - }, errCallback); - }; - - AWS.util.defer(sendRequest); - }, - - /** - * @api private - */ - uuid: { - v4: function uuidV4() { - return __webpack_require__(8).v4(); - } - }, - - /** - * @api private - */ - convertPayloadToString: function convertPayloadToString(resp) { - var req = resp.request; - var operation = req.operation; - var rules = req.service.api.operations[operation].output || {}; - if (rules.payload && resp.data[rules.payload]) { - resp.data[rules.payload] = resp.data[rules.payload].toString(); - } - }, - - /** - * @api private - */ - defer: function defer(callback) { - if (typeof process === 'object' && typeof process.nextTick === 'function') { - process.nextTick(callback); - } else if (typeof setImmediate === 'function') { - setImmediate(callback); - } else { - setTimeout(callback, 0); - } - }, - - /** - * @api private - */ - defaultProfile: 'default', - - /** - * @api private - */ - configOptInEnv: 'AWS_SDK_LOAD_CONFIG', - - /** - * @api private - */ - sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE', - - /** - * @api private - */ - sharedConfigFileEnv: 'AWS_CONFIG_FILE' - }; - - module.exports = util; + /* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* eslint guard-for-in:0 */ + var AWS; + + /** + * A set of utility methods for use with the AWS SDK. + * + * @!attribute abort + * Return this value from an iterator function {each} or {arrayEach} + * to break out of the iteration. + * @example Breaking out of an iterator function + * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { + * if (key == 'b') return AWS.util.abort; + * }); + * @see each + * @see arrayEach + * @api private + */ + var util = { + environment: 'nodejs', + engine: function engine() { + if (util.isBrowser() && typeof navigator !== 'undefined') { + return navigator.userAgent; + } else { + var engine = process.platform + '/' + process.version; + if (process.env.AWS_EXECUTION_ENV) { + engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV; + } + return engine; + } + }, + + userAgent: function userAgent() { + var name = util.environment; + var agent = 'aws-sdk-' + name + '/' + __webpack_require__(1).VERSION; + if (name === 'nodejs') agent += ' ' + util.engine(); + return agent; + }, + + isBrowser: function isBrowser() { return process && process.browser; }, + isNode: function isNode() { return !util.isBrowser(); }, + uriEscape: function uriEscape(string) { + var output = encodeURIComponent(string); + output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); + + // AWS percent-encodes some extra non-standard characters in a URI + output = output.replace(/[*]/g, function(ch) { + return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); + }); + + return output; + }, + + uriEscapePath: function uriEscapePath(string) { + var parts = []; + util.arrayEach(string.split('/'), function (part) { + parts.push(util.uriEscape(part)); + }); + return parts.join('/'); + }, + + urlParse: function urlParse(url) { + return util.url.parse(url); + }, + + urlFormat: function urlFormat(url) { + return util.url.format(url); + }, + + queryStringParse: function queryStringParse(qs) { + return util.querystring.parse(qs); + }, + + queryParamsToString: function queryParamsToString(params) { + var items = []; + var escape = util.uriEscape; + var sortedKeys = Object.keys(params).sort(); + + util.arrayEach(sortedKeys, function(name) { + var value = params[name]; + var ename = escape(name); + var result = ename + '='; + if (Array.isArray(value)) { + var vals = []; + util.arrayEach(value, function(item) { vals.push(escape(item)); }); + result = ename + '=' + vals.sort().join('&' + ename + '='); + } else if (value !== undefined && value !== null) { + result = ename + '=' + escape(value); + } + items.push(result); + }); + + return items.join('&'); + }, + + readFileSync: function readFileSync(path) { + if (util.isBrowser()) return null; + return __webpack_require__(6).readFileSync(path, 'utf-8'); + }, + + base64: { + encode: function encode64(string) { + if (typeof string === 'number') { + throw util.error(new Error('Cannot base64 encode number ' + string)); + } + if (string === null || typeof string === 'undefined') { + return string; + } + var buf = (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string) : new util.Buffer(string); + return buf.toString('base64'); + }, + + decode: function decode64(string) { + if (typeof string === 'number') { + throw util.error(new Error('Cannot base64 decode number ' + string)); + } + if (string === null || typeof string === 'undefined') { + return string; + } + return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string, 'base64') : new util.Buffer(string, 'base64'); + } + + }, + + buffer: { + toStream: function toStream(buffer) { + if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer); + + var readable = new (util.stream.Readable)(); + var pos = 0; + readable._read = function(size) { + if (pos >= buffer.length) return readable.push(null); + + var end = pos + size; + if (end > buffer.length) end = buffer.length; + readable.push(buffer.slice(pos, end)); + pos = end; + }; + + return readable; + }, + + /** + * Concatenates a list of Buffer objects. + */ + concat: function(buffers) { + var length = 0, + offset = 0, + buffer = null, i; + + for (i = 0; i < buffers.length; i++) { + length += buffers[i].length; + } + + buffer = new util.Buffer(length); + + for (i = 0; i < buffers.length; i++) { + buffers[i].copy(buffer, offset); + offset += buffers[i].length; + } + + return buffer; + } + }, + + string: { + byteLength: function byteLength(string) { + if (string === null || string === undefined) return 0; + if (typeof string === 'string') string = new util.Buffer(string); + + if (typeof string.byteLength === 'number') { + return string.byteLength; + } else if (typeof string.length === 'number') { + return string.length; + } else if (typeof string.size === 'number') { + return string.size; + } else if (typeof string.path === 'string') { + return __webpack_require__(6).lstatSync(string.path).size; + } else { + throw util.error(new Error('Cannot determine length of ' + string), + { object: string }); + } + }, + + upperFirst: function upperFirst(string) { + return string[0].toUpperCase() + string.substr(1); + }, + + lowerFirst: function lowerFirst(string) { + return string[0].toLowerCase() + string.substr(1); + } + }, + + ini: { + parse: function string(ini) { + var currentSection, map = {}; + util.arrayEach(ini.split(/\r?\n/), function(line) { + line = line.split(/(^|\s)[;#]/)[0]; // remove comments + var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); + if (section) { + currentSection = section[1]; + } else if (currentSection) { + var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); + if (item) { + map[currentSection] = map[currentSection] || {}; + map[currentSection][item[1]] = item[2]; + } + } + }); + + return map; + } + }, + + fn: { + noop: function() {}, + + /** + * Turn a synchronous function into as "async" function by making it call + * a callback. The underlying function is called with all but the last argument, + * which is treated as the callback. The callback is passed passed a first argument + * of null on success to mimick standard node callbacks. + */ + makeAsync: function makeAsync(fn, expectedArgs) { + if (expectedArgs && expectedArgs <= fn.length) { + return fn; + } + + return function() { + var args = Array.prototype.slice.call(arguments, 0); + var callback = args.pop(); + var result = fn.apply(null, args); + callback(result); + }; + } + }, + + /** + * Date and time utility functions. + */ + date: { + + /** + * @return [Date] the current JavaScript date object. Since all + * AWS services rely on this date object, you can override + * this function to provide a special time value to AWS service + * requests. + */ + getDate: function getDate() { + if (!AWS) AWS = __webpack_require__(1); + if (AWS.config.systemClockOffset) { // use offset when non-zero + return new Date(new Date().getTime() + AWS.config.systemClockOffset); + } else { + return new Date(); + } + }, + + /** + * @return [String] the date in ISO-8601 format + */ + iso8601: function iso8601(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); + }, + + /** + * @return [String] the date in RFC 822 format + */ + rfc822: function rfc822(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toUTCString(); + }, + + /** + * @return [Integer] the UNIX timestamp value for the current time + */ + unixTimestamp: function unixTimestamp(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.getTime() / 1000; + }, + + /** + * @param [String,number,Date] date + * @return [Date] + */ + from: function format(date) { + if (typeof date === 'number') { + return new Date(date * 1000); // unix timestamp + } else { + return new Date(date); + } + }, + + /** + * Given a Date or date-like value, this function formats the + * date into a string of the requested value. + * @param [String,number,Date] date + * @param [String] formatter Valid formats are: + # * 'iso8601' + # * 'rfc822' + # * 'unixTimestamp' + * @return [String] + */ + format: function format(date, formatter) { + if (!formatter) formatter = 'iso8601'; + return util.date[formatter](util.date.from(date)); + }, + + parseTimestamp: function parseTimestamp(value) { + if (typeof value === 'number') { // unix timestamp (number) + return new Date(value * 1000); + } else if (value.match(/^\d+$/)) { // unix timestamp + return new Date(value * 1000); + } else if (value.match(/^\d{4}/)) { // iso8601 + return new Date(value); + } else if (value.match(/^\w{3},/)) { // rfc822 + return new Date(value); + } else { + throw util.error( + new Error('unhandled timestamp format: ' + value), + {code: 'TimestampParserError'}); + } + } + + }, + + crypto: { + crc32Table: [ + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, + 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, + 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, + 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, + 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, + 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, + 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, + 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, + 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, + 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, + 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, + 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, + 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, + 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, + 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, + 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, + 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, + 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, + 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, + 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, + 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, + 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, + 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, + 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, + 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, + 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, + 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, + 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, + 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, + 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, + 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, + 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, + 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, + 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, + 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, + 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, + 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, + 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, + 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, + 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, + 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, + 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, + 0x2D02EF8D], + + crc32: function crc32(data) { + var tbl = util.crypto.crc32Table; + var crc = 0 ^ -1; + + if (typeof data === 'string') { + data = new util.Buffer(data); + } + + for (var i = 0; i < data.length; i++) { + var code = data.readUInt8(i); + crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; + } + return (crc ^ -1) >>> 0; + }, + + hmac: function hmac(key, string, digest, fn) { + if (!digest) digest = 'binary'; + if (digest === 'buffer') { digest = undefined; } + if (!fn) fn = 'sha256'; + if (typeof string === 'string') string = new util.Buffer(string); + return util.crypto.lib.createHmac(fn, key).update(string).digest(digest); + }, + + md5: function md5(data, digest, callback) { + return util.crypto.hash('md5', data, digest, callback); + }, + + sha256: function sha256(data, digest, callback) { + return util.crypto.hash('sha256', data, digest, callback); + }, + + hash: function(algorithm, data, digest, callback) { + var hash = util.crypto.createHash(algorithm); + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof data === 'string') data = new util.Buffer(data); + var sliceFn = util.arraySliceFn(data); + var isBuffer = util.Buffer.isBuffer(data); + //Identifying objects with an ArrayBuffer as buffers + if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; + + if (callback && typeof data === 'object' && + typeof data.on === 'function' && !isBuffer) { + data.on('data', function(chunk) { hash.update(chunk); }); + data.on('error', function(err) { callback(err); }); + data.on('end', function() { callback(null, hash.digest(digest)); }); + } else if (callback && sliceFn && !isBuffer && + typeof FileReader !== 'undefined') { + // this might be a File/Blob + var index = 0, size = 1024 * 512; + var reader = new FileReader(); + reader.onerror = function() { + callback(new Error('Failed to read data.')); + }; + reader.onload = function() { + var buf = new util.Buffer(new Uint8Array(reader.result)); + hash.update(buf); + index += buf.length; + reader._continueReading(); + }; + reader._continueReading = function() { + if (index >= data.size) { + callback(null, hash.digest(digest)); + return; + } + + var back = index + size; + if (back > data.size) back = data.size; + reader.readAsArrayBuffer(sliceFn.call(data, index, back)); + }; + + reader._continueReading(); + } else { + if (util.isBrowser() && typeof data === 'object' && !isBuffer) { + data = new util.Buffer(new Uint8Array(data)); + } + var out = hash.update(data).digest(digest); + if (callback) callback(null, out); + return out; + } + }, + + toHex: function toHex(data) { + var out = []; + for (var i = 0; i < data.length; i++) { + out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); + } + return out.join(''); + }, + + createHash: function createHash(algorithm) { + return util.crypto.lib.createHash(algorithm); + } + + }, + + /** @!ignore */ + + /* Abort constant */ + abort: {}, + + each: function each(object, iterFunction) { + for (var key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + var ret = iterFunction.call(this, key, object[key]); + if (ret === util.abort) break; + } + } + }, + + arrayEach: function arrayEach(array, iterFunction) { + for (var idx in array) { + if (Object.prototype.hasOwnProperty.call(array, idx)) { + var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); + if (ret === util.abort) break; + } + } + }, + + update: function update(obj1, obj2) { + util.each(obj2, function iterator(key, item) { + obj1[key] = item; + }); + return obj1; + }, + + merge: function merge(obj1, obj2) { + return util.update(util.copy(obj1), obj2); + }, + + copy: function copy(object) { + if (object === null || object === undefined) return object; + var dupe = {}; + // jshint forin:false + for (var key in object) { + dupe[key] = object[key]; + } + return dupe; + }, + + isEmpty: function isEmpty(obj) { + for (var prop in obj) { + if (Object.prototype.hasOwnProperty.call(obj, prop)) { + return false; + } + } + return true; + }, + + arraySliceFn: function arraySliceFn(obj) { + var fn = obj.slice || obj.webkitSlice || obj.mozSlice; + return typeof fn === 'function' ? fn : null; + }, + + isType: function isType(obj, type) { + // handle cross-"frame" objects + if (typeof type === 'function') type = util.typeName(type); + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + typeName: function typeName(type) { + if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name; + var str = type.toString(); + var match = str.match(/^\s*function (.+)\(/); + return match ? match[1] : str; + }, + + error: function error(err, options) { + var originalError = null; + if (typeof err.message === 'string' && err.message !== '') { + if (typeof options === 'string' || (options && options.message)) { + originalError = util.copy(err); + originalError.message = err.message; + } + } + err.message = err.message || null; + + if (typeof options === 'string') { + err.message = options; + } else if (typeof options === 'object' && options !== null) { + util.update(err, options); + if (options.message) + err.message = options.message; + if (options.code || options.name) + err.code = options.code || options.name; + if (options.stack) + err.stack = options.stack; + } + + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(err, 'name', {writable: true, enumerable: false}); + Object.defineProperty(err, 'message', {enumerable: true}); + } + + err.name = options && options.name || err.name || err.code || 'Error'; + err.time = new Date(); + + if (originalError) err.originalError = originalError; + + return err; + }, + + /** + * @api private + */ + inherit: function inherit(klass, features) { + var newObject = null; + if (features === undefined) { + features = klass; + klass = Object; + newObject = {}; + } else { + var ctor = function ConstructorWrapper() {}; + ctor.prototype = klass.prototype; + newObject = new ctor(); + } + + // constructor not supplied, create pass-through ctor + if (features.constructor === Object) { + features.constructor = function() { + if (klass !== Object) { + return klass.apply(this, arguments); + } + }; + } + + features.constructor.prototype = newObject; + util.update(features.constructor.prototype, features); + features.constructor.__super__ = klass; + return features.constructor; + }, + + /** + * @api private + */ + mixin: function mixin() { + var klass = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + // jshint forin:false + for (var prop in arguments[i].prototype) { + var fn = arguments[i].prototype[prop]; + if (prop !== 'constructor') { + klass.prototype[prop] = fn; + } + } + } + return klass; + }, + + /** + * @api private + */ + hideProperties: function hideProperties(obj, props) { + if (typeof Object.defineProperty !== 'function') return; + + util.arrayEach(props, function (key) { + Object.defineProperty(obj, key, { + enumerable: false, writable: true, configurable: true }); + }); + }, + + /** + * @api private + */ + property: function property(obj, name, value, enumerable, isValue) { + var opts = { + configurable: true, + enumerable: enumerable !== undefined ? enumerable : true + }; + if (typeof value === 'function' && !isValue) { + opts.get = value; + } + else { + opts.value = value; opts.writable = true; + } + + Object.defineProperty(obj, name, opts); + }, + + /** + * @api private + */ + memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { + var cachedValue = null; + + // build enumerable attribute for each value with lazy accessor. + util.property(obj, name, function() { + if (cachedValue === null) { + cachedValue = get(); + } + return cachedValue; + }, enumerable); + }, + + /** + * TODO Remove in major version revision + * This backfill populates response data without the + * top-level payload name. + * + * @api private + */ + hoistPayloadMember: function hoistPayloadMember(resp) { + var req = resp.request; + var operation = req.operation; + var output = req.service.api.operations[operation].output; + if (output.payload) { + var payloadMember = output.members[output.payload]; + var responsePayload = resp.data[output.payload]; + if (payloadMember.type === 'structure') { + util.each(responsePayload, function(key, value) { + util.property(resp.data, key, value, false); + }); + } + } + }, + + /** + * Compute SHA-256 checksums of streams + * + * @api private + */ + computeSha256: function computeSha256(body, done) { + if (util.isNode()) { + var Stream = util.stream.Stream; + var fs = __webpack_require__(6); + if (body instanceof Stream) { + if (typeof body.path === 'string') { // assume file object + var settings = {}; + if (typeof body.start === 'number') { + settings.start = body.start; + } + if (typeof body.end === 'number') { + settings.end = body.end; + } + body = fs.createReadStream(body.path, settings); + } else { // TODO support other stream types + return done(new Error('Non-file stream objects are ' + + 'not supported with SigV4')); + } + } + } + + util.crypto.sha256(body, 'hex', function(err, sha) { + if (err) done(err); + else done(null, sha); + }); + }, + + /** + * @api private + */ + isClockSkewed: function isClockSkewed(serverTime) { + if (serverTime) { + util.property(AWS.config, 'isClockSkewed', + Math.abs(new Date().getTime() - serverTime) >= 300000, false); + return AWS.config.isClockSkewed; + } + }, + + applyClockOffset: function applyClockOffset(serverTime) { + if (serverTime) + AWS.config.systemClockOffset = serverTime - new Date().getTime(); + }, + + /** + * @api private + */ + extractRequestId: function extractRequestId(resp) { + var requestId = resp.httpResponse.headers['x-amz-request-id'] || + resp.httpResponse.headers['x-amzn-requestid']; + + if (!requestId && resp.data && resp.data.ResponseMetadata) { + requestId = resp.data.ResponseMetadata.RequestId; + } + + if (requestId) { + resp.requestId = requestId; + } + + if (resp.error) { + resp.error.requestId = requestId; + } + }, + + /** + * @api private + */ + addPromises: function addPromises(constructors, PromiseDependency) { + if (PromiseDependency === undefined && AWS && AWS.config) { + PromiseDependency = AWS.config.getPromisesDependency(); + } + if (PromiseDependency === undefined && typeof Promise !== 'undefined') { + PromiseDependency = Promise; + } + if (typeof PromiseDependency !== 'function') var deletePromises = true; + if (!Array.isArray(constructors)) constructors = [constructors]; + + for (var ind = 0; ind < constructors.length; ind++) { + var constructor = constructors[ind]; + if (deletePromises) { + if (constructor.deletePromisesFromClass) { + constructor.deletePromisesFromClass(); + } + } else if (constructor.addPromisesToClass) { + constructor.addPromisesToClass(PromiseDependency); + } + } + }, + + /** + * @api private + */ + promisifyMethod: function promisifyMethod(methodName, PromiseDependency) { + return function promise() { + var self = this; + return new PromiseDependency(function(resolve, reject) { + self[methodName](function(err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); + }; + }, + + /** + * @api private + */ + isDualstackAvailable: function isDualstackAvailable(service) { + if (!service) return false; + var metadata = __webpack_require__(7); + if (typeof service !== 'string') service = service.serviceIdentifier; + if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false; + return !!metadata[service].dualstackAvailable; + }, + + /** + * @api private + */ + calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions) { + if (!retryDelayOptions) retryDelayOptions = {}; + var customBackoff = retryDelayOptions.customBackoff || null; + if (typeof customBackoff === 'function') { + return customBackoff(retryCount); + } + var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100; + var delay = Math.random() * (Math.pow(2, retryCount) * base); + return delay; + }, + + /** + * @api private + */ + handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) { + if (!options) options = {}; + var http = AWS.HttpClient.getInstance(); + var httpOptions = options.httpOptions || {}; + var retryCount = 0; + + var errCallback = function(err) { + var maxRetries = options.maxRetries || 0; + if (err && err.code === 'TimeoutError') err.retryable = true; + if (err && err.retryable && retryCount < maxRetries) { + retryCount++; + var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions); + setTimeout(sendRequest, delay + (err.retryAfter || 0)); + } else { + cb(err); + } + }; + + var sendRequest = function() { + var data = ''; + http.handleRequest(httpRequest, httpOptions, function(httpResponse) { + httpResponse.on('data', function(chunk) { data += chunk.toString(); }); + httpResponse.on('end', function() { + var statusCode = httpResponse.statusCode; + if (statusCode < 300) { + cb(null, data); + } else { + var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0; + var err = util.error(new Error(), + { retryable: statusCode >= 500 || statusCode === 429 } + ); + if (retryAfter && err.retryable) err.retryAfter = retryAfter; + errCallback(err); + } + }); + }, errCallback); + }; + + AWS.util.defer(sendRequest); + }, + + /** + * @api private + */ + uuid: { + v4: function uuidV4() { + return __webpack_require__(8).v4(); + } + }, + + /** + * @api private + */ + convertPayloadToString: function convertPayloadToString(resp) { + var req = resp.request; + var operation = req.operation; + var rules = req.service.api.operations[operation].output || {}; + if (rules.payload && resp.data[rules.payload]) { + resp.data[rules.payload] = resp.data[rules.payload].toString(); + } + }, + + /** + * @api private + */ + defer: function defer(callback) { + if (typeof process === 'object' && typeof process.nextTick === 'function') { + process.nextTick(callback); + } else if (typeof setImmediate === 'function') { + setImmediate(callback); + } else { + setTimeout(callback, 0); + } + }, + + /** + * @api private + */ + defaultProfile: 'default', + + /** + * @api private + */ + configOptInEnv: 'AWS_SDK_LOAD_CONFIG', + + /** + * @api private + */ + sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE', + + /** + * @api private + */ + sharedConfigFileEnv: 'AWS_CONFIG_FILE' + }; + + module.exports = util; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(4).setImmediate)) @@ -1552,7 +1552,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 7 */ /***/ (function(module, exports) { - module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory"},"cloudformation":{"name":"CloudFormation","cors":true},"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*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild"},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"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":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM"},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay"},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"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"},"costexplorer":{"prefix":"ce","name":"CostExplorer"},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData"},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend"},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia"},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia"},"kinesisvideo":{"name":"KinesisVideo"},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate"},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups"},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"}} + module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory"},"cloudformation":{"name":"CloudFormation","cors":true},"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*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild"},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"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":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM"},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay"},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"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"},"costexplorer":{"prefix":"ce","name":"CostExplorer"},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData"},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend"},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia"},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia"},"kinesisvideo":{"name":"KinesisVideo"},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate"},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups"},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"},"autoscalingplans":{"prefix":"autoscaling-plans","name":"AutoScalingPlans"}} /***/ }), /* 8 */ @@ -1782,2378 +1782,1582 @@ return /******/ (function(modules) { // webpackBootstrap /* 13 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - var JsonBuilder = __webpack_require__(14); - var JsonParser = __webpack_require__(15); - - function buildRequest(req) { - var httpRequest = req.httpRequest; - var api = req.service.api; - var target = api.targetPrefix + '.' + api.operations[req.operation].name; - var version = api.jsonVersion || '1.0'; - var input = api.operations[req.operation].input; - var builder = new JsonBuilder(); - - if (version === 1) version = '1.0'; - httpRequest.body = builder.build(req.params || {}, input); - httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; - httpRequest.headers['X-Amz-Target'] = target; - } - - function extractError(resp) { - var error = {}; - var httpResponse = resp.httpResponse; - - error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; - if (typeof error.code === 'string') { - error.code = error.code.split(':')[0]; - } - - if (httpResponse.body.length > 0) { - try { - var e = JSON.parse(httpResponse.body.toString()); - if (e.__type || e.code) { - error.code = (e.__type || e.code).split('#').pop(); - } - if (error.code === 'RequestEntityTooLarge') { - error.message = 'Request body must be less than 1 MB'; - } else { - error.message = (e.message || e.Message || null); - } - } catch (e) { - error.statusCode = httpResponse.statusCode; - error.message = httpResponse.statusMessage; - } - } else { - error.statusCode = httpResponse.statusCode; - error.message = httpResponse.statusCode.toString(); - } - - resp.error = util.error(new Error(), error); - } - - function extractData(resp) { - var body = resp.httpResponse.body.toString() || '{}'; - if (resp.request.service.config.convertResponseTypes === false) { - resp.data = JSON.parse(body); - } else { - var operation = resp.request.service.api.operations[resp.request.operation]; - var shape = operation.output || {}; - var parser = new JsonParser(); - resp.data = parser.parse(body, shape); - } - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData - }; + var util = __webpack_require__(2); + var JsonBuilder = __webpack_require__(14); + var JsonParser = __webpack_require__(15); + + function buildRequest(req) { + var httpRequest = req.httpRequest; + var api = req.service.api; + var target = api.targetPrefix + '.' + api.operations[req.operation].name; + var version = api.jsonVersion || '1.0'; + var input = api.operations[req.operation].input; + var builder = new JsonBuilder(); + + if (version === 1) version = '1.0'; + httpRequest.body = builder.build(req.params || {}, input); + httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; + httpRequest.headers['X-Amz-Target'] = target; + } + function extractError(resp) { + var error = {}; + var httpResponse = resp.httpResponse; -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { + error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; + if (typeof error.code === 'string') { + error.code = error.code.split(':')[0]; + } - var util = __webpack_require__(2); - - function JsonBuilder() { } - - JsonBuilder.prototype.build = function(value, shape) { - return JSON.stringify(translate(value, shape)); - }; - - function translate(value, shape) { - if (!shape || value === undefined || value === null) return undefined; - - switch (shape.type) { - case 'structure': return translateStructure(value, shape); - case 'map': return translateMap(value, shape); - case 'list': return translateList(value, shape); - default: return translateScalar(value, shape); - } - } - - function translateStructure(structure, shape) { - var struct = {}; - util.each(structure, function(name, value) { - var memberShape = shape.members[name]; - if (memberShape) { - if (memberShape.location !== 'body') return; - var locationName = memberShape.isLocationName ? memberShape.name : name; - var result = translate(value, memberShape); - if (result !== undefined) struct[locationName] = result; - } - }); - return struct; - } - - function translateList(list, shape) { - var out = []; - util.arrayEach(list, function(value) { - var result = translate(value, shape.member); - if (result !== undefined) out.push(result); - }); - return out; - } - - function translateMap(map, shape) { - var out = {}; - util.each(map, function(key, value) { - var result = translate(value, shape.value); - if (result !== undefined) out[key] = result; - }); - return out; - } - - function translateScalar(value, shape) { - return shape.toWireFormat(value); - } - - module.exports = JsonBuilder; + if (httpResponse.body.length > 0) { + try { + var e = JSON.parse(httpResponse.body.toString()); + if (e.__type || e.code) { + error.code = (e.__type || e.code).split('#').pop(); + } + if (error.code === 'RequestEntityTooLarge') { + error.message = 'Request body must be less than 1 MB'; + } else { + error.message = (e.message || e.Message || null); + } + } catch (e) { + error.statusCode = httpResponse.statusCode; + error.message = httpResponse.statusMessage; + } + } else { + error.statusCode = httpResponse.statusCode; + error.message = httpResponse.statusCode.toString(); + } + resp.error = util.error(new Error(), error); + } -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { + function extractData(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + if (resp.request.service.config.convertResponseTypes === false) { + resp.data = JSON.parse(body); + } else { + var operation = resp.request.service.api.operations[resp.request.operation]; + var shape = operation.output || {}; + var parser = new JsonParser(); + resp.data = parser.parse(body, shape); + } + } - var util = __webpack_require__(2); - - function JsonParser() { } - - JsonParser.prototype.parse = function(value, shape) { - return translate(JSON.parse(value), shape); - }; - - function translate(value, shape) { - if (!shape || value === undefined) return undefined; - - switch (shape.type) { - case 'structure': return translateStructure(value, shape); - case 'map': return translateMap(value, shape); - case 'list': return translateList(value, shape); - default: return translateScalar(value, shape); - } - } - - function translateStructure(structure, shape) { - if (structure == null) return undefined; - - var struct = {}; - var shapeMembers = shape.members; - util.each(shapeMembers, function(name, memberShape) { - var locationName = memberShape.isLocationName ? memberShape.name : name; - if (Object.prototype.hasOwnProperty.call(structure, locationName)) { - var value = structure[locationName]; - var result = translate(value, memberShape); - if (result !== undefined) struct[name] = result; - } - }); - return struct; - } - - function translateList(list, shape) { - if (list == null) return undefined; - - var out = []; - util.arrayEach(list, function(value) { - var result = translate(value, shape.member); - if (result === undefined) out.push(null); - else out.push(result); - }); - return out; - } - - function translateMap(map, shape) { - if (map == null) return undefined; - - var out = {}; - util.each(map, function(key, value) { - var result = translate(value, shape.value); - if (result === undefined) out[key] = null; - else out[key] = result; - }); - return out; - } - - function translateScalar(value, shape) { - return shape.toType(value); - } - - module.exports = JsonParser; + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), -/* 16 */ +/* 14 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var util = __webpack_require__(2); - var QueryParamSerializer = __webpack_require__(17); - var Shape = __webpack_require__(18); - - function buildRequest(req) { - var operation = req.service.api.operations[req.operation]; - var httpRequest = req.httpRequest; - httpRequest.headers['Content-Type'] = - 'application/x-www-form-urlencoded; charset=utf-8'; - httpRequest.params = { - Version: req.service.api.apiVersion, - Action: operation.name - }; - - // convert the request parameters into a list of query params, - // e.g. Deeply.NestedParam.0.Name=value - var builder = new QueryParamSerializer(); - builder.serialize(req.params, operation.input, function(name, value) { - httpRequest.params[name] = value; - }); - httpRequest.body = util.queryParamsToString(httpRequest.params); - } - - function extractError(resp) { - var data, body = resp.httpResponse.body.toString(); - if (body.match(' -1 ? - value || '' : value; - if (this.isJsonValue) { - return JSON.parse(value); - } - - return value && typeof value.toString === 'function' ? - value.toString() : value; - }; - - this.toWireFormat = function(value) { - return this.isJsonValue ? JSON.stringify(value) : value; - }; - } - - function FloatShape() { - Shape.apply(this, arguments); - - this.toType = function(value) { - if (value === null || value === undefined) return null; - return parseFloat(value); - }; - this.toWireFormat = this.toType; - } - - function IntegerShape() { - Shape.apply(this, arguments); - - this.toType = function(value) { - if (value === null || value === undefined) return null; - return parseInt(value, 10); - }; - this.toWireFormat = this.toType; - } - - function BinaryShape() { - Shape.apply(this, arguments); - this.toType = util.base64.decode; - this.toWireFormat = util.base64.encode; - } - - function Base64Shape() { - BinaryShape.apply(this, arguments); - } - - function BooleanShape() { - Shape.apply(this, arguments); - - this.toType = function(value) { - if (typeof value === 'boolean') return value; - if (value === null || value === undefined) return null; - return value === 'true'; - }; - } - - /** - * @api private - */ - Shape.shapes = { - StructureShape: StructureShape, - ListShape: ListShape, - MapShape: MapShape, - StringShape: StringShape, - BooleanShape: BooleanShape, - Base64Shape: Base64Shape - }; - - module.exports = Shape; + function translateStructure(structure, shape) { + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + if (memberShape.location !== 'body') return; + var locationName = memberShape.isLocationName ? memberShape.name : name; + var result = translate(value, memberShape); + if (result !== undefined) struct[locationName] = result; + } + }); + return struct; + } + function translateList(list, shape) { + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result !== undefined) out.push(result); + }); + return out; + } -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { + function translateMap(map, shape) { + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result !== undefined) out[key] = result; + }); + return out; + } - var memoizedProperty = __webpack_require__(2).memoizedProperty; - - function memoize(name, value, fn, nameTr) { - memoizedProperty(this, nameTr(name), function() { - return fn(name, value); - }); - } - - function Collection(iterable, options, fn, nameTr) { - nameTr = nameTr || String; - var self = this; - - for (var id in iterable) { - if (Object.prototype.hasOwnProperty.call(iterable, id)) { - memoize.call(self, id, iterable[id], fn, nameTr); - } - } - } - - module.exports = Collection; + function translateScalar(value, shape) { + return shape.toWireFormat(value); + } + + module.exports = JsonBuilder; /***/ }), -/* 20 */ +/* 15 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - - function populateMethod(req) { - req.httpRequest.method = req.service.api.operations[req.operation].httpMethod; - } - - function generateURI(endpointPath, operationPath, input, params) { - var uri = [endpointPath, operationPath].join('/'); - uri = uri.replace(/\/+/g, '/'); - - var queryString = {}, queryStringSet = false; - util.each(input.members, function (name, member) { - var paramValue = params[name]; - if (paramValue === null || paramValue === undefined) return; - if (member.location === 'uri') { - var regex = new RegExp('\\{' + member.name + '(\\+)?\\}'); - uri = uri.replace(regex, function(_, plus) { - var fn = plus ? util.uriEscapePath : util.uriEscape; - return fn(String(paramValue)); - }); - } else if (member.location === 'querystring') { - queryStringSet = true; - - if (member.type === 'list') { - queryString[member.name] = paramValue.map(function(val) { - return util.uriEscape(String(val)); - }); - } else if (member.type === 'map') { - util.each(paramValue, function(key, value) { - if (Array.isArray(value)) { - queryString[key] = value.map(function(val) { - return util.uriEscape(String(val)); - }); - } else { - queryString[key] = util.uriEscape(String(value)); - } - }); - } else { - queryString[member.name] = util.uriEscape(String(paramValue)); - } - } - }); - - if (queryStringSet) { - uri += (uri.indexOf('?') >= 0 ? '&' : '?'); - var parts = []; - util.arrayEach(Object.keys(queryString).sort(), function(key) { - if (!Array.isArray(queryString[key])) { - queryString[key] = [queryString[key]]; - } - for (var i = 0; i < queryString[key].length; i++) { - parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); - } - }); - uri += parts.join('&'); - } - - return uri; - } - - function populateURI(req) { - var operation = req.service.api.operations[req.operation]; - var input = operation.input; - - var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); - req.httpRequest.path = uri; - } - - function populateHeaders(req) { - var operation = req.service.api.operations[req.operation]; - util.each(operation.input.members, function (name, member) { - var value = req.params[name]; - if (value === null || value === undefined) return; - - if (member.location === 'headers' && member.type === 'map') { - util.each(value, function(key, memberValue) { - req.httpRequest.headers[member.name + key] = memberValue; - }); - } else if (member.location === 'header') { - value = member.toWireFormat(value).toString(); - if (member.isJsonValue) { - value = util.base64.encode(value); - } - req.httpRequest.headers[member.name] = value; - } - }); - } - - function buildRequest(req) { - populateMethod(req); - populateURI(req); - populateHeaders(req); - } - - function extractError() { - } - - function extractData(resp) { - var req = resp.request; - var data = {}; - var r = resp.httpResponse; - var operation = req.service.api.operations[req.operation]; - var output = operation.output; - - // normalize headers names to lower-cased keys for matching - var headers = {}; - util.each(r.headers, function (k, v) { - headers[k.toLowerCase()] = v; - }); - - util.each(output.members, function(name, member) { - var header = (member.name || name).toLowerCase(); - if (member.location === 'headers' && member.type === 'map') { - data[name] = {}; - var location = member.isLocationName ? member.name : ''; - var pattern = new RegExp('^' + location + '(.+)', 'i'); - util.each(r.headers, function (k, v) { - var result = k.match(pattern); - if (result !== null) { - data[name][result[1]] = v; - } - }); - } else if (member.location === 'header') { - if (headers[header] !== undefined) { - var value = member.isJsonValue ? - util.base64.decode(headers[header]) : - headers[header]; - data[name] = member.toType(value); - } - } else if (member.location === 'statusCode') { - data[name] = parseInt(r.statusCode, 10); - } - }); - - resp.data = data; - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData, - generateURI: generateURI - }; + var util = __webpack_require__(2); + function JsonParser() { } -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { + JsonParser.prototype.parse = function(value, shape) { + return translate(JSON.parse(value), shape); + }; - var util = __webpack_require__(2); - var Rest = __webpack_require__(20); - var Json = __webpack_require__(13); - var JsonBuilder = __webpack_require__(14); - var JsonParser = __webpack_require__(15); - - function populateBody(req) { - var builder = new JsonBuilder(); - var input = req.service.api.operations[req.operation].input; - - if (input.payload) { - var params = {}; - var payloadShape = input.members[input.payload]; - params = req.params[input.payload]; - if (params === undefined) return; - - if (payloadShape.type === 'structure') { - req.httpRequest.body = builder.build(params, payloadShape); - applyContentTypeHeader(req); - } else { // non-JSON payload - req.httpRequest.body = params; - if (payloadShape.type === 'binary' || payloadShape.isStreaming) { - applyContentTypeHeader(req, true); - } - } - } else { - req.httpRequest.body = builder.build(req.params, input); - applyContentTypeHeader(req); - } - } - - function applyContentTypeHeader(req, isBinary) { - var operation = req.service.api.operations[req.operation]; - var input = operation.input; - - if (!req.httpRequest.headers['Content-Type']) { - var type = isBinary ? 'binary/octet-stream' : 'application/json'; - req.httpRequest.headers['Content-Type'] = type; - } - } - - function buildRequest(req) { - Rest.buildRequest(req); - - // never send body payload on GET/HEAD/DELETE - if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { - populateBody(req); - } - } - - function extractError(resp) { - Json.extractError(resp); - } - - function extractData(resp) { - Rest.extractData(resp); - - var req = resp.request; - var rules = req.service.api.operations[req.operation].output || {}; - if (rules.payload) { - var payloadMember = rules.members[rules.payload]; - var body = resp.httpResponse.body; - if (payloadMember.type === 'structure' || payloadMember.type === 'list') { - var parser = new JsonParser(); - resp.data[rules.payload] = parser.parse(body, payloadMember); - } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { - resp.data[rules.payload] = body; - } else { - resp.data[rules.payload] = payloadMember.toType(body); - } - } else { - var data = resp.data; - Json.extractData(resp); - resp.data = util.merge(data, resp.data); - } - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData - }; + function translate(value, shape) { + if (!shape || value === undefined) return undefined; + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } + } -/***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { + function translateStructure(structure, shape) { + if (structure == null) return undefined; + + var struct = {}; + var shapeMembers = shape.members; + util.each(shapeMembers, function(name, memberShape) { + var locationName = memberShape.isLocationName ? memberShape.name : name; + if (Object.prototype.hasOwnProperty.call(structure, locationName)) { + var value = structure[locationName]; + var result = translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; + } - var AWS = __webpack_require__(1); - var util = __webpack_require__(2); - var Rest = __webpack_require__(20); - - function populateBody(req) { - var input = req.service.api.operations[req.operation].input; - var builder = new AWS.XML.Builder(); - var params = req.params; - - var payload = input.payload; - if (payload) { - var payloadMember = input.members[payload]; - params = params[payload]; - if (params === undefined) return; - - if (payloadMember.type === 'structure') { - var rootElement = payloadMember.name; - req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); - } else { // non-xml payload - req.httpRequest.body = params; - } - } else { - req.httpRequest.body = builder.toXML(params, input, input.name || - input.shape || util.string.upperFirst(req.operation) + 'Request'); - } - } - - function buildRequest(req) { - Rest.buildRequest(req); - - // never send body payload on GET/HEAD - if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { - populateBody(req); - } - } - - function extractError(resp) { - Rest.extractError(resp); - - var data; - try { - data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString()); - } catch (e) { - data = { - Code: resp.httpResponse.statusCode, - Message: resp.httpResponse.statusMessage - }; - } - - if (data.Errors) data = data.Errors; - if (data.Error) data = data.Error; - if (data.Code) { - resp.error = util.error(new Error(), { - code: data.Code, - message: data.Message - }); - } else { - resp.error = util.error(new Error(), { - code: resp.httpResponse.statusCode, - message: null - }); - } - } - - function extractData(resp) { - Rest.extractData(resp); - - var parser; - var req = resp.request; - var body = resp.httpResponse.body; - var operation = req.service.api.operations[req.operation]; - var output = operation.output; - - var payload = output.payload; - if (payload) { - var payloadMember = output.members[payload]; - if (payloadMember.type === 'structure') { - parser = new AWS.XML.Parser(); - resp.data[payload] = parser.parse(body.toString(), payloadMember); - } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { - resp.data[payload] = body; - } else { - resp.data[payload] = payloadMember.toType(body); - } - } else if (body.length > 0) { - parser = new AWS.XML.Parser(); - var data = parser.parse(body.toString(), output); - util.update(resp.data, data); - } - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData - }; + function translateList(list, shape) { + if (list == null) return undefined; + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; + } -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { + function translateMap(map, shape) { + if (map == null) return undefined; - var util = __webpack_require__(2); - var builder = __webpack_require__(24); - - function XmlBuilder() { } - - XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { - var xml = builder.create(rootElement); - applyNamespaces(xml, shape); - serialize(xml, params, shape); - return xml.children.length > 0 || noEmpty ? xml.root().toString() : ''; - }; - - function serialize(xml, value, shape) { - switch (shape.type) { - case 'structure': return serializeStructure(xml, value, shape); - case 'map': return serializeMap(xml, value, shape); - case 'list': return serializeList(xml, value, shape); - default: return serializeScalar(xml, value, shape); - } - } - - function serializeStructure(xml, params, shape) { - util.arrayEach(shape.memberNames, function(memberName) { - var memberShape = shape.members[memberName]; - if (memberShape.location !== 'body') return; - - var value = params[memberName]; - var name = memberShape.name; - if (value !== undefined && value !== null) { - if (memberShape.isXmlAttribute) { - xml.att(name, value); - } else if (memberShape.flattened) { - serialize(xml, value, memberShape); - } else { - var element = xml.ele(name); - applyNamespaces(element, memberShape); - serialize(element, value, memberShape); - } - } - }); - } - - function serializeMap(xml, map, shape) { - var xmlKey = shape.key.name || 'key'; - var xmlValue = shape.value.name || 'value'; - - util.each(map, function(key, value) { - var entry = xml.ele(shape.flattened ? shape.name : 'entry'); - serialize(entry.ele(xmlKey), key, shape.key); - serialize(entry.ele(xmlValue), value, shape.value); - }); - } - - function serializeList(xml, list, shape) { - if (shape.flattened) { - util.arrayEach(list, function(value) { - var name = shape.member.name || shape.name; - var element = xml.ele(name); - serialize(element, value, shape.member); - }); - } else { - util.arrayEach(list, function(value) { - var name = shape.member.name || 'member'; - var element = xml.ele(name); - serialize(element, value, shape.member); - }); - } - } - - function serializeScalar(xml, value, shape) { - xml.txt(shape.toWireFormat(value)); - } - - function applyNamespaces(xml, shape) { - var uri, prefix = 'xmlns'; - if (shape.xmlNamespaceUri) { - uri = shape.xmlNamespaceUri; - if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; - } else if (xml.isRoot && shape.api.xmlNamespaceUri) { - uri = shape.api.xmlNamespaceUri; - } - - if (uri) xml.att(prefix, uri); - } - - module.exports = XmlBuilder; + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; + } + + function translateScalar(value, shape) { + return shape.toType(value); + } + + module.exports = JsonParser; /***/ }), -/* 24 */ +/* 16 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLBuilder, assign; - - assign = __webpack_require__(25); + var AWS = __webpack_require__(1); + var util = __webpack_require__(2); + var QueryParamSerializer = __webpack_require__(17); + var Shape = __webpack_require__(18); + + function buildRequest(req) { + var operation = req.service.api.operations[req.operation]; + var httpRequest = req.httpRequest; + httpRequest.headers['Content-Type'] = + 'application/x-www-form-urlencoded; charset=utf-8'; + httpRequest.params = { + Version: req.service.api.apiVersion, + Action: operation.name + }; - XMLBuilder = __webpack_require__(76); + // convert the request parameters into a list of query params, + // e.g. Deeply.NestedParam.0.Name=value + var builder = new QueryParamSerializer(); + builder.serialize(req.params, operation.input, function(name, value) { + httpRequest.params[name] = value; + }); + httpRequest.body = util.queryParamsToString(httpRequest.params); + } - module.exports.create = function(name, xmldec, doctype, options) { - options = assign({}, xmldec, doctype, options); - return new XMLBuilder(name, options).root(); - }; + function extractError(resp) { + var data, body = resp.httpResponse.body.toString(); + if (body.match(' { 'a': 1, 'c': 3 } - */ - var assign = createAssigner(function(object, source) { - if (isPrototype(source) || isArrayLike(source)) { - copyObject(source, keys(source), object); - return; - } - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - assignValue(object, key, source[key]); + if (origRules.resultWrapper) { + if (data[origRules.resultWrapper]) { + util.update(data, data[origRules.resultWrapper]); + delete data[origRules.resultWrapper]; } } - }); - module.exports = assign; + resp.data = data; + } + + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), -/* 26 */ +/* 17 */ /***/ (function(module, exports, __webpack_require__) { - var baseAssignValue = __webpack_require__(27), - eq = __webpack_require__(43); + var util = __webpack_require__(2); - /** Used for built-in method references. */ - var objectProto = Object.prototype; + function QueryParamSerializer() { + } - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + QueryParamSerializer.prototype.serialize = function(params, shape, fn) { + serializeStructure('', params, shape, fn); + }; - /** - * Assigns `value` to `key` of `object` if the existing value is not equivalent - * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * for equality comparisons. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function assignValue(object, key, value) { - var objValue = object[key]; - if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || - (value === undefined && !(key in object))) { - baseAssignValue(object, key, value); + function ucfirst(shape) { + if (shape.isQueryName || shape.api.protocol !== 'ec2') { + return shape.name; + } else { + return shape.name[0].toUpperCase() + shape.name.substr(1); } } - module.exports = assignValue; + function serializeStructure(prefix, struct, rules, fn) { + util.each(rules.members, function(name, member) { + var value = struct[name]; + if (value === null || value === undefined) return; + var memberName = ucfirst(member); + memberName = prefix ? prefix + '.' + memberName : memberName; + serializeMember(memberName, value, member, fn); + }); + } -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { + function serializeMap(name, map, rules, fn) { + var i = 1; + util.each(map, function (key, value) { + var prefix = rules.flattened ? '.' : '.entry.'; + var position = prefix + (i++) + '.'; + var keyName = position + (rules.key.name || 'key'); + var valueName = position + (rules.value.name || 'value'); + serializeMember(name + keyName, key, rules.key, fn); + serializeMember(name + valueName, value, rules.value, fn); + }); + } - var defineProperty = __webpack_require__(28); + function serializeList(name, list, rules, fn) { + var memberRules = rules.member || {}; - /** - * The base implementation of `assignValue` and `assignMergeValue` without - * value checks. - * - * @private - * @param {Object} object The object to modify. - * @param {string} key The key of the property to assign. - * @param {*} value The value to assign. - */ - function baseAssignValue(object, key, value) { - if (key == '__proto__' && defineProperty) { - defineProperty(object, key, { - 'configurable': true, - 'enumerable': true, - 'value': value, - 'writable': true - }); + if (list.length === 0) { + fn.call(this, name, null); + return; + } + + util.arrayEach(list, function (v, n) { + var suffix = '.' + (n + 1); + if (rules.api.protocol === 'ec2') { + // Do nothing for EC2 + suffix = suffix + ''; // make linter happy + } else if (rules.flattened) { + if (memberRules.name) { + var parts = name.split('.'); + parts.pop(); + parts.push(ucfirst(memberRules)); + name = parts.join('.'); + } + } else { + suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix; + } + serializeMember(name + suffix, v, memberRules, fn); + }); + } + + function serializeMember(name, value, rules, fn) { + if (value === null || value === undefined) return; + if (rules.type === 'structure') { + serializeStructure(name, value, rules, fn); + } else if (rules.type === 'list') { + serializeList(name, value, rules, fn); + } else if (rules.type === 'map') { + serializeMap(name, value, rules, fn); } else { - object[key] = value; + fn(name, rules.toWireFormat(value).toString()); } } - module.exports = baseAssignValue; + module.exports = QueryParamSerializer; /***/ }), -/* 28 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(29); + var Collection = __webpack_require__(19); - var defineProperty = (function() { - try { - var func = getNative(Object, 'defineProperty'); - func({}, '', {}); - return func; - } catch (e) {} - }()); + var util = __webpack_require__(2); - module.exports = defineProperty; + function property(obj, name, value) { + if (value !== null && value !== undefined) { + util.property.apply(this, arguments); + } + } + + function memoizedProperty(obj, name) { + if (!obj.constructor.prototype[name]) { + util.memoizedProperty.apply(this, arguments); + } + } + function Shape(shape, options, memberName) { + options = options || {}; -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { + property(this, 'shape', shape.shape); + property(this, 'api', options.api, false); + property(this, 'type', shape.type); + property(this, 'enum', shape.enum); + property(this, 'min', shape.min); + property(this, 'max', shape.max); + property(this, 'pattern', shape.pattern); + property(this, 'location', shape.location || this.location || 'body'); + property(this, 'name', this.name || shape.xmlName || shape.queryName || + shape.locationName || memberName); + property(this, 'isStreaming', shape.streaming || this.isStreaming || false); + property(this, 'isComposite', shape.isComposite || false); + property(this, 'isShape', true, false); + property(this, 'isQueryName', Boolean(shape.queryName), false); + property(this, 'isLocationName', Boolean(shape.locationName), false); + property(this, 'isIdempotent', shape.idempotencyToken === true); + property(this, 'isJsonValue', shape.jsonvalue === true); + property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true); + + if (options.documentation) { + property(this, 'documentation', shape.documentation); + property(this, 'documentationUrl', shape.documentationUrl); + } - var baseIsNative = __webpack_require__(30), - getValue = __webpack_require__(42); + if (shape.xmlAttribute) { + property(this, 'isXmlAttribute', shape.xmlAttribute || false); + } + + // type conversion and parsing + property(this, 'defaultValue', null); + this.toWireFormat = function(value) { + if (value === null || value === undefined) return ''; + return value; + }; + this.toType = function(value) { return value; }; + } /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. + * @api private */ - function getNative(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } - - module.exports = getNative; + Shape.normalizedTypes = { + character: 'string', + double: 'float', + long: 'integer', + short: 'integer', + biginteger: 'integer', + bigdecimal: 'float', + blob: 'binary' + }; + /** + * @api private + */ + Shape.types = { + 'structure': StructureShape, + 'list': ListShape, + 'map': MapShape, + 'boolean': BooleanShape, + 'timestamp': TimestampShape, + 'float': FloatShape, + 'integer': IntegerShape, + 'string': StringShape, + 'base64': Base64Shape, + 'binary': BinaryShape + }; -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { + Shape.resolve = function resolve(shape, options) { + if (shape.shape) { + var refShape = options.api.shapes[shape.shape]; + if (!refShape) { + throw new Error('Cannot find shape reference: ' + shape.shape); + } - var isFunction = __webpack_require__(31), - isMasked = __webpack_require__(39), - isObject = __webpack_require__(38), - toSource = __webpack_require__(41); + return refShape; + } else { + return null; + } + }; - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + Shape.create = function create(shape, options, memberName) { + if (shape.isShape) return shape; - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; + var refShape = Shape.resolve(shape, options); + if (refShape) { + var filteredKeys = Object.keys(shape); + if (!options.documentation) { + filteredKeys = filteredKeys.filter(function(name) { + return !name.match(/documentation/); + }); + } - /** Used for built-in method references. */ - var funcProto = Function.prototype, - objectProto = Object.prototype; + // create an inline shape with extra members + var InlineShape = function() { + refShape.constructor.call(this, shape, options, memberName); + }; + InlineShape.prototype = refShape; + return new InlineShape(); + } else { + // set type if not set + if (!shape.type) { + if (shape.members) shape.type = 'structure'; + else if (shape.member) shape.type = 'list'; + else if (shape.key) shape.type = 'map'; + else shape.type = 'string'; + } - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; + // normalize types + var origType = shape.type; + if (Shape.normalizedTypes[shape.type]) { + shape.type = Shape.normalizedTypes[shape.type]; + } - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + if (Shape.types[shape.type]) { + return new Shape.types[shape.type](shape, options, memberName); + } else { + throw new Error('Unrecognized shape type: ' + origType); + } + } + }; - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); + function CompositeShape(shape) { + Shape.apply(this, arguments); + property(this, 'isComposite', true); - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative(value) { - if (!isObject(value) || isMasked(value)) { - return false; + if (shape.flattened) { + property(this, 'flattened', shape.flattened || false); } - var pattern = isFunction(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource(value)); } - module.exports = baseIsNative; + function StructureShape(shape, options) { + var requiredMap = null, firstInit = !this.isShape; + CompositeShape.apply(this, arguments); -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'members', {}); + property(this, 'memberNames', []); + property(this, 'required', []); + property(this, 'isRequired', function() { return false; }); + } - var baseGetTag = __webpack_require__(32), - isObject = __webpack_require__(38); + if (shape.members) { + property(this, 'members', new Collection(shape.members, options, function(name, member) { + return Shape.create(member, options, name); + })); + memoizedProperty(this, 'memberNames', function() { + return shape.xmlOrder || Object.keys(shape.members); + }); + } - /** `Object#toString` result references. */ - var asyncTag = '[object AsyncFunction]', - funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - proxyTag = '[object Proxy]'; + if (shape.required) { + property(this, 'required', shape.required); + property(this, 'isRequired', function(name) { + if (!requiredMap) { + requiredMap = {}; + for (var i = 0; i < shape.required.length; i++) { + requiredMap[shape.required[i]] = true; + } + } - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - if (!isObject(value)) { - return false; + return requiredMap[name]; + }, false, true); } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag(value); - return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; - } - module.exports = isFunction; + property(this, 'resultWrapper', shape.resultWrapper || null); + if (shape.payload) { + property(this, 'payload', shape.payload); + } -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { + if (typeof shape.xmlNamespace === 'string') { + property(this, 'xmlNamespaceUri', shape.xmlNamespace); + } else if (typeof shape.xmlNamespace === 'object') { + property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix); + property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri); + } + } - var Symbol = __webpack_require__(33), - getRawTag = __webpack_require__(36), - objectToString = __webpack_require__(37); + function ListShape(shape, options) { + var self = this, firstInit = !this.isShape; + CompositeShape.apply(this, arguments); - /** `Object#toString` result references. */ - var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; + if (firstInit) { + property(this, 'defaultValue', function() { return []; }); + } - /** Built-in value references. */ - var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + if (shape.member) { + memoizedProperty(this, 'member', function() { + return Shape.create(shape.member, options); + }); + } - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; + if (this.flattened) { + var oldName = this.name; + memoizedProperty(this, 'name', function() { + return self.member.name || oldName; + }); } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); } - module.exports = baseGetTag; + function MapShape(shape, options) { + var firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'key', Shape.create({type: 'string'}, options)); + property(this, 'value', Shape.create({type: 'string'}, options)); + } -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { + if (shape.key) { + memoizedProperty(this, 'key', function() { + return Shape.create(shape.key, options); + }); + } + if (shape.value) { + memoizedProperty(this, 'value', function() { + return Shape.create(shape.value, options); + }); + } + } - var root = __webpack_require__(34); + function TimestampShape(shape) { + var self = this; + Shape.apply(this, arguments); + + if (this.location === 'header') { + property(this, 'timestampFormat', 'rfc822'); + } else if (shape.timestampFormat) { + property(this, 'timestampFormat', shape.timestampFormat); + } else if (!this.timestampFormat && this.api) { + if (this.api.timestampFormat) { + property(this, 'timestampFormat', this.api.timestampFormat); + } else { + switch (this.api.protocol) { + case 'json': + case 'rest-json': + property(this, 'timestampFormat', 'unixTimestamp'); + break; + case 'rest-xml': + case 'query': + case 'ec2': + property(this, 'timestampFormat', 'iso8601'); + break; + } + } + } - /** Built-in value references. */ - var Symbol = root.Symbol; + this.toType = function(value) { + if (value === null || value === undefined) return null; + if (typeof value.toUTCString === 'function') return value; + return typeof value === 'string' || typeof value === 'number' ? + util.date.parseTimestamp(value) : null; + }; - module.exports = Symbol; + this.toWireFormat = function(value) { + return util.date.format(value, self.timestampFormat); + }; + } + function StringShape() { + Shape.apply(this, arguments); -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { + var nullLessProtocols = ['rest-xml', 'query', 'ec2']; + this.toType = function(value) { + value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ? + value || '' : value; + if (this.isJsonValue) { + return JSON.parse(value); + } - var freeGlobal = __webpack_require__(35); + return value && typeof value.toString === 'function' ? + value.toString() : value; + }; - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + this.toWireFormat = function(value) { + return this.isJsonValue ? JSON.stringify(value) : value; + }; + } - /** Used as a reference to the global object. */ - var root = freeGlobal || freeSelf || Function('return this')(); + function FloatShape() { + Shape.apply(this, arguments); - module.exports = root; + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseFloat(value); + }; + this.toWireFormat = this.toType; + } + function IntegerShape() { + Shape.apply(this, arguments); -/***/ }), -/* 35 */ -/***/ (function(module, exports) { + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseInt(value, 10); + }; + this.toWireFormat = this.toType; + } - /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ - var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + function BinaryShape() { + Shape.apply(this, arguments); + this.toType = util.base64.decode; + this.toWireFormat = util.base64.encode; + } - module.exports = freeGlobal; + function Base64Shape() { + BinaryShape.apply(this, arguments); + } - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) + function BooleanShape() { + Shape.apply(this, arguments); -/***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { + this.toType = function(value) { + if (typeof value === 'boolean') return value; + if (value === null || value === undefined) return null; + return value === 'true'; + }; + } - var Symbol = __webpack_require__(33); + /** + * @api private + */ + Shape.shapes = { + StructureShape: StructureShape, + ListShape: ListShape, + MapShape: MapShape, + StringShape: StringShape, + BooleanShape: BooleanShape, + Base64Shape: Base64Shape + }; - /** Used for built-in method references. */ - var objectProto = Object.prototype; + module.exports = Shape; - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { - /** Built-in value references. */ - var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + var memoizedProperty = __webpack_require__(2).memoizedProperty; - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag(value) { - var isOwn = hasOwnProperty.call(value, symToStringTag), - tag = value[symToStringTag]; + function memoize(name, value, fn, nameTr) { + memoizedProperty(this, nameTr(name), function() { + return fn(name, value); + }); + } - try { - value[symToStringTag] = undefined; - var unmasked = true; - } catch (e) {} + function Collection(iterable, options, fn, nameTr) { + nameTr = nameTr || String; + var self = this; - var result = nativeObjectToString.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag] = tag; - } else { - delete value[symToStringTag]; + for (var id in iterable) { + if (Object.prototype.hasOwnProperty.call(iterable, id)) { + memoize.call(self, id, iterable[id], fn, nameTr); } } - return result; } - module.exports = getRawTag; + module.exports = Collection; /***/ }), -/* 37 */ -/***/ (function(module, exports) { - - /** Used for built-in method references. */ - var objectProto = Object.prototype; +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto.toString; + var util = __webpack_require__(2); - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString(value) { - return nativeObjectToString.call(value); + function populateMethod(req) { + req.httpRequest.method = req.service.api.operations[req.operation].httpMethod; } - module.exports = objectToString; + function generateURI(endpointPath, operationPath, input, params) { + var uri = [endpointPath, operationPath].join('/'); + uri = uri.replace(/\/+/g, '/'); + + var queryString = {}, queryStringSet = false; + util.each(input.members, function (name, member) { + var paramValue = params[name]; + if (paramValue === null || paramValue === undefined) return; + if (member.location === 'uri') { + var regex = new RegExp('\\{' + member.name + '(\\+)?\\}'); + uri = uri.replace(regex, function(_, plus) { + var fn = plus ? util.uriEscapePath : util.uriEscape; + return fn(String(paramValue)); + }); + } else if (member.location === 'querystring') { + queryStringSet = true; + if (member.type === 'list') { + queryString[member.name] = paramValue.map(function(val) { + return util.uriEscape(String(val)); + }); + } else if (member.type === 'map') { + util.each(paramValue, function(key, value) { + if (Array.isArray(value)) { + queryString[key] = value.map(function(val) { + return util.uriEscape(String(val)); + }); + } else { + queryString[key] = util.uriEscape(String(value)); + } + }); + } else { + queryString[member.name] = util.uriEscape(String(paramValue)); + } + } + }); -/***/ }), -/* 38 */ -/***/ (function(module, exports) { + if (queryStringSet) { + uri += (uri.indexOf('?') >= 0 ? '&' : '?'); + var parts = []; + util.arrayEach(Object.keys(queryString).sort(), function(key) { + if (!Array.isArray(queryString[key])) { + queryString[key] = [queryString[key]]; + } + for (var i = 0; i < queryString[key].length; i++) { + parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); + } + }); + uri += parts.join('&'); + } - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ - function isObject(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); + return uri; } - module.exports = isObject; - - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { + function populateURI(req) { + var operation = req.service.api.operations[req.operation]; + var input = operation.input; - var coreJsData = __webpack_require__(40); + var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); + req.httpRequest.path = uri; + } - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); + function populateHeaders(req) { + var operation = req.service.api.operations[req.operation]; + util.each(operation.input.members, function (name, member) { + var value = req.params[name]; + if (value === null || value === undefined) return; - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked(func) { - return !!maskSrcKey && (maskSrcKey in func); + if (member.location === 'headers' && member.type === 'map') { + util.each(value, function(key, memberValue) { + req.httpRequest.headers[member.name + key] = memberValue; + }); + } else if (member.location === 'header') { + value = member.toWireFormat(value).toString(); + if (member.isJsonValue) { + value = util.base64.encode(value); + } + req.httpRequest.headers[member.name] = value; + } + }); } - module.exports = isMasked; + function buildRequest(req) { + populateMethod(req); + populateURI(req); + populateHeaders(req); + } + function extractError() { + } -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { + function extractData(resp) { + var req = resp.request; + var data = {}; + var r = resp.httpResponse; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + // normalize headers names to lower-cased keys for matching + var headers = {}; + util.each(r.headers, function (k, v) { + headers[k.toLowerCase()] = v; + }); - var root = __webpack_require__(34); + util.each(output.members, function(name, member) { + var header = (member.name || name).toLowerCase(); + if (member.location === 'headers' && member.type === 'map') { + data[name] = {}; + var location = member.isLocationName ? member.name : ''; + var pattern = new RegExp('^' + location + '(.+)', 'i'); + util.each(r.headers, function (k, v) { + var result = k.match(pattern); + if (result !== null) { + data[name][result[1]] = v; + } + }); + } else if (member.location === 'header') { + if (headers[header] !== undefined) { + var value = member.isJsonValue ? + util.base64.decode(headers[header]) : + headers[header]; + data[name] = member.toType(value); + } + } else if (member.location === 'statusCode') { + data[name] = parseInt(r.statusCode, 10); + } + }); - /** Used to detect overreaching core-js shims. */ - var coreJsData = root['__core-js_shared__']; + resp.data = data; + } - module.exports = coreJsData; + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData, + generateURI: generateURI + }; /***/ }), -/* 41 */ -/***/ (function(module, exports) { - - /** Used for built-in method references. */ - var funcProto = Function.prototype; - - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource(func) { - if (func != null) { - try { - return funcToString.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} + var util = __webpack_require__(2); + var Rest = __webpack_require__(20); + var Json = __webpack_require__(13); + var JsonBuilder = __webpack_require__(14); + var JsonParser = __webpack_require__(15); + + function populateBody(req) { + var builder = new JsonBuilder(); + var input = req.service.api.operations[req.operation].input; + + if (input.payload) { + var params = {}; + var payloadShape = input.members[input.payload]; + params = req.params[input.payload]; + if (params === undefined) return; + + if (payloadShape.type === 'structure') { + req.httpRequest.body = builder.build(params, payloadShape); + applyContentTypeHeader(req); + } else { // non-JSON payload + req.httpRequest.body = params; + if (payloadShape.type === 'binary' || payloadShape.isStreaming) { + applyContentTypeHeader(req, true); + } + } + } else { + req.httpRequest.body = builder.build(req.params, input); + applyContentTypeHeader(req); } - return ''; } - module.exports = toSource; - + function applyContentTypeHeader(req, isBinary) { + var operation = req.service.api.operations[req.operation]; + var input = operation.input; -/***/ }), -/* 42 */ -/***/ (function(module, exports) { - - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ - function getValue(object, key) { - return object == null ? undefined : object[key]; + if (!req.httpRequest.headers['Content-Type']) { + var type = isBinary ? 'binary/octet-stream' : 'application/json'; + req.httpRequest.headers['Content-Type'] = type; + } } - module.exports = getValue; + function buildRequest(req) { + Rest.buildRequest(req); + // never send body payload on GET/HEAD/DELETE + if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } + } -/***/ }), -/* 43 */ -/***/ (function(module, exports) { + function extractError(resp) { + Json.extractError(resp); + } - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ - function eq(value, other) { - return value === other || (value !== value && other !== other); + function extractData(resp) { + Rest.extractData(resp); + + var req = resp.request; + var rules = req.service.api.operations[req.operation].output || {}; + if (rules.payload) { + var payloadMember = rules.members[rules.payload]; + var body = resp.httpResponse.body; + if (payloadMember.type === 'structure' || payloadMember.type === 'list') { + var parser = new JsonParser(); + resp.data[rules.payload] = parser.parse(body, payloadMember); + } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { + resp.data[rules.payload] = body; + } else { + resp.data[rules.payload] = payloadMember.toType(body); + } + } else { + var data = resp.data; + Json.extractData(resp); + resp.data = util.merge(data, resp.data); + } } - module.exports = eq; + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), -/* 44 */ +/* 22 */ /***/ (function(module, exports, __webpack_require__) { - var assignValue = __webpack_require__(26), - baseAssignValue = __webpack_require__(27); + var AWS = __webpack_require__(1); + var util = __webpack_require__(2); + var Rest = __webpack_require__(20); + + function populateBody(req) { + var input = req.service.api.operations[req.operation].input; + var builder = new AWS.XML.Builder(); + var params = req.params; + + var payload = input.payload; + if (payload) { + var payloadMember = input.members[payload]; + params = params[payload]; + if (params === undefined) return; + + if (payloadMember.type === 'structure') { + var rootElement = payloadMember.name; + req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); + } else { // non-xml payload + req.httpRequest.body = params; + } + } else { + req.httpRequest.body = builder.toXML(params, input, input.name || + input.shape || util.string.upperFirst(req.operation) + 'Request'); + } + } - /** - * Copies properties of `source` to `object`. - * - * @private - * @param {Object} source The object to copy properties from. - * @param {Array} props The property identifiers to copy. - * @param {Object} [object={}] The object to copy properties to. - * @param {Function} [customizer] The function to customize copied values. - * @returns {Object} Returns `object`. - */ - function copyObject(source, props, object, customizer) { - var isNew = !object; - object || (object = {}); + function buildRequest(req) { + Rest.buildRequest(req); - var index = -1, - length = props.length; + // never send body payload on GET/HEAD + if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } + } - while (++index < length) { - var key = props[index]; + function extractError(resp) { + Rest.extractError(resp); - var newValue = customizer - ? customizer(object[key], source[key], key, object, source) - : undefined; + var data; + try { + data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString()); + } catch (e) { + data = { + Code: resp.httpResponse.statusCode, + Message: resp.httpResponse.statusMessage + }; + } - if (newValue === undefined) { - newValue = source[key]; - } - if (isNew) { - baseAssignValue(object, key, newValue); + if (data.Errors) data = data.Errors; + if (data.Error) data = data.Error; + if (data.Code) { + resp.error = util.error(new Error(), { + code: data.Code, + message: data.Message + }); + } else { + resp.error = util.error(new Error(), { + code: resp.httpResponse.statusCode, + message: null + }); + } + } + + function extractData(resp) { + Rest.extractData(resp); + + var parser; + var req = resp.request; + var body = resp.httpResponse.body; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + var payload = output.payload; + if (payload) { + var payloadMember = output.members[payload]; + if (payloadMember.type === 'structure') { + parser = new AWS.XML.Parser(); + resp.data[payload] = parser.parse(body.toString(), payloadMember); + } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { + resp.data[payload] = body; } else { - assignValue(object, key, newValue); + resp.data[payload] = payloadMember.toType(body); } + } else if (body.length > 0) { + parser = new AWS.XML.Parser(); + var data = parser.parse(body.toString(), output); + util.update(resp.data, data); } - return object; } - module.exports = copyObject; + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), -/* 45 */ +/* 23 */ /***/ (function(module, exports, __webpack_require__) { - var baseRest = __webpack_require__(46), - isIterateeCall = __webpack_require__(54); + var util = __webpack_require__(2); + var builder = __webpack_require__(24); - /** - * Creates a function like `_.assign`. - * - * @private - * @param {Function} assigner The function to assign values. - * @returns {Function} Returns the new assigner function. - */ - function createAssigner(assigner) { - return baseRest(function(object, sources) { - var index = -1, - length = sources.length, - customizer = length > 1 ? sources[length - 1] : undefined, - guard = length > 2 ? sources[2] : undefined; + function XmlBuilder() { } - customizer = (assigner.length > 3 && typeof customizer == 'function') - ? (length--, customizer) - : undefined; + XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { + var xml = builder.create(rootElement); + applyNamespaces(xml, shape); + serialize(xml, params, shape); + return xml.children.length > 0 || noEmpty ? xml.root().toString() : ''; + }; - if (guard && isIterateeCall(sources[0], sources[1], guard)) { - customizer = length < 3 ? undefined : customizer; - length = 1; - } - object = Object(object); - while (++index < length) { - var source = sources[index]; - if (source) { - assigner(object, source, index, customizer); + function serialize(xml, value, shape) { + switch (shape.type) { + case 'structure': return serializeStructure(xml, value, shape); + case 'map': return serializeMap(xml, value, shape); + case 'list': return serializeList(xml, value, shape); + default: return serializeScalar(xml, value, shape); + } + } + + function serializeStructure(xml, params, shape) { + util.arrayEach(shape.memberNames, function(memberName) { + var memberShape = shape.members[memberName]; + if (memberShape.location !== 'body') return; + + var value = params[memberName]; + var name = memberShape.name; + if (value !== undefined && value !== null) { + if (memberShape.isXmlAttribute) { + xml.att(name, value); + } else if (memberShape.flattened) { + serialize(xml, value, memberShape); + } else { + var element = xml.ele(name); + applyNamespaces(element, memberShape); + serialize(element, value, memberShape); } } - return object; }); } - module.exports = createAssigner; + function serializeMap(xml, map, shape) { + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + + util.each(map, function(key, value) { + var entry = xml.ele(shape.flattened ? shape.name : 'entry'); + serialize(entry.ele(xmlKey), key, shape.key); + serialize(entry.ele(xmlValue), value, shape.value); + }); + } + + function serializeList(xml, list, shape) { + if (shape.flattened) { + util.arrayEach(list, function(value) { + var name = shape.member.name || shape.name; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } else { + util.arrayEach(list, function(value) { + var name = shape.member.name || 'member'; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } + } + + function serializeScalar(xml, value, shape) { + xml.txt(shape.toWireFormat(value)); + } + + function applyNamespaces(xml, shape) { + var uri, prefix = 'xmlns'; + if (shape.xmlNamespaceUri) { + uri = shape.xmlNamespaceUri; + if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; + } else if (xml.isRoot && shape.api.xmlNamespaceUri) { + uri = shape.api.xmlNamespaceUri; + } + + if (uri) xml.att(prefix, uri); + } + + module.exports = XmlBuilder; /***/ }), -/* 46 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { - var identity = __webpack_require__(47), - overRest = __webpack_require__(48), - setToString = __webpack_require__(50); + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLBuilder, assign; - /** - * The base implementation of `_.rest` which doesn't validate or coerce arguments. - * - * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @returns {Function} Returns the new function. - */ - function baseRest(func, start) { - return setToString(overRest(func, start, identity), func + ''); - } + assign = __webpack_require__(25); - module.exports = baseRest; + XMLBuilder = __webpack_require__(76); + + module.exports.create = function(name, xmldec, doctype, options) { + options = assign({}, xmldec, doctype, options); + return new XMLBuilder(name, options).root(); + }; + + }).call(this); /***/ }), -/* 47 */ -/***/ (function(module, exports) { +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + + var assignValue = __webpack_require__(26), + copyObject = __webpack_require__(44), + createAssigner = __webpack_require__(45), + isArrayLike = __webpack_require__(55), + isPrototype = __webpack_require__(58), + keys = __webpack_require__(59); + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * This method returns the first argument it receives. + * Assigns own enumerable string keyed properties of source objects to the + * destination object. Source objects are applied from left to right. + * Subsequent sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object` and is loosely based on + * [`Object.assign`](https://mdn.io/Object/assign). * * @static - * @since 0.1.0 * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. + * @since 0.10.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @see _.assignIn * @example * - * var object = { 'a': 1 }; + * function Foo() { + * this.a = 1; + * } * - * console.log(_.identity(object) === object); - * // => true + * function Bar() { + * this.c = 3; + * } + * + * Foo.prototype.b = 2; + * Bar.prototype.d = 4; + * + * _.assign({ 'a': 0 }, new Foo, new Bar); + * // => { 'a': 1, 'c': 3 } */ - function identity(value) { - return value; - } + var assign = createAssigner(function(object, source) { + if (isPrototype(source) || isArrayLike(source)) { + copyObject(source, keys(source), object); + return; + } + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + assignValue(object, key, source[key]); + } + } + }); - module.exports = identity; + module.exports = assign; /***/ }), -/* 48 */ +/* 26 */ /***/ (function(module, exports, __webpack_require__) { - var apply = __webpack_require__(49); + var baseAssignValue = __webpack_require__(27), + eq = __webpack_require__(43); - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax = Math.max; + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * A specialized version of `baseRest` which transforms the rest array. + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. * * @private - * @param {Function} func The function to apply a rest parameter to. - * @param {number} [start=func.length-1] The start position of the rest parameter. - * @param {Function} transform The rest array transform. - * @returns {Function} Returns the new function. + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. */ - function overRest(func, start, transform) { - start = nativeMax(start === undefined ? (func.length - 1) : start, 0); - return function() { - var args = arguments, - index = -1, - length = nativeMax(args.length - start, 0), - array = Array(length); - - while (++index < length) { - array[index] = args[start + index]; - } - index = -1; - var otherArgs = Array(start + 1); - while (++index < start) { - otherArgs[index] = args[index]; - } - otherArgs[start] = transform(array); - return apply(func, this, otherArgs); - }; + function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } } - module.exports = overRest; + module.exports = assignValue; /***/ }), -/* 49 */ -/***/ (function(module, exports) { +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + + var defineProperty = __webpack_require__(28); /** - * A faster alternative to `Function#apply`, this function invokes `func` - * with the `this` binding of `thisArg` and the arguments of `args`. + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. * * @private - * @param {Function} func The function to invoke. - * @param {*} thisArg The `this` binding of `func`. - * @param {Array} args The arguments to invoke `func` with. - * @returns {*} Returns the result of `func`. + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. */ - function apply(func, thisArg, args) { - switch (args.length) { - case 0: return func.call(thisArg); - case 1: return func.call(thisArg, args[0]); - case 2: return func.call(thisArg, args[0], args[1]); - case 3: return func.call(thisArg, args[0], args[1], args[2]); + function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; } - return func.apply(thisArg, args); } - module.exports = apply; + module.exports = baseAssignValue; /***/ }), -/* 50 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { - var baseSetToString = __webpack_require__(51), - shortOut = __webpack_require__(53); + var getNative = __webpack_require__(29); - /** - * Sets the `toString` method of `func` to return `string`. - * - * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. - */ - var setToString = shortOut(baseSetToString); + var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} + }()); - module.exports = setToString; + module.exports = defineProperty; /***/ }), -/* 51 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { - var constant = __webpack_require__(52), - defineProperty = __webpack_require__(28), - identity = __webpack_require__(47); + var baseIsNative = __webpack_require__(30), + getValue = __webpack_require__(42); /** - * The base implementation of `setToString` without support for hot loop shorting. + * Gets the native function at `key` of `object`. * * @private - * @param {Function} func The function to modify. - * @param {Function} string The `toString` result. - * @returns {Function} Returns `func`. + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. */ - var baseSetToString = !defineProperty ? identity : function(func, string) { - return defineProperty(func, 'toString', { - 'configurable': true, - 'enumerable': false, - 'value': constant(string), - 'writable': true - }); - }; + function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } - module.exports = baseSetToString; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports) { - - /** - * Creates a function that returns `value`. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {*} value The value to return from the new function. - * @returns {Function} Returns the new constant function. - * @example - * - * var objects = _.times(2, _.constant({ 'a': 1 })); - * - * console.log(objects); - * // => [{ 'a': 1 }, { 'a': 1 }] - * - * console.log(objects[0] === objects[1]); - * // => true - */ - function constant(value) { - return function() { - return value; - }; - } - - module.exports = constant; + module.exports = getNative; /***/ }), -/* 53 */ -/***/ (function(module, exports) { - - /** Used to detect hot functions by number of calls within a span of milliseconds. */ - var HOT_COUNT = 800, - HOT_SPAN = 16; +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeNow = Date.now; + var isFunction = __webpack_require__(31), + isMasked = __webpack_require__(39), + isObject = __webpack_require__(38), + toSource = __webpack_require__(41); /** - * Creates a function that'll short out and invoke `identity` instead - * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` - * milliseconds. - * - * @private - * @param {Function} func The function to restrict. - * @returns {Function} Returns the new shortable function. + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). */ - function shortOut(func) { - var count = 0, - lastCalled = 0; - - return function() { - var stamp = nativeNow(), - remaining = HOT_SPAN - (stamp - lastCalled); + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; - lastCalled = stamp; - if (remaining > 0) { - if (++count >= HOT_COUNT) { - return arguments[0]; - } - } else { - count = 0; - } - return func.apply(undefined, arguments); - }; - } + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; - module.exports = shortOut; + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto = Object.prototype; + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; - var eq = __webpack_require__(43), - isArrayLike = __webpack_require__(55), - isIndex = __webpack_require__(57), - isObject = __webpack_require__(38); + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); /** - * Checks if the given arguments are from an iteratee call. + * The base implementation of `_.isNative` without bad shim checks. * * @private - * @param {*} value The potential iteratee value argument. - * @param {*} index The potential iteratee index or key argument. - * @param {*} object The potential iteratee object argument. - * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, * else `false`. */ - function isIterateeCall(value, index, object) { - if (!isObject(object)) { + function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { return false; } - var type = typeof index; - if (type == 'number' - ? (isArrayLike(object) && isIndex(index, object.length)) - : (type == 'string' && index in object) - ) { - return eq(object[index], value); - } - return false; + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); } - module.exports = isIterateeCall; + module.exports = baseIsNative; /***/ }), -/* 55 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { - var isFunction = __webpack_require__(31), - isLength = __webpack_require__(56); + var baseGetTag = __webpack_require__(32), + isObject = __webpack_require__(38); + + /** `Object#toString` result references. */ + var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ - * @since 4.0.0 + * @since 0.1.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. * @example * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); + * _.isFunction(_); * // => true * - * _.isArrayLike(_.noop); + * _.isFunction(/abc/); * // => false */ - function isArrayLike(value) { - return value != null && isLength(value.length) && !isFunction(value); + function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } - module.exports = isArrayLike; + module.exports = isFunction; /***/ }), -/* 56 */ -/***/ (function(module, exports) { +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; + var Symbol = __webpack_require__(33), + getRawTag = __webpack_require__(36), + objectToString = __webpack_require__(37); + + /** `Object#toString` result references. */ + var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + + /** Built-in value references. */ + var symToStringTag = Symbol ? Symbol.toStringTag : undefined; /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false + * The base implementation of `getTag` without fallbacks for buggy environments. * - * _.isLength('3'); - * // => false + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. */ - function isLength(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); } - module.exports = isLength; + module.exports = baseGetTag; /***/ }), -/* 57 */ -/***/ (function(module, exports) { - - /** Used as references for various `Number` constants. */ - var MAX_SAFE_INTEGER = 9007199254740991; +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; + var root = __webpack_require__(34); - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex(value, length) { - length = length == null ? MAX_SAFE_INTEGER : length; - return !!length && - (typeof value == 'number' || reIsUint.test(value)) && - (value > -1 && value % 1 == 0 && value < length); - } + /** Built-in value references. */ + var Symbol = root.Symbol; - module.exports = isIndex; + module.exports = Symbol; /***/ }), -/* 58 */ -/***/ (function(module, exports) { +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { - /** Used for built-in method references. */ - var objectProto = Object.prototype; + var freeGlobal = __webpack_require__(35); - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; - return value === proto; - } + /** Used as a reference to the global object. */ + var root = freeGlobal || freeSelf || Function('return this')(); - module.exports = isPrototype; + module.exports = root; /***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - - var arrayLikeKeys = __webpack_require__(60), - baseKeys = __webpack_require__(73), - isArrayLike = __webpack_require__(55); +/* 35 */ +/***/ (function(module, exports) { - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys(object) { - return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); - } + /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ + var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; - module.exports = keys; + module.exports = freeGlobal; + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }), -/* 60 */ +/* 36 */ /***/ (function(module, exports, __webpack_require__) { - var baseTimes = __webpack_require__(61), - isArguments = __webpack_require__(62), - isArray = __webpack_require__(65), - isBuffer = __webpack_require__(66), - isIndex = __webpack_require__(57), - isTypedArray = __webpack_require__(69); + var Symbol = __webpack_require__(33); /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -4162,1012 +3366,1808 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Creates an array of the enumerable property names of the array-like `value`. + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** Built-in value references. */ + var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. + * @returns {string} Returns the raw `toStringTag`. */ - function arrayLikeKeys(value, inherited) { - var isArr = isArray(value), - isArg = !isArr && isArguments(value), - isBuff = !isArr && !isArg && isBuffer(value), - isType = !isArr && !isArg && !isBuff && isTypedArray(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; + function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; - for (var key in value) { - if ((inherited || hasOwnProperty.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex(key, length) - ))) { - result.push(key); + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; } } return result; } - module.exports = arrayLikeKeys; + module.exports = getRawTag; /***/ }), -/* 61 */ +/* 37 */ /***/ (function(module, exports) { + /** Used for built-in method references. */ + var objectProto = Object.prototype; + /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto.toString; + + /** + * Converts `value` to a string using `Object.prototype.toString`. * * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. */ - function baseTimes(n, iteratee) { - var index = -1, - result = Array(n); - - while (++index < n) { - result[index] = iteratee(index); - } - return result; + function objectToString(value) { + return nativeObjectToString.call(value); } - module.exports = baseTimes; + module.exports = objectToString; /***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - - var baseIsArguments = __webpack_require__(63), - isObjectLike = __webpack_require__(64); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** Built-in value references. */ - var propertyIsEnumerable = objectProto.propertyIsEnumerable; +/* 38 */ +/***/ (function(module, exports) { /** - * Checks if `value` is likely an `arguments` object. + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * - * _.isArguments(function() { return arguments; }()); + * _.isObject({}); * // => true * - * _.isArguments([1, 2, 3]); + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); * // => false */ - var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); - }; + function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } - module.exports = isArguments; + module.exports = isObject; /***/ }), -/* 63 */ +/* 39 */ /***/ (function(module, exports, __webpack_require__) { - var baseGetTag = __webpack_require__(32), - isObjectLike = __webpack_require__(64); + var coreJsData = __webpack_require__(40); - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]'; + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); /** - * The base implementation of `_.isArguments`. + * Checks if `func` has its source masked. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. */ - function baseIsArguments(value) { - return isObjectLike(value) && baseGetTag(value) == argsTag; + function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); } - module.exports = baseIsArguments; + module.exports = isMasked; /***/ }), -/* 64 */ -/***/ (function(module, exports) { +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ - function isObjectLike(value) { - return value != null && typeof value == 'object'; - } + var root = __webpack_require__(34); - module.exports = isObjectLike; + /** Used to detect overreaching core-js shims. */ + var coreJsData = root['__core-js_shared__']; + + module.exports = coreJsData; /***/ }), -/* 65 */ +/* 41 */ /***/ (function(module, exports) { + /** Used for built-in method references. */ + var funcProto = Function.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + /** - * Checks if `value` is classified as an `Array` object. + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + module.exports = toSource; + + +/***/ }), +/* 42 */ +/***/ (function(module, exports) { + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + function getValue(object, key) { + return object == null ? undefined : object[key]; + } + + module.exports = getValue; + + +/***/ }), +/* 43 */ +/***/ (function(module, exports) { + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. * * @static * @memberOf _ - * @since 0.1.0 + * @since 4.0.0 * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * - * _.isArray([1, 2, 3]); + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); * // => true * - * _.isArray(document.body.children); + * _.eq(object, other); * // => false * - * _.isArray('abc'); - * // => false + * _.eq('a', 'a'); + * // => true * - * _.isArray(_.noop); + * _.eq('a', Object('a')); * // => false + * + * _.eq(NaN, NaN); + * // => true */ - var isArray = Array.isArray; + function eq(value, other) { + return value === other || (value !== value && other !== other); + } - module.exports = isArray; + module.exports = eq; /***/ }), -/* 66 */ +/* 44 */ /***/ (function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(34), - stubFalse = __webpack_require__(68); + var assignValue = __webpack_require__(26), + baseAssignValue = __webpack_require__(27); - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + /** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ + function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + var index = -1, + length = props.length; - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; + while (++index < length) { + var key = props[index]; - /** Built-in value references. */ - var Buffer = moduleExports ? root.Buffer : undefined; + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; + } + + module.exports = copyObject; + + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseRest = __webpack_require__(46), + isIterateeCall = __webpack_require__(54); /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true + * Creates a function like `_.assign`. * - * _.isBuffer(new Uint8Array(2)); - * // => false + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. */ - var isBuffer = nativeIsBuffer || stubFalse; + function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; - module.exports = isBuffer; + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); + } + + module.exports = createAssigner; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(67)(module))) /***/ }), -/* 67 */ -/***/ (function(module, exports) { +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } + var identity = __webpack_require__(47), + overRest = __webpack_require__(48), + setToString = __webpack_require__(50); + + /** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ + function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); + } + + module.exports = baseRest; /***/ }), -/* 68 */ +/* 47 */ /***/ (function(module, exports) { /** - * This method returns `false`. + * This method returns the first argument it receives. * * @static + * @since 0.1.0 * @memberOf _ - * @since 4.13.0 * @category Util - * @returns {boolean} Returns `false`. + * @param {*} value Any value. + * @returns {*} Returns `value`. * @example * - * _.times(2, _.stubFalse); - * // => [false, false] + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true */ - function stubFalse() { - return false; + function identity(value) { + return value; } - module.exports = stubFalse; + module.exports = identity; /***/ }), -/* 69 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { - var baseIsTypedArray = __webpack_require__(70), - baseUnary = __webpack_require__(71), - nodeUtil = __webpack_require__(72); + var apply = __webpack_require__(49); - /* Node.js helper references. */ - var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeMax = Math.max; /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; - - module.exports = isTypedArray; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { - - var baseGetTag = __webpack_require__(32), - isLength = __webpack_require__(56), - isObjectLike = __webpack_require__(64); - - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag = '[object Map]', - numberTag = '[object Number]', - objectTag = '[object Object]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - weakMapTag = '[object WeakMap]'; - - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; - - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag] = typedArrayTags[arrayTag] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = - typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag] = typedArrayTags[numberTag] = - typedArrayTags[objectTag] = typedArrayTags[regexpTag] = - typedArrayTags[setTag] = typedArrayTags[stringTag] = - typedArrayTags[weakMapTag] = false; - - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. + * A specialized version of `baseRest` which transforms the rest array. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. */ - function baseIsTypedArray(value) { - return isObjectLike(value) && - isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; } - module.exports = baseIsTypedArray; + module.exports = overRest; /***/ }), -/* 71 */ +/* 49 */ /***/ (function(module, exports) { /** - * The base implementation of `_.unary` without support for storing metadata. + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. * * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. */ - function baseUnary(func) { - return function(value) { - return func(value); - }; + function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); } - module.exports = baseUnary; - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(35); - - /** Detect free variable `exports`. */ - var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; - - /** Detect free variable `module`. */ - var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; - - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; - - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; - - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); - - module.exports = nodeUtil; + module.exports = apply; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(67)(module))) /***/ }), -/* 73 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { - var isPrototype = __webpack_require__(58), - nativeKeys = __webpack_require__(74); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + var baseSetToString = __webpack_require__(51), + shortOut = __webpack_require__(53); /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * Sets the `toString` method of `func` to return `string`. * * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. */ - function baseKeys(object) { - if (!isPrototype(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty.call(object, key) && key != 'constructor') { - result.push(key); - } - } - return result; - } + var setToString = shortOut(baseSetToString); - module.exports = baseKeys; + module.exports = setToString; /***/ }), -/* 74 */ +/* 51 */ /***/ (function(module, exports, __webpack_require__) { - var overArg = __webpack_require__(75); + var constant = __webpack_require__(52), + defineProperty = __webpack_require__(28), + identity = __webpack_require__(47); - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeKeys = overArg(Object.keys, Object); + /** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ + var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); + }; - module.exports = nativeKeys; + module.exports = baseSetToString; /***/ }), -/* 75 */ +/* 52 */ /***/ (function(module, exports) { /** - * Creates a unary function that invokes `func` with its argument transformed. + * Creates a function that returns `value`. * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true */ - function overArg(func, transform) { - return function(arg) { - return func(transform(arg)); + function constant(value) { + return function() { + return value; }; } - module.exports = overArg; + module.exports = constant; /***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLBuilder, XMLDeclaration, XMLDocType, XMLElement, XMLStringifier; +/* 53 */ +/***/ (function(module, exports) { - XMLStringifier = __webpack_require__(77); + /** Used to detect hot functions by number of calls within a span of milliseconds. */ + var HOT_COUNT = 800, + HOT_SPAN = 16; - XMLDeclaration = __webpack_require__(78); + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeNow = Date.now; - XMLDocType = __webpack_require__(175); + /** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ + function shortOut(func) { + var count = 0, + lastCalled = 0; - XMLElement = __webpack_require__(90); + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); - module.exports = XMLBuilder = (function() { - function XMLBuilder(name, options) { - var root, temp; - if (name == null) { - throw new Error("Root element needs a name"); - } - if (options == null) { - options = {}; - } - this.options = options; - this.stringify = new XMLStringifier(options); - temp = new XMLElement(this, 'doc'); - root = temp.element(name); - root.isRoot = true; - root.documentObject = this; - this.rootObject = root; - if (!options.headless) { - root.declaration(options); - if ((options.pubID != null) || (options.sysID != null)) { - root.doctype(options); - } + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; } + } else { + count = 0; } + return func.apply(undefined, arguments); + }; + } - XMLBuilder.prototype.root = function() { - return this.rootObject; - }; + module.exports = shortOut; - XMLBuilder.prototype.end = function(options) { - return this.toString(options); - }; - XMLBuilder.prototype.toString = function(options) { - var indent, newline, offset, pretty, r, ref, ref1, ref2; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - r = ''; - if (this.xmldec != null) { - r += this.xmldec.toString(options); - } - if (this.doctype != null) { - r += this.doctype.toString(options); - } - r += this.rootObject.toString(options); - if (pretty && r.slice(-newline.length) === newline) { - r = r.slice(0, -newline.length); - } - return r; - }; +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { - return XMLBuilder; + var eq = __webpack_require__(43), + isArrayLike = __webpack_require__(55), + isIndex = __webpack_require__(57), + isObject = __webpack_require__(38); - })(); + /** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ + function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; + } - }).call(this); + module.exports = isIterateeCall; /***/ }), -/* 77 */ -/***/ (function(module, exports) { +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLStringifier, - bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, - hasProp = {}.hasOwnProperty; + var isFunction = __webpack_require__(31), + isLength = __webpack_require__(56); - module.exports = XMLStringifier = (function() { - function XMLStringifier(options) { - this.assertLegalChar = bind(this.assertLegalChar, this); - var key, ref, value; - this.allowSurrogateChars = options != null ? options.allowSurrogateChars : void 0; - this.noDoubleEncoding = options != null ? options.noDoubleEncoding : void 0; - ref = (options != null ? options.stringify : void 0) || {}; - for (key in ref) { - if (!hasProp.call(ref, key)) continue; - value = ref[key]; - this[key] = value; - } - } + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); + } - XMLStringifier.prototype.eleName = function(val) { - val = '' + val || ''; - return this.assertLegalChar(val); - }; + module.exports = isArrayLike; - XMLStringifier.prototype.eleText = function(val) { - val = '' + val || ''; - return this.assertLegalChar(this.elEscape(val)); - }; - XMLStringifier.prototype.cdata = function(val) { - val = '' + val || ''; - if (val.match(/]]>/)) { - throw new Error("Invalid CDATA text: " + val); - } - return this.assertLegalChar(val); - }; +/***/ }), +/* 56 */ +/***/ (function(module, exports) { - XMLStringifier.prototype.comment = function(val) { - val = '' + val || ''; - if (val.match(/--/)) { - throw new Error("Comment text cannot contain double-hypen: " + val); - } - return this.assertLegalChar(val); - }; + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; - XMLStringifier.prototype.raw = function(val) { - return '' + val || ''; - }; + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } - XMLStringifier.prototype.attName = function(val) { - return '' + val || ''; - }; + module.exports = isLength; - XMLStringifier.prototype.attValue = function(val) { - val = '' + val || ''; - return this.attEscape(val); - }; - XMLStringifier.prototype.insTarget = function(val) { - return '' + val || ''; - }; +/***/ }), +/* 57 */ +/***/ (function(module, exports) { - XMLStringifier.prototype.insValue = function(val) { - val = '' + val || ''; - if (val.match(/\?>/)) { - throw new Error("Invalid processing instruction value: " + val); - } - return val; - }; + /** Used as references for various `Number` constants. */ + var MAX_SAFE_INTEGER = 9007199254740991; - XMLStringifier.prototype.xmlVersion = function(val) { - val = '' + val || ''; - if (!val.match(/1\.[0-9]+/)) { - throw new Error("Invalid version number: " + val); - } - return val; - }; - - XMLStringifier.prototype.xmlEncoding = function(val) { - val = '' + val || ''; - if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-]|-)*$/)) { - throw new Error("Invalid encoding: " + val); - } - return val; - }; - - XMLStringifier.prototype.xmlStandalone = function(val) { - if (val) { - return "yes"; - } else { - return "no"; - } - }; - - XMLStringifier.prototype.dtdPubID = function(val) { - return '' + val || ''; - }; - - XMLStringifier.prototype.dtdSysID = function(val) { - return '' + val || ''; - }; - - XMLStringifier.prototype.dtdElementValue = function(val) { - return '' + val || ''; - }; - - XMLStringifier.prototype.dtdAttType = function(val) { - return '' + val || ''; - }; - - XMLStringifier.prototype.dtdAttDefault = function(val) { - if (val != null) { - return '' + val || ''; - } else { - return val; - } - }; - - XMLStringifier.prototype.dtdEntityValue = function(val) { - return '' + val || ''; - }; - - XMLStringifier.prototype.dtdNData = function(val) { - return '' + val || ''; - }; - - XMLStringifier.prototype.convertAttKey = '@'; - - XMLStringifier.prototype.convertPIKey = '?'; - - XMLStringifier.prototype.convertTextKey = '#text'; - - XMLStringifier.prototype.convertCDataKey = '#cdata'; - - XMLStringifier.prototype.convertCommentKey = '#comment'; - - XMLStringifier.prototype.convertRawKey = '#raw'; - - XMLStringifier.prototype.assertLegalChar = function(str) { - var chars, chr; - if (this.allowSurrogateChars) { - chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/; - } else { - chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/; - } - chr = str.match(chars); - if (chr) { - throw new Error("Invalid character (" + chr + ") in string: " + str + " at index " + chr.index); - } - return str; - }; - - XMLStringifier.prototype.elEscape = function(str) { - var ampregex; - ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g; - return str.replace(ampregex, '&').replace(//g, '>').replace(/\r/g, ' '); - }; - - XMLStringifier.prototype.attEscape = function(str) { - var ampregex; - ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g; - return str.replace(ampregex, '&').replace(/ -1 && value % 1 == 0 && value < length); + } - }).call(this); + module.exports = isIndex; /***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLDeclaration, XMLNode, create, isObject, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - create = __webpack_require__(79); - - isObject = __webpack_require__(38); - - XMLNode = __webpack_require__(82); - - module.exports = XMLDeclaration = (function(superClass) { - extend(XMLDeclaration, superClass); - - function XMLDeclaration(parent, version, encoding, standalone) { - var ref; - XMLDeclaration.__super__.constructor.call(this, parent); - if (isObject(version)) { - ref = version, version = ref.version, encoding = ref.encoding, standalone = ref.standalone; - } - if (!version) { - version = '1.0'; - } - this.version = this.stringify.xmlVersion(version); - if (encoding != null) { - this.encoding = this.stringify.xmlEncoding(encoding); - } - if (standalone != null) { - this.standalone = this.stringify.xmlStandalone(standalone); - } - } +/* 58 */ +/***/ (function(module, exports) { - XMLDeclaration.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; - } - r += ''; - if (pretty) { - r += newline; - } - return r; - }; + /** Used for built-in method references. */ + var objectProto = Object.prototype; - return XMLDeclaration; + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; - })(XMLNode); + return value === proto; + } - }).call(this); + module.exports = isPrototype; /***/ }), -/* 79 */ +/* 59 */ /***/ (function(module, exports, __webpack_require__) { - var baseAssign = __webpack_require__(80), - baseCreate = __webpack_require__(81); + var arrayLikeKeys = __webpack_require__(60), + baseKeys = __webpack_require__(73), + isArrayLike = __webpack_require__(55); /** - * Creates an object that inherits from the `prototype` object. If a - * `properties` object is given, its own enumerable string keyed properties - * are assigned to the created object. + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. * * @static + * @since 0.1.0 * @memberOf _ - * @since 2.3.0 * @category Object - * @param {Object} prototype The object to inherit from. - * @param {Object} [properties] The properties to assign to the object. - * @returns {Object} Returns the new object. + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. * @example * - * function Shape() { - * this.x = 0; - * this.y = 0; - * } - * - * function Circle() { - * Shape.call(this); + * function Foo() { + * this.a = 1; + * this.b = 2; * } * - * Circle.prototype = _.create(Shape.prototype, { - * 'constructor': Circle - * }); + * Foo.prototype.c = 3; * - * var circle = new Circle; - * circle instanceof Circle; - * // => true + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) * - * circle instanceof Shape; - * // => true + * _.keys('hi'); + * // => ['0', '1'] */ - function create(prototype, properties) { - var result = baseCreate(prototype); - return properties == null ? result : baseAssign(result, properties); + function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } - module.exports = create; + module.exports = keys; /***/ }), -/* 80 */ +/* 60 */ /***/ (function(module, exports, __webpack_require__) { - var copyObject = __webpack_require__(44), - keys = __webpack_require__(59); + var baseTimes = __webpack_require__(61), + isArguments = __webpack_require__(62), + isArray = __webpack_require__(65), + isBuffer = __webpack_require__(66), + isIndex = __webpack_require__(57), + isTypedArray = __webpack_require__(69); + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * The base implementation of `_.assign` without support for multiple sources - * or `customizer` functions. + * Creates an array of the enumerable property names of the array-like `value`. * * @private - * @param {Object} object The destination object. - * @param {Object} source The source object. - * @returns {Object} Returns `object`. + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. */ - function baseAssign(object, source) { - return object && copyObject(source, keys(source), object); + function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; } - module.exports = baseAssign; + module.exports = arrayLikeKeys; /***/ }), -/* 81 */ +/* 61 */ +/***/ (function(module, exports) { + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + module.exports = baseTimes; + + +/***/ }), +/* 62 */ /***/ (function(module, exports, __webpack_require__) { - var isObject = __webpack_require__(38); + var baseIsArguments = __webpack_require__(63), + isObjectLike = __webpack_require__(64); + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** Built-in value references. */ - var objectCreate = Object.create; + var propertyIsEnumerable = objectProto.propertyIsEnumerable; /** - * The base implementation of `_.create` without support for assigning - * properties to the created object. + * Checks if `value` is likely an `arguments` object. * - * @private - * @param {Object} proto The object to inherit from. - * @returns {Object} Returns the new object. + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false */ - var baseCreate = (function() { - function object() {} - return function(proto) { - if (!isObject(proto)) { - return {}; - } - if (objectCreate) { - return objectCreate(proto); - } - object.prototype = proto; - var result = new object; - object.prototype = undefined; - return result; - }; - }()); + var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); + }; - module.exports = baseCreate; + module.exports = isArguments; /***/ }), -/* 82 */ +/* 63 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLRaw, XMLText, isEmpty, isFunction, isObject, - hasProp = {}.hasOwnProperty; + var baseGetTag = __webpack_require__(32), + isObjectLike = __webpack_require__(64); - isObject = __webpack_require__(38); + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]'; - isFunction = __webpack_require__(31); + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; + } - isEmpty = __webpack_require__(83); + module.exports = baseIsArguments; - XMLElement = null; - XMLCData = null; +/***/ }), +/* 64 */ +/***/ (function(module, exports) { - XMLComment = null; + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + function isObjectLike(value) { + return value != null && typeof value == 'object'; + } - XMLDeclaration = null; + module.exports = isObjectLike; - XMLDocType = null; - XMLRaw = null; +/***/ }), +/* 65 */ +/***/ (function(module, exports) { - XMLText = null; + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + var isArray = Array.isArray; - module.exports = XMLNode = (function() { - function XMLNode(parent) { - this.parent = parent; - this.options = this.parent.options; - this.stringify = this.parent.stringify; - if (XMLElement === null) { - XMLElement = __webpack_require__(90); - XMLCData = __webpack_require__(173); - XMLComment = __webpack_require__(174); - XMLDeclaration = __webpack_require__(78); - XMLDocType = __webpack_require__(175); - XMLRaw = __webpack_require__(180); - XMLText = __webpack_require__(181); - } - } + module.exports = isArray; - XMLNode.prototype.element = function(name, attributes, text) { - var childNode, item, j, k, key, lastChild, len, len1, ref, val; - lastChild = null; - if (attributes == null) { - attributes = {}; - } - attributes = attributes.valueOf(); - if (!isObject(attributes)) { - ref = [attributes, text], text = ref[0], attributes = ref[1]; - } - if (name != null) { - name = name.valueOf(); - } - if (Array.isArray(name)) { - for (j = 0, len = name.length; j < len; j++) { - item = name[j]; - lastChild = this.element(item); - } - } else if (isFunction(name)) { - lastChild = this.element(name.apply()); - } else if (isObject(name)) { - for (key in name) { - if (!hasProp.call(name, key)) continue; - val = name[key]; - if (isFunction(val)) { - val = val.apply(); - } - if ((isObject(val)) && (isEmpty(val))) { - val = null; - } - if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) { - lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); - } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && key.indexOf(this.stringify.convertPIKey) === 0) { + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(34), + stubFalse = __webpack_require__(68); + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Built-in value references. */ + var Buffer = moduleExports ? root.Buffer : undefined; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + module.exports = isBuffer; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(67)(module))) + +/***/ }), +/* 67 */ +/***/ (function(module, exports) { + + module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + module.webpackPolyfill = 1; + } + return module; + } + + +/***/ }), +/* 68 */ +/***/ (function(module, exports) { + + /** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + function stubFalse() { + return false; + } + + module.exports = stubFalse; + + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseIsTypedArray = __webpack_require__(70), + baseUnary = __webpack_require__(71), + nodeUtil = __webpack_require__(72); + + /* Node.js helper references. */ + var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + + module.exports = isTypedArray; + + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseGetTag = __webpack_require__(32), + isLength = __webpack_require__(56), + isObjectLike = __webpack_require__(64); + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag] = typedArrayTags[arrayTag] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = + typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = + typedArrayTags[errorTag] = typedArrayTags[funcTag] = + typedArrayTags[mapTag] = typedArrayTags[numberTag] = + typedArrayTags[objectTag] = typedArrayTags[regexpTag] = + typedArrayTags[setTag] = typedArrayTags[stringTag] = + typedArrayTags[weakMapTag] = false; + + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; + } + + module.exports = baseIsTypedArray; + + +/***/ }), +/* 71 */ +/***/ (function(module, exports) { + + /** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + function baseUnary(func) { + return function(value) { + return func(value); + }; + } + + module.exports = baseUnary; + + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(35); + + /** Detect free variable `exports`. */ + var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Detect free variable `process` from Node.js. */ + var freeProcess = moduleExports && freeGlobal.process; + + /** Used to access faster Node.js helpers. */ + var nodeUtil = (function() { + try { + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }()); + + module.exports = nodeUtil; + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(67)(module))) + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + + var isPrototype = __webpack_require__(58), + nativeKeys = __webpack_require__(74); + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + module.exports = baseKeys; + + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + + var overArg = __webpack_require__(75); + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeKeys = overArg(Object.keys, Object); + + module.exports = nativeKeys; + + +/***/ }), +/* 75 */ +/***/ (function(module, exports) { + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + module.exports = overArg; + + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLBuilder, XMLDeclaration, XMLDocType, XMLElement, XMLStringifier; + + XMLStringifier = __webpack_require__(77); + + XMLDeclaration = __webpack_require__(78); + + XMLDocType = __webpack_require__(175); + + XMLElement = __webpack_require__(90); + + module.exports = XMLBuilder = (function() { + function XMLBuilder(name, options) { + var root, temp; + if (name == null) { + throw new Error("Root element needs a name"); + } + if (options == null) { + options = {}; + } + this.options = options; + this.stringify = new XMLStringifier(options); + temp = new XMLElement(this, 'doc'); + root = temp.element(name); + root.isRoot = true; + root.documentObject = this; + this.rootObject = root; + if (!options.headless) { + root.declaration(options); + if ((options.pubID != null) || (options.sysID != null)) { + root.doctype(options); + } + } + } + + XMLBuilder.prototype.root = function() { + return this.rootObject; + }; + + XMLBuilder.prototype.end = function(options) { + return this.toString(options); + }; + + XMLBuilder.prototype.toString = function(options) { + var indent, newline, offset, pretty, r, ref, ref1, ref2; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + r = ''; + if (this.xmldec != null) { + r += this.xmldec.toString(options); + } + if (this.doctype != null) { + r += this.doctype.toString(options); + } + r += this.rootObject.toString(options); + if (pretty && r.slice(-newline.length) === newline) { + r = r.slice(0, -newline.length); + } + return r; + }; + + return XMLBuilder; + + })(); + + }).call(this); + + +/***/ }), +/* 77 */ +/***/ (function(module, exports) { + + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLStringifier, + bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + hasProp = {}.hasOwnProperty; + + module.exports = XMLStringifier = (function() { + function XMLStringifier(options) { + this.assertLegalChar = bind(this.assertLegalChar, this); + var key, ref, value; + this.allowSurrogateChars = options != null ? options.allowSurrogateChars : void 0; + this.noDoubleEncoding = options != null ? options.noDoubleEncoding : void 0; + ref = (options != null ? options.stringify : void 0) || {}; + for (key in ref) { + if (!hasProp.call(ref, key)) continue; + value = ref[key]; + this[key] = value; + } + } + + XMLStringifier.prototype.eleName = function(val) { + val = '' + val || ''; + return this.assertLegalChar(val); + }; + + XMLStringifier.prototype.eleText = function(val) { + val = '' + val || ''; + return this.assertLegalChar(this.elEscape(val)); + }; + + XMLStringifier.prototype.cdata = function(val) { + val = '' + val || ''; + if (val.match(/]]>/)) { + throw new Error("Invalid CDATA text: " + val); + } + return this.assertLegalChar(val); + }; + + XMLStringifier.prototype.comment = function(val) { + val = '' + val || ''; + if (val.match(/--/)) { + throw new Error("Comment text cannot contain double-hypen: " + val); + } + return this.assertLegalChar(val); + }; + + XMLStringifier.prototype.raw = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.attName = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.attValue = function(val) { + val = '' + val || ''; + return this.attEscape(val); + }; + + XMLStringifier.prototype.insTarget = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.insValue = function(val) { + val = '' + val || ''; + if (val.match(/\?>/)) { + throw new Error("Invalid processing instruction value: " + val); + } + return val; + }; + + XMLStringifier.prototype.xmlVersion = function(val) { + val = '' + val || ''; + if (!val.match(/1\.[0-9]+/)) { + throw new Error("Invalid version number: " + val); + } + return val; + }; + + XMLStringifier.prototype.xmlEncoding = function(val) { + val = '' + val || ''; + if (!val.match(/^[A-Za-z](?:[A-Za-z0-9._-]|-)*$/)) { + throw new Error("Invalid encoding: " + val); + } + return val; + }; + + XMLStringifier.prototype.xmlStandalone = function(val) { + if (val) { + return "yes"; + } else { + return "no"; + } + }; + + XMLStringifier.prototype.dtdPubID = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdSysID = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdElementValue = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdAttType = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdAttDefault = function(val) { + if (val != null) { + return '' + val || ''; + } else { + return val; + } + }; + + XMLStringifier.prototype.dtdEntityValue = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.dtdNData = function(val) { + return '' + val || ''; + }; + + XMLStringifier.prototype.convertAttKey = '@'; + + XMLStringifier.prototype.convertPIKey = '?'; + + XMLStringifier.prototype.convertTextKey = '#text'; + + XMLStringifier.prototype.convertCDataKey = '#cdata'; + + XMLStringifier.prototype.convertCommentKey = '#comment'; + + XMLStringifier.prototype.convertRawKey = '#raw'; + + XMLStringifier.prototype.assertLegalChar = function(str) { + var chars, chr; + if (this.allowSurrogateChars) { + chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/; + } else { + chars = /[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/; + } + chr = str.match(chars); + if (chr) { + throw new Error("Invalid character (" + chr + ") in string: " + str + " at index " + chr.index); + } + return str; + }; + + XMLStringifier.prototype.elEscape = function(str) { + var ampregex; + ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g; + return str.replace(ampregex, '&').replace(//g, '>').replace(/\r/g, ' '); + }; + + XMLStringifier.prototype.attEscape = function(str) { + var ampregex; + ampregex = this.noDoubleEncoding ? /(?!&\S+;)&/g : /&/g; + return str.replace(ampregex, '&').replace(/ true + * + * circle instanceof Shape; + * // => true + */ + function create(prototype, properties) { + var result = baseCreate(prototype); + return properties == null ? result : baseAssign(result, properties); + } + + module.exports = create; + + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + + var copyObject = __webpack_require__(44), + keys = __webpack_require__(59); + + /** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ + function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); + } + + module.exports = baseAssign; + + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(38); + + /** Built-in value references. */ + var objectCreate = Object.create; + + /** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ + var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; + }()); + + module.exports = baseCreate; + + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLRaw, XMLText, isEmpty, isFunction, isObject, + hasProp = {}.hasOwnProperty; + + isObject = __webpack_require__(38); + + isFunction = __webpack_require__(31); + + isEmpty = __webpack_require__(83); + + XMLElement = null; + + XMLCData = null; + + XMLComment = null; + + XMLDeclaration = null; + + XMLDocType = null; + + XMLRaw = null; + + XMLText = null; + + module.exports = XMLNode = (function() { + function XMLNode(parent) { + this.parent = parent; + this.options = this.parent.options; + this.stringify = this.parent.stringify; + if (XMLElement === null) { + XMLElement = __webpack_require__(90); + XMLCData = __webpack_require__(173); + XMLComment = __webpack_require__(174); + XMLDeclaration = __webpack_require__(78); + XMLDocType = __webpack_require__(175); + XMLRaw = __webpack_require__(180); + XMLText = __webpack_require__(181); + } + } + + XMLNode.prototype.element = function(name, attributes, text) { + var childNode, item, j, k, key, lastChild, len, len1, ref, val; + lastChild = null; + if (attributes == null) { + attributes = {}; + } + attributes = attributes.valueOf(); + if (!isObject(attributes)) { + ref = [attributes, text], text = ref[0], attributes = ref[1]; + } + if (name != null) { + name = name.valueOf(); + } + if (Array.isArray(name)) { + for (j = 0, len = name.length; j < len; j++) { + item = name[j]; + lastChild = this.element(item); + } + } else if (isFunction(name)) { + lastChild = this.element(name.apply()); + } else if (isObject(name)) { + for (key in name) { + if (!hasProp.call(name, key)) continue; + val = name[key]; + if (isFunction(val)) { + val = val.apply(); + } + if ((isObject(val)) && (isEmpty(val))) { + val = null; + } + if (!this.options.ignoreDecorators && this.stringify.convertAttKey && key.indexOf(this.stringify.convertAttKey) === 0) { + lastChild = this.attribute(key.substr(this.stringify.convertAttKey.length), val); + } else if (!this.options.ignoreDecorators && this.stringify.convertPIKey && key.indexOf(this.stringify.convertPIKey) === 0) { lastChild = this.instruction(key.substr(this.stringify.convertPIKey.length), val); } else if (!this.options.separateArrayItems && Array.isArray(val)) { for (k = 0, len1 = val.length; k < len1; k++) { @@ -5196,1102 +5196,1496 @@ return /******/ (function(modules) { // webpackBootstrap lastChild = this.node(name, attributes, text); } } - if (lastChild == null) { - throw new Error("Could not create any elements with: " + name); + if (lastChild == null) { + throw new Error("Could not create any elements with: " + name); + } + return lastChild; + }; + + XMLNode.prototype.insertBefore = function(name, attributes, text) { + var child, i, removed; + if (this.isRoot) { + throw new Error("Cannot insert elements at root level"); + } + i = this.parent.children.indexOf(this); + removed = this.parent.children.splice(i); + child = this.parent.element(name, attributes, text); + Array.prototype.push.apply(this.parent.children, removed); + return child; + }; + + XMLNode.prototype.insertAfter = function(name, attributes, text) { + var child, i, removed; + if (this.isRoot) { + throw new Error("Cannot insert elements at root level"); + } + i = this.parent.children.indexOf(this); + removed = this.parent.children.splice(i + 1); + child = this.parent.element(name, attributes, text); + Array.prototype.push.apply(this.parent.children, removed); + return child; + }; + + XMLNode.prototype.remove = function() { + var i, ref; + if (this.isRoot) { + throw new Error("Cannot remove the root element"); + } + i = this.parent.children.indexOf(this); + [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref = [])), ref; + return this.parent; + }; + + XMLNode.prototype.node = function(name, attributes, text) { + var child, ref; + if (name != null) { + name = name.valueOf(); + } + if (attributes == null) { + attributes = {}; } - return lastChild; + attributes = attributes.valueOf(); + if (!isObject(attributes)) { + ref = [attributes, text], text = ref[0], attributes = ref[1]; + } + child = new XMLElement(this, name, attributes); + if (text != null) { + child.text(text); + } + this.children.push(child); + return child; + }; + + XMLNode.prototype.text = function(value) { + var child; + child = new XMLText(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.cdata = function(value) { + var child; + child = new XMLCData(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.comment = function(value) { + var child; + child = new XMLComment(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.raw = function(value) { + var child; + child = new XMLRaw(this, value); + this.children.push(child); + return this; + }; + + XMLNode.prototype.declaration = function(version, encoding, standalone) { + var doc, xmldec; + doc = this.document(); + xmldec = new XMLDeclaration(doc, version, encoding, standalone); + doc.xmldec = xmldec; + return doc.root(); + }; + + XMLNode.prototype.doctype = function(pubID, sysID) { + var doc, doctype; + doc = this.document(); + doctype = new XMLDocType(doc, pubID, sysID); + doc.doctype = doctype; + return doctype; + }; + + XMLNode.prototype.up = function() { + if (this.isRoot) { + throw new Error("The root node has no parent. Use doc() if you need to get the document object."); + } + return this.parent; + }; + + XMLNode.prototype.root = function() { + var child; + if (this.isRoot) { + return this; + } + child = this.parent; + while (!child.isRoot) { + child = child.parent; + } + return child; + }; + + XMLNode.prototype.document = function() { + return this.root().documentObject; + }; + + XMLNode.prototype.end = function(options) { + return this.document().toString(options); + }; + + XMLNode.prototype.prev = function() { + var i; + if (this.isRoot) { + throw new Error("Root node has no siblings"); + } + i = this.parent.children.indexOf(this); + if (i < 1) { + throw new Error("Already at the first node"); + } + return this.parent.children[i - 1]; + }; + + XMLNode.prototype.next = function() { + var i; + if (this.isRoot) { + throw new Error("Root node has no siblings"); + } + i = this.parent.children.indexOf(this); + if (i === -1 || i === this.parent.children.length - 1) { + throw new Error("Already at the last node"); + } + return this.parent.children[i + 1]; + }; + + XMLNode.prototype.importXMLBuilder = function(xmlbuilder) { + var clonedRoot; + clonedRoot = xmlbuilder.root().clone(); + clonedRoot.parent = this; + clonedRoot.isRoot = false; + this.children.push(clonedRoot); + return this; + }; + + XMLNode.prototype.ele = function(name, attributes, text) { + return this.element(name, attributes, text); + }; + + XMLNode.prototype.nod = function(name, attributes, text) { + return this.node(name, attributes, text); + }; + + XMLNode.prototype.txt = function(value) { + return this.text(value); + }; + + XMLNode.prototype.dat = function(value) { + return this.cdata(value); + }; + + XMLNode.prototype.com = function(value) { + return this.comment(value); + }; + + XMLNode.prototype.doc = function() { + return this.document(); + }; + + XMLNode.prototype.dec = function(version, encoding, standalone) { + return this.declaration(version, encoding, standalone); + }; + + XMLNode.prototype.dtd = function(pubID, sysID) { + return this.doctype(pubID, sysID); + }; + + XMLNode.prototype.e = function(name, attributes, text) { + return this.element(name, attributes, text); + }; + + XMLNode.prototype.n = function(name, attributes, text) { + return this.node(name, attributes, text); + }; + + XMLNode.prototype.t = function(value) { + return this.text(value); + }; + + XMLNode.prototype.d = function(value) { + return this.cdata(value); + }; + + XMLNode.prototype.c = function(value) { + return this.comment(value); + }; + + XMLNode.prototype.r = function(value) { + return this.raw(value); + }; + + XMLNode.prototype.u = function() { + return this.up(); }; - XMLNode.prototype.insertBefore = function(name, attributes, text) { - var child, i, removed; - if (this.isRoot) { - throw new Error("Cannot insert elements at root level"); - } - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i); - child = this.parent.element(name, attributes, text); - Array.prototype.push.apply(this.parent.children, removed); - return child; - }; + return XMLNode; + + })(); + + }).call(this); + + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseKeys = __webpack_require__(73), + getTag = __webpack_require__(84), + isArguments = __webpack_require__(62), + isArray = __webpack_require__(65), + isArrayLike = __webpack_require__(55), + isBuffer = __webpack_require__(66), + isPrototype = __webpack_require__(58), + isTypedArray = __webpack_require__(69); + + /** `Object#toString` result references. */ + var mapTag = '[object Map]', + setTag = '[object Set]'; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Checks if `value` is an empty object, collection, map, or set. + * + * Objects are considered empty if they have no own enumerable string keyed + * properties. + * + * Array-like values such as `arguments` objects, arrays, buffers, strings, or + * jQuery-like collections are considered empty if they have a `length` of `0`. + * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @example + * + * _.isEmpty(null); + * // => true + * + * _.isEmpty(true); + * // => true + * + * _.isEmpty(1); + * // => true + * + * _.isEmpty([1, 2, 3]); + * // => false + * + * _.isEmpty({ 'a': 1 }); + * // => false + */ + function isEmpty(value) { + if (value == null) { + return true; + } + if (isArrayLike(value) && + (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || + isBuffer(value) || isTypedArray(value) || isArguments(value))) { + return !value.length; + } + var tag = getTag(value); + if (tag == mapTag || tag == setTag) { + return !value.size; + } + if (isPrototype(value)) { + return !baseKeys(value).length; + } + for (var key in value) { + if (hasOwnProperty.call(value, key)) { + return false; + } + } + return true; + } + + module.exports = isEmpty; - XMLNode.prototype.insertAfter = function(name, attributes, text) { - var child, i, removed; - if (this.isRoot) { - throw new Error("Cannot insert elements at root level"); - } - i = this.parent.children.indexOf(this); - removed = this.parent.children.splice(i + 1); - child = this.parent.element(name, attributes, text); - Array.prototype.push.apply(this.parent.children, removed); - return child; - }; - XMLNode.prototype.remove = function() { - var i, ref; - if (this.isRoot) { - throw new Error("Cannot remove the root element"); - } - i = this.parent.children.indexOf(this); - [].splice.apply(this.parent.children, [i, i - i + 1].concat(ref = [])), ref; - return this.parent; - }; +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { - XMLNode.prototype.node = function(name, attributes, text) { - var child, ref; - if (name != null) { - name = name.valueOf(); - } - if (attributes == null) { - attributes = {}; - } - attributes = attributes.valueOf(); - if (!isObject(attributes)) { - ref = [attributes, text], text = ref[0], attributes = ref[1]; - } - child = new XMLElement(this, name, attributes); - if (text != null) { - child.text(text); + var DataView = __webpack_require__(85), + Map = __webpack_require__(86), + Promise = __webpack_require__(87), + Set = __webpack_require__(88), + WeakMap = __webpack_require__(89), + baseGetTag = __webpack_require__(32), + toSource = __webpack_require__(41); + + /** `Object#toString` result references. */ + var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + + var dataViewTag = '[object DataView]'; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag = baseGetTag; + + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; } - this.children.push(child); - return child; - }; + } + return result; + }; + } - XMLNode.prototype.text = function(value) { - var child; - child = new XMLText(this, value); - this.children.push(child); - return this; - }; + module.exports = getTag; - XMLNode.prototype.cdata = function(value) { - var child; - child = new XMLCData(this, value); - this.children.push(child); - return this; - }; - XMLNode.prototype.comment = function(value) { - var child; - child = new XMLComment(this, value); - this.children.push(child); - return this; - }; +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { - XMLNode.prototype.raw = function(value) { - var child; - child = new XMLRaw(this, value); - this.children.push(child); - return this; - }; + var getNative = __webpack_require__(29), + root = __webpack_require__(34); - XMLNode.prototype.declaration = function(version, encoding, standalone) { - var doc, xmldec; - doc = this.document(); - xmldec = new XMLDeclaration(doc, version, encoding, standalone); - doc.xmldec = xmldec; - return doc.root(); - }; + /* Built-in method references that are verified to be native. */ + var DataView = getNative(root, 'DataView'); - XMLNode.prototype.doctype = function(pubID, sysID) { - var doc, doctype; - doc = this.document(); - doctype = new XMLDocType(doc, pubID, sysID); - doc.doctype = doctype; - return doctype; - }; + module.exports = DataView; - XMLNode.prototype.up = function() { - if (this.isRoot) { - throw new Error("The root node has no parent. Use doc() if you need to get the document object."); - } - return this.parent; - }; - XMLNode.prototype.root = function() { - var child; - if (this.isRoot) { - return this; - } - child = this.parent; - while (!child.isRoot) { - child = child.parent; - } - return child; - }; +/***/ }), +/* 86 */ +/***/ (function(module, exports, __webpack_require__) { - XMLNode.prototype.document = function() { - return this.root().documentObject; - }; + var getNative = __webpack_require__(29), + root = __webpack_require__(34); - XMLNode.prototype.end = function(options) { - return this.document().toString(options); - }; + /* Built-in method references that are verified to be native. */ + var Map = getNative(root, 'Map'); - XMLNode.prototype.prev = function() { - var i; - if (this.isRoot) { - throw new Error("Root node has no siblings"); - } - i = this.parent.children.indexOf(this); - if (i < 1) { - throw new Error("Already at the first node"); - } - return this.parent.children[i - 1]; - }; + module.exports = Map; + + +/***/ }), +/* 87 */ +/***/ (function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(29), + root = __webpack_require__(34); + + /* Built-in method references that are verified to be native. */ + var Promise = getNative(root, 'Promise'); + + module.exports = Promise; + + +/***/ }), +/* 88 */ +/***/ (function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(29), + root = __webpack_require__(34); + + /* Built-in method references that are verified to be native. */ + var Set = getNative(root, 'Set'); + + module.exports = Set; + + +/***/ }), +/* 89 */ +/***/ (function(module, exports, __webpack_require__) { + + var getNative = __webpack_require__(29), + root = __webpack_require__(34); + + /* Built-in method references that are verified to be native. */ + var WeakMap = getNative(root, 'WeakMap'); + + module.exports = WeakMap; + + +/***/ }), +/* 90 */ +/***/ (function(module, exports, __webpack_require__) { + + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLAttribute, XMLElement, XMLNode, XMLProcessingInstruction, create, every, isFunction, isObject, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; - XMLNode.prototype.next = function() { - var i; - if (this.isRoot) { - throw new Error("Root node has no siblings"); - } - i = this.parent.children.indexOf(this); - if (i === -1 || i === this.parent.children.length - 1) { - throw new Error("Already at the last node"); - } - return this.parent.children[i + 1]; - }; + create = __webpack_require__(79); - XMLNode.prototype.importXMLBuilder = function(xmlbuilder) { - var clonedRoot; - clonedRoot = xmlbuilder.root().clone(); - clonedRoot.parent = this; - clonedRoot.isRoot = false; - this.children.push(clonedRoot); - return this; - }; + isObject = __webpack_require__(38); - XMLNode.prototype.ele = function(name, attributes, text) { - return this.element(name, attributes, text); - }; + isFunction = __webpack_require__(31); - XMLNode.prototype.nod = function(name, attributes, text) { - return this.node(name, attributes, text); - }; + every = __webpack_require__(91); - XMLNode.prototype.txt = function(value) { - return this.text(value); - }; + XMLNode = __webpack_require__(82); - XMLNode.prototype.dat = function(value) { - return this.cdata(value); - }; + XMLAttribute = __webpack_require__(171); - XMLNode.prototype.com = function(value) { - return this.comment(value); - }; + XMLProcessingInstruction = __webpack_require__(172); - XMLNode.prototype.doc = function() { - return this.document(); - }; + module.exports = XMLElement = (function(superClass) { + extend(XMLElement, superClass); - XMLNode.prototype.dec = function(version, encoding, standalone) { - return this.declaration(version, encoding, standalone); - }; + function XMLElement(parent, name, attributes) { + XMLElement.__super__.constructor.call(this, parent); + if (name == null) { + throw new Error("Missing element name"); + } + this.name = this.stringify.eleName(name); + this.children = []; + this.instructions = []; + this.attributes = {}; + if (attributes != null) { + this.attribute(attributes); + } + } - XMLNode.prototype.dtd = function(pubID, sysID) { - return this.doctype(pubID, sysID); + XMLElement.prototype.clone = function() { + var att, attName, clonedSelf, i, len, pi, ref, ref1; + clonedSelf = create(XMLElement.prototype, this); + if (clonedSelf.isRoot) { + clonedSelf.documentObject = null; + } + clonedSelf.attributes = {}; + ref = this.attributes; + for (attName in ref) { + if (!hasProp.call(ref, attName)) continue; + att = ref[attName]; + clonedSelf.attributes[attName] = att.clone(); + } + clonedSelf.instructions = []; + ref1 = this.instructions; + for (i = 0, len = ref1.length; i < len; i++) { + pi = ref1[i]; + clonedSelf.instructions.push(pi.clone()); + } + clonedSelf.children = []; + this.children.forEach(function(child) { + var clonedChild; + clonedChild = child.clone(); + clonedChild.parent = clonedSelf; + return clonedSelf.children.push(clonedChild); + }); + return clonedSelf; }; - XMLNode.prototype.e = function(name, attributes, text) { - return this.element(name, attributes, text); + XMLElement.prototype.attribute = function(name, value) { + var attName, attValue; + if (name != null) { + name = name.valueOf(); + } + if (isObject(name)) { + for (attName in name) { + if (!hasProp.call(name, attName)) continue; + attValue = name[attName]; + this.attribute(attName, attValue); + } + } else { + if (isFunction(value)) { + value = value.apply(); + } + if (!this.options.skipNullAttributes || (value != null)) { + this.attributes[name] = new XMLAttribute(this, name, value); + } + } + return this; }; - XMLNode.prototype.n = function(name, attributes, text) { - return this.node(name, attributes, text); + XMLElement.prototype.removeAttribute = function(name) { + var attName, i, len; + if (name == null) { + throw new Error("Missing attribute name"); + } + name = name.valueOf(); + if (Array.isArray(name)) { + for (i = 0, len = name.length; i < len; i++) { + attName = name[i]; + delete this.attributes[attName]; + } + } else { + delete this.attributes[name]; + } + return this; }; - XMLNode.prototype.t = function(value) { - return this.text(value); + XMLElement.prototype.instruction = function(target, value) { + var i, insTarget, insValue, instruction, len; + if (target != null) { + target = target.valueOf(); + } + if (value != null) { + value = value.valueOf(); + } + if (Array.isArray(target)) { + for (i = 0, len = target.length; i < len; i++) { + insTarget = target[i]; + this.instruction(insTarget); + } + } else if (isObject(target)) { + for (insTarget in target) { + if (!hasProp.call(target, insTarget)) continue; + insValue = target[insTarget]; + this.instruction(insTarget, insValue); + } + } else { + if (isFunction(value)) { + value = value.apply(); + } + instruction = new XMLProcessingInstruction(this, target, value); + this.instructions.push(instruction); + } + return this; }; - XMLNode.prototype.d = function(value) { - return this.cdata(value); + XMLElement.prototype.toString = function(options, level) { + var att, child, i, indent, instruction, j, len, len1, name, newline, offset, pretty, r, ref, ref1, ref2, ref3, ref4, ref5, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + ref3 = this.instructions; + for (i = 0, len = ref3.length; i < len; i++) { + instruction = ref3[i]; + r += instruction.toString(options, level); + } + if (pretty) { + r += space; + } + r += '<' + this.name; + ref4 = this.attributes; + for (name in ref4) { + if (!hasProp.call(ref4, name)) continue; + att = ref4[name]; + r += att.toString(options); + } + if (this.children.length === 0 || every(this.children, function(e) { + return e.value === ''; + })) { + r += '/>'; + if (pretty) { + r += newline; + } + } else if (pretty && this.children.length === 1 && (this.children[0].value != null)) { + r += '>'; + r += this.children[0].value; + r += ''; + r += newline; + } else { + r += '>'; + if (pretty) { + r += newline; + } + ref5 = this.children; + for (j = 0, len1 = ref5.length; j < len1; j++) { + child = ref5[j]; + r += child.toString(options, level + 1); + } + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + } + return r; }; - XMLNode.prototype.c = function(value) { - return this.comment(value); + XMLElement.prototype.att = function(name, value) { + return this.attribute(name, value); }; - XMLNode.prototype.r = function(value) { - return this.raw(value); + XMLElement.prototype.ins = function(target, value) { + return this.instruction(target, value); }; - XMLNode.prototype.u = function() { - return this.up(); + XMLElement.prototype.a = function(name, value) { + return this.attribute(name, value); }; - return XMLNode; - - })(); - - }).call(this); - + XMLElement.prototype.i = function(target, value) { + return this.instruction(target, value); + }; -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { + return XMLElement; - var baseKeys = __webpack_require__(73), - getTag = __webpack_require__(84), - isArguments = __webpack_require__(62), - isArray = __webpack_require__(65), - isArrayLike = __webpack_require__(55), - isBuffer = __webpack_require__(66), - isPrototype = __webpack_require__(58), - isTypedArray = __webpack_require__(69); + })(XMLNode); - /** `Object#toString` result references. */ - var mapTag = '[object Map]', - setTag = '[object Set]'; + }).call(this); - /** Used for built-in method references. */ - var objectProto = Object.prototype; - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; +/***/ }), +/* 91 */ +/***/ (function(module, exports, __webpack_require__) { + + var arrayEvery = __webpack_require__(92), + baseEvery = __webpack_require__(93), + baseIteratee = __webpack_require__(99), + isArray = __webpack_require__(65), + isIterateeCall = __webpack_require__(54); /** - * Checks if `value` is an empty object, collection, map, or set. - * - * Objects are considered empty if they have no own enumerable string keyed - * properties. + * Checks if `predicate` returns truthy for **all** elements of `collection`. + * Iteration is stopped once `predicate` returns falsey. The predicate is + * invoked with three arguments: (value, index|key, collection). * - * Array-like values such as `arguments` objects, arrays, buffers, strings, or - * jQuery-like collections are considered empty if they have a `length` of `0`. - * Similarly, maps and sets are considered empty if they have a `size` of `0`. + * **Note:** This method returns `true` for + * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because + * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of + * elements of empty collections. * * @static * @memberOf _ * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is empty, else `false`. + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. * @example * - * _.isEmpty(null); - * // => true - * - * _.isEmpty(true); - * // => true + * _.every([true, 1, null, 'yes'], Boolean); + * // => false * - * _.isEmpty(1); - * // => true + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': false }, + * { 'user': 'fred', 'age': 40, 'active': false } + * ]; * - * _.isEmpty([1, 2, 3]); + * // The `_.matches` iteratee shorthand. + * _.every(users, { 'user': 'barney', 'active': false }); * // => false * - * _.isEmpty({ 'a': 1 }); + * // The `_.matchesProperty` iteratee shorthand. + * _.every(users, ['active', false]); + * // => true + * + * // The `_.property` iteratee shorthand. + * _.every(users, 'active'); * // => false */ - function isEmpty(value) { - if (value == null) { - return true; - } - if (isArrayLike(value) && - (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || - isBuffer(value) || isTypedArray(value) || isArguments(value))) { - return !value.length; - } - var tag = getTag(value); - if (tag == mapTag || tag == setTag) { - return !value.size; - } - if (isPrototype(value)) { - return !baseKeys(value).length; + function every(collection, predicate, guard) { + var func = isArray(collection) ? arrayEvery : baseEvery; + if (guard && isIterateeCall(collection, predicate, guard)) { + predicate = undefined; } - for (var key in value) { - if (hasOwnProperty.call(value, key)) { + return func(collection, baseIteratee(predicate, 3)); + } + + module.exports = every; + + +/***/ }), +/* 92 */ +/***/ (function(module, exports) { + + /** + * A specialized version of `_.every` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false`. + */ + function arrayEvery(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (!predicate(array[index], index, array)) { return false; } } return true; } - module.exports = isEmpty; + module.exports = arrayEvery; /***/ }), -/* 84 */ +/* 93 */ /***/ (function(module, exports, __webpack_require__) { - var DataView = __webpack_require__(85), - Map = __webpack_require__(86), - Promise = __webpack_require__(87), - Set = __webpack_require__(88), - WeakMap = __webpack_require__(89), - baseGetTag = __webpack_require__(32), - toSource = __webpack_require__(41); + var baseEach = __webpack_require__(94); - /** `Object#toString` result references. */ - var mapTag = '[object Map]', - objectTag = '[object Object]', - promiseTag = '[object Promise]', - setTag = '[object Set]', - weakMapTag = '[object WeakMap]'; + /** + * The base implementation of `_.every` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if all elements pass the predicate check, + * else `false` + */ + function baseEvery(collection, predicate) { + var result = true; + baseEach(collection, function(value, index, collection) { + result = !!predicate(value, index, collection); + return result; + }); + return result; + } - var dataViewTag = '[object DataView]'; + module.exports = baseEvery; - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); + +/***/ }), +/* 94 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseForOwn = __webpack_require__(95), + createBaseEach = __webpack_require__(98); /** - * Gets the `toStringTag` of `value`. + * The base implementation of `_.forEach` without support for iteratee shorthands. * * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. */ - var getTag = baseGetTag; + var baseEach = createBaseEach(baseForOwn); - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag(new Map) != mapTag) || - (Promise && getTag(Promise.resolve()) != promiseTag) || - (Set && getTag(new Set) != setTag) || - (WeakMap && getTag(new WeakMap) != weakMapTag)) { - getTag = function(value) { - var result = baseGetTag(value), - Ctor = result == objectTag ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; + module.exports = baseEach; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag; - case weakMapCtorString: return weakMapTag; - } - } - return result; - }; + +/***/ }), +/* 95 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseFor = __webpack_require__(96), + keys = __webpack_require__(59); + + /** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ + function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); } - module.exports = getTag; + module.exports = baseForOwn; /***/ }), -/* 85 */ +/* 96 */ /***/ (function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(29), - root = __webpack_require__(34); + var createBaseFor = __webpack_require__(97); - /* Built-in method references that are verified to be native. */ - var DataView = getNative(root, 'DataView'); + /** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ + var baseFor = createBaseFor(); - module.exports = DataView; + module.exports = baseFor; /***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { +/* 97 */ +/***/ (function(module, exports) { - var getNative = __webpack_require__(29), - root = __webpack_require__(34); + /** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; - /* Built-in method references that are verified to be native. */ - var Map = getNative(root, 'Map'); + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; + } - module.exports = Map; + module.exports = createBaseFor; /***/ }), -/* 87 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(29), - root = __webpack_require__(34); + var isArrayLike = __webpack_require__(55); - /* Built-in method references that are verified to be native. */ - var Promise = getNative(root, 'Promise'); + /** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ + function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); - module.exports = Promise; + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; + } + + module.exports = createBaseEach; /***/ }), -/* 88 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(29), - root = __webpack_require__(34); + var baseMatches = __webpack_require__(100), + baseMatchesProperty = __webpack_require__(152), + identity = __webpack_require__(47), + isArray = __webpack_require__(65), + property = __webpack_require__(168); - /* Built-in method references that are verified to be native. */ - var Set = getNative(root, 'Set'); + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); + } - module.exports = Set; + module.exports = baseIteratee; /***/ }), -/* 89 */ +/* 100 */ /***/ (function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(29), - root = __webpack_require__(34); + var baseIsMatch = __webpack_require__(101), + getMatchData = __webpack_require__(149), + matchesStrictComparable = __webpack_require__(151); - /* Built-in method references that are verified to be native. */ - var WeakMap = getNative(root, 'WeakMap'); + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } - module.exports = WeakMap; + module.exports = baseMatches; /***/ }), -/* 90 */ +/* 101 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLAttribute, XMLElement, XMLNode, XMLProcessingInstruction, create, every, isFunction, isObject, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - - create = __webpack_require__(79); - - isObject = __webpack_require__(38); - - isFunction = __webpack_require__(31); - - every = __webpack_require__(91); - - XMLNode = __webpack_require__(82); - - XMLAttribute = __webpack_require__(171); - - XMLProcessingInstruction = __webpack_require__(172); - - module.exports = XMLElement = (function(superClass) { - extend(XMLElement, superClass); - - function XMLElement(parent, name, attributes) { - XMLElement.__super__.constructor.call(this, parent); - if (name == null) { - throw new Error("Missing element name"); - } - this.name = this.stringify.eleName(name); - this.children = []; - this.instructions = []; - this.attributes = {}; - if (attributes != null) { - this.attribute(attributes); - } - } - - XMLElement.prototype.clone = function() { - var att, attName, clonedSelf, i, len, pi, ref, ref1; - clonedSelf = create(XMLElement.prototype, this); - if (clonedSelf.isRoot) { - clonedSelf.documentObject = null; - } - clonedSelf.attributes = {}; - ref = this.attributes; - for (attName in ref) { - if (!hasProp.call(ref, attName)) continue; - att = ref[attName]; - clonedSelf.attributes[attName] = att.clone(); - } - clonedSelf.instructions = []; - ref1 = this.instructions; - for (i = 0, len = ref1.length; i < len; i++) { - pi = ref1[i]; - clonedSelf.instructions.push(pi.clone()); - } - clonedSelf.children = []; - this.children.forEach(function(child) { - var clonedChild; - clonedChild = child.clone(); - clonedChild.parent = clonedSelf; - return clonedSelf.children.push(clonedChild); - }); - return clonedSelf; - }; + var Stack = __webpack_require__(102), + baseIsEqual = __webpack_require__(130); - XMLElement.prototype.attribute = function(name, value) { - var attName, attValue; - if (name != null) { - name = name.valueOf(); - } - if (isObject(name)) { - for (attName in name) { - if (!hasProp.call(name, attName)) continue; - attValue = name[attName]; - this.attribute(attName, attValue); - } - } else { - if (isFunction(value)) { - value = value.apply(); - } - if (!this.options.skipNullAttributes || (value != null)) { - this.attributes[name] = new XMLAttribute(this, name, value); - } - } - return this; - }; + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; - XMLElement.prototype.removeAttribute = function(name) { - var attName, i, len; - if (name == null) { - throw new Error("Missing attribute name"); - } - name = name.valueOf(); - if (Array.isArray(name)) { - for (i = 0, len = name.length; i < len; i++) { - attName = name[i]; - delete this.attributes[attName]; - } - } else { - delete this.attributes[name]; - } - return this; - }; + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; - XMLElement.prototype.instruction = function(target, value) { - var i, insTarget, insValue, instruction, len; - if (target != null) { - target = target.valueOf(); - } - if (value != null) { - value = value.valueOf(); - } - if (Array.isArray(target)) { - for (i = 0, len = target.length; i < len; i++) { - insTarget = target[i]; - this.instruction(insTarget); - } - } else if (isObject(target)) { - for (insTarget in target) { - if (!hasProp.call(target, insTarget)) continue; - insValue = target[insTarget]; - this.instruction(insTarget, insValue); - } - } else { - if (isFunction(value)) { - value = value.apply(); - } - instruction = new XMLProcessingInstruction(this, target, value); - this.instructions.push(instruction); - } - return this; - }; + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; - XMLElement.prototype.toString = function(options, level) { - var att, child, i, indent, instruction, j, len, len1, name, newline, offset, pretty, r, ref, ref1, ref2, ref3, ref4, ref5, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - ref3 = this.instructions; - for (i = 0, len = ref3.length; i < len; i++) { - instruction = ref3[i]; - r += instruction.toString(options, level); - } - if (pretty) { - r += space; + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; } - r += '<' + this.name; - ref4 = this.attributes; - for (name in ref4) { - if (!hasProp.call(ref4, name)) continue; - att = ref4[name]; - r += att.toString(options); + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); } - if (this.children.length === 0 || every(this.children, function(e) { - return e.value === ''; - })) { - r += '/>'; - if (pretty) { - r += newline; - } - } else if (pretty && this.children.length === 1 && (this.children[0].value != null)) { - r += '>'; - r += this.children[0].value; - r += ''; - r += newline; - } else { - r += '>'; - if (pretty) { - r += newline; - } - ref5 = this.children; - for (j = 0, len1 = ref5.length; j < len1; j++) { - child = ref5[j]; - r += child.toString(options, level + 1); - } - if (pretty) { - r += space; - } - r += ''; - if (pretty) { - r += newline; - } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; } - return r; - }; + } + } + return true; + } - XMLElement.prototype.att = function(name, value) { - return this.attribute(name, value); - }; + module.exports = baseIsMatch; - XMLElement.prototype.ins = function(target, value) { - return this.instruction(target, value); - }; - XMLElement.prototype.a = function(name, value) { - return this.attribute(name, value); - }; +/***/ }), +/* 102 */ +/***/ (function(module, exports, __webpack_require__) { - XMLElement.prototype.i = function(target, value) { - return this.instruction(target, value); - }; + var ListCache = __webpack_require__(103), + stackClear = __webpack_require__(110), + stackDelete = __webpack_require__(111), + stackGet = __webpack_require__(112), + stackHas = __webpack_require__(113), + stackSet = __webpack_require__(114); - return XMLElement; + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } - })(XMLNode); + // Add methods to `Stack`. + Stack.prototype.clear = stackClear; + Stack.prototype['delete'] = stackDelete; + Stack.prototype.get = stackGet; + Stack.prototype.has = stackHas; + Stack.prototype.set = stackSet; - }).call(this); + module.exports = Stack; /***/ }), -/* 91 */ +/* 103 */ /***/ (function(module, exports, __webpack_require__) { - var arrayEvery = __webpack_require__(92), - baseEvery = __webpack_require__(93), - baseIteratee = __webpack_require__(99), - isArray = __webpack_require__(65), - isIterateeCall = __webpack_require__(54); + var listCacheClear = __webpack_require__(104), + listCacheDelete = __webpack_require__(105), + listCacheGet = __webpack_require__(107), + listCacheHas = __webpack_require__(108), + listCacheSet = __webpack_require__(109); /** - * Checks if `predicate` returns truthy for **all** elements of `collection`. - * Iteration is stopped once `predicate` returns falsey. The predicate is - * invoked with three arguments: (value, index|key, collection). - * - * **Note:** This method returns `true` for - * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because - * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of - * elements of empty collections. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. - * @example - * - * _.every([true, 1, null, 'yes'], Boolean); - * // => false - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': false }, - * { 'user': 'fred', 'age': 40, 'active': false } - * ]; + * Creates an list cache object. * - * // The `_.matches` iteratee shorthand. - * _.every(users, { 'user': 'barney', 'active': false }); - * // => false + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `ListCache`. + ListCache.prototype.clear = listCacheClear; + ListCache.prototype['delete'] = listCacheDelete; + ListCache.prototype.get = listCacheGet; + ListCache.prototype.has = listCacheHas; + ListCache.prototype.set = listCacheSet; + + module.exports = ListCache; + + +/***/ }), +/* 104 */ +/***/ (function(module, exports) { + + /** + * Removes all key-value entries from the list cache. * - * // The `_.matchesProperty` iteratee shorthand. - * _.every(users, ['active', false]); - * // => true + * @private + * @name clear + * @memberOf ListCache + */ + function listCacheClear() { + this.__data__ = []; + this.size = 0; + } + + module.exports = listCacheClear; + + +/***/ }), +/* 105 */ +/***/ (function(module, exports, __webpack_require__) { + + var assocIndexOf = __webpack_require__(106); + + /** Used for built-in method references. */ + var arrayProto = Array.prototype; + + /** Built-in value references. */ + var splice = arrayProto.splice; + + /** + * Removes `key` and its value from the list cache. * - * // The `_.property` iteratee shorthand. - * _.every(users, 'active'); - * // => false + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ - function every(collection, predicate, guard) { - var func = isArray(collection) ? arrayEvery : baseEvery; - if (guard && isIterateeCall(collection, predicate, guard)) { - predicate = undefined; + function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); } - return func(collection, baseIteratee(predicate, 3)); + --this.size; + return true; } - module.exports = every; + module.exports = listCacheDelete; /***/ }), -/* 92 */ -/***/ (function(module, exports) { +/* 106 */ +/***/ (function(module, exports, __webpack_require__) { + + var eq = __webpack_require__(43); /** - * A specialized version of `_.every` for arrays without support for - * iteratee shorthands. + * Gets the index at which the `key` is found in `array` of key-value pairs. * * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false`. + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. */ - function arrayEvery(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; - - while (++index < length) { - if (!predicate(array[index], index, array)) { - return false; + function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; } } - return true; + return -1; } - module.exports = arrayEvery; + module.exports = assocIndexOf; /***/ }), -/* 93 */ +/* 107 */ /***/ (function(module, exports, __webpack_require__) { - var baseEach = __webpack_require__(94); + var assocIndexOf = __webpack_require__(106); /** - * The base implementation of `_.every` without support for iteratee shorthands. + * Gets the list cache value for `key`. * * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if all elements pass the predicate check, - * else `false` + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. */ - function baseEvery(collection, predicate) { - var result = true; - baseEach(collection, function(value, index, collection) { - result = !!predicate(value, index, collection); - return result; - }); - return result; + function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; } - module.exports = baseEvery; + module.exports = listCacheGet; /***/ }), -/* 94 */ +/* 108 */ /***/ (function(module, exports, __webpack_require__) { - var baseForOwn = __webpack_require__(95), - createBaseEach = __webpack_require__(98); + var assocIndexOf = __webpack_require__(106); /** - * The base implementation of `_.forEach` without support for iteratee shorthands. + * Checks if a list cache value for `key` exists. * * @private - * @param {Array|Object} collection The collection to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array|Object} Returns `collection`. + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - var baseEach = createBaseEach(baseForOwn); + function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; + } - module.exports = baseEach; + module.exports = listCacheHas; /***/ }), -/* 95 */ +/* 109 */ /***/ (function(module, exports, __webpack_require__) { - var baseFor = __webpack_require__(96), - keys = __webpack_require__(59); + var assocIndexOf = __webpack_require__(106); /** - * The base implementation of `_.forOwn` without support for iteratee shorthands. + * Sets the list cache `key` to `value`. * * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Object} Returns `object`. + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. */ - function baseForOwn(object, iteratee) { - return object && baseFor(object, iteratee, keys); + function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; } - module.exports = baseForOwn; + module.exports = listCacheSet; /***/ }), -/* 96 */ +/* 110 */ /***/ (function(module, exports, __webpack_require__) { - var createBaseFor = __webpack_require__(97); + var ListCache = __webpack_require__(103); /** - * The base implementation of `baseForOwn` which iterates over `object` - * properties returned by `keysFunc` and invokes `iteratee` for each property. - * Iteratee functions may exit iteration early by explicitly returning `false`. + * Removes all key-value entries from the stack. * * @private - * @param {Object} object The object to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @param {Function} keysFunc The function to get the keys of `object`. - * @returns {Object} Returns `object`. + * @name clear + * @memberOf Stack */ - var baseFor = createBaseFor(); + function stackClear() { + this.__data__ = new ListCache; + this.size = 0; + } - module.exports = baseFor; + module.exports = stackClear; /***/ }), -/* 97 */ +/* 111 */ /***/ (function(module, exports) { /** - * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * Removes `key` and its value from the stack. * * @private - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ - function createBaseFor(fromRight) { - return function(object, iteratee, keysFunc) { - var index = -1, - iterable = Object(object), - props = keysFunc(object), - length = props.length; + function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); - while (length--) { - var key = props[fromRight ? length : ++index]; - if (iteratee(iterable[key], key, iterable) === false) { - break; - } - } - return object; - }; + this.size = data.size; + return result; } - module.exports = createBaseFor; + module.exports = stackDelete; /***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - - var isArrayLike = __webpack_require__(55); +/* 112 */ +/***/ (function(module, exports) { /** - * Creates a `baseEach` or `baseEachRight` function. + * Gets the stack value for `key`. * * @private - * @param {Function} eachFunc The function to iterate over a collection. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {Function} Returns the new base function. + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. */ - function createBaseEach(eachFunc, fromRight) { - return function(collection, iteratee) { - if (collection == null) { - return collection; - } - if (!isArrayLike(collection)) { - return eachFunc(collection, iteratee); - } - var length = collection.length, - index = fromRight ? length : -1, - iterable = Object(collection); - - while ((fromRight ? index-- : ++index < length)) { - if (iteratee(iterable[index], index, iterable) === false) { - break; - } - } - return collection; - }; + function stackGet(key) { + return this.__data__.get(key); } - module.exports = createBaseEach; + module.exports = stackGet; /***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - - var baseMatches = __webpack_require__(100), - baseMatchesProperty = __webpack_require__(152), - identity = __webpack_require__(47), - isArray = __webpack_require__(65), - property = __webpack_require__(168); +/* 113 */ +/***/ (function(module, exports) { /** - * The base implementation of `_.iteratee`. + * Checks if a stack value for `key` exists. * * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - function baseIteratee(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity; - } - if (typeof value == 'object') { - return isArray(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); + function stackHas(key) { + return this.__data__.has(key); } - module.exports = baseIteratee; + module.exports = stackHas; /***/ }), -/* 100 */ +/* 114 */ /***/ (function(module, exports, __webpack_require__) { - var baseIsMatch = __webpack_require__(101), - getMatchData = __webpack_require__(149), - matchesStrictComparable = __webpack_require__(151); + var ListCache = __webpack_require__(103), + Map = __webpack_require__(86), + MapCache = __webpack_require__(115); + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE = 200; /** - * The base implementation of `_.matches` which doesn't clone `source`. + * Sets the stack `key` to `value`. * * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. */ - function baseMatches(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable(matchData[0][0], matchData[0][1]); + function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; + data.set(key, value); + this.size = data.size; + return this; } - module.exports = baseMatches; + module.exports = stackSet; /***/ }), -/* 101 */ +/* 115 */ /***/ (function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(102), - baseIsEqual = __webpack_require__(130); - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + var mapCacheClear = __webpack_require__(116), + mapCacheDelete = __webpack_require__(124), + mapCacheGet = __webpack_require__(127), + mapCacheHas = __webpack_require__(128), + mapCacheSet = __webpack_require__(129); /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. + * Creates a map cache object to store key-value pairs. * * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. + * @constructor + * @param {Array} [entries] The key-value pairs to cache. */ - function baseIsMatch(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; + function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; - if (object == null) { - return !length; - } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } - } + this.clear(); while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; - - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined - ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) - : result - )) { - return false; - } - } + var entry = entries[index]; + this.set(entry[0], entry[1]); } - return true; } - module.exports = baseIsMatch; + // Add methods to `MapCache`. + MapCache.prototype.clear = mapCacheClear; + MapCache.prototype['delete'] = mapCacheDelete; + MapCache.prototype.get = mapCacheGet; + MapCache.prototype.has = mapCacheHas; + MapCache.prototype.set = mapCacheSet; + + module.exports = MapCache; /***/ }), -/* 102 */ +/* 116 */ /***/ (function(module, exports, __webpack_require__) { - var ListCache = __webpack_require__(103), - stackClear = __webpack_require__(110), - stackDelete = __webpack_require__(111), - stackGet = __webpack_require__(112), - stackHas = __webpack_require__(113), - stackSet = __webpack_require__(114); + var Hash = __webpack_require__(117), + ListCache = __webpack_require__(103), + Map = __webpack_require__(86); /** - * Creates a stack cache object to store key-value pairs. + * Removes all key-value entries from the map. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @name clear + * @memberOf MapCache */ - function Stack(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; + function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; } - // Add methods to `Stack`. - Stack.prototype.clear = stackClear; - Stack.prototype['delete'] = stackDelete; - Stack.prototype.get = stackGet; - Stack.prototype.has = stackHas; - Stack.prototype.set = stackSet; - - module.exports = Stack; + module.exports = mapCacheClear; /***/ }), -/* 103 */ +/* 117 */ /***/ (function(module, exports, __webpack_require__) { - var listCacheClear = __webpack_require__(104), - listCacheDelete = __webpack_require__(105), - listCacheGet = __webpack_require__(107), - listCacheHas = __webpack_require__(108), - listCacheSet = __webpack_require__(109); + var hashClear = __webpack_require__(118), + hashDelete = __webpack_require__(120), + hashGet = __webpack_require__(121), + hashHas = __webpack_require__(122), + hashSet = __webpack_require__(123); /** - * Creates an list cache object. + * Creates a hash object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ - function ListCache(entries) { + function Hash(entries) { var index = -1, length = entries == null ? 0 : entries.length; @@ -6302,756 +6696,832 @@ return /******/ (function(modules) { // webpackBootstrap } } - // Add methods to `ListCache`. - ListCache.prototype.clear = listCacheClear; - ListCache.prototype['delete'] = listCacheDelete; - ListCache.prototype.get = listCacheGet; - ListCache.prototype.has = listCacheHas; - ListCache.prototype.set = listCacheSet; + // Add methods to `Hash`. + Hash.prototype.clear = hashClear; + Hash.prototype['delete'] = hashDelete; + Hash.prototype.get = hashGet; + Hash.prototype.has = hashHas; + Hash.prototype.set = hashSet; - module.exports = ListCache; + module.exports = Hash; /***/ }), -/* 104 */ -/***/ (function(module, exports) { +/* 118 */ +/***/ (function(module, exports, __webpack_require__) { + + var nativeCreate = __webpack_require__(119); /** - * Removes all key-value entries from the list cache. + * Removes all key-value entries from the hash. * * @private * @name clear - * @memberOf ListCache + * @memberOf Hash */ - function listCacheClear() { - this.__data__ = []; + function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; this.size = 0; } - module.exports = listCacheClear; + module.exports = hashClear; /***/ }), -/* 105 */ +/* 119 */ /***/ (function(module, exports, __webpack_require__) { - var assocIndexOf = __webpack_require__(106); - - /** Used for built-in method references. */ - var arrayProto = Array.prototype; - - /** Built-in value references. */ - var splice = arrayProto.splice; - - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete(key) { - var data = this.__data__, - index = assocIndexOf(data, key); + var getNative = __webpack_require__(29); - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } + /* Built-in method references that are verified to be native. */ + var nativeCreate = getNative(Object, 'create'); - module.exports = listCacheDelete; + module.exports = nativeCreate; /***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - - var eq = __webpack_require__(43); +/* 120 */ +/***/ (function(module, exports) { /** - * Gets the index at which the `key` is found in `array` of key-value pairs. + * Removes `key` and its value from the hash. * * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ - function assocIndexOf(array, key) { - var length = array.length; - while (length--) { - if (eq(array[length][0], key)) { - return length; - } - } - return -1; + function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; } - module.exports = assocIndexOf; + module.exports = hashDelete; /***/ }), -/* 107 */ +/* 121 */ /***/ (function(module, exports, __webpack_require__) { - var assocIndexOf = __webpack_require__(106); + var nativeCreate = __webpack_require__(119); + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * Gets the list cache value for `key`. + * Gets the hash value for `key`. * * @private * @name get - * @memberOf ListCache + * @memberOf Hash * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ - function listCacheGet(key) { - var data = this.__data__, - index = assocIndexOf(data, key); - - return index < 0 ? undefined : data[index][1]; + function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; } - module.exports = listCacheGet; + module.exports = hashGet; /***/ }), -/* 108 */ +/* 122 */ /***/ (function(module, exports, __webpack_require__) { - var assocIndexOf = __webpack_require__(106); + var nativeCreate = __webpack_require__(119); + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * Checks if a list cache value for `key` exists. + * Checks if a hash value for `key` exists. * * @private * @name has - * @memberOf ListCache + * @memberOf Hash * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - function listCacheHas(key) { - return assocIndexOf(this.__data__, key) > -1; + function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); } - module.exports = listCacheHas; + module.exports = hashHas; /***/ }), -/* 109 */ +/* 123 */ /***/ (function(module, exports, __webpack_require__) { - var assocIndexOf = __webpack_require__(106); + var nativeCreate = __webpack_require__(119); + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** - * Sets the list cache `key` to `value`. + * Sets the hash `key` to `value`. * * @private * @name set - * @memberOf ListCache + * @memberOf Hash * @param {string} key The key of the value to set. * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. + * @returns {Object} Returns the hash instance. */ - function listCacheSet(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); - - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } + function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; return this; } - module.exports = listCacheSet; + module.exports = hashSet; /***/ }), -/* 110 */ +/* 124 */ /***/ (function(module, exports, __webpack_require__) { - var ListCache = __webpack_require__(103); - - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear() { - this.__data__ = new ListCache; - this.size = 0; - } - - module.exports = stackClear; - - -/***/ }), -/* 111 */ -/***/ (function(module, exports) { + var getMapData = __webpack_require__(125); /** - * Removes `key` and its value from the stack. + * Removes `key` and its value from the map. * * @private * @name delete - * @memberOf Stack + * @memberOf MapCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ - function stackDelete(key) { - var data = this.__data__, - result = data['delete'](key); - - this.size = data.size; + function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; return result; } - module.exports = stackDelete; + module.exports = mapCacheDelete; /***/ }), -/* 112 */ -/***/ (function(module, exports) { - - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function stackGet(key) { - return this.__data__.get(key); - } - - module.exports = stackGet; - +/* 125 */ +/***/ (function(module, exports, __webpack_require__) { -/***/ }), -/* 113 */ -/***/ (function(module, exports) { + var isKeyable = __webpack_require__(126); /** - * Checks if a stack value for `key` exists. + * Gets the data for `map`. * * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. */ - function stackHas(key) { - return this.__data__.has(key); + function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; } - module.exports = stackHas; + module.exports = getMapData; /***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - - var ListCache = __webpack_require__(103), - Map = __webpack_require__(86), - MapCache = __webpack_require__(115); - - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE = 200; +/* 126 */ +/***/ (function(module, exports) { /** - * Sets the stack `key` to `value`. + * Checks if `value` is suitable for use as unique object key. * * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. */ - function stackSet(key, value) { - var data = this.__data__; - if (data instanceof ListCache) { - var pairs = data.__data__; - if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache(pairs); - } - data.set(key, value); - this.size = data.size; - return this; + function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); } - module.exports = stackSet; + module.exports = isKeyable; /***/ }), -/* 115 */ +/* 127 */ /***/ (function(module, exports, __webpack_require__) { - var mapCacheClear = __webpack_require__(116), - mapCacheDelete = __webpack_require__(124), - mapCacheGet = __webpack_require__(127), - mapCacheHas = __webpack_require__(128), - mapCacheSet = __webpack_require__(129); + var getMapData = __webpack_require__(125); /** - * Creates a map cache object to store key-value pairs. + * Gets the map value for `key`. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. */ - function MapCache(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; - - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } + function mapCacheGet(key) { + return getMapData(this, key).get(key); } - // Add methods to `MapCache`. - MapCache.prototype.clear = mapCacheClear; - MapCache.prototype['delete'] = mapCacheDelete; - MapCache.prototype.get = mapCacheGet; - MapCache.prototype.has = mapCacheHas; - MapCache.prototype.set = mapCacheSet; - - module.exports = MapCache; + module.exports = mapCacheGet; /***/ }), -/* 116 */ +/* 128 */ /***/ (function(module, exports, __webpack_require__) { - var Hash = __webpack_require__(117), - ListCache = __webpack_require__(103), - Map = __webpack_require__(86); + var getMapData = __webpack_require__(125); /** - * Removes all key-value entries from the map. + * Checks if a map value for `key` exists. * * @private - * @name clear + * @name has * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - function mapCacheClear() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map || ListCache), - 'string': new Hash - }; + function mapCacheHas(key) { + return getMapData(this, key).has(key); } - module.exports = mapCacheClear; + module.exports = mapCacheHas; /***/ }), -/* 117 */ +/* 129 */ /***/ (function(module, exports, __webpack_require__) { - var hashClear = __webpack_require__(118), - hashDelete = __webpack_require__(120), - hashGet = __webpack_require__(121), - hashHas = __webpack_require__(122), - hashSet = __webpack_require__(123); + var getMapData = __webpack_require__(125); /** - * Creates a hash object. + * Sets the map `key` to `value`. * * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. */ - function Hash(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; + function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; } - // Add methods to `Hash`. - Hash.prototype.clear = hashClear; - Hash.prototype['delete'] = hashDelete; - Hash.prototype.get = hashGet; - Hash.prototype.has = hashHas; - Hash.prototype.set = hashSet; - - module.exports = Hash; + module.exports = mapCacheSet; /***/ }), -/* 118 */ +/* 130 */ /***/ (function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(119); + var baseIsEqualDeep = __webpack_require__(131), + isObjectLike = __webpack_require__(64); /** - * Removes all key-value entries from the hash. + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. * * @private - * @name clear - * @memberOf Hash + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ - function hashClear() { - this.__data__ = nativeCreate ? nativeCreate(null) : {}; - this.size = 0; + function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } - module.exports = hashClear; + module.exports = baseIsEqual; /***/ }), -/* 119 */ +/* 131 */ /***/ (function(module, exports, __webpack_require__) { - var getNative = __webpack_require__(29); + var Stack = __webpack_require__(102), + equalArrays = __webpack_require__(132), + equalByTag = __webpack_require__(138), + equalObjects = __webpack_require__(142), + getTag = __webpack_require__(84), + isArray = __webpack_require__(65), + isBuffer = __webpack_require__(66), + isTypedArray = __webpack_require__(69); - /* Built-in method references that are verified to be native. */ - var nativeCreate = getNative(Object, 'create'); + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1; - module.exports = nativeCreate; + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + /** Used for built-in method references. */ + var objectProto = Object.prototype; -/***/ }), -/* 120 */ -/***/ (function(module, exports) { + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; /** - * Removes `key` and its value from the hash. + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. * * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function hashDelete(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; + function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); } - module.exports = hashDelete; + module.exports = baseIsEqualDeep; /***/ }), -/* 121 */ +/* 132 */ /***/ (function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(119); - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; + var SetCache = __webpack_require__(133), + arraySome = __webpack_require__(136), + cacheHas = __webpack_require__(137); - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; /** - * Gets the hash value for `key`. + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. * * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ - function hashGet(key) { - var data = this.__data__; - if (nativeCreate) { - var result = data[key]; - return result === HASH_UNDEFINED ? undefined : result; + function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(array); + if (stacked && stack.get(other)) { + return stacked == other; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } } - return hasOwnProperty.call(data, key) ? data[key] : undefined; + stack['delete'](array); + stack['delete'](other); + return result; } - module.exports = hashGet; + module.exports = equalArrays; /***/ }), -/* 122 */ +/* 133 */ /***/ (function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(119); - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + var MapCache = __webpack_require__(115), + setCacheAdd = __webpack_require__(134), + setCacheHas = __webpack_require__(135); /** - * Checks if a hash value for `key` exists. + * + * Creates an array cache object to store unique values. * * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + * @constructor + * @param {Array} [values] The values to cache. */ - function hashHas(key) { - var data = this.__data__; - return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); + function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } } - module.exports = hashHas; + // Add methods to `SetCache`. + SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; + SetCache.prototype.has = setCacheHas; + module.exports = SetCache; -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - var nativeCreate = __webpack_require__(119); +/***/ }), +/* 134 */ +/***/ (function(module, exports) { /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** - * Sets the hash `key` to `value`. + * Adds `value` to the array cache. * * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. */ - function hashSet(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); return this; } - module.exports = hashSet; + module.exports = setCacheAdd; /***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - - var getMapData = __webpack_require__(125); +/* 135 */ +/***/ (function(module, exports) { /** - * Removes `key` and its value from the map. + * Checks if `value` is in the array cache. * * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. */ - function mapCacheDelete(key) { - var result = getMapData(this, key)['delete'](key); - this.size -= result ? 1 : 0; - return result; + function setCacheHas(value) { + return this.__data__.has(value); } - module.exports = mapCacheDelete; + module.exports = setCacheHas; /***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - - var isKeyable = __webpack_require__(126); +/* 136 */ +/***/ (function(module, exports) { /** - * Gets the data for `map`. + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. * * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. */ - function getMapData(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; + function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; } - module.exports = getMapData; + module.exports = arraySome; /***/ }), -/* 126 */ +/* 137 */ /***/ (function(module, exports) { /** - * Checks if `value` is suitable for use as unique object key. + * Checks if a `cache` value for `key` exists. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ - function isKeyable(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); + function cacheHas(cache, key) { + return cache.has(key); } - module.exports = isKeyable; + module.exports = cacheHas; /***/ }), -/* 127 */ +/* 138 */ /***/ (function(module, exports, __webpack_require__) { - var getMapData = __webpack_require__(125); + var Symbol = __webpack_require__(33), + Uint8Array = __webpack_require__(139), + eq = __webpack_require__(43), + equalArrays = __webpack_require__(132), + mapToArray = __webpack_require__(140), + setToArray = __webpack_require__(141); + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** `Object#toString` result references. */ + var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** - * Gets the map value for `key`. + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function mapCacheGet(key) { - return getMapData(this, key).get(key); + function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; } - module.exports = mapCacheGet; + module.exports = equalByTag; /***/ }), -/* 128 */ +/* 139 */ /***/ (function(module, exports, __webpack_require__) { - var getMapData = __webpack_require__(125); + var root = __webpack_require__(34); - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas(key) { - return getMapData(this, key).has(key); - } + /** Built-in value references. */ + var Uint8Array = root.Uint8Array; - module.exports = mapCacheHas; + module.exports = Uint8Array; /***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - - var getMapData = __webpack_require__(125); +/* 140 */ +/***/ (function(module, exports) { /** - * Sets the map `key` to `value`. + * Converts `map` to its key-value pairs. * * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. */ - function mapCacheSet(key, value) { - var data = getMapData(this, key), - size = data.size; + function mapToArray(map) { + var index = -1, + result = Array(map.size); - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; } - module.exports = mapCacheSet; + module.exports = mapToArray; /***/ }), -/* 130 */ -/***/ (function(module, exports, __webpack_require__) { - - var baseIsEqualDeep = __webpack_require__(131), - isObjectLike = __webpack_require__(64); +/* 141 */ +/***/ (function(module, exports) { /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. + * Converts `set` to an array of its values. * * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. */ - function baseIsEqual(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { - return value !== value && other !== other; - } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); + function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; } - module.exports = baseIsEqual; + module.exports = setToArray; /***/ }), -/* 131 */ +/* 142 */ /***/ (function(module, exports, __webpack_require__) { - var Stack = __webpack_require__(102), - equalArrays = __webpack_require__(132), - equalByTag = __webpack_require__(138), - equalObjects = __webpack_require__(142), - getTag = __webpack_require__(84), - isArray = __webpack_require__(65), - isBuffer = __webpack_require__(66), - isTypedArray = __webpack_require__(69); + var getAllKeys = __webpack_require__(143); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1; - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - objectTag = '[object Object]'; - /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -7059,9 +7529,8 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. * * @private * @param {Object} object The object to compare. @@ -7069,1489 +7538,1597 @@ return /******/ (function(modules) { // webpackBootstrap * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ - function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray(object), - othIsArr = isArray(other), - objTag = objIsArr ? arrayTag : getTag(object), - othTag = othIsArr ? arrayTag : getTag(other); - - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; - - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; - - if (isSameTag && isBuffer(object)) { - if (!isBuffer(other)) { - return false; - } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack); - return (objIsArr || isTypedArray(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG)) { - var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); - - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; - - stack || (stack = new Stack); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } - - module.exports = baseIsEqualDeep; - - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - - var SetCache = __webpack_require__(133), - arraySome = __webpack_require__(136), - cacheHas = __webpack_require__(137); - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; - - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - arrLength = array.length, - othLength = other.length; + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + if (objLength != othLength && !isPartial) { return false; } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } // Assume cyclic values are equal. - var stacked = stack.get(array); + var stacked = stack.get(object); if (stacked && stack.get(other)) { return stacked == other; } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; - - stack.set(array, other); - stack.set(other, array); + var result = true; + stack.set(object, other); + stack.set(other, object); - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; if (customizer) { var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); - } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared )) { result = false; break; } + skipCtor || (skipCtor = key == 'constructor'); } - stack['delete'](array); + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); stack['delete'](other); return result; } - module.exports = equalArrays; + module.exports = equalObjects; /***/ }), -/* 133 */ +/* 143 */ /***/ (function(module, exports, __webpack_require__) { - var MapCache = __webpack_require__(115), - setCacheAdd = __webpack_require__(134), - setCacheHas = __webpack_require__(135); + var baseGetAllKeys = __webpack_require__(144), + getSymbols = __webpack_require__(146), + keys = __webpack_require__(59); /** - * - * Creates an array cache object to store unique values. + * Creates an array of own enumerable property names and symbols of `object`. * * @private - * @constructor - * @param {Array} [values] The values to cache. + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. */ - function SetCache(values) { - var index = -1, - length = values == null ? 0 : values.length; - - this.__data__ = new MapCache; - while (++index < length) { - this.add(values[index]); - } + function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); } - // Add methods to `SetCache`. - SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; - SetCache.prototype.has = setCacheHas; - - module.exports = SetCache; + module.exports = getAllKeys; /***/ }), -/* 134 */ -/***/ (function(module, exports) { - - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED = '__lodash_hash_undefined__'; - - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } - - module.exports = setCacheAdd; - +/* 144 */ +/***/ (function(module, exports, __webpack_require__) { -/***/ }), -/* 135 */ -/***/ (function(module, exports) { + var arrayPush = __webpack_require__(145), + isArray = __webpack_require__(65); /** - * Checks if `value` is in the array cache. + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. * * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. */ - function setCacheHas(value) { - return this.__data__.has(value); + function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); } - module.exports = setCacheHas; + module.exports = baseGetAllKeys; /***/ }), -/* 136 */ +/* 145 */ /***/ (function(module, exports) { /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. + * Appends the elements of `values` to `array`. * * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. */ - function arraySome(array, predicate) { + function arrayPush(array, values) { var index = -1, - length = array == null ? 0 : array.length; + length = values.length, + offset = array.length; while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } + array[offset + index] = values[index]; } - return false; - } - - module.exports = arraySome; - - -/***/ }), -/* 137 */ -/***/ (function(module, exports) { - - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function cacheHas(cache, key) { - return cache.has(key); + return array; } - module.exports = cacheHas; + module.exports = arrayPush; /***/ }), -/* 138 */ +/* 146 */ /***/ (function(module, exports, __webpack_require__) { - var Symbol = __webpack_require__(33), - Uint8Array = __webpack_require__(139), - eq = __webpack_require__(43), - equalArrays = __webpack_require__(132), - mapToArray = __webpack_require__(140), - setToArray = __webpack_require__(141); - - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + var arrayFilter = __webpack_require__(147), + stubArray = __webpack_require__(148); - /** `Object#toString` result references. */ - var boolTag = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - mapTag = '[object Map]', - numberTag = '[object Number]', - regexpTag = '[object RegExp]', - setTag = '[object Set]', - stringTag = '[object String]', - symbolTag = '[object Symbol]'; + /** Used for built-in method references. */ + var objectProto = Object.prototype; - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag = '[object DataView]'; + /** Built-in value references. */ + var propertyIsEnumerable = objectProto.propertyIsEnumerable; - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeGetSymbols = Object.getOwnPropertySymbols; /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * Creates an array of the own enumerable symbols of `object`. * * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. */ - function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; + var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); + }; - case arrayBufferTag: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array(object), new Uint8Array(other))) { - return false; - } - return true; + module.exports = getSymbols; - case boolTag: - case dateTag: - case numberTag: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); - case errorTag: - return object.name == other.name && object.message == other.message; +/***/ }), +/* 147 */ +/***/ (function(module, exports) { - case regexpTag: - case stringTag: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); + /** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; - case mapTag: - var convert = mapToArray; + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } - case setTag: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG; - convert || (convert = setToArray); + module.exports = arrayFilter; - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG; - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; +/***/ }), +/* 148 */ +/***/ (function(module, exports) { - case symbolTag: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } - } - return false; + /** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + function stubArray() { + return []; } - module.exports = equalByTag; + module.exports = stubArray; /***/ }), -/* 139 */ +/* 149 */ /***/ (function(module, exports, __webpack_require__) { - var root = __webpack_require__(34); + var isStrictComparable = __webpack_require__(150), + keys = __webpack_require__(59); - /** Built-in value references. */ - var Uint8Array = root.Uint8Array; + /** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData(object) { + var result = keys(object), + length = result.length; - module.exports = Uint8Array; + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; + } + + module.exports = getMatchData; /***/ }), -/* 140 */ -/***/ (function(module, exports) { +/* 150 */ +/***/ (function(module, exports, __webpack_require__) { + + var isObject = __webpack_require__(38); /** - * Converts `map` to its key-value pairs. + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. * * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. */ - function mapToArray(map) { - var index = -1, - result = Array(map.size); - - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; + function isStrictComparable(value) { + return value === value && !isObject(value); } - module.exports = mapToArray; + module.exports = isStrictComparable; /***/ }), -/* 141 */ +/* 151 */ /***/ (function(module, exports) { /** - * Converts `set` to an array of its values. + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. * * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. */ - function setToArray(set) { - var index = -1, - result = Array(set.size); - - set.forEach(function(value) { - result[++index] = value; - }); - return result; + function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; } - module.exports = setToArray; + module.exports = matchesStrictComparable; /***/ }), -/* 142 */ +/* 152 */ /***/ (function(module, exports, __webpack_require__) { - var getAllKeys = __webpack_require__(143); + var baseIsEqual = __webpack_require__(130), + get = __webpack_require__(153), + hasIn = __webpack_require__(165), + isKey = __webpack_require__(156), + isStrictComparable = __webpack_require__(150), + matchesStrictComparable = __webpack_require__(151), + toKey = __webpack_require__(164); /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. */ - function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; - - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { - return false; - } - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked && stack.get(other)) { - return stacked == other; + function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); } - var result = true; - stack.set(object, other); - stack.set(other, object); + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; + module.exports = baseMatchesProperty; - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; +/***/ }), +/* 153 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseGet = __webpack_require__(154); + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; } - module.exports = equalObjects; + module.exports = get; /***/ }), -/* 143 */ +/* 154 */ /***/ (function(module, exports, __webpack_require__) { - var baseGetAllKeys = __webpack_require__(144), - getSymbols = __webpack_require__(146), - keys = __webpack_require__(59); + var castPath = __webpack_require__(155), + toKey = __webpack_require__(164); /** - * Creates an array of own enumerable property names and symbols of `object`. + * The base implementation of `_.get` without support for default values. * * @private * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. */ - function getAllKeys(object) { - return baseGetAllKeys(object, keys, getSymbols); + function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; } - module.exports = getAllKeys; + module.exports = baseGet; /***/ }), -/* 144 */ +/* 155 */ /***/ (function(module, exports, __webpack_require__) { - var arrayPush = __webpack_require__(145), - isArray = __webpack_require__(65); + var isArray = __webpack_require__(65), + isKey = __webpack_require__(156), + stringToPath = __webpack_require__(158), + toString = __webpack_require__(161); /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. + * Casts `value` to a path array if it's not one. * * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. */ - function baseGetAllKeys(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); + function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); } - module.exports = baseGetAllKeys; + module.exports = castPath; /***/ }), -/* 145 */ -/***/ (function(module, exports) { +/* 156 */ +/***/ (function(module, exports, __webpack_require__) { + + var isArray = __webpack_require__(65), + isSymbol = __webpack_require__(157); + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; /** - * Appends the elements of `values` to `array`. + * Checks if `value` is a property name and not a property path. * * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ - function arrayPush(array, values) { - var index = -1, - length = values.length, - offset = array.length; - - while (++index < length) { - array[offset + index] = values[index]; + function isKey(value, object) { + if (isArray(value)) { + return false; } - return array; + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); } - module.exports = arrayPush; + module.exports = isKey; /***/ }), -/* 146 */ +/* 157 */ /***/ (function(module, exports, __webpack_require__) { - var arrayFilter = __webpack_require__(147), - stubArray = __webpack_require__(148); + var baseGetTag = __webpack_require__(32), + isObjectLike = __webpack_require__(64); - /** Used for built-in method references. */ - var objectProto = Object.prototype; + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; - /** Built-in value references. */ - var propertyIsEnumerable = objectProto.propertyIsEnumerable; + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); + } - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeGetSymbols = Object.getOwnPropertySymbols; + module.exports = isSymbol; + + +/***/ }), +/* 158 */ +/***/ (function(module, exports, __webpack_require__) { + + var memoizeCapped = __webpack_require__(159); + + /** Used to match property names within property paths. */ + var reLeadingDot = /^\./, + rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; /** - * Creates an array of the own enumerable symbols of `object`. + * Converts `string` to a property path array. * * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. */ - var getSymbols = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; + var stringToPath = memoizeCapped(function(string) { + var result = []; + if (reLeadingDot.test(string)) { + result.push(''); } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable.call(object, symbol); + string.replace(rePropName, function(match, number, quote, string) { + result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); }); - }; + return result; + }); - module.exports = getSymbols; + module.exports = stringToPath; /***/ }), -/* 147 */ -/***/ (function(module, exports) { +/* 159 */ +/***/ (function(module, exports, __webpack_require__) { + + var memoize = __webpack_require__(160); + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + module.exports = memoizeCapped; + + +/***/ }), +/* 160 */ +/***/ (function(module, exports, __webpack_require__) { + + var MapCache = __webpack_require__(115); + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; */ - function arrayFilter(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; + function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; + if (cache.has(key)) { + return cache.get(key); } - } - return result; + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; } - module.exports = arrayFilter; + // Expose `MapCache`. + memoize.Cache = MapCache; + + module.exports = memoize; /***/ }), -/* 148 */ -/***/ (function(module, exports) { +/* 161 */ +/***/ (function(module, exports, __webpack_require__) { + + var baseToString = __webpack_require__(162); /** - * This method returns a new empty array. + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. * @example * - * var arrays = _.times(2, _.stubArray); + * _.toString(null); + * // => '' * - * console.log(arrays); - * // => [[], []] + * _.toString(-0); + * // => '-0' * - * console.log(arrays[0] === arrays[1]); - * // => false + * _.toString([1, 2, 3]); + * // => '1,2,3' */ - function stubArray() { - return []; + function toString(value) { + return value == null ? '' : baseToString(value); } - module.exports = stubArray; + module.exports = toString; /***/ }), -/* 149 */ +/* 162 */ /***/ (function(module, exports, __webpack_require__) { - var isStrictComparable = __webpack_require__(150), - keys = __webpack_require__(59); - - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData(object) { - var result = keys(object), - length = result.length; - - while (length--) { - var key = result[length], - value = object[key]; - - result[length] = [key, value, isStrictComparable(value)]; - } - return result; - } - - module.exports = getMatchData; - + var Symbol = __webpack_require__(33), + arrayMap = __webpack_require__(163), + isArray = __webpack_require__(65), + isSymbol = __webpack_require__(157); -/***/ }), -/* 150 */ -/***/ (function(module, exports, __webpack_require__) { + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; - var isObject = __webpack_require__(38); + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. * * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. + * @param {*} value The value to process. + * @returns {string} Returns the string. */ - function isStrictComparable(value) { - return value === value && !isObject(value); + function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } - module.exports = isStrictComparable; + module.exports = baseToString; /***/ }), -/* 151 */ +/* 163 */ /***/ (function(module, exports) { /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. * * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. */ - function matchesStrictComparable(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined || (key in Object(object))); - }; + function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; } - module.exports = matchesStrictComparable; + module.exports = arrayMap; /***/ }), -/* 152 */ +/* 164 */ /***/ (function(module, exports, __webpack_require__) { - var baseIsEqual = __webpack_require__(130), - get = __webpack_require__(153), - hasIn = __webpack_require__(165), - isKey = __webpack_require__(156), - isStrictComparable = __webpack_require__(150), - matchesStrictComparable = __webpack_require__(151), - toKey = __webpack_require__(164); + var isSymbol = __webpack_require__(157); - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0; /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * Converts `value` to a string key if it's not a string or symbol. * * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. */ - function baseMatchesProperty(path, srcValue) { - if (isKey(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey(path), srcValue); + function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } - module.exports = baseMatchesProperty; + module.exports = toKey; /***/ }), -/* 153 */ +/* 165 */ /***/ (function(module, exports, __webpack_require__) { - var baseGet = __webpack_require__(154); + var baseHasIn = __webpack_require__(166), + hasPath = __webpack_require__(167); /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. + * Checks if `path` is a direct or inherited property of `object`. * * @static * @memberOf _ - * @since 3.7.0 + * @since 4.0.0 * @category Object * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. * @example * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); * - * _.get(object, 'a[0].b.c'); - * // => 3 + * _.hasIn(object, 'a'); + * // => true * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + + module.exports = hasIn; + + +/***/ }), +/* 166 */ +/***/ (function(module, exports) { + + /** + * The base implementation of `_.hasIn` without support for deep paths. * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. */ - function get(object, path, defaultValue) { - var result = object == null ? undefined : baseGet(object, path); - return result === undefined ? defaultValue : result; + function baseHasIn(object, key) { + return object != null && key in Object(object); } - module.exports = get; + module.exports = baseHasIn; /***/ }), -/* 154 */ +/* 167 */ /***/ (function(module, exports, __webpack_require__) { var castPath = __webpack_require__(155), + isArguments = __webpack_require__(62), + isArray = __webpack_require__(65), + isIndex = __webpack_require__(57), + isLength = __webpack_require__(56), toKey = __webpack_require__(164); /** - * The base implementation of `_.get` without support for default values. + * Checks if `path` exists on `object`. * * @private * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. */ - function baseGet(object, path) { + function hasPath(object, path, hasFunc) { path = castPath(path, object); - var index = 0, - length = path.length; + var index = -1, + length = path.length, + result = false; - while (object != null && index < length) { - object = object[toKey(path[index++])]; + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; } - return (index && index == length) ? object : undefined; + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); } - module.exports = baseGet; + module.exports = hasPath; /***/ }), -/* 155 */ +/* 168 */ /***/ (function(module, exports, __webpack_require__) { - var isArray = __webpack_require__(65), + var baseProperty = __webpack_require__(169), + basePropertyDeep = __webpack_require__(170), isKey = __webpack_require__(156), - stringToPath = __webpack_require__(158), - toString = __webpack_require__(161); + toKey = __webpack_require__(164); /** - * Casts `value` to a path array if it's not one. + * Creates a function that returns the value at `path` of a given object. * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] */ - function castPath(value, object) { - if (isArray(value)) { - return value; - } - return isKey(value, object) ? [value] : stringToPath(toString(value)); + function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } - module.exports = castPath; + module.exports = property; /***/ }), -/* 156 */ -/***/ (function(module, exports, __webpack_require__) { - - var isArray = __webpack_require__(65), - isSymbol = __webpack_require__(157); - - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/; +/* 169 */ +/***/ (function(module, exports) { /** - * Checks if `value` is a property name and not a property path. + * The base implementation of `_.property` without support for deep paths. * * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. */ - function isKey(value, object) { - if (isArray(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); + function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; } - module.exports = isKey; + module.exports = baseProperty; /***/ }), -/* 157 */ +/* 170 */ /***/ (function(module, exports, __webpack_require__) { - var baseGetTag = __webpack_require__(32), - isObjectLike = __webpack_require__(64); - - /** `Object#toString` result references. */ - var symbolTag = '[object Symbol]'; + var baseGet = __webpack_require__(154); /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true + * A specialized version of `baseProperty` which supports deep paths. * - * _.isSymbol('abc'); - * // => false + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. */ - function isSymbol(value) { - return typeof value == 'symbol' || - (isObjectLike(value) && baseGetTag(value) == symbolTag); + function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; } - module.exports = isSymbol; + module.exports = basePropertyDeep; /***/ }), -/* 158 */ +/* 171 */ /***/ (function(module, exports, __webpack_require__) { - var memoizeCapped = __webpack_require__(159); + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLAttribute, create; - /** Used to match property names within property paths. */ - var reLeadingDot = /^\./, - rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + create = __webpack_require__(79); - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; + module.exports = XMLAttribute = (function() { + function XMLAttribute(parent, name, value) { + this.stringify = parent.stringify; + if (name == null) { + throw new Error("Missing attribute name of element " + parent.name); + } + if (value == null) { + throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name); + } + this.name = this.stringify.attName(name); + this.value = this.stringify.attValue(value); + } - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath = memoizeCapped(function(string) { - var result = []; - if (reLeadingDot.test(string)) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, string) { - result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); + XMLAttribute.prototype.clone = function() { + return create(XMLAttribute.prototype, this); + }; - module.exports = stringToPath; + XMLAttribute.prototype.toString = function(options, level) { + return ' ' + this.name + '="' + this.value + '"'; + }; + + return XMLAttribute; + + })(); + + }).call(this); + + +/***/ }), +/* 172 */ +/***/ (function(module, exports, __webpack_require__) { + + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLProcessingInstruction, create; + + create = __webpack_require__(79); + + module.exports = XMLProcessingInstruction = (function() { + function XMLProcessingInstruction(parent, target, value) { + this.stringify = parent.stringify; + if (target == null) { + throw new Error("Missing instruction target"); + } + this.target = this.stringify.insTarget(target); + if (value) { + this.value = this.stringify.insValue(value); + } + } + + XMLProcessingInstruction.prototype.clone = function() { + return create(XMLProcessingInstruction.prototype, this); + }; + + XMLProcessingInstruction.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + return XMLProcessingInstruction; -/***/ }), -/* 159 */ -/***/ (function(module, exports, __webpack_require__) { + })(); - var memoize = __webpack_require__(160); + }).call(this); - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); +/***/ }), +/* 173 */ +/***/ (function(module, exports, __webpack_require__) { - var cache = result.cache; - return result; - } + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLCData, XMLNode, create, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; - module.exports = memoizeCapped; + create = __webpack_require__(79); + XMLNode = __webpack_require__(82); -/***/ }), -/* 160 */ -/***/ (function(module, exports, __webpack_require__) { + module.exports = XMLCData = (function(superClass) { + extend(XMLCData, superClass); - var MapCache = __webpack_require__(115); + function XMLCData(parent, text) { + XMLCData.__super__.constructor.call(this, parent); + if (text == null) { + throw new Error("Missing CDATA text"); + } + this.text = this.stringify.cdata(text); + } - /** Error message constants. */ - var FUNC_ERROR_TEXT = 'Expected a function'; + XMLCData.prototype.clone = function() { + return create(XMLCData.prototype, this); + }; - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; + XMLCData.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize.Cache || MapCache); - return memoized; - } + return XMLCData; - // Expose `MapCache`. - memoize.Cache = MapCache; + })(XMLNode); - module.exports = memoize; + }).call(this); /***/ }), -/* 161 */ +/* 174 */ /***/ (function(module, exports, __webpack_require__) { - var baseToString = __webpack_require__(162); - - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString(value) { - return value == null ? '' : baseToString(value); - } + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLComment, XMLNode, create, + extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + hasProp = {}.hasOwnProperty; - module.exports = toString; + create = __webpack_require__(79); + XMLNode = __webpack_require__(82); -/***/ }), -/* 162 */ -/***/ (function(module, exports, __webpack_require__) { + module.exports = XMLComment = (function(superClass) { + extend(XMLComment, superClass); - var Symbol = __webpack_require__(33), - arrayMap = __webpack_require__(163), - isArray = __webpack_require__(65), - isSymbol = __webpack_require__(157); + function XMLComment(parent, text) { + XMLComment.__super__.constructor.call(this, parent); + if (text == null) { + throw new Error("Missing comment text"); + } + this.text = this.stringify.comment(text); + } - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0; + XMLComment.prototype.clone = function() { + return create(XMLComment.prototype, this); + }; - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol ? Symbol.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; + XMLComment.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap(value, baseToString) + ''; - } - if (isSymbol(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } + return XMLComment; - module.exports = baseToString; + })(XMLNode); + + }).call(this); /***/ }), -/* 163 */ -/***/ (function(module, exports) { +/* 175 */ +/***/ (function(module, exports, __webpack_require__) { - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ - function arrayMap(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLProcessingInstruction, create, isObject; - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; - } + create = __webpack_require__(79); - module.exports = arrayMap; + isObject = __webpack_require__(38); + XMLCData = __webpack_require__(173); -/***/ }), -/* 164 */ -/***/ (function(module, exports, __webpack_require__) { + XMLComment = __webpack_require__(174); - var isSymbol = __webpack_require__(157); + XMLDTDAttList = __webpack_require__(176); - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0; + XMLDTDEntity = __webpack_require__(177); - /** - * Converts `value` to a string key if it's not a string or symbol. - * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. - */ - function toKey(value) { - if (typeof value == 'string' || isSymbol(value)) { - return value; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; - } + XMLDTDElement = __webpack_require__(178); - module.exports = toKey; + XMLDTDNotation = __webpack_require__(179); + XMLProcessingInstruction = __webpack_require__(172); -/***/ }), -/* 165 */ -/***/ (function(module, exports, __webpack_require__) { + module.exports = XMLDocType = (function() { + function XMLDocType(parent, pubID, sysID) { + var ref, ref1; + this.documentObject = parent; + this.stringify = this.documentObject.stringify; + this.children = []; + if (isObject(pubID)) { + ref = pubID, pubID = ref.pubID, sysID = ref.sysID; + } + if (sysID == null) { + ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1]; + } + if (pubID != null) { + this.pubID = this.stringify.dtdPubID(pubID); + } + if (sysID != null) { + this.sysID = this.stringify.dtdSysID(sysID); + } + } - var baseHasIn = __webpack_require__(166), - hasPath = __webpack_require__(167); + XMLDocType.prototype.element = function(name, value) { + var child; + child = new XMLDTDElement(this, name, value); + this.children.push(child); + return this; + }; - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } + XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + var child; + child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue); + this.children.push(child); + return this; + }; - module.exports = hasIn; + XMLDocType.prototype.entity = function(name, value) { + var child; + child = new XMLDTDEntity(this, false, name, value); + this.children.push(child); + return this; + }; + XMLDocType.prototype.pEntity = function(name, value) { + var child; + child = new XMLDTDEntity(this, true, name, value); + this.children.push(child); + return this; + }; -/***/ }), -/* 166 */ -/***/ (function(module, exports) { + XMLDocType.prototype.notation = function(name, value) { + var child; + child = new XMLDTDNotation(this, name, value); + this.children.push(child); + return this; + }; - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ - function baseHasIn(object, key) { - return object != null && key in Object(object); - } + XMLDocType.prototype.cdata = function(value) { + var child; + child = new XMLCData(this, value); + this.children.push(child); + return this; + }; - module.exports = baseHasIn; + XMLDocType.prototype.comment = function(value) { + var child; + child = new XMLComment(this, value); + this.children.push(child); + return this; + }; + + XMLDocType.prototype.instruction = function(target, value) { + var child; + child = new XMLProcessingInstruction(this, target, value); + this.children.push(child); + return this; + }; + XMLDocType.prototype.root = function() { + return this.documentObject.root(); + }; -/***/ }), -/* 167 */ -/***/ (function(module, exports, __webpack_require__) { + XMLDocType.prototype.document = function() { + return this.documentObject; + }; + + XMLDocType.prototype.toString = function(options, level) { + var child, i, indent, len, newline, offset, pretty, r, ref, ref1, ref2, ref3, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ' 0) { + r += ' ['; + if (pretty) { + r += newline; + } + ref3 = this.children; + for (i = 0, len = ref3.length; i < len; i++) { + child = ref3[i]; + r += child.toString(options, level + 1); + } + r += ']'; + } + r += '>'; + if (pretty) { + r += newline; + } + return r; + }; + + XMLDocType.prototype.ele = function(name, value) { + return this.element(name, value); + }; + + XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { + return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue); + }; + + XMLDocType.prototype.ent = function(name, value) { + return this.entity(name, value); + }; + + XMLDocType.prototype.pent = function(name, value) { + return this.pEntity(name, value); + }; + + XMLDocType.prototype.not = function(name, value) { + return this.notation(name, value); + }; + + XMLDocType.prototype.dat = function(value) { + return this.cdata(value); + }; + + XMLDocType.prototype.com = function(value) { + return this.comment(value); + }; + + XMLDocType.prototype.ins = function(target, value) { + return this.instruction(target, value); + }; - var castPath = __webpack_require__(155), - isArguments = __webpack_require__(62), - isArray = __webpack_require__(65), - isIndex = __webpack_require__(57), - isLength = __webpack_require__(56), - toKey = __webpack_require__(164); + XMLDocType.prototype.up = function() { + return this.root(); + }; - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath(object, path, hasFunc) { - path = castPath(path, object); + XMLDocType.prototype.doc = function() { + return this.document(); + }; - var index = -1, - length = path.length, - result = false; + return XMLDocType; - while (++index < length) { - var key = toKey(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; - } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray(object) || isArguments(object)); - } + })(); - module.exports = hasPath; + }).call(this); /***/ }), -/* 168 */ +/* 176 */ /***/ (function(module, exports, __webpack_require__) { - var baseProperty = __webpack_require__(169), - basePropertyDeep = __webpack_require__(170), - isKey = __webpack_require__(156), - toKey = __webpack_require__(164); + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLDTDAttList, create; - /** - * Creates a function that returns the value at `path` of a given object. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - * @example - * - * var objects = [ - * { 'a': { 'b': 2 } }, - * { 'a': { 'b': 1 } } - * ]; - * - * _.map(objects, _.property('a.b')); - * // => [2, 1] - * - * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); - * // => [1, 2] - */ - function property(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); - } + create = __webpack_require__(79); - module.exports = property; + module.exports = XMLDTDAttList = (function() { + function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { + this.stringify = parent.stringify; + if (elementName == null) { + throw new Error("Missing DTD element name"); + } + if (attributeName == null) { + throw new Error("Missing DTD attribute name"); + } + if (!attributeType) { + throw new Error("Missing DTD attribute type"); + } + if (!defaultValueType) { + throw new Error("Missing DTD attribute default"); + } + if (defaultValueType.indexOf('#') !== 0) { + defaultValueType = '#' + defaultValueType; + } + if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) { + throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT"); + } + if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) { + throw new Error("Default value only applies to #FIXED or #DEFAULT"); + } + this.elementName = this.stringify.eleName(elementName); + this.attributeName = this.stringify.attName(attributeName); + this.attributeType = this.stringify.dtdAttType(attributeType); + this.defaultValue = this.stringify.dtdAttDefault(defaultValue); + this.defaultValueType = defaultValueType; + } + XMLDTDAttList.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; -/***/ }), -/* 169 */ -/***/ (function(module, exports) { + return XMLDTDAttList; - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function baseProperty(key) { - return function(object) { - return object == null ? undefined : object[key]; - }; - } + })(); - module.exports = baseProperty; + }).call(this); /***/ }), -/* 170 */ +/* 177 */ /***/ (function(module, exports, __webpack_require__) { - var baseGet = __webpack_require__(154); + // Generated by CoffeeScript 1.9.1 + (function() { + var XMLDTDEntity, create, isObject; - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep(path) { - return function(object) { - return baseGet(object, path); - }; - } + create = __webpack_require__(79); - module.exports = basePropertyDeep; + isObject = __webpack_require__(38); + + module.exports = XMLDTDEntity = (function() { + function XMLDTDEntity(parent, pe, name, value) { + this.stringify = parent.stringify; + if (name == null) { + throw new Error("Missing entity name"); + } + if (value == null) { + throw new Error("Missing entity value"); + } + this.pe = !!pe; + this.name = this.stringify.eleName(name); + if (!isObject(value)) { + this.value = this.stringify.dtdEntityValue(value); + } else { + if (!value.pubID && !value.sysID) { + throw new Error("Public and/or system identifiers are required for an external entity"); + } + if (value.pubID && !value.sysID) { + throw new Error("System identifier is required for a public external entity"); + } + if (value.pubID != null) { + this.pubID = this.stringify.dtdPubID(value.pubID); + } + if (value.sysID != null) { + this.sysID = this.stringify.dtdSysID(value.sysID); + } + if (value.nData != null) { + this.nData = this.stringify.dtdNData(value.nData); + } + if (this.pe && this.nData) { + throw new Error("Notation declaration is not allowed in a parameter entity"); + } + } + } + + XMLDTDEntity.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; + }; + + return XMLDTDEntity; + + })(); + + }).call(this); /***/ }), -/* 171 */ +/* 178 */ /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.9.1 (function() { - var XMLAttribute, create; + var XMLDTDElement, create; create = __webpack_require__(79); - module.exports = XMLAttribute = (function() { - function XMLAttribute(parent, name, value) { + module.exports = XMLDTDElement = (function() { + function XMLDTDElement(parent, name, value) { this.stringify = parent.stringify; if (name == null) { - throw new Error("Missing attribute name of element " + parent.name); + throw new Error("Missing DTD element name"); } - if (value == null) { - throw new Error("Missing attribute value for attribute " + name + " of element " + parent.name); + if (!value) { + value = '(#PCDATA)'; } - this.name = this.stringify.attName(name); - this.value = this.stringify.attValue(value); + if (Array.isArray(value)) { + value = '(' + value.join(',') + ')'; + } + this.name = this.stringify.eleName(name); + this.value = this.stringify.dtdElementValue(value); } - XMLAttribute.prototype.clone = function() { - return create(XMLAttribute.prototype, this); - }; - - XMLAttribute.prototype.toString = function(options, level) { - return ' ' + this.name + '="' + this.value + '"'; + XMLDTDElement.prototype.toString = function(options, level) { + var indent, newline, offset, pretty, r, ref, ref1, ref2, space; + pretty = (options != null ? options.pretty : void 0) || false; + indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; + offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; + newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; + level || (level = 0); + space = new Array(level + offset + 1).join(indent); + r = ''; + if (pretty) { + r += space; + } + r += ''; + if (pretty) { + r += newline; + } + return r; }; - return XMLAttribute; + return XMLDTDElement; })(); @@ -8559,32 +9136,34 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }), -/* 172 */ +/* 179 */ /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.9.1 (function() { - var XMLProcessingInstruction, create; + var XMLDTDNotation, create; create = __webpack_require__(79); - module.exports = XMLProcessingInstruction = (function() { - function XMLProcessingInstruction(parent, target, value) { + module.exports = XMLDTDNotation = (function() { + function XMLDTDNotation(parent, name, value) { this.stringify = parent.stringify; - if (target == null) { - throw new Error("Missing instruction target"); + if (name == null) { + throw new Error("Missing notation name"); } - this.target = this.stringify.insTarget(target); - if (value) { - this.value = this.stringify.insValue(value); + if (!value.pubID && !value.sysID) { + throw new Error("Public or system identifiers are required for an external entity"); + } + this.name = this.stringify.eleName(name); + if (value.pubID != null) { + this.pubID = this.stringify.dtdPubID(value.pubID); + } + if (value.sysID != null) { + this.sysID = this.stringify.dtdSysID(value.sysID); } } - XMLProcessingInstruction.prototype.clone = function() { - return create(XMLProcessingInstruction.prototype, this); - }; - - XMLProcessingInstruction.prototype.toString = function(options, level) { + XMLDTDNotation.prototype.toString = function(options, level) { var indent, newline, offset, pretty, r, ref, ref1, ref2, space; pretty = (options != null ? options.pretty : void 0) || false; indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; @@ -8596,19 +9175,22 @@ return /******/ (function(modules) { // webpackBootstrap if (pretty) { r += space; } - r += ''; + r += '>'; if (pretty) { r += newline; } return r; }; - return XMLProcessingInstruction; + return XMLDTDNotation; })(); @@ -8616,12 +9198,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }), -/* 173 */ +/* 180 */ /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.9.1 (function() { - var XMLCData, XMLNode, create, + var XMLNode, XMLRaw, create, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; @@ -8629,22 +9211,22 @@ return /******/ (function(modules) { // webpackBootstrap XMLNode = __webpack_require__(82); - module.exports = XMLCData = (function(superClass) { - extend(XMLCData, superClass); + module.exports = XMLRaw = (function(superClass) { + extend(XMLRaw, superClass); - function XMLCData(parent, text) { - XMLCData.__super__.constructor.call(this, parent); + function XMLRaw(parent, text) { + XMLRaw.__super__.constructor.call(this, parent); if (text == null) { - throw new Error("Missing CDATA text"); + throw new Error("Missing raw text"); } - this.text = this.stringify.cdata(text); + this.value = this.stringify.raw(text); } - XMLCData.prototype.clone = function() { - return create(XMLCData.prototype, this); + XMLRaw.prototype.clone = function() { + return create(XMLRaw.prototype, this); }; - XMLCData.prototype.toString = function(options, level) { + XMLRaw.prototype.toString = function(options, level) { var indent, newline, offset, pretty, r, ref, ref1, ref2, space; pretty = (options != null ? options.pretty : void 0) || false; indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; @@ -8656,14 +9238,14 @@ return /******/ (function(modules) { // webpackBootstrap if (pretty) { r += space; } - r += ''; + r += this.value; if (pretty) { r += newline; } return r; }; - return XMLCData; + return XMLRaw; })(XMLNode); @@ -8671,12 +9253,12 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }), -/* 174 */ +/* 181 */ /***/ (function(module, exports, __webpack_require__) { // Generated by CoffeeScript 1.9.1 (function() { - var XMLComment, XMLNode, create, + var XMLNode, XMLText, create, extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; @@ -8684,22 +9266,22 @@ return /******/ (function(modules) { // webpackBootstrap XMLNode = __webpack_require__(82); - module.exports = XMLComment = (function(superClass) { - extend(XMLComment, superClass); + module.exports = XMLText = (function(superClass) { + extend(XMLText, superClass); - function XMLComment(parent, text) { - XMLComment.__super__.constructor.call(this, parent); + function XMLText(parent, text) { + XMLText.__super__.constructor.call(this, parent); if (text == null) { - throw new Error("Missing comment text"); + throw new Error("Missing element text"); } - this.text = this.stringify.comment(text); + this.value = this.stringify.eleText(text); } - XMLComment.prototype.clone = function() { - return create(XMLComment.prototype, this); + XMLText.prototype.clone = function() { + return create(XMLText.prototype, this); }; - XMLComment.prototype.toString = function(options, level) { + XMLText.prototype.toString = function(options, level) { var indent, newline, offset, pretty, r, ref, ref1, ref2, space; pretty = (options != null ? options.pretty : void 0) || false; indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; @@ -8711,14 +9293,14 @@ return /******/ (function(modules) { // webpackBootstrap if (pretty) { r += space; } - r += ''; + r += this.value; if (pretty) { r += newline; } return r; }; - return XMLComment; + return XMLText; })(XMLNode); @@ -8726,3498 +9308,2918 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }), -/* 175 */ +/* 182 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLProcessingInstruction, create, isObject; + var Collection = __webpack_require__(19); + var Operation = __webpack_require__(183); + var Shape = __webpack_require__(18); + var Paginator = __webpack_require__(184); + var ResourceWaiter = __webpack_require__(185); - create = __webpack_require__(79); + var util = __webpack_require__(2); + var property = util.property; + var memoizedProperty = util.memoizedProperty; - isObject = __webpack_require__(38); + function Api(api, options) { + api = api || {}; + options = options || {}; + options.api = this; + + api.metadata = api.metadata || {}; + + property(this, 'isApi', true, false); + property(this, 'apiVersion', api.metadata.apiVersion); + property(this, 'endpointPrefix', api.metadata.endpointPrefix); + property(this, 'signingName', api.metadata.signingName); + property(this, 'globalEndpoint', api.metadata.globalEndpoint); + property(this, 'signatureVersion', api.metadata.signatureVersion); + property(this, 'jsonVersion', api.metadata.jsonVersion); + property(this, 'targetPrefix', api.metadata.targetPrefix); + property(this, 'protocol', api.metadata.protocol); + property(this, 'timestampFormat', api.metadata.timestampFormat); + property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); + property(this, 'abbreviation', api.metadata.serviceAbbreviation); + property(this, 'fullName', api.metadata.serviceFullName); + + memoizedProperty(this, 'className', function() { + var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; + if (!name) return null; + + name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); + if (name === 'ElasticLoadBalancing') name = 'ELB'; + return name; + }); - XMLCData = __webpack_require__(173); + property(this, 'operations', new Collection(api.operations, options, function(name, operation) { + return new Operation(name, operation, options); + }, util.string.lowerFirst)); - XMLComment = __webpack_require__(174); + property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { + return Shape.create(shape, options); + })); - XMLDTDAttList = __webpack_require__(176); + property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { + return new Paginator(name, paginator, options); + })); - XMLDTDEntity = __webpack_require__(177); + property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { + return new ResourceWaiter(name, waiter, options); + }, util.string.lowerFirst)); - XMLDTDElement = __webpack_require__(178); + if (options.documentation) { + property(this, 'documentation', api.documentation); + property(this, 'documentationUrl', api.documentationUrl); + } + } - XMLDTDNotation = __webpack_require__(179); + module.exports = Api; - XMLProcessingInstruction = __webpack_require__(172); - module.exports = XMLDocType = (function() { - function XMLDocType(parent, pubID, sysID) { - var ref, ref1; - this.documentObject = parent; - this.stringify = this.documentObject.stringify; - this.children = []; - if (isObject(pubID)) { - ref = pubID, pubID = ref.pubID, sysID = ref.sysID; - } - if (sysID == null) { - ref1 = [pubID, sysID], sysID = ref1[0], pubID = ref1[1]; - } - if (pubID != null) { - this.pubID = this.stringify.dtdPubID(pubID); +/***/ }), +/* 183 */ +/***/ (function(module, exports, __webpack_require__) { + + var Shape = __webpack_require__(18); + + var util = __webpack_require__(2); + var property = util.property; + var memoizedProperty = util.memoizedProperty; + + function Operation(name, operation, options) { + var self = this; + options = options || {}; + + property(this, 'name', operation.name || name); + property(this, 'api', options.api, false); + + operation.http = operation.http || {}; + property(this, 'httpMethod', operation.http.method || 'POST'); + property(this, 'httpPath', operation.http.requestUri || '/'); + property(this, 'authtype', operation.authtype || ''); + + memoizedProperty(this, 'input', function() { + if (!operation.input) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.input, options); + }); + + memoizedProperty(this, 'output', function() { + if (!operation.output) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.output, options); + }); + + memoizedProperty(this, 'errors', function() { + var list = []; + if (!operation.errors) return null; + + for (var i = 0; i < operation.errors.length; i++) { + list.push(Shape.create(operation.errors[i], options)); + } + + return list; + }); + + memoizedProperty(this, 'paginator', function() { + return options.api.paginators[name]; + }); + + if (options.documentation) { + property(this, 'documentation', operation.documentation); + property(this, 'documentationUrl', operation.documentationUrl); + } + + // idempotentMembers only tracks top-level input shapes + memoizedProperty(this, 'idempotentMembers', function() { + var idempotentMembers = []; + var input = self.input; + var members = input.members; + if (!input.members) { + return idempotentMembers; + } + for (var name in members) { + if (!members.hasOwnProperty(name)) { + continue; } - if (sysID != null) { - this.sysID = this.stringify.dtdSysID(sysID); + if (members[name].isIdempotent === true) { + idempotentMembers.push(name); } } + return idempotentMembers; + }); - XMLDocType.prototype.element = function(name, value) { - var child; - child = new XMLDTDElement(this, name, value); - this.children.push(child); - return this; - }; + } - XMLDocType.prototype.attList = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { - var child; - child = new XMLDTDAttList(this, elementName, attributeName, attributeType, defaultValueType, defaultValue); - this.children.push(child); - return this; - }; + module.exports = Operation; - XMLDocType.prototype.entity = function(name, value) { - var child; - child = new XMLDTDEntity(this, false, name, value); - this.children.push(child); - return this; - }; - XMLDocType.prototype.pEntity = function(name, value) { - var child; - child = new XMLDTDEntity(this, true, name, value); - this.children.push(child); - return this; - }; +/***/ }), +/* 184 */ +/***/ (function(module, exports, __webpack_require__) { + + var property = __webpack_require__(2).property; + + function Paginator(name, paginator) { + property(this, 'inputToken', paginator.input_token); + property(this, 'limitKey', paginator.limit_key); + property(this, 'moreResults', paginator.more_results); + property(this, 'outputToken', paginator.output_token); + property(this, 'resultKey', paginator.result_key); + } + + module.exports = Paginator; + + +/***/ }), +/* 185 */ +/***/ (function(module, exports, __webpack_require__) { + + var util = __webpack_require__(2); + var property = util.property; + + function ResourceWaiter(name, waiter, options) { + options = options || {}; + property(this, 'name', name); + property(this, 'api', options.api, false); + + if (waiter.operation) { + property(this, 'operation', util.string.lowerFirst(waiter.operation)); + } + + var self = this; + var keys = [ + 'type', + 'description', + 'delay', + 'maxAttempts', + 'acceptors' + ]; + + keys.forEach(function(key) { + var value = waiter[key]; + if (value) { + property(self, key, value); + } + }); + } + + module.exports = ResourceWaiter; + + +/***/ }), +/* 186 */ +/***/ (function(module, exports) { + + function apiLoader(svc, version) { + if (!apiLoader.services.hasOwnProperty(svc)) { + throw new Error('InvalidService: Failed to load api for ' + svc); + } + return apiLoader.services[svc][version]; + } + + /** + * @api private + * + * This member of AWS.apiLoader is private, but changing it will necessitate a + * change to ../scripts/services-table-generator.ts + */ + apiLoader.services = {}; + module.exports = apiLoader; + - XMLDocType.prototype.notation = function(name, value) { - var child; - child = new XMLDTDNotation(this, name, value); - this.children.push(child); - return this; - }; +/***/ }), +/* 187 */ +/***/ (function(module, exports, __webpack_require__) { - XMLDocType.prototype.cdata = function(value) { - var child; - child = new XMLCData(this, value); - this.children.push(child); - return this; - }; + var AWS = __webpack_require__(1); + var Api = __webpack_require__(182); + var regionConfig = __webpack_require__(188); + var inherit = AWS.util.inherit; + var clientCount = 0; - XMLDocType.prototype.comment = function(value) { - var child; - child = new XMLComment(this, value); - this.children.push(child); - return this; - }; + /** + * The service class representing an AWS service. + * + * @abstract + * + * @!attribute apiVersions + * @return [Array] the list of API versions supported by this service. + * @readonly + */ + AWS.Service = inherit({ + /** + * Create a new service object with a configuration object + * + * @param config [map] a map of configuration options + */ + constructor: function Service(config) { + if (!this.loadServiceClass) { + throw AWS.util.error(new Error(), + 'Service must be constructed with `new\' operator'); + } + var ServiceClass = this.loadServiceClass(config || {}); + if (ServiceClass) { + var originalConfig = AWS.util.copy(config); + var svc = new ServiceClass(config); + Object.defineProperty(svc, '_originalConfig', { + get: function() { return originalConfig; }, + enumerable: false, + configurable: true + }); + svc._clientId = ++clientCount; + return svc; + } + this.initialize(config); + }, + + /** + * @api private + */ + initialize: function initialize(config) { + var svcConfig = AWS.config[this.serviceIdentifier]; + + this.config = new AWS.Config(AWS.config); + if (svcConfig) this.config.update(svcConfig, true); + if (config) this.config.update(config, true); + + this.validateService(); + if (!this.config.endpoint) regionConfig(this); + + this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); + this.setEndpoint(this.config.endpoint); + }, + + /** + * @api private + */ + validateService: function validateService() { + }, + + /** + * @api private + */ + loadServiceClass: function loadServiceClass(serviceConfig) { + var config = serviceConfig; + if (!AWS.util.isEmpty(this.api)) { + return null; + } else if (config.apiConfig) { + return AWS.Service.defineServiceApi(this.constructor, config.apiConfig); + } else if (!this.constructor.services) { + return null; + } else { + config = new AWS.Config(AWS.config); + config.update(serviceConfig, true); + var version = config.apiVersions[this.constructor.serviceIdentifier]; + version = version || config.apiVersion; + return this.getLatestServiceClass(version); + } + }, + + /** + * @api private + */ + getLatestServiceClass: function getLatestServiceClass(version) { + version = this.getLatestServiceVersion(version); + if (this.constructor.services[version] === null) { + AWS.Service.defineServiceApi(this.constructor, version); + } - XMLDocType.prototype.instruction = function(target, value) { - var child; - child = new XMLProcessingInstruction(this, target, value); - this.children.push(child); - return this; - }; + return this.constructor.services[version]; + }, - XMLDocType.prototype.root = function() { - return this.documentObject.root(); - }; + /** + * @api private + */ + getLatestServiceVersion: function getLatestServiceVersion(version) { + if (!this.constructor.services || this.constructor.services.length === 0) { + throw new Error('No services defined on ' + + this.constructor.serviceIdentifier); + } - XMLDocType.prototype.document = function() { - return this.documentObject; - }; + if (!version) { + version = 'latest'; + } else if (AWS.util.isType(version, Date)) { + version = AWS.util.date.iso8601(version).split('T')[0]; + } - XMLDocType.prototype.toString = function(options, level) { - var child, i, indent, len, newline, offset, pretty, r, ref, ref1, ref2, ref3, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; + if (Object.hasOwnProperty(this.constructor.services, version)) { + return version; + } + + var keys = Object.keys(this.constructor.services).sort(); + var selectedVersion = null; + for (var i = keys.length - 1; i >= 0; i--) { + // versions that end in "*" are not available on disk and can be + // skipped, so do not choose these as selectedVersions + if (keys[i][keys[i].length - 1] !== '*') { + selectedVersion = keys[i]; } - r += ' 0) { - r += ' ['; - if (pretty) { - r += newline; - } - ref3 = this.children; - for (i = 0, len = ref3.length; i < len; i++) { - child = ref3[i]; - r += child.toString(options, level + 1); - } - r += ']'; + } + + throw new Error('Could not find ' + this.constructor.serviceIdentifier + + ' API to satisfy version constraint `' + version + '\''); + }, + + /** + * @api private + */ + api: {}, + + /** + * @api private + */ + defaultRetryCount: 3, + + /** + * @api private + */ + customizeRequests: function customizeRequests(callback) { + if (!callback) { + this.customRequestHandler = null; + } else if (typeof callback === 'function') { + this.customRequestHandler = callback; + } else { + throw new Error('Invalid callback type \'' + typeof callback + '\' provided in customizeRequests'); + } + }, + + /** + * Calls an operation on a service with the given input parameters. + * + * @param operation [String] the name of the operation to call on the service. + * @param params [map] a map of input options for the operation + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + makeRequest: function makeRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = null; + } + + params = params || {}; + if (this.config.params) { // copy only toplevel bound params + var rules = this.api.operations[operation]; + if (rules) { + params = AWS.util.copy(params); + AWS.util.each(this.config.params, function(key, value) { + if (rules.input.members[key]) { + if (params[key] === undefined || params[key] === null) { + params[key] = value; + } + } + }); } - r += '>'; - if (pretty) { - r += newline; + } + + var request = new AWS.Request(this, operation, params); + this.addAllRequestListeners(request); + + if (callback) request.send(callback); + return request; + }, + + /** + * Calls an operation on a service with the given input parameters, without + * any authentication data. This method is useful for "public" API operations. + * + * @param operation [String] the name of the operation to call on the service. + * @param params [map] a map of input options for the operation + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = {}; + } + + var request = this.makeRequest(operation, params).toUnauthenticated(); + return callback ? request.send(callback) : request; + }, + + /** + * Waits for a given state + * + * @param state [String] the state on the service to wait for + * @param params [map] a map of parameters to pass with each request + * @option params $waiter [map] a map of configuration options for the waiter + * @option params $waiter.delay [Number] The number of seconds to wait between + * requests + * @option params $waiter.maxAttempts [Number] The maximum number of requests + * to send while waiting + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + waitFor: function waitFor(state, params, callback) { + var waiter = new AWS.ResourceWaiter(this, state); + return waiter.wait(params, callback); + }, + + /** + * @api private + */ + addAllRequestListeners: function addAllRequestListeners(request) { + var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(), + AWS.EventListeners.CorePost]; + for (var i = 0; i < list.length; i++) { + if (list[i]) request.addListeners(list[i]); + } + + // disable parameter validation + if (!this.config.paramValidation) { + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_PARAMETERS); + } + + if (this.config.logger) { // add logging events + request.addListeners(AWS.EventListeners.Logger); + } + + this.setupRequestListeners(request); + // call prototype's customRequestHandler + if (typeof this.constructor.prototype.customRequestHandler === 'function') { + this.constructor.prototype.customRequestHandler(request); + } + // call instance's customRequestHandler + if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') { + this.customRequestHandler(request); + } + }, + + /** + * Override this method to setup any custom request listeners for each + * new request to the service. + * + * @abstract + */ + setupRequestListeners: function setupRequestListeners() { + }, + + /** + * Gets the signer class for a given request + * @api private + */ + getSignerClass: function getSignerClass(request) { + var version; + // get operation authtype if present + var operation = null; + var authtype = ''; + if (request) { + var operations = request.service.api.operations || {}; + operation = operations[request.operation] || null; + authtype = operation ? operation.authtype : ''; + } + if (this.config.signatureVersion) { + version = this.config.signatureVersion; + } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') { + version = 'v4'; + } else { + version = this.api.signatureVersion; + } + return AWS.Signers.RequestSigner.getVersion(version); + }, + + /** + * @api private + */ + serviceInterface: function serviceInterface() { + switch (this.api.protocol) { + case 'ec2': return AWS.EventListeners.Query; + case 'query': return AWS.EventListeners.Query; + case 'json': return AWS.EventListeners.Json; + case 'rest-json': return AWS.EventListeners.RestJson; + case 'rest-xml': return AWS.EventListeners.RestXml; + } + if (this.api.protocol) { + throw new Error('Invalid service `protocol\' ' + + this.api.protocol + ' in API config'); + } + }, + + /** + * @api private + */ + successfulResponse: function successfulResponse(resp) { + return resp.httpResponse.statusCode < 300; + }, + + /** + * How many times a failed request should be retried before giving up. + * the defaultRetryCount can be overriden by service classes. + * + * @api private + */ + numRetries: function numRetries() { + if (this.config.maxRetries !== undefined) { + return this.config.maxRetries; + } else { + return this.defaultRetryCount; + } + }, + + /** + * @api private + */ + retryDelays: function retryDelays(retryCount) { + return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions); + }, + + /** + * @api private + */ + retryableError: function retryableError(error) { + if (this.timeoutError(error)) return true; + if (this.networkingError(error)) return true; + if (this.expiredCredentialsError(error)) return true; + if (this.throttledError(error)) return true; + if (error.statusCode >= 500) return true; + return false; + }, + + /** + * @api private + */ + networkingError: function networkingError(error) { + return error.code === 'NetworkingError'; + }, + + /** + * @api private + */ + timeoutError: function timeoutError(error) { + return error.code === 'TimeoutError'; + }, + + /** + * @api private + */ + expiredCredentialsError: function expiredCredentialsError(error) { + // TODO : this only handles *one* of the expired credential codes + return (error.code === 'ExpiredTokenException'); + }, + + /** + * @api private + */ + clockSkewError: function clockSkewError(error) { + switch (error.code) { + case 'RequestTimeTooSkewed': + case 'RequestExpired': + case 'InvalidSignatureException': + case 'SignatureDoesNotMatch': + case 'AuthFailure': + case 'RequestInTheFuture': + return true; + default: return false; + } + }, + + /** + * @api private + */ + getSkewCorrectedDate: function getSkewCorrectedDate() { + return new Date(Date.now() + this.config.systemClockOffset); + }, + + /** + * @api private + */ + applyClockOffset: function applyClockOffset(newServerTime) { + if (newServerTime) { + this.config.systemClockOffset = newServerTime - Date.now(); + } + }, + + /** + * @api private + */ + isClockSkewed: function isClockSkewed(newServerTime) { + if (newServerTime) { + return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 30000; + } + }, + + /** + * @api private + */ + throttledError: function throttledError(error) { + // this logic varies between services + switch (error.code) { + case 'ProvisionedThroughputExceededException': + case 'Throttling': + case 'ThrottlingException': + case 'RequestLimitExceeded': + case 'RequestThrottled': + return true; + default: + return false; + } + }, + + /** + * @api private + */ + endpointFromTemplate: function endpointFromTemplate(endpoint) { + if (typeof endpoint !== 'string') return endpoint; + + var e = endpoint; + e = e.replace(/\{service\}/g, this.api.endpointPrefix); + e = e.replace(/\{region\}/g, this.config.region); + e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); + return e; + }, + + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + this.endpoint = new AWS.Endpoint(endpoint, this.config); + }, + + /** + * @api private + */ + paginationConfig: function paginationConfig(operation, throwException) { + var paginator = this.api.operations[operation].paginator; + if (!paginator) { + if (throwException) { + var e = new Error(); + throw AWS.util.error(e, 'No pagination configuration for ' + operation); } - return r; - }; + return null; + } - XMLDocType.prototype.ele = function(name, value) { - return this.element(name, value); - }; + return paginator; + } + }); - XMLDocType.prototype.att = function(elementName, attributeName, attributeType, defaultValueType, defaultValue) { - return this.attList(elementName, attributeName, attributeType, defaultValueType, defaultValue); - }; + AWS.util.update(AWS.Service, { + + /** + * Adds one method for each operation described in the api configuration + * + * @api private + */ + defineMethods: function defineMethods(svc) { + AWS.util.each(svc.prototype.api.operations, function iterator(method) { + if (svc.prototype[method]) return; + var operation = svc.prototype.api.operations[method]; + if (operation.authtype === 'none') { + svc.prototype[method] = function (params, callback) { + return this.makeUnauthenticatedRequest(method, params, callback); + }; + } else { + svc.prototype[method] = function (params, callback) { + return this.makeRequest(method, params, callback); + }; + } + }); + }, + + /** + * Defines a new Service class using a service identifier and list of versions + * including an optional set of features (functions) to apply to the class + * prototype. + * + * @param serviceIdentifier [String] the identifier for the service + * @param versions [Array] a list of versions that work with this + * service + * @param features [Object] an object to attach to the prototype + * @return [Class] the service class defined by this function. + */ + defineService: function defineService(serviceIdentifier, versions, features) { + AWS.Service._serviceMap[serviceIdentifier] = true; + if (!Array.isArray(versions)) { + features = versions; + versions = []; + } - XMLDocType.prototype.ent = function(name, value) { - return this.entity(name, value); - }; + var svc = inherit(AWS.Service, features || {}); - XMLDocType.prototype.pent = function(name, value) { - return this.pEntity(name, value); - }; + if (typeof serviceIdentifier === 'string') { + AWS.Service.addVersions(svc, versions); - XMLDocType.prototype.not = function(name, value) { - return this.notation(name, value); - }; + var identifier = svc.serviceIdentifier || serviceIdentifier; + svc.serviceIdentifier = identifier; + } else { // defineService called with an API + svc.prototype.api = serviceIdentifier; + AWS.Service.defineMethods(svc); + } - XMLDocType.prototype.dat = function(value) { - return this.cdata(value); - }; + return svc; + }, - XMLDocType.prototype.com = function(value) { - return this.comment(value); - }; + /** + * @api private + */ + addVersions: function addVersions(svc, versions) { + if (!Array.isArray(versions)) versions = [versions]; - XMLDocType.prototype.ins = function(target, value) { - return this.instruction(target, value); - }; + svc.services = svc.services || {}; + for (var i = 0; i < versions.length; i++) { + if (svc.services[versions[i]] === undefined) { + svc.services[versions[i]] = null; + } + } - XMLDocType.prototype.up = function() { - return this.root(); - }; + svc.apiVersions = Object.keys(svc.services).sort(); + }, - XMLDocType.prototype.doc = function() { - return this.document(); - }; + /** + * @api private + */ + defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { + var svc = inherit(superclass, { + serviceIdentifier: superclass.serviceIdentifier + }); - return XMLDocType; + function setApi(api) { + if (api.isApi) { + svc.prototype.api = api; + } else { + svc.prototype.api = new Api(api); + } + } - })(); + if (typeof version === 'string') { + if (apiConfig) { + setApi(apiConfig); + } else { + try { + setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); + } catch (err) { + throw AWS.util.error(err, { + message: 'Could not find API configuration ' + + superclass.serviceIdentifier + '-' + version + }); + } + } + if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) { + superclass.apiVersions = superclass.apiVersions.concat(version).sort(); + } + superclass.services[version] = svc; + } else { + setApi(version); + } - }).call(this); + AWS.Service.defineMethods(svc); + return svc; + }, + + /** + * @api private + */ + hasService: function(identifier) { + return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier); + }, + + /** + * @api private + */ + _serviceMap: {} + }); + + module.exports = AWS.Service; /***/ }), -/* 176 */ +/* 188 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLDTDAttList, create; + var util = __webpack_require__(2); + var regionConfig = __webpack_require__(189); - create = __webpack_require__(79); + function generateRegionPrefix(region) { + if (!region) return null; - module.exports = XMLDTDAttList = (function() { - function XMLDTDAttList(parent, elementName, attributeName, attributeType, defaultValueType, defaultValue) { - this.stringify = parent.stringify; - if (elementName == null) { - throw new Error("Missing DTD element name"); - } - if (attributeName == null) { - throw new Error("Missing DTD attribute name"); - } - if (!attributeType) { - throw new Error("Missing DTD attribute type"); - } - if (!defaultValueType) { - throw new Error("Missing DTD attribute default"); - } - if (defaultValueType.indexOf('#') !== 0) { - defaultValueType = '#' + defaultValueType; - } - if (!defaultValueType.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/)) { - throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT"); - } - if (defaultValue && !defaultValueType.match(/^(#FIXED|#DEFAULT)$/)) { - throw new Error("Default value only applies to #FIXED or #DEFAULT"); - } - this.elementName = this.stringify.eleName(elementName); - this.attributeName = this.stringify.attName(attributeName); - this.attributeType = this.stringify.dtdAttType(attributeType); - this.defaultValue = this.stringify.dtdAttDefault(defaultValue); - this.defaultValueType = defaultValueType; + var parts = region.split('-'); + if (parts.length < 3) return null; + return parts.slice(0, parts.length - 2).join('-') + '-*'; + } + + function derivedKeys(service) { + var region = service.config.region; + var regionPrefix = generateRegionPrefix(region); + var endpointPrefix = service.api.endpointPrefix; + + return [ + [region, endpointPrefix], + [regionPrefix, endpointPrefix], + [region, '*'], + [regionPrefix, '*'], + ['*', endpointPrefix], + ['*', '*'] + ].map(function(item) { + return item[0] && item[1] ? item.join('/') : null; + }); + } + + function applyConfig(service, config) { + util.each(config, function(key, value) { + if (key === 'globalEndpoint') return; + if (service.config[key] === undefined || service.config[key] === null) { + service.config[key] = value; } + }); + } - XMLDTDAttList.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; - } - r += ''; - if (pretty) { - r += newline; + + // set dualstack endpoint + if (service.config.useDualstack && util.isDualstackAvailable(service)) { + config = util.copy(config); + config.endpoint = '{service}.dualstack.{region}.amazonaws.com'; } - return r; - }; - return XMLDTDAttList; + // set global endpoint + service.isGlobalEndpoint = !!config.globalEndpoint; + + // signature version + if (!config.signatureVersion) config.signatureVersion = 'v4'; + + // merge config + applyConfig(service, config); + return; + } + } + } + + module.exports = configureEndpoint; - })(); - }).call(this); +/***/ }), +/* 189 */ +/***/ (function(module, exports) { + module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":{"endpoint":"https://{service}.amazonaws.com","signatureVersion":"v3https","globalEndpoint":true},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"}}} /***/ }), -/* 177 */ +/* 190 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLDTDEntity, create, isObject; + var AWS = __webpack_require__(1); + __webpack_require__(191); + __webpack_require__(192); + var PromisesDependency; - create = __webpack_require__(79); + /** + * The main configuration class used by all service objects to set + * the region, credentials, and other options for requests. + * + * By default, credentials and region settings are left unconfigured. + * This should be configured by the application before using any + * AWS service APIs. + * + * In order to set global configuration options, properties should + * be assigned to the global {AWS.config} object. + * + * @see AWS.config + * + * @!group General Configuration Options + * + * @!attribute credentials + * @return [AWS.Credentials] the AWS credentials to sign requests with. + * + * @!attribute region + * @example Set the global region setting to us-west-2 + * AWS.config.update({region: 'us-west-2'}); + * @return [AWS.Credentials] The region to send service requests to. + * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html + * A list of available endpoints for each AWS service + * + * @!attribute maxRetries + * @return [Integer] the maximum amount of retries to perform for a + * service request. By default this value is calculated by the specific + * service object that the request is being made to. + * + * @!attribute maxRedirects + * @return [Integer] the maximum amount of redirects to follow for a + * service request. Defaults to 10. + * + * @!attribute paramValidation + * @return [Boolean|map] whether input parameters should be validated against + * the operation description before sending the request. Defaults to true. + * Pass a map to enable any of the following specific validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + * + * @!attribute computeChecksums + * @return [Boolean] whether to compute checksums for payload bodies when + * the service accepts it (currently supported in S3 only). + * + * @!attribute convertResponseTypes + * @return [Boolean] whether types are converted when parsing response data. + * Currently only supported for JSON based services. Turning this off may + * improve performance on large response payloads. Defaults to `true`. + * + * @!attribute correctClockSkew + * @return [Boolean] whether to apply a clock skew correction and retry + * requests that fail because of an skewed client clock. Defaults to + * `false`. + * + * @!attribute sslEnabled + * @return [Boolean] whether SSL is enabled for requests + * + * @!attribute s3ForcePathStyle + * @return [Boolean] whether to force path style URLs for S3 objects + * + * @!attribute s3BucketEndpoint + * @note Setting this configuration option requires an `endpoint` to be + * provided explicitly to the service constructor. + * @return [Boolean] whether the provided endpoint addresses an individual + * bucket (false if it addresses the root API endpoint). + * + * @!attribute s3DisableBodySigning + * @return [Boolean] whether to disable S3 body signing when using signature version `v4`. + * Body signing can only be disabled when using https. Defaults to `true`. + * + * @!attribute useAccelerateEndpoint + * @note This configuration option is only compatible with S3 while accessing + * dns-compatible buckets. + * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service. + * Defaults to `false`. + * + * @!attribute retryDelayOptions + * @example Set the base retry delay for all services to 300 ms + * AWS.config.update({retryDelayOptions: {base: 300}}); + * // Delays with maxRetries = 3: 300, 600, 1200 + * @example Set a custom backoff function to provide delay values on retries + * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount) { + * // returns delay in ms + * }}}); + * @return [map] A set of options to configure the retry delay on retryable errors. + * Currently supported options are: + * + * * **base** [Integer] — The base number of milliseconds to use in the + * exponential backoff for operation retries. Defaults to 100 ms for all services except + * DynamoDB, where it defaults to 50ms. + * * **customBackoff ** [function] — A custom function that accepts a retry count + * and returns the amount of time to delay in milliseconds. The `base` option will be + * ignored if this option is supplied. + * + * @!attribute httpOptions + * @return [map] A set of options to pass to the low-level HTTP request. + * Currently supported options are: + * + * * **proxy** [String] — the URL to proxy requests through + * * **agent** [http.Agent, https.Agent] — the Agent object to perform + * HTTP requests with. Used for connection pooling. Defaults to the global + * agent (`http.globalAgent`) for non-SSL connections. Note that for + * SSL connections, a special Agent object is used in order to enable + * peer certificate verification. This feature is only supported in the + * Node.js environment. + * * **connectTimeout** [Integer] — Sets the socket to timeout after + * failing to establish a connection with the server after + * `connectTimeout` milliseconds. This timeout has no effect once a socket + * connection has been established. + * * **timeout** [Integer] — Sets the socket to timeout after timeout + * milliseconds of inactivity on the socket. Defaults to two minutes + * (120000) + * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous + * HTTP requests. Used in the browser environment only. Set to false to + * send requests synchronously. Defaults to true (async on). + * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" + * property of an XMLHttpRequest object. Used in the browser environment + * only. Defaults to false. + * @!attribute logger + * @return [#write,#log] an object that responds to .write() (like a stream) + * or .log() (like the console object) in order to log information about + * requests + * + * @!attribute systemClockOffset + * @return [Number] an offset value in milliseconds to apply to all signing + * times. Use this to compensate for clock skew when your system may be + * out of sync with the service time. Note that this configuration option + * can only be applied to the global `AWS.config` object and cannot be + * overridden in service-specific configuration. Defaults to 0 milliseconds. + * + * @!attribute signatureVersion + * @return [String] the signature version to sign requests with (overriding + * the API configuration). Possible values are: 'v2', 'v3', 'v4'. + * + * @!attribute signatureCache + * @return [Boolean] whether the signature to sign requests with (overriding + * the API configuration) is cached. Only applies to the signature version 'v4'. + * Defaults to `true`. + */ + AWS.Config = AWS.util.inherit({ + /** + * @!endgroup + */ + + /** + * Creates a new configuration object. This is the object that passes + * option data along to service requests, including credentials, security, + * region information, and some service specific settings. + * + * @example Creating a new configuration object with credentials and region + * var config = new AWS.Config({ + * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2' + * }); + * @option options accessKeyId [String] your AWS access key ID. + * @option options secretAccessKey [String] your AWS secret access key. + * @option options sessionToken [AWS.Credentials] the optional AWS + * session token to sign requests with. + * @option options credentials [AWS.Credentials] the AWS credentials + * to sign requests with. You can either specify this object, or + * specify the accessKeyId and secretAccessKey options directly. + * @option options credentialProvider [AWS.CredentialProviderChain] the + * provider chain used to resolve credentials if no static `credentials` + * property is set. + * @option options region [String] the region to send service requests to. + * See {region} for more information. + * @option options maxRetries [Integer] the maximum amount of retries to + * attempt with a request. See {maxRetries} for more information. + * @option options maxRedirects [Integer] the maximum amount of redirects to + * follow with a request. See {maxRedirects} for more information. + * @option options sslEnabled [Boolean] whether to enable SSL for + * requests. + * @option options paramValidation [Boolean|map] whether input parameters + * should be validated against the operation description before sending + * the request. Defaults to true. Pass a map to enable any of the + * following specific validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + * @option options computeChecksums [Boolean] whether to compute checksums + * for payload bodies when the service accepts it (currently supported + * in S3 only) + * @option options convertResponseTypes [Boolean] whether types are converted + * when parsing response data. Currently only supported for JSON based + * services. Turning this off may improve performance on large response + * payloads. Defaults to `true`. + * @option options correctClockSkew [Boolean] whether to apply a clock skew + * correction and retry requests that fail because of an skewed client + * clock. Defaults to `false`. + * @option options s3ForcePathStyle [Boolean] whether to force path + * style URLs for S3 objects. + * @option options s3BucketEndpoint [Boolean] whether the provided endpoint + * addresses an individual bucket (false if it addresses the root API + * endpoint). Note that setting this configuration option requires an + * `endpoint` to be provided explicitly to the service constructor. + * @option options s3DisableBodySigning [Boolean] whether S3 body signing + * should be disabled when using signature version `v4`. Body signing + * can only be disabled when using https. Defaults to `true`. + * + * @option options retryDelayOptions [map] A set of options to configure + * the retry delay on retryable errors. Currently supported options are: + * + * * **base** [Integer] — The base number of milliseconds to use in the + * exponential backoff for operation retries. Defaults to 100 ms for all + * services except DynamoDB, where it defaults to 50ms. + * * **customBackoff ** [function] — A custom function that accepts a retry count + * and returns the amount of time to delay in milliseconds. The `base` option will be + * ignored if this option is supplied. + * @option options httpOptions [map] A set of options to pass to the low-level + * HTTP request. Currently supported options are: + * + * * **proxy** [String] — the URL to proxy requests through + * * **agent** [http.Agent, https.Agent] — the Agent object to perform + * HTTP requests with. Used for connection pooling. Defaults to the global + * agent (`http.globalAgent`) for non-SSL connections. Note that for + * SSL connections, a special Agent object is used in order to enable + * peer certificate verification. This feature is only available in the + * Node.js environment. + * * **connectTimeout** [Integer] — Sets the socket to timeout after + * failing to establish a connection with the server after + * `connectTimeout` milliseconds. This timeout has no effect once a socket + * connection has been established. + * * **timeout** [Integer] — Sets the socket to timeout after timeout + * milliseconds of inactivity on the socket. Defaults to two minutes + * (120000). + * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous + * HTTP requests. Used in the browser environment only. Set to false to + * send requests synchronously. Defaults to true (async on). + * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" + * property of an XMLHttpRequest object. Used in the browser environment + * only. Defaults to false. + * @option options apiVersion [String, Date] a String in YYYY-MM-DD format + * (or a date) that represents the latest possible API version that can be + * used in all services (unless overridden by `apiVersions`). Specify + * 'latest' to use the latest possible version. + * @option options apiVersions [map] a map of service + * identifiers (the lowercase service class name) with the API version to + * use when instantiating a service. Specify 'latest' for each individual + * that can use the latest available version. + * @option options logger [#write,#log] an object that responds to .write() + * (like a stream) or .log() (like the console object) in order to log + * information about requests + * @option options systemClockOffset [Number] an offset value in milliseconds + * to apply to all signing times. Use this to compensate for clock skew + * when your system may be out of sync with the service time. Note that + * this configuration option can only be applied to the global `AWS.config` + * object and cannot be overridden in service-specific configuration. + * Defaults to 0 milliseconds. + * @option options signatureVersion [String] the signature version to sign + * requests with (overriding the API configuration). Possible values are: + * 'v2', 'v3', 'v4'. + * @option options signatureCache [Boolean] whether the signature to sign + * requests with (overriding the API configuration) is cached. Only applies + * to the signature version 'v4'. Defaults to `true`. + * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32 + * checksum of HTTP response bodies returned by DynamoDB. Default: `true`. + */ + constructor: function Config(options) { + if (options === undefined) options = {}; + options = this.extractCredentials(options); + + AWS.util.each.call(this, this.keys, function (key, value) { + this.set(key, options[key], value); + }); + }, + + /** + * @!group Managing Credentials + */ + + /** + * Loads credentials from the configuration object. This is used internally + * by the SDK to ensure that refreshable {Credentials} objects are properly + * refreshed and loaded when sending a request. If you want to ensure that + * your credentials are loaded prior to a request, you can use this method + * directly to provide accurate credential data stored in the object. + * + * @note If you configure the SDK with static or environment credentials, + * the credential data should already be present in {credentials} attribute. + * This method is primarily necessary to load credentials from asynchronous + * sources, or sources that can refresh credentials periodically. + * @example Getting your access key + * AWS.config.getCredentials(function(err) { + * if (err) console.log(err.stack); // credentials not loaded + * else console.log("Access Key:", AWS.config.credentials.accessKeyId); + * }) + * @callback callback function(err) + * Called when the {credentials} have been properly set on the configuration + * object. + * + * @param err [Error] if this is set, credentials were not successfully + * loaded and this error provides information why. + * @see credentials + * @see Credentials + */ + getCredentials: function getCredentials(callback) { + var self = this; + + function finish(err) { + callback(err, err ? null : self.credentials); + } - isObject = __webpack_require__(38); + function credError(msg, err) { + return new AWS.util.error(err || new Error(), { + code: 'CredentialsError', + message: msg, + name: 'CredentialsError' + }); + } - module.exports = XMLDTDEntity = (function() { - function XMLDTDEntity(parent, pe, name, value) { - this.stringify = parent.stringify; - if (name == null) { - throw new Error("Missing entity name"); - } - if (value == null) { - throw new Error("Missing entity value"); - } - this.pe = !!pe; - this.name = this.stringify.eleName(name); - if (!isObject(value)) { - this.value = this.stringify.dtdEntityValue(value); - } else { - if (!value.pubID && !value.sysID) { - throw new Error("Public and/or system identifiers are required for an external entity"); - } - if (value.pubID && !value.sysID) { - throw new Error("System identifier is required for a public external entity"); + function getAsyncCredentials() { + self.credentials.get(function(err) { + if (err) { + var msg = 'Could not load credentials from ' + + self.credentials.constructor.name; + err = credError(msg, err); } - if (value.pubID != null) { - this.pubID = this.stringify.dtdPubID(value.pubID); - } - if (value.sysID != null) { - this.sysID = this.stringify.dtdSysID(value.sysID); - } - if (value.nData != null) { - this.nData = this.stringify.dtdNData(value.nData); - } - if (this.pe && this.nData) { - throw new Error("Notation declaration is not allowed in a parameter entity"); - } - } + finish(err); + }); } - XMLDTDEntity.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; + function getStaticCredentials() { + var err = null; + if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) { + err = credError('Missing credentials'); } - r += ''; - if (pretty) { - r += newline; - } - return r; - }; + }); + }, + + /** + * Loads configuration data from a JSON file into this config object. + * @note Loading configuration will reset all existing configuration + * on the object. + * @!macro nobrowser + * @param path [String] the path relative to your process's current + * working directory to load configuration from. + * @return [AWS.Config] the same configuration object + */ + loadFromPath: function loadFromPath(path) { + this.clear(); + + var options = JSON.parse(AWS.util.readFileSync(path)); + var fileSystemCreds = new AWS.FileSystemCredentials(path); + var chain = new AWS.CredentialProviderChain(); + chain.providers.unshift(fileSystemCreds); + chain.resolve(function (err, creds) { + if (err) throw err; + else options.credentials = creds; + }); - return XMLDTDEntity; + this.constructor(options); - })(); + return this; + }, - }).call(this); + /** + * Clears configuration data on this object + * + * @api private + */ + clear: function clear() { + /*jshint forin:false */ + AWS.util.each.call(this, this.keys, function (key) { + delete this[key]; + }); + + // reset credential provider + this.set('credentials', undefined); + this.set('credentialProvider', undefined); + }, + + /** + * Sets a property on the configuration object, allowing for a + * default value + * @api private + */ + set: function set(property, value, defaultValue) { + if (value === undefined) { + if (defaultValue === undefined) { + defaultValue = this.keys[property]; + } + if (typeof defaultValue === 'function') { + this[property] = defaultValue.call(this); + } else { + this[property] = defaultValue; + } + } else if (property === 'httpOptions' && this[property]) { + // deep merge httpOptions + this[property] = AWS.util.merge(this[property], value); + } else { + this[property] = value; + } + }, + + /** + * All of the keys with their default values. + * + * @constant + * @api private + */ + keys: { + credentials: null, + credentialProvider: null, + region: null, + logger: null, + apiVersions: {}, + apiVersion: null, + endpoint: undefined, + httpOptions: { + timeout: 120000 + }, + maxRetries: undefined, + maxRedirects: 10, + paramValidation: true, + sslEnabled: true, + s3ForcePathStyle: false, + s3BucketEndpoint: false, + s3DisableBodySigning: true, + computeChecksums: true, + convertResponseTypes: true, + correctClockSkew: false, + customUserAgent: null, + dynamoDbCrc32: true, + systemClockOffset: 0, + signatureVersion: null, + signatureCache: true, + retryDelayOptions: {}, + useAccelerateEndpoint: false + }, + + /** + * Extracts accessKeyId, secretAccessKey and sessionToken + * from a configuration hash. + * + * @api private + */ + extractCredentials: function extractCredentials(options) { + if (options.accessKeyId && options.secretAccessKey) { + options = AWS.util.copy(options); + options.credentials = new AWS.Credentials(options); + } + return options; + }, + + /** + * Sets the promise dependency the SDK will use wherever Promises are returned. + * Passing `null` will force the SDK to use native Promises if they are available. + * If native Promises are not available, passing `null` will have no effect. + * @param [Constructor] dep A reference to a Promise constructor + */ + setPromisesDependency: function setPromisesDependency(dep) { + PromisesDependency = dep; + // if null was passed in, we should try to use native promises + if (dep === null && typeof Promise === 'function') { + PromisesDependency = Promise; + } + var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain]; + if (AWS.S3 && AWS.S3.ManagedUpload) constructors.push(AWS.S3.ManagedUpload); + AWS.util.addPromises(constructors, PromisesDependency); + }, + + /** + * Gets the promise dependency set by `AWS.config.setPromisesDependency`. + */ + getPromisesDependency: function getPromisesDependency() { + return PromisesDependency; + } + }); + + /** + * @return [AWS.Config] The global configuration object singleton instance + * @readonly + * @see AWS.Config + */ + AWS.config = new AWS.Config(); /***/ }), -/* 178 */ +/* 191 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLDTDElement, create; - - create = __webpack_require__(79); + var AWS = __webpack_require__(1); - module.exports = XMLDTDElement = (function() { - function XMLDTDElement(parent, name, value) { - this.stringify = parent.stringify; - if (name == null) { - throw new Error("Missing DTD element name"); - } - if (!value) { - value = '(#PCDATA)'; - } - if (Array.isArray(value)) { - value = '(' + value.join(',') + ')'; - } - this.name = this.stringify.eleName(name); - this.value = this.stringify.dtdElementValue(value); + /** + * Represents your AWS security credentials, specifically the + * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. + * Creating a `Credentials` object allows you to pass around your + * security information to configuration and service objects. + * + * Note that this class typically does not need to be constructed manually, + * as the {AWS.Config} and {AWS.Service} classes both accept simple + * options hashes with the three keys. These structures will be converted + * into Credentials objects automatically. + * + * ## Expiring and Refreshing Credentials + * + * Occasionally credentials can expire in the middle of a long-running + * application. In this case, the SDK will automatically attempt to + * refresh the credentials from the storage location if the Credentials + * class implements the {refresh} method. + * + * If you are implementing a credential storage location, you + * will want to create a subclass of the `Credentials` class and + * override the {refresh} method. This method allows credentials to be + * retrieved from the backing store, be it a file system, database, or + * some network storage. The method should reset the credential attributes + * on the object. + * + * @!attribute expired + * @return [Boolean] whether the credentials have been expired and + * require a refresh. Used in conjunction with {expireTime}. + * @!attribute expireTime + * @return [Date] a time when credentials should be considered expired. Used + * in conjunction with {expired}. + * @!attribute accessKeyId + * @return [String] the AWS access key ID + * @!attribute secretAccessKey + * @return [String] the AWS secret access key + * @!attribute sessionToken + * @return [String] an optional AWS session token + */ + AWS.Credentials = AWS.util.inherit({ + /** + * A credentials object can be created using positional arguments or an options + * hash. + * + * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) + * Creates a Credentials object with a given set of credential information + * as positional arguments. + * @param accessKeyId [String] the AWS access key ID + * @param secretAccessKey [String] the AWS secret access key + * @param sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials('akid', 'secret', 'session'); + * @overload AWS.Credentials(options) + * Creates a Credentials object with a given set of credential information + * as an options hash. + * @option options accessKeyId [String] the AWS access key ID + * @option options secretAccessKey [String] the AWS secret access key + * @option options sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials({ + * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' + * }); + */ + constructor: function Credentials() { + // hide secretAccessKey from being displayed with util.inspect + AWS.util.hideProperties(this, ['secretAccessKey']); + + this.expired = false; + this.expireTime = null; + if (arguments.length === 1 && typeof arguments[0] === 'object') { + var creds = arguments[0].credentials || arguments[0]; + this.accessKeyId = creds.accessKeyId; + this.secretAccessKey = creds.secretAccessKey; + this.sessionToken = creds.sessionToken; + } else { + this.accessKeyId = arguments[0]; + this.secretAccessKey = arguments[1]; + this.sessionToken = arguments[2]; } + }, + + /** + * @return [Integer] the number of seconds before {expireTime} during which + * the credentials will be considered expired. + */ + expiryWindow: 15, + + /** + * @return [Boolean] whether the credentials object should call {refresh} + * @note Subclasses should override this method to provide custom refresh + * logic. + */ + needsRefresh: function needsRefresh() { + var currentTime = AWS.util.date.getDate().getTime(); + var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); + + if (this.expireTime && adjustedTime > this.expireTime) { + return true; + } else { + return this.expired || !this.accessKeyId || !this.secretAccessKey; + } + }, + + /** + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * @callback callback function(err) + * When this callback is called with no error, it means either credentials + * do not need to be refreshed or refreshed credentials information has + * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, + * and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + */ + get: function get(callback) { + var self = this; + if (this.needsRefresh()) { + this.refresh(function(err) { + if (!err) self.expired = false; // reset expired flag + if (callback) callback(err); + }); + } else if (callback) { + callback(); + } + }, + + /** + * @!method getPromise() + * Returns a 'thenable' promise. + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means either credentials do not need to be refreshed or refreshed + * credentials information has been loaded into the object (as the + * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled + * @return [Promise] A promise that represents the state of the `get` call. + * @example Calling the `getPromise` method. + * var promise = credProvider.getPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * @!method refreshPromise() + * Returns a 'thenable' promise. + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means refreshed credentials information has been loaded into the object + * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled + * @return [Promise] A promise that represents the state of the `refresh` call. + * @example Calling the `refreshPromise` method. + * var promise = credProvider.refreshPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * @callback callback function(err) + * When this callback is called with no error, it means refreshed + * credentials information has been loaded into the object (as the + * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @note Subclasses should override this class to reset the + * {accessKeyId}, {secretAccessKey} and optional {sessionToken} + * on the credentials object and then call the callback with + * any error information. + * @see get + */ + refresh: function refresh(callback) { + this.expired = false; + callback(); + } + }); - XMLDTDElement.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; - } - r += ''; - if (pretty) { - r += newline; - } - return r; - }; - - return XMLDTDElement; + /** + * @api private + */ + AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); + this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); + }; - })(); + /** + * @api private + */ + AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.getPromise; + delete this.prototype.refreshPromise; + }; - }).call(this); + AWS.util.addPromises(AWS.Credentials); /***/ }), -/* 179 */ +/* 192 */ /***/ (function(module, exports, __webpack_require__) { - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLDTDNotation, create; - - create = __webpack_require__(79); + var AWS = __webpack_require__(1); - module.exports = XMLDTDNotation = (function() { - function XMLDTDNotation(parent, name, value) { - this.stringify = parent.stringify; - if (name == null) { - throw new Error("Missing notation name"); - } - if (!value.pubID && !value.sysID) { - throw new Error("Public or system identifiers are required for an external entity"); - } - this.name = this.stringify.eleName(name); - if (value.pubID != null) { - this.pubID = this.stringify.dtdPubID(value.pubID); - } - if (value.sysID != null) { - this.sysID = this.stringify.dtdSysID(value.sysID); - } + /** + * Creates a credential provider chain that searches for AWS credentials + * in a list of credential providers specified by the {providers} property. + * + * By default, the chain will use the {defaultProviders} to resolve credentials. + * These providers will look in the environment using the + * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. + * + * ## Setting Providers + * + * Each provider in the {providers} list should be a function that returns + * a {AWS.Credentials} object, or a hardcoded credentials object. The function + * form allows for delayed execution of the credential construction. + * + * ## Resolving Credentials from a Chain + * + * Call {resolve} to return the first valid credential object that can be + * loaded by the provider chain. + * + * For example, to resolve a chain with a custom provider that checks a file + * on disk after the set of {defaultProviders}: + * + * ```javascript + * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); + * var chain = new AWS.CredentialProviderChain(); + * chain.providers.push(diskProvider); + * chain.resolve(); + * ``` + * + * The above code will return the `diskProvider` object if the + * file contains credentials and the `defaultProviders` do not contain + * any credential settings. + * + * @!attribute providers + * @return [Array] + * a list of credentials objects or functions that return credentials + * objects. If the provider is a function, the function will be + * executed lazily when the provider needs to be checked for valid + * credentials. By default, this object will be set to the + * {defaultProviders}. + * @see defaultProviders + */ + AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { + + /** + * Creates a new CredentialProviderChain with a default set of providers + * specified by {defaultProviders}. + */ + constructor: function CredentialProviderChain(providers) { + if (providers) { + this.providers = providers; + } else { + this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); + } + }, + + /** + * @!method resolvePromise() + * Returns a 'thenable' promise. + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(credentials) + * Called if the promise is fulfilled and the provider resolves the chain + * to a credentials object + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param err [Error] the error object returned if no credentials are found. + * @return [Promise] A promise that represents the state of the `resolve` method call. + * @example Calling the `resolvePromise` method. + * var promise = chain.resolvePromise(); + * promise.then(function(credentials) { ... }, function(err) { ... }); + */ + + /** + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * @callback callback function(err, credentials) + * Called when the provider resolves the chain to a credentials object + * or null if no credentials can be found. + * + * @param err [Error] the error object returned if no credentials are + * found. + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @return [AWS.CredentialProviderChain] the provider, for chaining. + */ + resolve: function resolve(callback) { + if (this.providers.length === 0) { + callback(new Error('No providers')); + return this; } - XMLDTDNotation.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; - } - r += ''; - if (pretty) { - r += newline; + + var provider = providers[index++]; + if (typeof provider === 'function') { + creds = provider.call(); + } else { + creds = provider; } - return r; - }; - return XMLDTDNotation; + if (creds.get) { + creds.get(function(getErr) { + resolveNext(getErr, getErr ? null : creds); + }); + } else { + resolveNext(null, creds); + } + } - })(); + resolveNext(); + return this; + } + }); - }).call(this); + /** + * The default set of providers used by a vanilla CredentialProviderChain. + * + * In the browser: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [] + * ``` + * + * In Node.js: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [ + * function () { return new AWS.EnvironmentCredentials('AWS'); }, + * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + * function () { return new AWS.SharedIniFileCredentials(); }, + * function () { + * // if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set + * return new AWS.ECSCredentials(); + * // else + * return new AWS.EC2MetadataCredentials(); + * } + * ] + * ``` + */ + AWS.CredentialProviderChain.defaultProviders = []; + /** + * @api private + */ + AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); + }; -/***/ }), -/* 180 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * @api private + */ + AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.resolvePromise; + }; - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLNode, XMLRaw, create, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; + AWS.util.addPromises(AWS.CredentialProviderChain); - create = __webpack_require__(79); - XMLNode = __webpack_require__(82); +/***/ }), +/* 193 */ +/***/ (function(module, exports, __webpack_require__) { - module.exports = XMLRaw = (function(superClass) { - extend(XMLRaw, superClass); + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; - function XMLRaw(parent, text) { - XMLRaw.__super__.constructor.call(this, parent); - if (text == null) { - throw new Error("Missing raw text"); - } - this.value = this.stringify.raw(text); + /** + * The endpoint that a service will talk to, for example, + * `'https://ec2.ap-southeast-1.amazonaws.com'`. If + * you need to override an endpoint for a service, you can + * set the endpoint on a service by passing the endpoint + * object with the `endpoint` option key: + * + * ```javascript + * var ep = new AWS.Endpoint('awsproxy.example.com'); + * var s3 = new AWS.S3({endpoint: ep}); + * s3.service.endpoint.hostname == 'awsproxy.example.com' + * ``` + * + * Note that if you do not specify a protocol, the protocol will + * be selected based on your current {AWS.config} configuration. + * + * @!attribute protocol + * @return [String] the protocol (http or https) of the endpoint + * URL + * @!attribute hostname + * @return [String] the host portion of the endpoint, e.g., + * example.com + * @!attribute host + * @return [String] the host portion of the endpoint including + * the port, e.g., example.com:80 + * @!attribute port + * @return [Integer] the port of the endpoint + * @!attribute href + * @return [String] the full URL of the endpoint + */ + AWS.Endpoint = inherit({ + + /** + * @overload Endpoint(endpoint) + * Constructs a new endpoint given an endpoint URL. If the + * URL omits a protocol (http or https), the default protocol + * set in the global {AWS.config} will be used. + * @param endpoint [String] the URL to construct an endpoint from + */ + constructor: function Endpoint(endpoint, config) { + AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); + + if (typeof endpoint === 'undefined' || endpoint === null) { + throw new Error('Invalid endpoint: ' + endpoint); + } else if (typeof endpoint !== 'string') { + return AWS.util.copy(endpoint); } - XMLRaw.prototype.clone = function() { - return create(XMLRaw.prototype, this); - }; + if (!endpoint.match(/^http/)) { + var useSSL = config && config.sslEnabled !== undefined ? + config.sslEnabled : AWS.config.sslEnabled; + endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; + } - XMLRaw.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; - } - r += this.value; - if (pretty) { - r += newline; - } - return r; - }; + AWS.util.update(this, AWS.util.urlParse(endpoint)); - return XMLRaw; + // Ensure the port property is set as an integer + if (this.port) { + this.port = parseInt(this.port, 10); + } else { + this.port = this.protocol === 'https:' ? 443 : 80; + } + } - })(XMLNode); + }); - }).call(this); + /** + * The low level HTTP request object, encapsulating all HTTP header + * and body data sent by a service request. + * + * @!attribute method + * @return [String] the HTTP method of the request + * @!attribute path + * @return [String] the path portion of the URI, e.g., + * "/list/?start=5&num=10" + * @!attribute headers + * @return [map] + * a map of header keys and their respective values + * @!attribute body + * @return [String] the request body payload + * @!attribute endpoint + * @return [AWS.Endpoint] the endpoint for the request + * @!attribute region + * @api private + * @return [String] the region, for signing purposes only. + */ + AWS.HttpRequest = inherit({ + + /** + * @api private + */ + constructor: function HttpRequest(endpoint, region) { + endpoint = new AWS.Endpoint(endpoint); + this.method = 'POST'; + this.path = endpoint.path || '/'; + this.headers = {}; + this.body = ''; + this.endpoint = endpoint; + this.region = region; + this._userAgent = ''; + this.setUserAgent(); + }, + + /** + * @api private + */ + setUserAgent: function setUserAgent() { + this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); + }, + + getUserAgentHeaderName: function getUserAgentHeaderName() { + var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; + return prefix + 'User-Agent'; + }, + + /** + * @api private + */ + appendToUserAgent: function appendToUserAgent(agentPartial) { + if (typeof agentPartial === 'string' && agentPartial) { + this._userAgent += ' ' + agentPartial; + } + this.headers[this.getUserAgentHeaderName()] = this._userAgent; + }, + + /** + * @api private + */ + getUserAgent: function getUserAgent() { + return this._userAgent; + }, + + /** + * @return [String] the part of the {path} excluding the + * query string + */ + pathname: function pathname() { + return this.path.split('?', 1)[0]; + }, + + /** + * @return [String] the query string portion of the {path} + */ + search: function search() { + var query = this.path.split('?', 2)[1]; + if (query) { + query = AWS.util.queryStringParse(query); + return AWS.util.queryParamsToString(query); + } + return ''; + } + }); -/***/ }), -/* 181 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * The low level HTTP response object, encapsulating all HTTP header + * and body data returned from the request. + * + * @!attribute statusCode + * @return [Integer] the HTTP status code of the response (e.g., 200, 404) + * @!attribute headers + * @return [map] + * a map of response header keys and their respective values + * @!attribute body + * @return [String] the response body payload + * @!attribute [r] streaming + * @return [Boolean] whether this response is being streamed at a low-level. + * Defaults to `false` (buffered reads). Do not modify this manually, use + * {createUnbufferedStream} to convert the stream to unbuffered mode + * instead. + */ + AWS.HttpResponse = inherit({ + + /** + * @api private + */ + constructor: function HttpResponse() { + this.statusCode = undefined; + this.headers = {}; + this.body = undefined; + this.streaming = false; + this.stream = null; + }, + + /** + * Disables buffering on the HTTP response and returns the stream for reading. + * @return [Stream, XMLHttpRequest, null] the underlying stream object. + * Use this object to directly read data off of the stream. + * @note This object is only available after the {AWS.Request~httpHeaders} + * event has fired. This method must be called prior to + * {AWS.Request~httpData}. + * @example Taking control of a stream + * request.on('httpHeaders', function(statusCode, headers) { + * if (statusCode < 300) { + * if (headers.etag === 'xyz') { + * // pipe the stream, disabling buffering + * var stream = this.response.httpResponse.createUnbufferedStream(); + * stream.pipe(process.stdout); + * } else { // abort this request and set a better error message + * this.abort(); + * this.response.error = new Error('Invalid ETag'); + * } + * } + * }).send(console.log); + */ + createUnbufferedStream: function createUnbufferedStream() { + this.streaming = true; + return this.stream; + } + }); - // Generated by CoffeeScript 1.9.1 - (function() { - var XMLNode, XMLText, create, - extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, - hasProp = {}.hasOwnProperty; - create = __webpack_require__(79); + AWS.HttpClient = inherit({}); - XMLNode = __webpack_require__(82); + /** + * @api private + */ + AWS.HttpClient.getInstance = function getInstance() { + if (this.singleton === undefined) { + this.singleton = new this(); + } + return this.singleton; + }; - module.exports = XMLText = (function(superClass) { - extend(XMLText, superClass); - function XMLText(parent, text) { - XMLText.__super__.constructor.call(this, parent); - if (text == null) { - throw new Error("Missing element text"); - } - this.value = this.stringify.eleText(text); - } +/***/ }), +/* 194 */ +/***/ (function(module, exports, __webpack_require__) { - XMLText.prototype.clone = function() { - return create(XMLText.prototype, this); - }; + var AWS = __webpack_require__(1); - XMLText.prototype.toString = function(options, level) { - var indent, newline, offset, pretty, r, ref, ref1, ref2, space; - pretty = (options != null ? options.pretty : void 0) || false; - indent = (ref = options != null ? options.indent : void 0) != null ? ref : ' '; - offset = (ref1 = options != null ? options.offset : void 0) != null ? ref1 : 0; - newline = (ref2 = options != null ? options.newline : void 0) != null ? ref2 : '\n'; - level || (level = 0); - space = new Array(level + offset + 1).join(indent); - r = ''; - if (pretty) { - r += space; + /** + * @api private + * @!method on(eventName, callback) + * Registers an event listener callback for the event given by `eventName`. + * Parameters passed to the callback function depend on the individual event + * being triggered. See the event documentation for those parameters. + * + * @param eventName [String] the event name to register the listener for + * @param callback [Function] the listener callback function + * @return [AWS.SequentialExecutor] the same object for chaining + */ + AWS.SequentialExecutor = AWS.util.inherit({ + + constructor: function SequentialExecutor() { + this._events = {}; + }, + + /** + * @api private + */ + listeners: function listeners(eventName) { + return this._events[eventName] ? this._events[eventName].slice(0) : []; + }, + + on: function on(eventName, listener) { + if (this._events[eventName]) { + this._events[eventName].push(listener); + } else { + this._events[eventName] = [listener]; + } + return this; + }, + + /** + * @api private + */ + onAsync: function onAsync(eventName, listener) { + listener._isAsync = true; + return this.on(eventName, listener); + }, + + removeListener: function removeListener(eventName, listener) { + var listeners = this._events[eventName]; + if (listeners) { + var length = listeners.length; + var position = -1; + for (var i = 0; i < length; ++i) { + if (listeners[i] === listener) { + position = i; + } } - r += this.value; - if (pretty) { - r += newline; + if (position > -1) { + listeners.splice(position, 1); } - return r; - }; - - return XMLText; + } + return this; + }, - })(XMLNode); + removeAllListeners: function removeAllListeners(eventName) { + if (eventName) { + delete this._events[eventName]; + } else { + this._events = {}; + } + return this; + }, + + /** + * @api private + */ + emit: function emit(eventName, eventArgs, doneCallback) { + if (!doneCallback) doneCallback = function() { }; + var listeners = this.listeners(eventName); + var count = listeners.length; + this.callListeners(listeners, eventArgs, doneCallback); + return count > 0; + }, + + /** + * @api private + */ + callListeners: function callListeners(listeners, args, doneCallback, prevError) { + var self = this; + var error = prevError || null; + + function callNextListener(err) { + if (err) { + error = AWS.util.error(error || new Error(), err); + if (self._haltHandlersOnError) { + return doneCallback.call(self, error); + } + } + self.callListeners(listeners, args, doneCallback, error); + } - }).call(this); + while (listeners.length > 0) { + var listener = listeners.shift(); + if (listener._isAsync) { // asynchronous listener + listener.apply(self, args.concat([callNextListener])); + return; // stop here, callNextListener will continue + } else { // synchronous listener + try { + listener.apply(self, args); + } catch (err) { + error = AWS.util.error(error || new Error(), err); + } + if (error && self._haltHandlersOnError) { + doneCallback.call(self, error); + return; + } + } + } + doneCallback.call(self, error); + }, + + /** + * Adds or copies a set of listeners from another list of + * listeners or SequentialExecutor object. + * + * @param listeners [map>, AWS.SequentialExecutor] + * a list of events and callbacks, or an event emitter object + * containing listeners to add to this emitter object. + * @return [AWS.SequentialExecutor] the emitter object, for chaining. + * @example Adding listeners from a map of listeners + * emitter.addListeners({ + * event1: [function() { ... }, function() { ... }], + * event2: [function() { ... }] + * }); + * emitter.emit('event1'); // emitter has event1 + * emitter.emit('event2'); // emitter has event2 + * @example Adding listeners from another emitter object + * var emitter1 = new AWS.SequentialExecutor(); + * emitter1.on('event1', function() { ... }); + * emitter1.on('event2', function() { ... }); + * var emitter2 = new AWS.SequentialExecutor(); + * emitter2.addListeners(emitter1); + * emitter2.emit('event1'); // emitter2 has event1 + * emitter2.emit('event2'); // emitter2 has event2 + */ + addListeners: function addListeners(listeners) { + var self = this; + + // extract listeners if parameter is an SequentialExecutor object + if (listeners._events) listeners = listeners._events; + + AWS.util.each(listeners, function(event, callbacks) { + if (typeof callbacks === 'function') callbacks = [callbacks]; + AWS.util.arrayEach(callbacks, function(callback) { + self.on(event, callback); + }); + }); + return self; + }, + + /** + * Registers an event with {on} and saves the callback handle function + * as a property on the emitter object using a given `name`. + * + * @param name [String] the property name to set on this object containing + * the callback function handle so that the listener can be removed in + * the future. + * @param (see on) + * @return (see on) + * @example Adding a named listener DATA_CALLBACK + * var listener = function() { doSomething(); }; + * emitter.addNamedListener('DATA_CALLBACK', 'data', listener); + * + * // the following prints: true + * console.log(emitter.DATA_CALLBACK == listener); + */ + addNamedListener: function addNamedListener(name, eventName, callback) { + this[name] = callback; + this.addListener(eventName, callback); + return this; + }, + + /** + * @api private + */ + addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) { + callback._isAsync = true; + return this.addNamedListener(name, eventName, callback); + }, + + /** + * Helper method to add a set of named listeners using + * {addNamedListener}. The callback contains a parameter + * with a handle to the `addNamedListener` method. + * + * @callback callback function(add) + * The callback function is called immediately in order to provide + * the `add` function to the block. This simplifies the addition of + * a large group of named listeners. + * @param add [Function] the {addNamedListener} function to call + * when registering listeners. + * @example Adding a set of named listeners + * emitter.addNamedListeners(function(add) { + * add('DATA_CALLBACK', 'data', function() { ... }); + * add('OTHER', 'otherEvent', function() { ... }); + * add('LAST', 'lastEvent', function() { ... }); + * }); + * + * // these properties are now set: + * emitter.DATA_CALLBACK; + * emitter.OTHER; + * emitter.LAST; + */ + addNamedListeners: function addNamedListeners(callback) { + var self = this; + callback( + function() { + self.addNamedListener.apply(self, arguments); + }, + function() { + self.addNamedAsyncListener.apply(self, arguments); + } + ); + return this; + } + }); -/***/ }), -/* 182 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * {on} is the prefered method. + * @api private + */ + AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; - var Collection = __webpack_require__(19); - var Operation = __webpack_require__(183); - var Shape = __webpack_require__(18); - var Paginator = __webpack_require__(184); - var ResourceWaiter = __webpack_require__(185); - - var util = __webpack_require__(2); - var property = util.property; - var memoizedProperty = util.memoizedProperty; - - function Api(api, options) { - api = api || {}; - options = options || {}; - options.api = this; - - api.metadata = api.metadata || {}; - - property(this, 'isApi', true, false); - property(this, 'apiVersion', api.metadata.apiVersion); - property(this, 'endpointPrefix', api.metadata.endpointPrefix); - property(this, 'signingName', api.metadata.signingName); - property(this, 'globalEndpoint', api.metadata.globalEndpoint); - property(this, 'signatureVersion', api.metadata.signatureVersion); - property(this, 'jsonVersion', api.metadata.jsonVersion); - property(this, 'targetPrefix', api.metadata.targetPrefix); - property(this, 'protocol', api.metadata.protocol); - property(this, 'timestampFormat', api.metadata.timestampFormat); - property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); - property(this, 'abbreviation', api.metadata.serviceAbbreviation); - property(this, 'fullName', api.metadata.serviceFullName); - - memoizedProperty(this, 'className', function() { - var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; - if (!name) return null; - - name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); - if (name === 'ElasticLoadBalancing') name = 'ELB'; - return name; - }); - - property(this, 'operations', new Collection(api.operations, options, function(name, operation) { - return new Operation(name, operation, options); - }, util.string.lowerFirst)); - - property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { - return Shape.create(shape, options); - })); - - property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { - return new Paginator(name, paginator, options); - })); - - property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { - return new ResourceWaiter(name, waiter, options); - }, util.string.lowerFirst)); - - if (options.documentation) { - property(this, 'documentation', api.documentation); - property(this, 'documentationUrl', api.documentationUrl); - } - } - - module.exports = Api; + module.exports = AWS.SequentialExecutor; /***/ }), -/* 183 */ +/* 195 */ /***/ (function(module, exports, __webpack_require__) { - var Shape = __webpack_require__(18); - - var util = __webpack_require__(2); - var property = util.property; - var memoizedProperty = util.memoizedProperty; - - function Operation(name, operation, options) { - var self = this; - options = options || {}; - - property(this, 'name', operation.name || name); - property(this, 'api', options.api, false); - - operation.http = operation.http || {}; - property(this, 'httpMethod', operation.http.method || 'POST'); - property(this, 'httpPath', operation.http.requestUri || '/'); - property(this, 'authtype', operation.authtype || ''); - - memoizedProperty(this, 'input', function() { - if (!operation.input) { - return new Shape.create({type: 'structure'}, options); - } - return Shape.create(operation.input, options); - }); - - memoizedProperty(this, 'output', function() { - if (!operation.output) { - return new Shape.create({type: 'structure'}, options); - } - return Shape.create(operation.output, options); - }); - - memoizedProperty(this, 'errors', function() { - var list = []; - if (!operation.errors) return null; - - for (var i = 0; i < operation.errors.length; i++) { - list.push(Shape.create(operation.errors[i], options)); - } - - return list; - }); - - memoizedProperty(this, 'paginator', function() { - return options.api.paginators[name]; - }); - - if (options.documentation) { - property(this, 'documentation', operation.documentation); - property(this, 'documentationUrl', operation.documentationUrl); - } - - // idempotentMembers only tracks top-level input shapes - memoizedProperty(this, 'idempotentMembers', function() { - var idempotentMembers = []; - var input = self.input; - var members = input.members; - if (!input.members) { - return idempotentMembers; - } - for (var name in members) { - if (!members.hasOwnProperty(name)) { - continue; - } - if (members[name].isIdempotent === true) { - idempotentMembers.push(name); - } - } - return idempotentMembers; - }); - - } - - module.exports = Operation; - + var AWS = __webpack_require__(1); + var SequentialExecutor = __webpack_require__(194); + /** + * The namespace used to register global event listeners for request building + * and sending. + */ + AWS.EventListeners = { + /** + * @!attribute VALIDATE_CREDENTIALS + * A request listener that validates whether the request is being + * sent with credentials. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating credentials + * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS; + * request.removeListener('validate', listener); + * @readonly + * @return [Function] + * @!attribute VALIDATE_REGION + * A request listener that validates whether the region is set + * for a request. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating region configuration + * var listener = AWS.EventListeners.Core.VALIDATE_REGION; + * request.removeListener('validate', listener); + * @readonly + * @return [Function] + * @!attribute VALIDATE_PARAMETERS + * A request listener that validates input parameters in a request. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating parameters + * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS; + * request.removeListener('validate', listener); + * @example Disable parameter validation globally + * AWS.EventListeners.Core.removeListener('validate', + * AWS.EventListeners.Core.VALIDATE_REGION); + * @readonly + * @return [Function] + * @!attribute SEND + * A request listener that initiates the HTTP connection for a + * request being sent. Handles the {AWS.Request~send 'send' Request event} + * @example Replacing the HTTP handler + * var listener = AWS.EventListeners.Core.SEND; + * request.removeListener('send', listener); + * request.on('send', function(response) { + * customHandler.send(response); + * }); + * @return [Function] + * @readonly + * @!attribute HTTP_DATA + * A request listener that reads data from the HTTP connection in order + * to build the response data. + * Handles the {AWS.Request~httpData 'httpData' Request event}. + * Remove this handler if you are overriding the 'httpData' event and + * do not want extra data processing and buffering overhead. + * @example Disabling default data processing + * var listener = AWS.EventListeners.Core.HTTP_DATA; + * request.removeListener('httpData', listener); + * @return [Function] + * @readonly + */ + Core: {} /* doc hack */ + }; -/***/ }), -/* 184 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * @api private + */ + function getOperationAuthtype(req) { + if (!req.service.api.operations) { + return ''; + } + var operation = req.service.api.operations[req.operation]; + return operation ? operation.authtype : ''; + } - var property = __webpack_require__(2).property; - - function Paginator(name, paginator) { - property(this, 'inputToken', paginator.input_token); - property(this, 'limitKey', paginator.limit_key); - property(this, 'moreResults', paginator.more_results); - property(this, 'outputToken', paginator.output_token); - property(this, 'resultKey', paginator.result_key); - } - - module.exports = Paginator; + AWS.EventListeners = { + Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) { + addAsync('VALIDATE_CREDENTIALS', 'validate', + function VALIDATE_CREDENTIALS(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + req.service.config.getCredentials(function(err) { + if (err) { + req.response.error = AWS.util.error(err, + {code: 'CredentialsError', message: 'Missing credentials in config'}); + } + done(); + }); + }); + add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { + if (!req.service.config.region && !req.service.isGlobalEndpoint) { + req.response.error = AWS.util.error(new Error(), + {code: 'ConfigError', message: 'Missing region in config'}); + } + }); -/***/ }), -/* 185 */ -/***/ (function(module, exports, __webpack_require__) { + add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) { + if (!req.service.api.operations) { + return; + } + var operation = req.service.api.operations[req.operation]; + if (!operation) { + return; + } + var idempotentMembers = operation.idempotentMembers; + if (!idempotentMembers.length) { + return; + } + // creates a copy of params so user's param object isn't mutated + var params = AWS.util.copy(req.params); + for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) { + if (!params[idempotentMembers[i]]) { + // add the member + params[idempotentMembers[i]] = AWS.util.uuid.v4(); + } + } + req.params = params; + }); - var util = __webpack_require__(2); - var property = util.property; - - function ResourceWaiter(name, waiter, options) { - options = options || {}; - property(this, 'name', name); - property(this, 'api', options.api, false); - - if (waiter.operation) { - property(this, 'operation', util.string.lowerFirst(waiter.operation)); - } - - var self = this; - var keys = [ - 'type', - 'description', - 'delay', - 'maxAttempts', - 'acceptors' - ]; - - keys.forEach(function(key) { - var value = waiter[key]; - if (value) { - property(self, key, value); - } - }); - } - - module.exports = ResourceWaiter; + add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { + if (!req.service.api.operations) { + return; + } + var rules = req.service.api.operations[req.operation].input; + var validation = req.service.config.paramValidation; + new AWS.ParamValidator(validation).validate(rules, req.params); + }); + addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { + req.haltHandlersOnError(); + if (!req.service.api.operations) { + return; + } + var operation = req.service.api.operations[req.operation]; + var authtype = operation ? operation.authtype : ''; + if (!req.service.api.signatureVersion && !authtype) return done(); // none + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + var body = req.httpRequest.body || ''; + if (authtype.indexOf('unsigned-body') >= 0) { + req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; + return done(); + } + AWS.util.computeSha256(body, function(err, sha) { + if (err) { + done(err); + } + else { + req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; + done(); + } + }); + } else { + done(); + } + }); -/***/ }), -/* 186 */ -/***/ (function(module, exports) { + add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) { + var authtype = getOperationAuthtype(req); + if (req.httpRequest.headers['Content-Length'] === undefined + && authtype.indexOf('unsigned-body') === -1) { + var length = AWS.util.string.byteLength(req.httpRequest.body); + req.httpRequest.headers['Content-Length'] = length; + } + }); - function apiLoader(svc, version) { - if (!apiLoader.services.hasOwnProperty(svc)) { - throw new Error('InvalidService: Failed to load api for ' + svc); - } - return apiLoader.services[svc][version]; - } - - /** - * This member of AWS.apiLoader is private, but changing it will necessitate a - * change to ../scripts/services-table-generator.ts - */ - apiLoader.services = {}; - module.exports = apiLoader; + add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) { + req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; + }); + add('RESTART', 'restart', function RESTART() { + var err = this.response.error; + if (!err || !err.retryable) return; -/***/ }), -/* 187 */ -/***/ (function(module, exports, __webpack_require__) { + this.httpRequest = new AWS.HttpRequest( + this.service.endpoint, + this.service.region + ); - var AWS = __webpack_require__(1); - var Api = __webpack_require__(182); - var regionConfig = __webpack_require__(188); - var inherit = AWS.util.inherit; - var clientCount = 0; - - /** - * The service class representing an AWS service. - * - * @abstract - * - * @!attribute apiVersions - * @return [Array] the list of API versions supported by this service. - * @readonly - */ - AWS.Service = inherit({ - /** - * Create a new service object with a configuration object - * - * @param config [map] a map of configuration options - */ - constructor: function Service(config) { - if (!this.loadServiceClass) { - throw AWS.util.error(new Error(), - 'Service must be constructed with `new\' operator'); - } - var ServiceClass = this.loadServiceClass(config || {}); - if (ServiceClass) { - var originalConfig = AWS.util.copy(config); - var svc = new ServiceClass(config); - Object.defineProperty(svc, '_originalConfig', { - get: function() { return originalConfig; }, - enumerable: false, - configurable: true - }); - svc._clientId = ++clientCount; - return svc; - } - this.initialize(config); - }, - - /** - * @api private - */ - initialize: function initialize(config) { - var svcConfig = AWS.config[this.serviceIdentifier]; - - this.config = new AWS.Config(AWS.config); - if (svcConfig) this.config.update(svcConfig, true); - if (config) this.config.update(config, true); - - this.validateService(); - if (!this.config.endpoint) regionConfig(this); - - this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); - this.setEndpoint(this.config.endpoint); - }, - - /** - * @api private - */ - validateService: function validateService() { - }, - - /** - * @api private - */ - loadServiceClass: function loadServiceClass(serviceConfig) { - var config = serviceConfig; - if (!AWS.util.isEmpty(this.api)) { - return null; - } else if (config.apiConfig) { - return AWS.Service.defineServiceApi(this.constructor, config.apiConfig); - } else if (!this.constructor.services) { - return null; - } else { - config = new AWS.Config(AWS.config); - config.update(serviceConfig, true); - var version = config.apiVersions[this.constructor.serviceIdentifier]; - version = version || config.apiVersion; - return this.getLatestServiceClass(version); - } - }, - - /** - * @api private - */ - getLatestServiceClass: function getLatestServiceClass(version) { - version = this.getLatestServiceVersion(version); - if (this.constructor.services[version] === null) { - AWS.Service.defineServiceApi(this.constructor, version); - } - - return this.constructor.services[version]; - }, - - /** - * @api private - */ - getLatestServiceVersion: function getLatestServiceVersion(version) { - if (!this.constructor.services || this.constructor.services.length === 0) { - throw new Error('No services defined on ' + - this.constructor.serviceIdentifier); - } - - if (!version) { - version = 'latest'; - } else if (AWS.util.isType(version, Date)) { - version = AWS.util.date.iso8601(version).split('T')[0]; - } - - if (Object.hasOwnProperty(this.constructor.services, version)) { - return version; - } - - var keys = Object.keys(this.constructor.services).sort(); - var selectedVersion = null; - for (var i = keys.length - 1; i >= 0; i--) { - // versions that end in "*" are not available on disk and can be - // skipped, so do not choose these as selectedVersions - if (keys[i][keys[i].length - 1] !== '*') { - selectedVersion = keys[i]; - } - if (keys[i].substr(0, 10) <= version) { - return selectedVersion; - } - } - - throw new Error('Could not find ' + this.constructor.serviceIdentifier + - ' API to satisfy version constraint `' + version + '\''); - }, - - /** - * @api private - */ - api: {}, - - /** - * @api private - */ - defaultRetryCount: 3, - - /** - * @api private - */ - customizeRequests: function customizeRequests(callback) { - if (!callback) { - this.customRequestHandler = null; - } else if (typeof callback === 'function') { - this.customRequestHandler = callback; - } else { - throw new Error('Invalid callback type \'' + typeof callback + '\' provided in customizeRequests'); - } - }, - - /** - * Calls an operation on a service with the given input parameters. - * - * @param operation [String] the name of the operation to call on the service. - * @param params [map] a map of input options for the operation - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - */ - makeRequest: function makeRequest(operation, params, callback) { - if (typeof params === 'function') { - callback = params; - params = null; - } - - params = params || {}; - if (this.config.params) { // copy only toplevel bound params - var rules = this.api.operations[operation]; - if (rules) { - params = AWS.util.copy(params); - AWS.util.each(this.config.params, function(key, value) { - if (rules.input.members[key]) { - if (params[key] === undefined || params[key] === null) { - params[key] = value; - } - } - }); - } - } - - var request = new AWS.Request(this, operation, params); - this.addAllRequestListeners(request); - - if (callback) request.send(callback); - return request; - }, - - /** - * Calls an operation on a service with the given input parameters, without - * any authentication data. This method is useful for "public" API operations. - * - * @param operation [String] the name of the operation to call on the service. - * @param params [map] a map of input options for the operation - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - */ - makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { - if (typeof params === 'function') { - callback = params; - params = {}; - } - - var request = this.makeRequest(operation, params).toUnauthenticated(); - return callback ? request.send(callback) : request; - }, - - /** - * Waits for a given state - * - * @param state [String] the state on the service to wait for - * @param params [map] a map of parameters to pass with each request - * @option params $waiter [map] a map of configuration options for the waiter - * @option params $waiter.delay [Number] The number of seconds to wait between - * requests - * @option params $waiter.maxAttempts [Number] The maximum number of requests - * to send while waiting - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - */ - waitFor: function waitFor(state, params, callback) { - var waiter = new AWS.ResourceWaiter(this, state); - return waiter.wait(params, callback); - }, - - /** - * @api private - */ - addAllRequestListeners: function addAllRequestListeners(request) { - var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(), - AWS.EventListeners.CorePost]; - for (var i = 0; i < list.length; i++) { - if (list[i]) request.addListeners(list[i]); - } - - // disable parameter validation - if (!this.config.paramValidation) { - request.removeListener('validate', - AWS.EventListeners.Core.VALIDATE_PARAMETERS); - } - - if (this.config.logger) { // add logging events - request.addListeners(AWS.EventListeners.Logger); - } - - this.setupRequestListeners(request); - // call prototype's customRequestHandler - if (typeof this.constructor.prototype.customRequestHandler === 'function') { - this.constructor.prototype.customRequestHandler(request); - } - // call instance's customRequestHandler - if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') { - this.customRequestHandler(request); - } - }, - - /** - * Override this method to setup any custom request listeners for each - * new request to the service. - * - * @abstract - */ - setupRequestListeners: function setupRequestListeners() { - }, - - /** - * Gets the signer class for a given request - * @api private - */ - getSignerClass: function getSignerClass(request) { - var version; - // get operation authtype if present - var operation = null; - var authtype = ''; - if (request) { - var operations = request.service.api.operations || {}; - operation = operations[request.operation] || null; - authtype = operation ? operation.authtype : ''; - } - if (this.config.signatureVersion) { - version = this.config.signatureVersion; - } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') { - version = 'v4'; - } else { - version = this.api.signatureVersion; - } - return AWS.Signers.RequestSigner.getVersion(version); - }, - - /** - * @api private - */ - serviceInterface: function serviceInterface() { - switch (this.api.protocol) { - case 'ec2': return AWS.EventListeners.Query; - case 'query': return AWS.EventListeners.Query; - case 'json': return AWS.EventListeners.Json; - case 'rest-json': return AWS.EventListeners.RestJson; - case 'rest-xml': return AWS.EventListeners.RestXml; - } - if (this.api.protocol) { - throw new Error('Invalid service `protocol\' ' + - this.api.protocol + ' in API config'); - } - }, - - /** - * @api private - */ - successfulResponse: function successfulResponse(resp) { - return resp.httpResponse.statusCode < 300; - }, - - /** - * How many times a failed request should be retried before giving up. - * the defaultRetryCount can be overriden by service classes. - * - * @api private - */ - numRetries: function numRetries() { - if (this.config.maxRetries !== undefined) { - return this.config.maxRetries; - } else { - return this.defaultRetryCount; - } - }, - - /** - * @api private - */ - retryDelays: function retryDelays(retryCount) { - return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions); - }, - - /** - * @api private - */ - retryableError: function retryableError(error) { - if (this.timeoutError(error)) return true; - if (this.networkingError(error)) return true; - if (this.expiredCredentialsError(error)) return true; - if (this.throttledError(error)) return true; - if (error.statusCode >= 500) return true; - return false; - }, - - /** - * @api private - */ - networkingError: function networkingError(error) { - return error.code === 'NetworkingError'; - }, - - /** - * @api private - */ - timeoutError: function timeoutError(error) { - return error.code === 'TimeoutError'; - }, - - /** - * @api private - */ - expiredCredentialsError: function expiredCredentialsError(error) { - // TODO : this only handles *one* of the expired credential codes - return (error.code === 'ExpiredTokenException'); - }, - - /** - * @api private - */ - clockSkewError: function clockSkewError(error) { - switch (error.code) { - case 'RequestTimeTooSkewed': - case 'RequestExpired': - case 'InvalidSignatureException': - case 'SignatureDoesNotMatch': - case 'AuthFailure': - case 'RequestInTheFuture': - return true; - default: return false; - } - }, - - /** - * @api private - */ - getSkewCorrectedDate: function getSkewCorrectedDate() { - return new Date(Date.now() + this.config.systemClockOffset); - }, - - /** - * @api private - */ - applyClockOffset: function applyClockOffset(newServerTime) { - if (newServerTime) { - this.config.systemClockOffset = newServerTime - Date.now(); - } - }, - - /** - * @api private - */ - isClockSkewed: function isClockSkewed(newServerTime) { - if (newServerTime) { - return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 30000; - } - }, - - /** - * @api private - */ - throttledError: function throttledError(error) { - // this logic varies between services - switch (error.code) { - case 'ProvisionedThroughputExceededException': - case 'Throttling': - case 'ThrottlingException': - case 'RequestLimitExceeded': - case 'RequestThrottled': - return true; - default: - return false; - } - }, - - /** - * @api private - */ - endpointFromTemplate: function endpointFromTemplate(endpoint) { - if (typeof endpoint !== 'string') return endpoint; - - var e = endpoint; - e = e.replace(/\{service\}/g, this.api.endpointPrefix); - e = e.replace(/\{region\}/g, this.config.region); - e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); - return e; - }, - - /** - * @api private - */ - setEndpoint: function setEndpoint(endpoint) { - this.endpoint = new AWS.Endpoint(endpoint, this.config); - }, - - /** - * @api private - */ - paginationConfig: function paginationConfig(operation, throwException) { - var paginator = this.api.operations[operation].paginator; - if (!paginator) { - if (throwException) { - var e = new Error(); - throw AWS.util.error(e, 'No pagination configuration for ' + operation); - } - return null; - } - - return paginator; - } - }); - - AWS.util.update(AWS.Service, { - - /** - * Adds one method for each operation described in the api configuration - * - * @api private - */ - defineMethods: function defineMethods(svc) { - AWS.util.each(svc.prototype.api.operations, function iterator(method) { - if (svc.prototype[method]) return; - var operation = svc.prototype.api.operations[method]; - if (operation.authtype === 'none') { - svc.prototype[method] = function (params, callback) { - return this.makeUnauthenticatedRequest(method, params, callback); - }; - } else { - svc.prototype[method] = function (params, callback) { - return this.makeRequest(method, params, callback); - }; - } - }); - }, - - /** - * Defines a new Service class using a service identifier and list of versions - * including an optional set of features (functions) to apply to the class - * prototype. - * - * @param serviceIdentifier [String] the identifier for the service - * @param versions [Array] a list of versions that work with this - * service - * @param features [Object] an object to attach to the prototype - * @return [Class] the service class defined by this function. - */ - defineService: function defineService(serviceIdentifier, versions, features) { - AWS.Service._serviceMap[serviceIdentifier] = true; - if (!Array.isArray(versions)) { - features = versions; - versions = []; - } - - var svc = inherit(AWS.Service, features || {}); - - if (typeof serviceIdentifier === 'string') { - AWS.Service.addVersions(svc, versions); - - var identifier = svc.serviceIdentifier || serviceIdentifier; - svc.serviceIdentifier = identifier; - } else { // defineService called with an API - svc.prototype.api = serviceIdentifier; - AWS.Service.defineMethods(svc); - } - - return svc; - }, - - /** - * @api private - */ - addVersions: function addVersions(svc, versions) { - if (!Array.isArray(versions)) versions = [versions]; - - svc.services = svc.services || {}; - for (var i = 0; i < versions.length; i++) { - if (svc.services[versions[i]] === undefined) { - svc.services[versions[i]] = null; - } - } - - svc.apiVersions = Object.keys(svc.services).sort(); - }, - - /** - * @api private - */ - defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { - var svc = inherit(superclass, { - serviceIdentifier: superclass.serviceIdentifier - }); - - function setApi(api) { - if (api.isApi) { - svc.prototype.api = api; - } else { - svc.prototype.api = new Api(api); - } - } - - if (typeof version === 'string') { - if (apiConfig) { - setApi(apiConfig); - } else { - try { - setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); - } catch (err) { - throw AWS.util.error(err, { - message: 'Could not find API configuration ' + - superclass.serviceIdentifier + '-' + version - }); - } - } - if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) { - superclass.apiVersions = superclass.apiVersions.concat(version).sort(); - } - superclass.services[version] = svc; - } else { - setApi(version); - } - - AWS.Service.defineMethods(svc); - return svc; - }, - - /** - * @api private - */ - hasService: function(identifier) { - return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier); - }, - - /** - * @api private - */ - _serviceMap: {} - }); - - module.exports = AWS.Service; + if (this.response.retryCount < this.service.config.maxRetries) { + this.response.retryCount++; + } else { + this.response.error = null; + } + }); + addAsync('SIGN', 'sign', function SIGN(req, done) { + var service = req.service; + var operations = req.service.api.operations || {}; + var operation = operations[req.operation]; + var authtype = operation ? operation.authtype : ''; + if (!service.api.signatureVersion && !authtype) return done(); // none + + service.config.getCredentials(function (err, credentials) { + if (err) { + req.response.error = err; + return done(); + } -/***/ }), -/* 188 */ -/***/ (function(module, exports, __webpack_require__) { + try { + var date = service.getSkewCorrectedDate(); + var SignerClass = service.getSignerClass(req); + var signer = new SignerClass(req.httpRequest, + service.api.signingName || service.api.endpointPrefix, + { + signatureCache: service.config.signatureCache, + operation: operation + }); + signer.setServiceClientId(service._clientId); + + // clear old authorization headers + delete req.httpRequest.headers['Authorization']; + delete req.httpRequest.headers['Date']; + delete req.httpRequest.headers['X-Amz-Date']; + + // add new authorization + signer.addAuthorization(credentials, date); + req.signedAt = date; + } catch (e) { + req.response.error = e; + } + done(); + }); + }); - var util = __webpack_require__(2); - var regionConfig = __webpack_require__(189); - - function generateRegionPrefix(region) { - if (!region) return null; - - var parts = region.split('-'); - if (parts.length < 3) return null; - return parts.slice(0, parts.length - 2).join('-') + '-*'; - } - - function derivedKeys(service) { - var region = service.config.region; - var regionPrefix = generateRegionPrefix(region); - var endpointPrefix = service.api.endpointPrefix; - - return [ - [region, endpointPrefix], - [regionPrefix, endpointPrefix], - [region, '*'], - [regionPrefix, '*'], - ['*', endpointPrefix], - ['*', '*'] - ].map(function(item) { - return item[0] && item[1] ? item.join('/') : null; - }); - } - - function applyConfig(service, config) { - util.each(config, function(key, value) { - if (key === 'globalEndpoint') return; - if (service.config[key] === undefined || service.config[key] === null) { - service.config[key] = value; - } - }); - } - - function configureEndpoint(service) { - var keys = derivedKeys(service); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!key) continue; - - if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) { - var config = regionConfig.rules[key]; - if (typeof config === 'string') { - config = regionConfig.patterns[config]; - } - - // set dualstack endpoint - if (service.config.useDualstack && util.isDualstackAvailable(service)) { - config = util.copy(config); - config.endpoint = '{service}.dualstack.{region}.amazonaws.com'; - } - - // set global endpoint - service.isGlobalEndpoint = !!config.globalEndpoint; - - // signature version - if (!config.signatureVersion) config.signatureVersion = 'v4'; - - // merge config - applyConfig(service, config); - return; - } - } - } - - module.exports = configureEndpoint; + add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { + if (this.service.successfulResponse(resp, this)) { + resp.data = {}; + resp.error = null; + } else { + resp.data = null; + resp.error = AWS.util.error(new Error(), + {code: 'UnknownError', message: 'An unknown error occurred.'}); + } + }); + addAsync('SEND', 'send', function SEND(resp, done) { + resp.httpResponse._abortCallback = done; + resp.error = null; + resp.data = null; + + function callback(httpResp) { + resp.httpResponse.stream = httpResp; + var stream = resp.request.httpRequest.stream; + + httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) { + resp.request.emit( + 'httpHeaders', + [statusCode, headers, resp, statusMessage] + ); + + if (!resp.httpResponse.streaming) { + if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check + httpResp.on('readable', function onReadable() { + var data = httpResp.read(); + if (data !== null) { + resp.request.emit('httpData', [data, resp]); + } + }); + } else { // legacy streams API + httpResp.on('data', function onData(data) { + resp.request.emit('httpData', [data, resp]); + }); + } + } + }); -/***/ }), -/* 189 */ -/***/ (function(module, exports) { + httpResp.on('end', function onEnd() { + if (!stream || !stream.didCallback) { + resp.request.emit('httpDone'); + done(); + } + }); + } - module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":{"endpoint":"https://{service}.amazonaws.com","signatureVersion":"v3https","globalEndpoint":true},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"}}} + function progress(httpResp) { + httpResp.on('sendProgress', function onSendProgress(value) { + resp.request.emit('httpUploadProgress', [value, resp]); + }); -/***/ }), -/* 190 */ -/***/ (function(module, exports, __webpack_require__) { + httpResp.on('receiveProgress', function onReceiveProgress(value) { + resp.request.emit('httpDownloadProgress', [value, resp]); + }); + } - var AWS = __webpack_require__(1); - __webpack_require__(191); - __webpack_require__(192); - var PromisesDependency; - - /** - * The main configuration class used by all service objects to set - * the region, credentials, and other options for requests. - * - * By default, credentials and region settings are left unconfigured. - * This should be configured by the application before using any - * AWS service APIs. - * - * In order to set global configuration options, properties should - * be assigned to the global {AWS.config} object. - * - * @see AWS.config - * - * @!group General Configuration Options - * - * @!attribute credentials - * @return [AWS.Credentials] the AWS credentials to sign requests with. - * - * @!attribute region - * @example Set the global region setting to us-west-2 - * AWS.config.update({region: 'us-west-2'}); - * @return [AWS.Credentials] The region to send service requests to. - * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html - * A list of available endpoints for each AWS service - * - * @!attribute maxRetries - * @return [Integer] the maximum amount of retries to perform for a - * service request. By default this value is calculated by the specific - * service object that the request is being made to. - * - * @!attribute maxRedirects - * @return [Integer] the maximum amount of redirects to follow for a - * service request. Defaults to 10. - * - * @!attribute paramValidation - * @return [Boolean|map] whether input parameters should be validated against - * the operation description before sending the request. Defaults to true. - * Pass a map to enable any of the following specific validation features: - * - * * **min** [Boolean] — Validates that a value meets the min - * constraint. This is enabled by default when paramValidation is set - * to `true`. - * * **max** [Boolean] — Validates that a value meets the max - * constraint. - * * **pattern** [Boolean] — Validates that a string value matches a - * regular expression. - * * **enum** [Boolean] — Validates that a string value matches one - * of the allowable enum values. - * - * @!attribute computeChecksums - * @return [Boolean] whether to compute checksums for payload bodies when - * the service accepts it (currently supported in S3 only). - * - * @!attribute convertResponseTypes - * @return [Boolean] whether types are converted when parsing response data. - * Currently only supported for JSON based services. Turning this off may - * improve performance on large response payloads. Defaults to `true`. - * - * @!attribute correctClockSkew - * @return [Boolean] whether to apply a clock skew correction and retry - * requests that fail because of an skewed client clock. Defaults to - * `false`. - * - * @!attribute sslEnabled - * @return [Boolean] whether SSL is enabled for requests - * - * @!attribute s3ForcePathStyle - * @return [Boolean] whether to force path style URLs for S3 objects - * - * @!attribute s3BucketEndpoint - * @note Setting this configuration option requires an `endpoint` to be - * provided explicitly to the service constructor. - * @return [Boolean] whether the provided endpoint addresses an individual - * bucket (false if it addresses the root API endpoint). - * - * @!attribute s3DisableBodySigning - * @return [Boolean] whether to disable S3 body signing when using signature version `v4`. - * Body signing can only be disabled when using https. Defaults to `true`. - * - * @!attribute useAccelerateEndpoint - * @note This configuration option is only compatible with S3 while accessing - * dns-compatible buckets. - * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service. - * Defaults to `false`. - * - * @!attribute retryDelayOptions - * @example Set the base retry delay for all services to 300 ms - * AWS.config.update({retryDelayOptions: {base: 300}}); - * // Delays with maxRetries = 3: 300, 600, 1200 - * @example Set a custom backoff function to provide delay values on retries - * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount) { - * // returns delay in ms - * }}}); - * @return [map] A set of options to configure the retry delay on retryable errors. - * Currently supported options are: - * - * * **base** [Integer] — The base number of milliseconds to use in the - * exponential backoff for operation retries. Defaults to 100 ms for all services except - * DynamoDB, where it defaults to 50ms. - * * **customBackoff ** [function] — A custom function that accepts a retry count - * and returns the amount of time to delay in milliseconds. The `base` option will be - * ignored if this option is supplied. - * - * @!attribute httpOptions - * @return [map] A set of options to pass to the low-level HTTP request. - * Currently supported options are: - * - * * **proxy** [String] — the URL to proxy requests through - * * **agent** [http.Agent, https.Agent] — the Agent object to perform - * HTTP requests with. Used for connection pooling. Defaults to the global - * agent (`http.globalAgent`) for non-SSL connections. Note that for - * SSL connections, a special Agent object is used in order to enable - * peer certificate verification. This feature is only supported in the - * Node.js environment. - * * **connectTimeout** [Integer] — Sets the socket to timeout after - * failing to establish a connection with the server after - * `connectTimeout` milliseconds. This timeout has no effect once a socket - * connection has been established. - * * **timeout** [Integer] — Sets the socket to timeout after timeout - * milliseconds of inactivity on the socket. Defaults to two minutes - * (120000) - * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous - * HTTP requests. Used in the browser environment only. Set to false to - * send requests synchronously. Defaults to true (async on). - * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" - * property of an XMLHttpRequest object. Used in the browser environment - * only. Defaults to false. - * @!attribute logger - * @return [#write,#log] an object that responds to .write() (like a stream) - * or .log() (like the console object) in order to log information about - * requests - * - * @!attribute systemClockOffset - * @return [Number] an offset value in milliseconds to apply to all signing - * times. Use this to compensate for clock skew when your system may be - * out of sync with the service time. Note that this configuration option - * can only be applied to the global `AWS.config` object and cannot be - * overridden in service-specific configuration. Defaults to 0 milliseconds. - * - * @!attribute signatureVersion - * @return [String] the signature version to sign requests with (overriding - * the API configuration). Possible values are: 'v2', 'v3', 'v4'. - * - * @!attribute signatureCache - * @return [Boolean] whether the signature to sign requests with (overriding - * the API configuration) is cached. Only applies to the signature version 'v4'. - * Defaults to `true`. - */ - AWS.Config = AWS.util.inherit({ - /** - * @!endgroup - */ - - /** - * Creates a new configuration object. This is the object that passes - * option data along to service requests, including credentials, security, - * region information, and some service specific settings. - * - * @example Creating a new configuration object with credentials and region - * var config = new AWS.Config({ - * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2' - * }); - * @option options accessKeyId [String] your AWS access key ID. - * @option options secretAccessKey [String] your AWS secret access key. - * @option options sessionToken [AWS.Credentials] the optional AWS - * session token to sign requests with. - * @option options credentials [AWS.Credentials] the AWS credentials - * to sign requests with. You can either specify this object, or - * specify the accessKeyId and secretAccessKey options directly. - * @option options credentialProvider [AWS.CredentialProviderChain] the - * provider chain used to resolve credentials if no static `credentials` - * property is set. - * @option options region [String] the region to send service requests to. - * See {region} for more information. - * @option options maxRetries [Integer] the maximum amount of retries to - * attempt with a request. See {maxRetries} for more information. - * @option options maxRedirects [Integer] the maximum amount of redirects to - * follow with a request. See {maxRedirects} for more information. - * @option options sslEnabled [Boolean] whether to enable SSL for - * requests. - * @option options paramValidation [Boolean|map] whether input parameters - * should be validated against the operation description before sending - * the request. Defaults to true. Pass a map to enable any of the - * following specific validation features: - * - * * **min** [Boolean] — Validates that a value meets the min - * constraint. This is enabled by default when paramValidation is set - * to `true`. - * * **max** [Boolean] — Validates that a value meets the max - * constraint. - * * **pattern** [Boolean] — Validates that a string value matches a - * regular expression. - * * **enum** [Boolean] — Validates that a string value matches one - * of the allowable enum values. - * @option options computeChecksums [Boolean] whether to compute checksums - * for payload bodies when the service accepts it (currently supported - * in S3 only) - * @option options convertResponseTypes [Boolean] whether types are converted - * when parsing response data. Currently only supported for JSON based - * services. Turning this off may improve performance on large response - * payloads. Defaults to `true`. - * @option options correctClockSkew [Boolean] whether to apply a clock skew - * correction and retry requests that fail because of an skewed client - * clock. Defaults to `false`. - * @option options s3ForcePathStyle [Boolean] whether to force path - * style URLs for S3 objects. - * @option options s3BucketEndpoint [Boolean] whether the provided endpoint - * addresses an individual bucket (false if it addresses the root API - * endpoint). Note that setting this configuration option requires an - * `endpoint` to be provided explicitly to the service constructor. - * @option options s3DisableBodySigning [Boolean] whether S3 body signing - * should be disabled when using signature version `v4`. Body signing - * can only be disabled when using https. Defaults to `true`. - * - * @option options retryDelayOptions [map] A set of options to configure - * the retry delay on retryable errors. Currently supported options are: - * - * * **base** [Integer] — The base number of milliseconds to use in the - * exponential backoff for operation retries. Defaults to 100 ms for all - * services except DynamoDB, where it defaults to 50ms. - * * **customBackoff ** [function] — A custom function that accepts a retry count - * and returns the amount of time to delay in milliseconds. The `base` option will be - * ignored if this option is supplied. - * @option options httpOptions [map] A set of options to pass to the low-level - * HTTP request. Currently supported options are: - * - * * **proxy** [String] — the URL to proxy requests through - * * **agent** [http.Agent, https.Agent] — the Agent object to perform - * HTTP requests with. Used for connection pooling. Defaults to the global - * agent (`http.globalAgent`) for non-SSL connections. Note that for - * SSL connections, a special Agent object is used in order to enable - * peer certificate verification. This feature is only available in the - * Node.js environment. - * * **connectTimeout** [Integer] — Sets the socket to timeout after - * failing to establish a connection with the server after - * `connectTimeout` milliseconds. This timeout has no effect once a socket - * connection has been established. - * * **timeout** [Integer] — Sets the socket to timeout after timeout - * milliseconds of inactivity on the socket. Defaults to two minutes - * (120000). - * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous - * HTTP requests. Used in the browser environment only. Set to false to - * send requests synchronously. Defaults to true (async on). - * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" - * property of an XMLHttpRequest object. Used in the browser environment - * only. Defaults to false. - * @option options apiVersion [String, Date] a String in YYYY-MM-DD format - * (or a date) that represents the latest possible API version that can be - * used in all services (unless overridden by `apiVersions`). Specify - * 'latest' to use the latest possible version. - * @option options apiVersions [map] a map of service - * identifiers (the lowercase service class name) with the API version to - * use when instantiating a service. Specify 'latest' for each individual - * that can use the latest available version. - * @option options logger [#write,#log] an object that responds to .write() - * (like a stream) or .log() (like the console object) in order to log - * information about requests - * @option options systemClockOffset [Number] an offset value in milliseconds - * to apply to all signing times. Use this to compensate for clock skew - * when your system may be out of sync with the service time. Note that - * this configuration option can only be applied to the global `AWS.config` - * object and cannot be overridden in service-specific configuration. - * Defaults to 0 milliseconds. - * @option options signatureVersion [String] the signature version to sign - * requests with (overriding the API configuration). Possible values are: - * 'v2', 'v3', 'v4'. - * @option options signatureCache [Boolean] whether the signature to sign - * requests with (overriding the API configuration) is cached. Only applies - * to the signature version 'v4'. Defaults to `true`. - * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32 - * checksum of HTTP response bodies returned by DynamoDB. Default: `true`. - */ - constructor: function Config(options) { - if (options === undefined) options = {}; - options = this.extractCredentials(options); - - AWS.util.each.call(this, this.keys, function (key, value) { - this.set(key, options[key], value); - }); - }, - - /** - * @!group Managing Credentials - */ - - /** - * Loads credentials from the configuration object. This is used internally - * by the SDK to ensure that refreshable {Credentials} objects are properly - * refreshed and loaded when sending a request. If you want to ensure that - * your credentials are loaded prior to a request, you can use this method - * directly to provide accurate credential data stored in the object. - * - * @note If you configure the SDK with static or environment credentials, - * the credential data should already be present in {credentials} attribute. - * This method is primarily necessary to load credentials from asynchronous - * sources, or sources that can refresh credentials periodically. - * @example Getting your access key - * AWS.config.getCredentials(function(err) { - * if (err) console.log(err.stack); // credentials not loaded - * else console.log("Access Key:", AWS.config.credentials.accessKeyId); - * }) - * @callback callback function(err) - * Called when the {credentials} have been properly set on the configuration - * object. - * - * @param err [Error] if this is set, credentials were not successfully - * loaded and this error provides information why. - * @see credentials - * @see Credentials - */ - getCredentials: function getCredentials(callback) { - var self = this; - - function finish(err) { - callback(err, err ? null : self.credentials); - } - - function credError(msg, err) { - return new AWS.util.error(err || new Error(), { - code: 'CredentialsError', - message: msg, - name: 'CredentialsError' - }); - } - - function getAsyncCredentials() { - self.credentials.get(function(err) { - if (err) { - var msg = 'Could not load credentials from ' + - self.credentials.constructor.name; - err = credError(msg, err); - } - finish(err); - }); - } - - function getStaticCredentials() { - var err = null; - if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) { - err = credError('Missing credentials'); - } - finish(err); - } - - if (self.credentials) { - if (typeof self.credentials.get === 'function') { - getAsyncCredentials(); - } else { // static credentials - getStaticCredentials(); - } - } else if (self.credentialProvider) { - self.credentialProvider.resolve(function(err, creds) { - if (err) { - err = credError('Could not load credentials from any providers', err); - } - self.credentials = creds; - finish(err); - }); - } else { - finish(credError('No credentials to load')); - } - }, - - /** - * @!group Loading and Setting Configuration Options - */ - - /** - * @overload update(options, allowUnknownKeys = false) - * Updates the current configuration object with new options. - * - * @example Update maxRetries property of a configuration object - * config.update({maxRetries: 10}); - * @param [Object] options a map of option keys and values. - * @param [Boolean] allowUnknownKeys whether unknown keys can be set on - * the configuration object. Defaults to `false`. - * @see constructor - */ - update: function update(options, allowUnknownKeys) { - allowUnknownKeys = allowUnknownKeys || false; - options = this.extractCredentials(options); - AWS.util.each.call(this, options, function (key, value) { - if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) || - AWS.Service.hasService(key)) { - this.set(key, value); - } - }); - }, - - /** - * Loads configuration data from a JSON file into this config object. - * @note Loading configuration will reset all existing configuration - * on the object. - * @!macro nobrowser - * @param path [String] the path relative to your process's current - * working directory to load configuration from. - * @return [AWS.Config] the same configuration object - */ - loadFromPath: function loadFromPath(path) { - this.clear(); - - var options = JSON.parse(AWS.util.readFileSync(path)); - var fileSystemCreds = new AWS.FileSystemCredentials(path); - var chain = new AWS.CredentialProviderChain(); - chain.providers.unshift(fileSystemCreds); - chain.resolve(function (err, creds) { - if (err) throw err; - else options.credentials = creds; - }); - - this.constructor(options); - - return this; - }, - - /** - * Clears configuration data on this object - * - * @api private - */ - clear: function clear() { - /*jshint forin:false */ - AWS.util.each.call(this, this.keys, function (key) { - delete this[key]; - }); - - // reset credential provider - this.set('credentials', undefined); - this.set('credentialProvider', undefined); - }, - - /** - * Sets a property on the configuration object, allowing for a - * default value - * @api private - */ - set: function set(property, value, defaultValue) { - if (value === undefined) { - if (defaultValue === undefined) { - defaultValue = this.keys[property]; - } - if (typeof defaultValue === 'function') { - this[property] = defaultValue.call(this); - } else { - this[property] = defaultValue; - } - } else if (property === 'httpOptions' && this[property]) { - // deep merge httpOptions - this[property] = AWS.util.merge(this[property], value); - } else { - this[property] = value; - } - }, - - /** - * All of the keys with their default values. - * - * @constant - * @api private - */ - keys: { - credentials: null, - credentialProvider: null, - region: null, - logger: null, - apiVersions: {}, - apiVersion: null, - endpoint: undefined, - httpOptions: { - timeout: 120000 - }, - maxRetries: undefined, - maxRedirects: 10, - paramValidation: true, - sslEnabled: true, - s3ForcePathStyle: false, - s3BucketEndpoint: false, - s3DisableBodySigning: true, - computeChecksums: true, - convertResponseTypes: true, - correctClockSkew: false, - customUserAgent: null, - dynamoDbCrc32: true, - systemClockOffset: 0, - signatureVersion: null, - signatureCache: true, - retryDelayOptions: {}, - useAccelerateEndpoint: false - }, - - /** - * Extracts accessKeyId, secretAccessKey and sessionToken - * from a configuration hash. - * - * @api private - */ - extractCredentials: function extractCredentials(options) { - if (options.accessKeyId && options.secretAccessKey) { - options = AWS.util.copy(options); - options.credentials = new AWS.Credentials(options); - } - return options; - }, - - /** - * Sets the promise dependency the SDK will use wherever Promises are returned. - * Passing `null` will force the SDK to use native Promises if they are available. - * If native Promises are not available, passing `null` will have no effect. - * @param [Constructor] dep A reference to a Promise constructor - */ - setPromisesDependency: function setPromisesDependency(dep) { - PromisesDependency = dep; - // if null was passed in, we should try to use native promises - if (dep === null && typeof Promise === 'function') { - PromisesDependency = Promise; - } - var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain]; - if (AWS.S3 && AWS.S3.ManagedUpload) constructors.push(AWS.S3.ManagedUpload); - AWS.util.addPromises(constructors, PromisesDependency); - }, - - /** - * Gets the promise dependency set by `AWS.config.setPromisesDependency`. - */ - getPromisesDependency: function getPromisesDependency() { - return PromisesDependency; - } - }); - - /** - * @return [AWS.Config] The global configuration object singleton instance - * @readonly - * @see AWS.Config - */ - AWS.config = new AWS.Config(); + function error(err) { + if (err.code !== 'RequestAbortedError') { + var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError'; + err = AWS.util.error(err, { + code: errCode, + region: resp.request.httpRequest.region, + hostname: resp.request.httpRequest.endpoint.hostname, + retryable: true + }); + } + resp.error = err; + resp.request.emit('httpError', [resp.error, resp], function() { + done(); + }); + } + function executeSend() { + var http = AWS.HttpClient.getInstance(); + var httpOptions = resp.request.service.config.httpOptions || {}; + try { + var stream = http.handleRequest(resp.request.httpRequest, httpOptions, + callback, error); + progress(stream); + } catch (err) { + error(err); + } + } + var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000; + if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign + this.emit('sign', [this], function(err) { + if (err) done(err); + else executeSend(); + }); + } else { + executeSend(); + } + }); -/***/ }), -/* 191 */ -/***/ (function(module, exports, __webpack_require__) { + add('HTTP_HEADERS', 'httpHeaders', + function HTTP_HEADERS(statusCode, headers, resp, statusMessage) { + resp.httpResponse.statusCode = statusCode; + resp.httpResponse.statusMessage = statusMessage; + resp.httpResponse.headers = headers; + resp.httpResponse.body = new AWS.util.Buffer(''); + resp.httpResponse.buffers = []; + resp.httpResponse.numBytes = 0; + var dateHeader = headers.date || headers.Date; + var service = resp.request.service; + if (dateHeader) { + var serverTime = Date.parse(dateHeader); + if (service.config.correctClockSkew + && service.isClockSkewed(serverTime)) { + service.applyClockOffset(serverTime); + } + } + }); - var AWS = __webpack_require__(1); - - /** - * Represents your AWS security credentials, specifically the - * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. - * Creating a `Credentials` object allows you to pass around your - * security information to configuration and service objects. - * - * Note that this class typically does not need to be constructed manually, - * as the {AWS.Config} and {AWS.Service} classes both accept simple - * options hashes with the three keys. These structures will be converted - * into Credentials objects automatically. - * - * ## Expiring and Refreshing Credentials - * - * Occasionally credentials can expire in the middle of a long-running - * application. In this case, the SDK will automatically attempt to - * refresh the credentials from the storage location if the Credentials - * class implements the {refresh} method. - * - * If you are implementing a credential storage location, you - * will want to create a subclass of the `Credentials` class and - * override the {refresh} method. This method allows credentials to be - * retrieved from the backing store, be it a file system, database, or - * some network storage. The method should reset the credential attributes - * on the object. - * - * @!attribute expired - * @return [Boolean] whether the credentials have been expired and - * require a refresh. Used in conjunction with {expireTime}. - * @!attribute expireTime - * @return [Date] a time when credentials should be considered expired. Used - * in conjunction with {expired}. - * @!attribute accessKeyId - * @return [String] the AWS access key ID - * @!attribute secretAccessKey - * @return [String] the AWS secret access key - * @!attribute sessionToken - * @return [String] an optional AWS session token - */ - AWS.Credentials = AWS.util.inherit({ - /** - * A credentials object can be created using positional arguments or an options - * hash. - * - * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) - * Creates a Credentials object with a given set of credential information - * as positional arguments. - * @param accessKeyId [String] the AWS access key ID - * @param secretAccessKey [String] the AWS secret access key - * @param sessionToken [String] the optional AWS session token - * @example Create a credentials object with AWS credentials - * var creds = new AWS.Credentials('akid', 'secret', 'session'); - * @overload AWS.Credentials(options) - * Creates a Credentials object with a given set of credential information - * as an options hash. - * @option options accessKeyId [String] the AWS access key ID - * @option options secretAccessKey [String] the AWS secret access key - * @option options sessionToken [String] the optional AWS session token - * @example Create a credentials object with AWS credentials - * var creds = new AWS.Credentials({ - * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' - * }); - */ - constructor: function Credentials() { - // hide secretAccessKey from being displayed with util.inspect - AWS.util.hideProperties(this, ['secretAccessKey']); - - this.expired = false; - this.expireTime = null; - if (arguments.length === 1 && typeof arguments[0] === 'object') { - var creds = arguments[0].credentials || arguments[0]; - this.accessKeyId = creds.accessKeyId; - this.secretAccessKey = creds.secretAccessKey; - this.sessionToken = creds.sessionToken; - } else { - this.accessKeyId = arguments[0]; - this.secretAccessKey = arguments[1]; - this.sessionToken = arguments[2]; - } - }, - - /** - * @return [Integer] the number of seconds before {expireTime} during which - * the credentials will be considered expired. - */ - expiryWindow: 15, - - /** - * @return [Boolean] whether the credentials object should call {refresh} - * @note Subclasses should override this method to provide custom refresh - * logic. - */ - needsRefresh: function needsRefresh() { - var currentTime = AWS.util.date.getDate().getTime(); - var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); - - if (this.expireTime && adjustedTime > this.expireTime) { - return true; - } else { - return this.expired || !this.accessKeyId || !this.secretAccessKey; - } - }, - - /** - * Gets the existing credentials, refreshing them if they are not yet loaded - * or have expired. Users should call this method before using {refresh}, - * as this will not attempt to reload credentials when they are already - * loaded into the object. - * - * @callback callback function(err) - * When this callback is called with no error, it means either credentials - * do not need to be refreshed or refreshed credentials information has - * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, - * and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - */ - get: function get(callback) { - var self = this; - if (this.needsRefresh()) { - this.refresh(function(err) { - if (!err) self.expired = false; // reset expired flag - if (callback) callback(err); - }); - } else if (callback) { - callback(); - } - }, - - /** - * @!method getPromise() - * Returns a 'thenable' promise. - * Gets the existing credentials, refreshing them if they are not yet loaded - * or have expired. Users should call this method before using {refresh}, - * as this will not attempt to reload credentials when they are already - * loaded into the object. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function() - * Called if the promise is fulfilled. When this callback is called, it - * means either credentials do not need to be refreshed or refreshed - * credentials information has been loaded into the object (as the - * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] if an error occurred, this value will be filled - * @return [Promise] A promise that represents the state of the `get` call. - * @example Calling the `getPromise` method. - * var promise = credProvider.getPromise(); - * promise.then(function() { ... }, function(err) { ... }); - */ - - /** - * @!method refreshPromise() - * Returns a 'thenable' promise. - * Refreshes the credentials. Users should call {get} before attempting - * to forcibly refresh credentials. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function() - * Called if the promise is fulfilled. When this callback is called, it - * means refreshed credentials information has been loaded into the object - * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] if an error occurred, this value will be filled - * @return [Promise] A promise that represents the state of the `refresh` call. - * @example Calling the `refreshPromise` method. - * var promise = credProvider.refreshPromise(); - * promise.then(function() { ... }, function(err) { ... }); - */ - - /** - * Refreshes the credentials. Users should call {get} before attempting - * to forcibly refresh credentials. - * - * @callback callback function(err) - * When this callback is called with no error, it means refreshed - * credentials information has been loaded into the object (as the - * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @note Subclasses should override this class to reset the - * {accessKeyId}, {secretAccessKey} and optional {sessionToken} - * on the credentials object and then call the callback with - * any error information. - * @see get - */ - refresh: function refresh(callback) { - this.expired = false; - callback(); - } - }); - - /** - * @api private - */ - AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); - this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); - }; - - /** - * @api private - */ - AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.getPromise; - delete this.prototype.refreshPromise; - }; - - AWS.util.addPromises(AWS.Credentials); + add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) { + if (chunk) { + if (AWS.util.isNode()) { + resp.httpResponse.numBytes += chunk.length; + var total = resp.httpResponse.headers['content-length']; + var progress = { loaded: resp.httpResponse.numBytes, total: total }; + resp.request.emit('httpDownloadProgress', [progress, resp]); + } -/***/ }), -/* 192 */ -/***/ (function(module, exports, __webpack_require__) { + resp.httpResponse.buffers.push(new AWS.util.Buffer(chunk)); + } + }); - var AWS = __webpack_require__(1); - - /** - * Creates a credential provider chain that searches for AWS credentials - * in a list of credential providers specified by the {providers} property. - * - * By default, the chain will use the {defaultProviders} to resolve credentials. - * These providers will look in the environment using the - * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. - * - * ## Setting Providers - * - * Each provider in the {providers} list should be a function that returns - * a {AWS.Credentials} object, or a hardcoded credentials object. The function - * form allows for delayed execution of the credential construction. - * - * ## Resolving Credentials from a Chain - * - * Call {resolve} to return the first valid credential object that can be - * loaded by the provider chain. - * - * For example, to resolve a chain with a custom provider that checks a file - * on disk after the set of {defaultProviders}: - * - * ```javascript - * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); - * var chain = new AWS.CredentialProviderChain(); - * chain.providers.push(diskProvider); - * chain.resolve(); - * ``` - * - * The above code will return the `diskProvider` object if the - * file contains credentials and the `defaultProviders` do not contain - * any credential settings. - * - * @!attribute providers - * @return [Array] - * a list of credentials objects or functions that return credentials - * objects. If the provider is a function, the function will be - * executed lazily when the provider needs to be checked for valid - * credentials. By default, this object will be set to the - * {defaultProviders}. - * @see defaultProviders - */ - AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { - - /** - * Creates a new CredentialProviderChain with a default set of providers - * specified by {defaultProviders}. - */ - constructor: function CredentialProviderChain(providers) { - if (providers) { - this.providers = providers; - } else { - this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); - } - }, - - /** - * @!method resolvePromise() - * Returns a 'thenable' promise. - * Resolves the provider chain by searching for the first set of - * credentials in {providers}. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function(credentials) - * Called if the promise is fulfilled and the provider resolves the chain - * to a credentials object - * @param credentials [AWS.Credentials] the credentials object resolved - * by the provider chain. - * @callback rejectedCallback function(error) - * Called if the promise is rejected. - * @param err [Error] the error object returned if no credentials are found. - * @return [Promise] A promise that represents the state of the `resolve` method call. - * @example Calling the `resolvePromise` method. - * var promise = chain.resolvePromise(); - * promise.then(function(credentials) { ... }, function(err) { ... }); - */ - - /** - * Resolves the provider chain by searching for the first set of - * credentials in {providers}. - * - * @callback callback function(err, credentials) - * Called when the provider resolves the chain to a credentials object - * or null if no credentials can be found. - * - * @param err [Error] the error object returned if no credentials are - * found. - * @param credentials [AWS.Credentials] the credentials object resolved - * by the provider chain. - * @return [AWS.CredentialProviderChain] the provider, for chaining. - */ - resolve: function resolve(callback) { - if (this.providers.length === 0) { - callback(new Error('No providers')); - return this; - } - - var index = 0; - var providers = this.providers.slice(0); - - function resolveNext(err, creds) { - if ((!err && creds) || index === providers.length) { - callback(err, creds); - return; - } - - var provider = providers[index++]; - if (typeof provider === 'function') { - creds = provider.call(); - } else { - creds = provider; - } - - if (creds.get) { - creds.get(function(getErr) { - resolveNext(getErr, getErr ? null : creds); - }); - } else { - resolveNext(null, creds); - } - } - - resolveNext(); - return this; - } - }); - - /** - * The default set of providers used by a vanilla CredentialProviderChain. - * - * In the browser: - * - * ```javascript - * AWS.CredentialProviderChain.defaultProviders = [] - * ``` - * - * In Node.js: - * - * ```javascript - * AWS.CredentialProviderChain.defaultProviders = [ - * function () { return new AWS.EnvironmentCredentials('AWS'); }, - * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, - * function () { return new AWS.SharedIniFileCredentials(); }, - * function () { - * // if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set - * return new AWS.ECSCredentials(); - * // else - * return new AWS.EC2MetadataCredentials(); - * } - * ] - * ``` - */ - AWS.CredentialProviderChain.defaultProviders = []; - - /** - * @api private - */ - AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); - }; - - /** - * @api private - */ - AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.resolvePromise; - }; - - AWS.util.addPromises(AWS.CredentialProviderChain); + add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) { + // convert buffers array into single buffer + if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) { + var body = AWS.util.buffer.concat(resp.httpResponse.buffers); + resp.httpResponse.body = body; + } + delete resp.httpResponse.numBytes; + delete resp.httpResponse.buffers; + }); + add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) { + if (resp.httpResponse.statusCode) { + resp.error.statusCode = resp.httpResponse.statusCode; + if (resp.error.retryable === undefined) { + resp.error.retryable = this.service.retryableError(resp.error, this); + } + } + }); -/***/ }), -/* 193 */ -/***/ (function(module, exports, __webpack_require__) { + add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) { + if (!resp.error) return; + switch (resp.error.code) { + case 'RequestExpired': // EC2 only + case 'ExpiredTokenException': + case 'ExpiredToken': + resp.error.retryable = true; + resp.request.service.config.credentials.expired = true; + } + }); - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * The endpoint that a service will talk to, for example, - * `'https://ec2.ap-southeast-1.amazonaws.com'`. If - * you need to override an endpoint for a service, you can - * set the endpoint on a service by passing the endpoint - * object with the `endpoint` option key: - * - * ```javascript - * var ep = new AWS.Endpoint('awsproxy.example.com'); - * var s3 = new AWS.S3({endpoint: ep}); - * s3.service.endpoint.hostname == 'awsproxy.example.com' - * ``` - * - * Note that if you do not specify a protocol, the protocol will - * be selected based on your current {AWS.config} configuration. - * - * @!attribute protocol - * @return [String] the protocol (http or https) of the endpoint - * URL - * @!attribute hostname - * @return [String] the host portion of the endpoint, e.g., - * example.com - * @!attribute host - * @return [String] the host portion of the endpoint including - * the port, e.g., example.com:80 - * @!attribute port - * @return [Integer] the port of the endpoint - * @!attribute href - * @return [String] the full URL of the endpoint - */ - AWS.Endpoint = inherit({ - - /** - * @overload Endpoint(endpoint) - * Constructs a new endpoint given an endpoint URL. If the - * URL omits a protocol (http or https), the default protocol - * set in the global {AWS.config} will be used. - * @param endpoint [String] the URL to construct an endpoint from - */ - constructor: function Endpoint(endpoint, config) { - AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); - - if (typeof endpoint === 'undefined' || endpoint === null) { - throw new Error('Invalid endpoint: ' + endpoint); - } else if (typeof endpoint !== 'string') { - return AWS.util.copy(endpoint); - } - - if (!endpoint.match(/^http/)) { - var useSSL = config && config.sslEnabled !== undefined ? - config.sslEnabled : AWS.config.sslEnabled; - endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; - } - - AWS.util.update(this, AWS.util.urlParse(endpoint)); - - // Ensure the port property is set as an integer - if (this.port) { - this.port = parseInt(this.port, 10); - } else { - this.port = this.protocol === 'https:' ? 443 : 80; - } - } - - }); - - /** - * The low level HTTP request object, encapsulating all HTTP header - * and body data sent by a service request. - * - * @!attribute method - * @return [String] the HTTP method of the request - * @!attribute path - * @return [String] the path portion of the URI, e.g., - * "/list/?start=5&num=10" - * @!attribute headers - * @return [map] - * a map of header keys and their respective values - * @!attribute body - * @return [String] the request body payload - * @!attribute endpoint - * @return [AWS.Endpoint] the endpoint for the request - * @!attribute region - * @api private - * @return [String] the region, for signing purposes only. - */ - AWS.HttpRequest = inherit({ - - /** - * @api private - */ - constructor: function HttpRequest(endpoint, region) { - endpoint = new AWS.Endpoint(endpoint); - this.method = 'POST'; - this.path = endpoint.path || '/'; - this.headers = {}; - this.body = ''; - this.endpoint = endpoint; - this.region = region; - this._userAgent = ''; - this.setUserAgent(); - }, - - /** - * @api private - */ - setUserAgent: function setUserAgent() { - this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); - }, - - getUserAgentHeaderName: function getUserAgentHeaderName() { - var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; - return prefix + 'User-Agent'; - }, - - /** - * @api private - */ - appendToUserAgent: function appendToUserAgent(agentPartial) { - if (typeof agentPartial === 'string' && agentPartial) { - this._userAgent += ' ' + agentPartial; - } - this.headers[this.getUserAgentHeaderName()] = this._userAgent; - }, - - /** - * @api private - */ - getUserAgent: function getUserAgent() { - return this._userAgent; - }, - - /** - * @return [String] the part of the {path} excluding the - * query string - */ - pathname: function pathname() { - return this.path.split('?', 1)[0]; - }, - - /** - * @return [String] the query string portion of the {path} - */ - search: function search() { - var query = this.path.split('?', 2)[1]; - if (query) { - query = AWS.util.queryStringParse(query); - return AWS.util.queryParamsToString(query); - } - return ''; - } - - }); - - /** - * The low level HTTP response object, encapsulating all HTTP header - * and body data returned from the request. - * - * @!attribute statusCode - * @return [Integer] the HTTP status code of the response (e.g., 200, 404) - * @!attribute headers - * @return [map] - * a map of response header keys and their respective values - * @!attribute body - * @return [String] the response body payload - * @!attribute [r] streaming - * @return [Boolean] whether this response is being streamed at a low-level. - * Defaults to `false` (buffered reads). Do not modify this manually, use - * {createUnbufferedStream} to convert the stream to unbuffered mode - * instead. - */ - AWS.HttpResponse = inherit({ - - /** - * @api private - */ - constructor: function HttpResponse() { - this.statusCode = undefined; - this.headers = {}; - this.body = undefined; - this.streaming = false; - this.stream = null; - }, - - /** - * Disables buffering on the HTTP response and returns the stream for reading. - * @return [Stream, XMLHttpRequest, null] the underlying stream object. - * Use this object to directly read data off of the stream. - * @note This object is only available after the {AWS.Request~httpHeaders} - * event has fired. This method must be called prior to - * {AWS.Request~httpData}. - * @example Taking control of a stream - * request.on('httpHeaders', function(statusCode, headers) { - * if (statusCode < 300) { - * if (headers.etag === 'xyz') { - * // pipe the stream, disabling buffering - * var stream = this.response.httpResponse.createUnbufferedStream(); - * stream.pipe(process.stdout); - * } else { // abort this request and set a better error message - * this.abort(); - * this.response.error = new Error('Invalid ETag'); - * } - * } - * }).send(console.log); - */ - createUnbufferedStream: function createUnbufferedStream() { - this.streaming = true; - return this.stream; - } - }); - - - AWS.HttpClient = inherit({}); - - /** - * @api private - */ - AWS.HttpClient.getInstance = function getInstance() { - if (this.singleton === undefined) { - this.singleton = new this(); - } - return this.singleton; - }; + add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { + var err = resp.error; + if (!err) return; + if (typeof err.code === 'string' && typeof err.message === 'string') { + if (err.code.match(/Signature/) && err.message.match(/expired/)) { + resp.error.retryable = true; + } + } + }); + add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { + if (!resp.error) return; + if (this.service.clockSkewError(resp.error) + && this.service.config.correctClockSkew) { + resp.error.retryable = true; + } + }); -/***/ }), -/* 194 */ -/***/ (function(module, exports, __webpack_require__) { + add('REDIRECT', 'retry', function REDIRECT(resp) { + if (resp.error && resp.error.statusCode >= 300 && + resp.error.statusCode < 400 && resp.httpResponse.headers['location']) { + this.httpRequest.endpoint = + new AWS.Endpoint(resp.httpResponse.headers['location']); + this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; + resp.error.redirect = true; + resp.error.retryable = true; + } + }); - var AWS = __webpack_require__(1); - - /** - * @api private - * @!method on(eventName, callback) - * Registers an event listener callback for the event given by `eventName`. - * Parameters passed to the callback function depend on the individual event - * being triggered. See the event documentation for those parameters. - * - * @param eventName [String] the event name to register the listener for - * @param callback [Function] the listener callback function - * @return [AWS.SequentialExecutor] the same object for chaining - */ - AWS.SequentialExecutor = AWS.util.inherit({ - - constructor: function SequentialExecutor() { - this._events = {}; - }, - - /** - * @api private - */ - listeners: function listeners(eventName) { - return this._events[eventName] ? this._events[eventName].slice(0) : []; - }, - - on: function on(eventName, listener) { - if (this._events[eventName]) { - this._events[eventName].push(listener); - } else { - this._events[eventName] = [listener]; - } - return this; - }, - - /** - * @api private - */ - onAsync: function onAsync(eventName, listener) { - listener._isAsync = true; - return this.on(eventName, listener); - }, - - removeListener: function removeListener(eventName, listener) { - var listeners = this._events[eventName]; - if (listeners) { - var length = listeners.length; - var position = -1; - for (var i = 0; i < length; ++i) { - if (listeners[i] === listener) { - position = i; - } - } - if (position > -1) { - listeners.splice(position, 1); - } - } - return this; - }, - - removeAllListeners: function removeAllListeners(eventName) { - if (eventName) { - delete this._events[eventName]; - } else { - this._events = {}; - } - return this; - }, - - /** - * @api private - */ - emit: function emit(eventName, eventArgs, doneCallback) { - if (!doneCallback) doneCallback = function() { }; - var listeners = this.listeners(eventName); - var count = listeners.length; - this.callListeners(listeners, eventArgs, doneCallback); - return count > 0; - }, - - /** - * @api private - */ - callListeners: function callListeners(listeners, args, doneCallback, prevError) { - var self = this; - var error = prevError || null; - - function callNextListener(err) { - if (err) { - error = AWS.util.error(error || new Error(), err); - if (self._haltHandlersOnError) { - return doneCallback.call(self, error); - } - } - self.callListeners(listeners, args, doneCallback, error); - } - - while (listeners.length > 0) { - var listener = listeners.shift(); - if (listener._isAsync) { // asynchronous listener - listener.apply(self, args.concat([callNextListener])); - return; // stop here, callNextListener will continue - } else { // synchronous listener - try { - listener.apply(self, args); - } catch (err) { - error = AWS.util.error(error || new Error(), err); - } - if (error && self._haltHandlersOnError) { - doneCallback.call(self, error); - return; - } - } - } - doneCallback.call(self, error); - }, - - /** - * Adds or copies a set of listeners from another list of - * listeners or SequentialExecutor object. - * - * @param listeners [map>, AWS.SequentialExecutor] - * a list of events and callbacks, or an event emitter object - * containing listeners to add to this emitter object. - * @return [AWS.SequentialExecutor] the emitter object, for chaining. - * @example Adding listeners from a map of listeners - * emitter.addListeners({ - * event1: [function() { ... }, function() { ... }], - * event2: [function() { ... }] - * }); - * emitter.emit('event1'); // emitter has event1 - * emitter.emit('event2'); // emitter has event2 - * @example Adding listeners from another emitter object - * var emitter1 = new AWS.SequentialExecutor(); - * emitter1.on('event1', function() { ... }); - * emitter1.on('event2', function() { ... }); - * var emitter2 = new AWS.SequentialExecutor(); - * emitter2.addListeners(emitter1); - * emitter2.emit('event1'); // emitter2 has event1 - * emitter2.emit('event2'); // emitter2 has event2 - */ - addListeners: function addListeners(listeners) { - var self = this; - - // extract listeners if parameter is an SequentialExecutor object - if (listeners._events) listeners = listeners._events; - - AWS.util.each(listeners, function(event, callbacks) { - if (typeof callbacks === 'function') callbacks = [callbacks]; - AWS.util.arrayEach(callbacks, function(callback) { - self.on(event, callback); - }); - }); - - return self; - }, - - /** - * Registers an event with {on} and saves the callback handle function - * as a property on the emitter object using a given `name`. - * - * @param name [String] the property name to set on this object containing - * the callback function handle so that the listener can be removed in - * the future. - * @param (see on) - * @return (see on) - * @example Adding a named listener DATA_CALLBACK - * var listener = function() { doSomething(); }; - * emitter.addNamedListener('DATA_CALLBACK', 'data', listener); - * - * // the following prints: true - * console.log(emitter.DATA_CALLBACK == listener); - */ - addNamedListener: function addNamedListener(name, eventName, callback) { - this[name] = callback; - this.addListener(eventName, callback); - return this; - }, - - /** - * @api private - */ - addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) { - callback._isAsync = true; - return this.addNamedListener(name, eventName, callback); - }, - - /** - * Helper method to add a set of named listeners using - * {addNamedListener}. The callback contains a parameter - * with a handle to the `addNamedListener` method. - * - * @callback callback function(add) - * The callback function is called immediately in order to provide - * the `add` function to the block. This simplifies the addition of - * a large group of named listeners. - * @param add [Function] the {addNamedListener} function to call - * when registering listeners. - * @example Adding a set of named listeners - * emitter.addNamedListeners(function(add) { - * add('DATA_CALLBACK', 'data', function() { ... }); - * add('OTHER', 'otherEvent', function() { ... }); - * add('LAST', 'lastEvent', function() { ... }); - * }); - * - * // these properties are now set: - * emitter.DATA_CALLBACK; - * emitter.OTHER; - * emitter.LAST; - */ - addNamedListeners: function addNamedListeners(callback) { - var self = this; - callback( - function() { - self.addNamedListener.apply(self, arguments); - }, - function() { - self.addNamedAsyncListener.apply(self, arguments); - } - ); - return this; - } - }); - - /** - * {on} is the prefered method. - * @api private - */ - AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; - - module.exports = AWS.SequentialExecutor; + add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) { + if (resp.error) { + if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.error.retryDelay = 0; + } else if (resp.retryCount < resp.maxRetries) { + resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; + } + } + }); + addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { + var delay, willRetry = false; + + if (resp.error) { + delay = resp.error.retryDelay || 0; + if (resp.error.retryable && resp.retryCount < resp.maxRetries) { + resp.retryCount++; + willRetry = true; + } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.redirectCount++; + willRetry = true; + } + } -/***/ }), -/* 195 */ -/***/ (function(module, exports, __webpack_require__) { + if (willRetry) { + resp.error = null; + setTimeout(done, delay); + } else { + done(); + } + }); + }), + + CorePost: new SequentialExecutor().addNamedListeners(function(add) { + add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); + add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); + + add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { + if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { + var message = 'Inaccessible host: `' + err.hostname + + '\'. This service may not be available in the `' + err.region + + '\' region.'; + this.response.error = AWS.util.error(new Error(message), { + code: 'UnknownEndpoint', + region: err.region, + hostname: err.hostname, + retryable: true, + originalError: err + }); + } + }); + }), + + Logger: new SequentialExecutor().addNamedListeners(function(add) { + add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) { + var req = resp.request; + var logger = req.service.config.logger; + if (!logger) return; + function filterSensitiveLog(inputShape, shape) { + if (!shape) { + return shape; + } + switch (inputShape.type) { + case 'structure': + var struct = {}; + AWS.util.each(shape, function(subShapeName, subShape) { + if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) { + struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape); + } else { + struct[subShapeName] = subShape; + } + }) + return struct + case 'list': + var list = []; + AWS.util.arrayEach(shape, function(subShape, index) { + list.push(filterSensitiveLog(inputShape.member, subShape)); + }) + return list; + case 'map': + var map = {}; + AWS.util.each(shape, function(key, value) { + map[key] = filterSensitiveLog(inputShape.value, value); + }) + return map; + default: + if (inputShape.isSensitive) { + return '***SensitiveInformation***' + } else { + return shape; + } + } + } - var AWS = __webpack_require__(1); - var SequentialExecutor = __webpack_require__(194); - /** - * The namespace used to register global event listeners for request building - * and sending. - */ - AWS.EventListeners = { - /** - * @!attribute VALIDATE_CREDENTIALS - * A request listener that validates whether the request is being - * sent with credentials. - * Handles the {AWS.Request~validate 'validate' Request event} - * @example Sending a request without validating credentials - * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS; - * request.removeListener('validate', listener); - * @readonly - * @return [Function] - * @!attribute VALIDATE_REGION - * A request listener that validates whether the region is set - * for a request. - * Handles the {AWS.Request~validate 'validate' Request event} - * @example Sending a request without validating region configuration - * var listener = AWS.EventListeners.Core.VALIDATE_REGION; - * request.removeListener('validate', listener); - * @readonly - * @return [Function] - * @!attribute VALIDATE_PARAMETERS - * A request listener that validates input parameters in a request. - * Handles the {AWS.Request~validate 'validate' Request event} - * @example Sending a request without validating parameters - * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS; - * request.removeListener('validate', listener); - * @example Disable parameter validation globally - * AWS.EventListeners.Core.removeListener('validate', - * AWS.EventListeners.Core.VALIDATE_REGION); - * @readonly - * @return [Function] - * @!attribute SEND - * A request listener that initiates the HTTP connection for a - * request being sent. Handles the {AWS.Request~send 'send' Request event} - * @example Replacing the HTTP handler - * var listener = AWS.EventListeners.Core.SEND; - * request.removeListener('send', listener); - * request.on('send', function(response) { - * customHandler.send(response); - * }); - * @return [Function] - * @readonly - * @!attribute HTTP_DATA - * A request listener that reads data from the HTTP connection in order - * to build the response data. - * Handles the {AWS.Request~httpData 'httpData' Request event}. - * Remove this handler if you are overriding the 'httpData' event and - * do not want extra data processing and buffering overhead. - * @example Disabling default data processing - * var listener = AWS.EventListeners.Core.HTTP_DATA; - * request.removeListener('httpData', listener); - * @return [Function] - * @readonly - */ - Core: {} /* doc hack */ - }; - - /** - * @api private - */ - function getOperationAuthtype(req) { - if (!req.service.api.operations) { - return ''; - } - var operation = req.service.api.operations[req.operation]; - return operation ? operation.authtype : ''; - } - - AWS.EventListeners = { - Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) { - addAsync('VALIDATE_CREDENTIALS', 'validate', - function VALIDATE_CREDENTIALS(req, done) { - if (!req.service.api.signatureVersion) return done(); // none - req.service.config.getCredentials(function(err) { - if (err) { - req.response.error = AWS.util.error(err, - {code: 'CredentialsError', message: 'Missing credentials in config'}); - } - done(); - }); - }); - - add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { - if (!req.service.config.region && !req.service.isGlobalEndpoint) { - req.response.error = AWS.util.error(new Error(), - {code: 'ConfigError', message: 'Missing region in config'}); - } - }); - - add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) { - if (!req.service.api.operations) { - return; - } - var operation = req.service.api.operations[req.operation]; - if (!operation) { - return; - } - var idempotentMembers = operation.idempotentMembers; - if (!idempotentMembers.length) { - return; - } - // creates a copy of params so user's param object isn't mutated - var params = AWS.util.copy(req.params); - for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) { - if (!params[idempotentMembers[i]]) { - // add the member - params[idempotentMembers[i]] = AWS.util.uuid.v4(); - } - } - req.params = params; - }); - - add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { - if (!req.service.api.operations) { - return; - } - var rules = req.service.api.operations[req.operation].input; - var validation = req.service.config.paramValidation; - new AWS.ParamValidator(validation).validate(rules, req.params); - }); - - addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { - req.haltHandlersOnError(); - if (!req.service.api.operations) { - return; - } - var operation = req.service.api.operations[req.operation]; - var authtype = operation ? operation.authtype : ''; - if (!req.service.api.signatureVersion && !authtype) return done(); // none - if (req.service.getSignerClass(req) === AWS.Signers.V4) { - var body = req.httpRequest.body || ''; - if (authtype.indexOf('unsigned-body') >= 0) { - req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; - return done(); - } - AWS.util.computeSha256(body, function(err, sha) { - if (err) { - done(err); - } - else { - req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; - done(); - } - }); - } else { - done(); - } - }); - - add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) { - var authtype = getOperationAuthtype(req); - if (req.httpRequest.headers['Content-Length'] === undefined - && authtype.indexOf('unsigned-body') === -1) { - var length = AWS.util.string.byteLength(req.httpRequest.body); - req.httpRequest.headers['Content-Length'] = length; - } - }); - - add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) { - req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; - }); - - add('RESTART', 'restart', function RESTART() { - var err = this.response.error; - if (!err || !err.retryable) return; - - this.httpRequest = new AWS.HttpRequest( - this.service.endpoint, - this.service.region - ); - - if (this.response.retryCount < this.service.config.maxRetries) { - this.response.retryCount++; - } else { - this.response.error = null; - } - }); - - addAsync('SIGN', 'sign', function SIGN(req, done) { - var service = req.service; - var operations = req.service.api.operations || {}; - var operation = operations[req.operation]; - var authtype = operation ? operation.authtype : ''; - if (!service.api.signatureVersion && !authtype) return done(); // none - - service.config.getCredentials(function (err, credentials) { - if (err) { - req.response.error = err; - return done(); - } - - try { - var date = service.getSkewCorrectedDate(); - var SignerClass = service.getSignerClass(req); - var signer = new SignerClass(req.httpRequest, - service.api.signingName || service.api.endpointPrefix, - { - signatureCache: service.config.signatureCache, - operation: operation - }); - signer.setServiceClientId(service._clientId); - - // clear old authorization headers - delete req.httpRequest.headers['Authorization']; - delete req.httpRequest.headers['Date']; - delete req.httpRequest.headers['X-Amz-Date']; - - // add new authorization - signer.addAuthorization(credentials, date); - req.signedAt = date; - } catch (e) { - req.response.error = e; - } - done(); - }); - }); - - add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { - if (this.service.successfulResponse(resp, this)) { - resp.data = {}; - resp.error = null; - } else { - resp.data = null; - resp.error = AWS.util.error(new Error(), - {code: 'UnknownError', message: 'An unknown error occurred.'}); - } - }); - - addAsync('SEND', 'send', function SEND(resp, done) { - resp.httpResponse._abortCallback = done; - resp.error = null; - resp.data = null; - - function callback(httpResp) { - resp.httpResponse.stream = httpResp; - var stream = resp.request.httpRequest.stream; - - httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) { - resp.request.emit( - 'httpHeaders', - [statusCode, headers, resp, statusMessage] - ); - - if (!resp.httpResponse.streaming) { - if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check - httpResp.on('readable', function onReadable() { - var data = httpResp.read(); - if (data !== null) { - resp.request.emit('httpData', [data, resp]); - } - }); - } else { // legacy streams API - httpResp.on('data', function onData(data) { - resp.request.emit('httpData', [data, resp]); - }); - } - } - }); - - httpResp.on('end', function onEnd() { - if (!stream || !stream.didCallback) { - resp.request.emit('httpDone'); - done(); - } - }); - } - - function progress(httpResp) { - httpResp.on('sendProgress', function onSendProgress(value) { - resp.request.emit('httpUploadProgress', [value, resp]); - }); - - httpResp.on('receiveProgress', function onReceiveProgress(value) { - resp.request.emit('httpDownloadProgress', [value, resp]); - }); - } - - function error(err) { - if (err.code !== 'RequestAbortedError') { - var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError'; - err = AWS.util.error(err, { - code: errCode, - region: resp.request.httpRequest.region, - hostname: resp.request.httpRequest.endpoint.hostname, - retryable: true - }); - } - resp.error = err; - resp.request.emit('httpError', [resp.error, resp], function() { - done(); - }); - } - - function executeSend() { - var http = AWS.HttpClient.getInstance(); - var httpOptions = resp.request.service.config.httpOptions || {}; - try { - var stream = http.handleRequest(resp.request.httpRequest, httpOptions, - callback, error); - progress(stream); - } catch (err) { - error(err); - } - } - var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000; - if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign - this.emit('sign', [this], function(err) { - if (err) done(err); - else executeSend(); - }); - } else { - executeSend(); - } - }); - - add('HTTP_HEADERS', 'httpHeaders', - function HTTP_HEADERS(statusCode, headers, resp, statusMessage) { - resp.httpResponse.statusCode = statusCode; - resp.httpResponse.statusMessage = statusMessage; - resp.httpResponse.headers = headers; - resp.httpResponse.body = new AWS.util.Buffer(''); - resp.httpResponse.buffers = []; - resp.httpResponse.numBytes = 0; - var dateHeader = headers.date || headers.Date; - var service = resp.request.service; - if (dateHeader) { - var serverTime = Date.parse(dateHeader); - if (service.config.correctClockSkew - && service.isClockSkewed(serverTime)) { - service.applyClockOffset(serverTime); - } - } - }); - - add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) { - if (chunk) { - if (AWS.util.isNode()) { - resp.httpResponse.numBytes += chunk.length; - - var total = resp.httpResponse.headers['content-length']; - var progress = { loaded: resp.httpResponse.numBytes, total: total }; - resp.request.emit('httpDownloadProgress', [progress, resp]); - } - - resp.httpResponse.buffers.push(new AWS.util.Buffer(chunk)); - } - }); - - add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) { - // convert buffers array into single buffer - if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) { - var body = AWS.util.buffer.concat(resp.httpResponse.buffers); - resp.httpResponse.body = body; - } - delete resp.httpResponse.numBytes; - delete resp.httpResponse.buffers; - }); - - add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) { - if (resp.httpResponse.statusCode) { - resp.error.statusCode = resp.httpResponse.statusCode; - if (resp.error.retryable === undefined) { - resp.error.retryable = this.service.retryableError(resp.error, this); - } - } - }); - - add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) { - if (!resp.error) return; - switch (resp.error.code) { - case 'RequestExpired': // EC2 only - case 'ExpiredTokenException': - case 'ExpiredToken': - resp.error.retryable = true; - resp.request.service.config.credentials.expired = true; - } - }); - - add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { - var err = resp.error; - if (!err) return; - if (typeof err.code === 'string' && typeof err.message === 'string') { - if (err.code.match(/Signature/) && err.message.match(/expired/)) { - resp.error.retryable = true; - } - } - }); - - add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { - if (!resp.error) return; - if (this.service.clockSkewError(resp.error) - && this.service.config.correctClockSkew) { - resp.error.retryable = true; - } - }); - - add('REDIRECT', 'retry', function REDIRECT(resp) { - if (resp.error && resp.error.statusCode >= 300 && - resp.error.statusCode < 400 && resp.httpResponse.headers['location']) { - this.httpRequest.endpoint = - new AWS.Endpoint(resp.httpResponse.headers['location']); - this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; - resp.error.redirect = true; - resp.error.retryable = true; - } - }); - - add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) { - if (resp.error) { - if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { - resp.error.retryDelay = 0; - } else if (resp.retryCount < resp.maxRetries) { - resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; - } - } - }); - - addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { - var delay, willRetry = false; - - if (resp.error) { - delay = resp.error.retryDelay || 0; - if (resp.error.retryable && resp.retryCount < resp.maxRetries) { - resp.retryCount++; - willRetry = true; - } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { - resp.redirectCount++; - willRetry = true; - } - } - - if (willRetry) { - resp.error = null; - setTimeout(done, delay); - } else { - done(); - } - }); - }), - - CorePost: new SequentialExecutor().addNamedListeners(function(add) { - add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); - add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); - - add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { - if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { - var message = 'Inaccessible host: `' + err.hostname + - '\'. This service may not be available in the `' + err.region + - '\' region.'; - this.response.error = AWS.util.error(new Error(message), { - code: 'UnknownEndpoint', - region: err.region, - hostname: err.hostname, - retryable: true, - originalError: err - }); - } - }); - }), - - Logger: new SequentialExecutor().addNamedListeners(function(add) { - add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) { - var req = resp.request; - var logger = req.service.config.logger; - if (!logger) return; - function filterSensitiveLog(inputShape, shape) { - if (!shape) { - return shape; - } - switch (inputShape.type) { - case 'structure': - var struct = {}; - AWS.util.each(shape, function(subShapeName, subShape) { - if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) { - struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape); - } else { - struct[subShapeName] = subShape; - } - }) - return struct - case 'list': - var list = []; - AWS.util.arrayEach(shape, function(subShape, index) { - list.push(filterSensitiveLog(inputShape.member, subShape)); - }) - return list; - case 'map': - var map = {}; - AWS.util.each(shape, function(key, value) { - map[key] = filterSensitiveLog(inputShape.value, value); - }) - return map; - default: - if (inputShape.isSensitive) { - return '***SensitiveInformation***' - } else { - return shape; - } - } - } - - function buildMessage() { - var time = resp.request.service.getSkewCorrectedDate().getTime(); - var delta = (time - req.startTime.getTime()) / 1000; - var ansi = logger.isTTY ? true : false; - var status = resp.httpResponse.statusCode; - var censoredParams = req.params; - if ( - req.service.api.operations && - req.service.api.operations[req.operation] && - req.service.api.operations[req.operation].input - ) { - var inputShape = req.service.api.operations[req.operation].input; - censoredParams = filterSensitiveLog(inputShape, req.params); - } - var params = __webpack_require__(196).inspect(censoredParams, true, null); - var message = ''; - if (ansi) message += '\x1B[33m'; - message += '[AWS ' + req.service.serviceIdentifier + ' ' + status; - message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]'; - if (ansi) message += '\x1B[0;1m'; - message += ' ' + AWS.util.string.lowerFirst(req.operation); - message += '(' + params + ')'; - if (ansi) message += '\x1B[0m'; - return message; - } - - var line = buildMessage(); - if (typeof logger.log === 'function') { - logger.log(line); - } else if (typeof logger.write === 'function') { - logger.write(line + '\n'); - } - }); - }), - - Json: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(13); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - Rest: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(20); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - RestJson: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(21); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - RestXml: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(22); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - Query: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(16); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }) - }; + function buildMessage() { + var time = resp.request.service.getSkewCorrectedDate().getTime(); + var delta = (time - req.startTime.getTime()) / 1000; + var ansi = logger.isTTY ? true : false; + var status = resp.httpResponse.statusCode; + var censoredParams = req.params; + if ( + req.service.api.operations && + req.service.api.operations[req.operation] && + req.service.api.operations[req.operation].input + ) { + var inputShape = req.service.api.operations[req.operation].input; + censoredParams = filterSensitiveLog(inputShape, req.params); + } + var params = __webpack_require__(196).inspect(censoredParams, true, null); + var message = ''; + if (ansi) message += '\x1B[33m'; + message += '[AWS ' + req.service.serviceIdentifier + ' ' + status; + message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]'; + if (ansi) message += '\x1B[0;1m'; + message += ' ' + AWS.util.string.lowerFirst(req.operation); + message += '(' + params + ')'; + if (ansi) message += '\x1B[0m'; + return message; + } + + var line = buildMessage(); + if (typeof logger.log === 'function') { + logger.log(line); + } else if (typeof logger.write === 'function') { + logger.write(line + '\n'); + } + }); + }), + + Json: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(13); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Rest: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(20); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestJson: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(21); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestXml: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(22); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Query: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(16); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }) + }; /***/ }), @@ -12749,968 +12751,968 @@ return /******/ (function(modules) { // webpackBootstrap } exports.isPrimitive = isPrimitive; - exports.isBuffer = __webpack_require__(197); + exports.isBuffer = __webpack_require__(197); + + function objectToString(o) { + return Object.prototype.toString.call(o); + } + + + function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); + } + + + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + + // 26 Feb 16:19:34 + function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); + } + + + // log is just a thin wrapper to console.log that prepends a timestamp + exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); + }; + + + /** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ + exports.inherits = __webpack_require__(198); + + exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; + }; + + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(3))) + +/***/ }), +/* 197 */ +/***/ (function(module, exports) { + + module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; + } + +/***/ }), +/* 198 */ +/***/ (function(module, exports) { + + if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; + } else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } + + +/***/ }), +/* 199 */ +/***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(1); + var AcceptorStateMachine = __webpack_require__(200); + var inherit = AWS.util.inherit; + var domain = AWS.util.domain; + var jmespath = __webpack_require__(201); + + /** + * @api private + */ + var hardErrorStates = {success: 1, error: 1, complete: 1}; + + function isTerminalState(machine) { + return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState); + } + + var fsm = new AcceptorStateMachine(); + fsm.setupStates = function() { + var transition = function(_, done) { + var self = this; + self._haltHandlersOnError = false; + + self.emit(self._asm.currentState, function(err) { + if (err) { + if (isTerminalState(self)) { + if (domain && self.domain instanceof domain.Domain) { + err.domainEmitter = self; + err.domain = self.domain; + err.domainThrown = false; + self.domain.emit('error', err); + } else { + throw err; + } + } else { + self.response.error = err; + done(err); + } + } else { + done(self.response.error); + } + }); + + }; + + this.addState('validate', 'build', 'error', transition); + this.addState('build', 'afterBuild', 'restart', transition); + this.addState('afterBuild', 'sign', 'restart', transition); + this.addState('sign', 'send', 'retry', transition); + this.addState('retry', 'afterRetry', 'afterRetry', transition); + this.addState('afterRetry', 'sign', 'error', transition); + this.addState('send', 'validateResponse', 'retry', transition); + this.addState('validateResponse', 'extractData', 'extractError', transition); + this.addState('extractError', 'extractData', 'retry', transition); + this.addState('extractData', 'success', 'retry', transition); + this.addState('restart', 'build', 'error', transition); + this.addState('success', 'complete', 'complete', transition); + this.addState('error', 'complete', 'complete', transition); + this.addState('complete', null, null, transition); + }; + fsm.setupStates(); + + /** + * ## Asynchronous Requests + * + * All requests made through the SDK are asynchronous and use a + * callback interface. Each service method that kicks off a request + * returns an `AWS.Request` object that you can use to register + * callbacks. + * + * For example, the following service method returns the request + * object as "request", which can be used to register callbacks: + * + * ```javascript + * // request is an AWS.Request object + * var request = ec2.describeInstances(); + * + * // register callbacks on request to retrieve response data + * request.on('success', function(response) { + * console.log(response.data); + * }); + * ``` + * + * When a request is ready to be sent, the {send} method should + * be called: + * + * ```javascript + * request.send(); + * ``` + * + * Since registered callbacks may or may not be idempotent, requests should only + * be sent once. To perform the same operation multiple times, you will need to + * create multiple request objects, each with its own registered callbacks. + * + * ## Removing Default Listeners for Events + * + * Request objects are built with default listeners for the various events, + * depending on the service type. In some cases, you may want to remove + * some built-in listeners to customize behaviour. Doing this requires + * access to the built-in listener functions, which are exposed through + * the {AWS.EventListeners.Core} namespace. For instance, you may + * want to customize the HTTP handler used when sending a request. In this + * case, you can remove the built-in listener associated with the 'send' + * event, the {AWS.EventListeners.Core.SEND} listener and add your own. + * + * ## Multiple Callbacks and Chaining + * + * You can register multiple callbacks on any request object. The + * callbacks can be registered for different events, or all for the + * same event. In addition, you can chain callback registration, for + * example: + * + * ```javascript + * request. + * on('success', function(response) { + * console.log("Success!"); + * }). + * on('error', function(response) { + * console.log("Error!"); + * }). + * on('complete', function(response) { + * console.log("Always!"); + * }). + * send(); + * ``` + * + * The above example will print either "Success! Always!", or "Error! Always!", + * depending on whether the request succeeded or not. + * + * @!attribute httpRequest + * @readonly + * @!group HTTP Properties + * @return [AWS.HttpRequest] the raw HTTP request object + * containing request headers and body information + * sent by the service. + * + * @!attribute startTime + * @readonly + * @!group Operation Properties + * @return [Date] the time that the request started + * + * @!group Request Building Events + * + * @!event validate(request) + * Triggered when a request is being validated. Listeners + * should throw an error if the request should not be sent. + * @param request [Request] the request object being sent + * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS + * @see AWS.EventListeners.Core.VALIDATE_REGION + * @example Ensuring that a certain parameter is set before sending a request + * var req = s3.putObject(params); + * req.on('validate', function() { + * if (!req.params.Body.match(/^Hello\s/)) { + * throw new Error('Body must start with "Hello "'); + * } + * }); + * req.send(function(err, data) { ... }); + * + * @!event build(request) + * Triggered when the request payload is being built. Listeners + * should fill the necessary information to send the request + * over HTTP. + * @param (see AWS.Request~validate) + * @example Add a custom HTTP header to a request + * var req = s3.putObject(params); + * req.on('build', function() { + * req.httpRequest.headers['Custom-Header'] = 'value'; + * }); + * req.send(function(err, data) { ... }); + * + * @!event sign(request) + * Triggered when the request is being signed. Listeners should + * add the correct authentication headers and/or adjust the body, + * depending on the authentication mechanism being used. + * @param (see AWS.Request~validate) + * + * @!group Request Sending Events + * + * @!event send(response) + * Triggered when the request is ready to be sent. Listeners + * should call the underlying transport layer to initiate + * the sending of the request. + * @param response [Response] the response object + * @context [Request] the request object that was sent + * @see AWS.EventListeners.Core.SEND + * + * @!event retry(response) + * Triggered when a request failed and might need to be retried or redirected. + * If the response is retryable, the listener should set the + * `response.error.retryable` property to `true`, and optionally set + * `response.error.retryDelay` to the millisecond delay for the next attempt. + * In the case of a redirect, `response.error.redirect` should be set to + * `true` with `retryDelay` set to an optional delay on the next request. + * + * If a listener decides that a request should not be retried, + * it should set both `retryable` and `redirect` to false. + * + * Note that a retryable error will be retried at most + * {AWS.Config.maxRetries} times (based on the service object's config). + * Similarly, a request that is redirected will only redirect at most + * {AWS.Config.maxRedirects} times. + * + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @example Adding a custom retry for a 404 response + * request.on('retry', function(response) { + * // this resource is not yet available, wait 10 seconds to get it again + * if (response.httpResponse.statusCode === 404 && response.error) { + * response.error.retryable = true; // retry this error + * response.error.retryDelay = 10000; // wait 10 seconds + * } + * }); + * + * @!group Data Parsing Events + * + * @!event extractError(response) + * Triggered on all non-2xx requests so that listeners can extract + * error details from the response body. Listeners to this event + * should set the `response.error` property. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event extractData(response) + * Triggered in successful requests to allow listeners to + * de-serialize the response body into `response.data`. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group Completion Events + * + * @!event success(response) + * Triggered when the request completed successfully. + * `response.data` will contain the response data and + * `response.error` will be null. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event error(error, response) + * Triggered when an error occurs at any point during the + * request. `response.error` will contain details about the error + * that occurred. `response.data` will be null. + * @param error [Error] the error object containing details about + * the error that occurred. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event complete(response) + * Triggered whenever a request cycle completes. `response.error` + * should be checked, since the request may have failed. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group HTTP Events + * + * @!event httpHeaders(statusCode, headers, response, statusMessage) + * Triggered when headers are sent by the remote server + * @param statusCode [Integer] the HTTP response code + * @param headers [map] the response headers + * @param (see AWS.Request~send) + * @param statusMessage [String] A status message corresponding to the HTTP + * response code + * @context (see AWS.Request~send) + * + * @!event httpData(chunk, response) + * Triggered when data is sent by the remote server + * @param chunk [Buffer] the buffer data containing the next data chunk + * from the server + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @see AWS.EventListeners.Core.HTTP_DATA + * + * @!event httpUploadProgress(progress, response) + * Triggered when the HTTP request has uploaded more data + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @note This event will not be emitted in Node.js 0.8.x. + * + * @!event httpDownloadProgress(progress, response) + * Triggered when the HTTP request has downloaded more data + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @note This event will not be emitted in Node.js 0.8.x. + * + * @!event httpError(error, response) + * Triggered when the HTTP request failed + * @param error [Error] the error object that was thrown + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event httpDone(response) + * Triggered when the server is finished sending data + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @see AWS.Response + */ + AWS.Request = inherit({ + + /** + * Creates a request for an operation on a given service with + * a set of input parameters. + * + * @param service [AWS.Service] the service to perform the operation on + * @param operation [String] the operation to perform on the service + * @param params [Object] parameters to send to the operation. + * See the operation's documentation for the format of the + * parameters. + */ + constructor: function Request(service, operation, params) { + var endpoint = service.endpoint; + var region = service.config.region; + var customUserAgent = service.config.customUserAgent; + + // global endpoints sign as us-east-1 + if (service.isGlobalEndpoint) region = 'us-east-1'; + + this.domain = domain && domain.active; + this.service = service; + this.operation = operation; + this.params = params || {}; + this.httpRequest = new AWS.HttpRequest(endpoint, region); + this.httpRequest.appendToUserAgent(customUserAgent); + this.startTime = service.getSkewCorrectedDate(); + + this.response = new AWS.Response(this); + this._asm = new AcceptorStateMachine(fsm.states, 'validate'); + this._haltHandlersOnError = false; + + AWS.SequentialExecutor.call(this); + this.emit = this.emitEvent; + }, + + /** + * @!group Sending a Request + */ + + /** + * @overload send(callback = null) + * Sends the request object. + * + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @context [AWS.Request] the request object being sent. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + * @example Sending a request with a callback + * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * request.send(function(err, data) { console.log(err, data); }); + * @example Sending a request with no callback (using event handlers) + * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * request.on('complete', function(response) { ... }); // register a callback + * request.send(); + */ + send: function send(callback) { + if (callback) { + // append to user agent + this.httpRequest.appendToUserAgent('callback'); + this.on('complete', function (resp) { + callback.call(resp, resp.error, resp.data); + }); + } + this.runTo(); + + return this.response; + }, + + /** + * @!method promise() + * Sends the request and returns a 'thenable' promise. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(data) + * Called if the promise is fulfilled. + * @param data [Object] the de-serialized data returned from the request. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param error [Error] the error object returned from the request. + * @return [Promise] A promise that represents the state of the request. + * @example Sending a request using promises. + * var request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * var result = request.promise(); + * result.then(function(data) { ... }, function(error) { ... }); + */ + + /** + * @api private + */ + build: function build(callback) { + return this.runTo('send', callback); + }, + + /** + * @api private + */ + runTo: function runTo(state, done) { + this._asm.runTo(state, done, this); + return this; + }, + + /** + * Aborts a request, emitting the error and complete events. + * + * @!macro nobrowser + * @example Aborting a request after sending + * var params = { + * Bucket: 'bucket', Key: 'key', + * Body: new Buffer(1024 * 1024 * 5) // 5MB payload + * }; + * var request = s3.putObject(params); + * request.send(function (err, data) { + * if (err) console.log("Error:", err.code, err.message); + * else console.log(data); + * }); + * + * // abort request in 1 second + * setTimeout(request.abort.bind(request), 1000); + * + * // prints "Error: RequestAbortedError Request aborted by user" + * @return [AWS.Request] the same request object, for chaining. + * @since v1.4.0 + */ + abort: function abort() { + this.removeAllListeners('validateResponse'); + this.removeAllListeners('extractError'); + this.on('validateResponse', function addAbortedError(resp) { + resp.error = AWS.util.error(new Error('Request aborted by user'), { + code: 'RequestAbortedError', retryable: false + }); + }); + + if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream + this.httpRequest.stream.abort(); + if (this.httpRequest._abortCallback) { + this.httpRequest._abortCallback(); + } else { + this.removeAllListeners('send'); // haven't sent yet, so let's not + } + } + + return this; + }, + + /** + * Iterates over each page of results given a pageable request, calling + * the provided callback with each page of data. After all pages have been + * retrieved, the callback is called with `null` data. + * + * @note This operation can generate multiple requests to a service. + * @example Iterating over multiple pages of objects in an S3 bucket + * var pages = 1; + * s3.listObjects().eachPage(function(err, data) { + * if (err) return; + * console.log("Page", pages++); + * console.log(data); + * }); + * @example Iterating over multiple pages with an asynchronous callback + * s3.listObjects(params).eachPage(function(err, data, done) { + * doSomethingAsyncAndOrExpensive(function() { + * // The next page of results isn't fetched until done is called + * done(); + * }); + * }); + * @callback callback function(err, data, [doneCallback]) + * Called with each page of resulting data from the request. If the + * optional `doneCallback` is provided in the function, it must be called + * when the callback is complete. + * + * @param err [Error] an error object, if an error occurred. + * @param data [Object] a single page of response data. If there is no + * more data, this object will be `null`. + * @param doneCallback [Function] an optional done callback. If this + * argument is defined in the function declaration, it should be called + * when the next page is ready to be retrieved. This is useful for + * controlling serial pagination across asynchronous operations. + * @return [Boolean] if the callback returns `false`, pagination will + * stop. + * + * @see AWS.Request.eachItem + * @see AWS.Response.nextPage + * @since v1.4.0 + */ + eachPage: function eachPage(callback) { + // Make all callbacks async-ish + callback = AWS.util.fn.makeAsync(callback, 3); + + function wrappedCallback(response) { + callback.call(response, response.error, response.data, function (result) { + if (result === false) return; + + if (response.hasNextPage()) { + response.nextPage().on('complete', wrappedCallback).send(); + } else { + callback.call(response, null, null, AWS.util.fn.noop); + } + }); + } - function objectToString(o) { - return Object.prototype.toString.call(o); - } + this.on('complete', wrappedCallback).send(); + }, + + /** + * Enumerates over individual items of a request, paging the responses if + * necessary. + * + * @api experimental + * @since v1.4.0 + */ + eachItem: function eachItem(callback) { + var self = this; + function wrappedCallback(err, data) { + if (err) return callback(err, null); + if (data === null) return callback(null, null); + + var config = self.service.paginationConfig(self.operation); + var resultKey = config.resultKey; + if (Array.isArray(resultKey)) resultKey = resultKey[0]; + var items = jmespath.search(data, resultKey); + var continueIteration = true; + AWS.util.arrayEach(items, function(item) { + continueIteration = callback(null, item); + if (continueIteration === false) { + return AWS.util.abort; + } + }); + return continueIteration; + } + this.eachPage(wrappedCallback); + }, + + /** + * @return [Boolean] whether the operation can return multiple pages of + * response data. + * @see AWS.Response.eachPage + * @since v1.4.0 + */ + isPageable: function isPageable() { + return this.service.paginationConfig(this.operation) ? true : false; + }, + + /** + * Sends the request and converts the request object into a readable stream + * that can be read from or piped into a writable stream. + * + * @note The data read from a readable stream contains only + * the raw HTTP body contents. + * @example Manually reading from a stream + * request.createReadStream().on('data', function(data) { + * console.log("Got data:", data.toString()); + * }); + * @example Piping a request body into a file + * var out = fs.createWriteStream('/path/to/outfile.jpg'); + * s3.service.getObject(params).createReadStream().pipe(out); + * @return [Stream] the readable stream object that can be piped + * or read from (by registering 'data' event listeners). + * @!macro nobrowser + */ + createReadStream: function createReadStream() { + var streams = AWS.util.stream; + var req = this; + var stream = null; + + if (AWS.HttpClient.streamsApiVersion === 2) { + stream = new streams.PassThrough(); + process.nextTick(function() { req.send(); }); + } else { + stream = new streams.Stream(); + stream.readable = true; + + stream.sent = false; + stream.on('newListener', function(event) { + if (!stream.sent && event === 'data') { + stream.sent = true; + process.nextTick(function() { req.send(); }); + } + }); + } - function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); - } + this.on('error', function(err) { + stream.emit('error', err); + }); + this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { + if (statusCode < 300) { + req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); + req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); + req.on('httpError', function streamHttpError(error) { + resp.error = error; + resp.error.retryable = false; + }); - var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; + var shouldCheckContentLength = false; + var expectedLen; + if (req.httpRequest.method !== 'HEAD') { + expectedLen = parseInt(headers['content-length'], 10); + } + if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) { + shouldCheckContentLength = true; + var receivedLen = 0; + } - // 26 Feb 16:19:34 - function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); - } + var checkContentLengthAndEmit = function checkContentLengthAndEmit() { + if (shouldCheckContentLength && receivedLen !== expectedLen) { + stream.emit('error', AWS.util.error( + new Error('Stream content length mismatch. Received ' + + receivedLen + ' of ' + expectedLen + ' bytes.'), + { code: 'StreamContentLengthMismatch' } + )); + } else if (AWS.HttpClient.streamsApiVersion === 2) { + stream.end(); + } else { + stream.emit('end'); + } + }; + var httpStream = resp.httpResponse.createUnbufferedStream(); - // log is just a thin wrapper to console.log that prepends a timestamp - exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); - }; + if (AWS.HttpClient.streamsApiVersion === 2) { + if (shouldCheckContentLength) { + var lengthAccumulator = new streams.PassThrough(); + lengthAccumulator._write = function(chunk) { + if (chunk && chunk.length) { + receivedLen += chunk.length; + } + return streams.PassThrough.prototype._write.apply(this, arguments); + }; + lengthAccumulator.on('end', checkContentLengthAndEmit); + stream.on('error', function(err) { + shouldCheckContentLength = false; + httpStream.unpipe(lengthAccumulator); + lengthAccumulator.emit('end'); + lengthAccumulator.end(); + }); + httpStream.pipe(lengthAccumulator).pipe(stream, { end: false }); + } else { + httpStream.pipe(stream); + } + } else { - /** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ - exports.inherits = __webpack_require__(198); + if (shouldCheckContentLength) { + httpStream.on('data', function(arg) { + if (arg && arg.length) { + receivedLen += arg.length; + } + }); + } - exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; + httpStream.on('data', function(arg) { + stream.emit('data', arg); + }); + httpStream.on('end', checkContentLengthAndEmit); + } - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; + httpStream.on('error', function(err) { + shouldCheckContentLength = false; + stream.emit('error', err); + }); + } + }); + + return stream; + }, + + /** + * @param [Array,Response] args This should be the response object, + * or an array of args to send to the event. + * @api private + */ + emitEvent: function emit(eventName, args, done) { + if (typeof args === 'function') { done = args; args = null; } + if (!done) done = function() { }; + if (!args) args = this.eventParameters(eventName, this.response); + + var origEmit = AWS.SequentialExecutor.prototype.emit; + origEmit.call(this, eventName, args, function (err) { + if (err) this.response.error = err; + done.call(this, err); + }); + }, + + /** + * @api private + */ + eventParameters: function eventParameters(eventName) { + switch (eventName) { + case 'restart': + case 'validate': + case 'sign': + case 'build': + case 'afterValidate': + case 'afterBuild': + return [this]; + case 'error': + return [this.response.error, this.response]; + default: + return [this.response]; + } + }, + + /** + * @api private + */ + presign: function presign(expires, callback) { + if (!callback && typeof expires === 'function') { + callback = expires; + expires = null; + } + return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); + }, + + /** + * @api private + */ + isPresigned: function isPresigned() { + return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires'); + }, + + /** + * @api private + */ + toUnauthenticated: function toUnauthenticated() { + this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); + this.removeListener('sign', AWS.EventListeners.Core.SIGN); + return this; + }, + + /** + * @api private + */ + toGet: function toGet() { + if (this.service.api.protocol === 'query' || + this.service.api.protocol === 'ec2') { + this.removeListener('build', this.buildAsGet); + this.addListener('build', this.buildAsGet); + } + return this; + }, + + /** + * @api private + */ + buildAsGet: function buildAsGet(request) { + request.httpRequest.method = 'GET'; + request.httpRequest.path = request.service.endpoint.path + + '?' + request.httpRequest.body; + request.httpRequest.body = ''; + + // don't need these headers on a GET request + delete request.httpRequest.headers['Content-Length']; + delete request.httpRequest.headers['Content-Type']; + }, + + /** + * @api private + */ + haltHandlersOnError: function haltHandlersOnError() { + this._haltHandlersOnError = true; } - return origin; + }); + + /** + * @api private + */ + AWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.promise = function promise() { + var self = this; + // append to user agent + this.httpRequest.appendToUserAgent('promise'); + return new PromiseDependency(function(resolve, reject) { + self.on('complete', function(resp) { + if (resp.error) { + reject(resp.error); + } else { + // define $response property so that it is not enumberable + // this prevents circular reference errors when stringifying the JSON object + resolve(Object.defineProperty( + resp.data || {}, + '$response', + {value: resp} + )); + } + }); + self.runTo(); + }); + }; }; - function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); - } + /** + * @api private + */ + AWS.Request.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.promise; + }; - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(3))) + AWS.util.addPromises(AWS.Request); -/***/ }), -/* 197 */ -/***/ (function(module, exports) { + AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); - module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; - } + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) /***/ }), -/* 198 */ +/* 200 */ /***/ (function(module, exports) { - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } + function AcceptorStateMachine(states, state) { + this.currentState = state || null; + this.states = states || {}; } + AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { + if (typeof finalState === 'function') { + inputError = bindObject; bindObject = done; + done = finalState; finalState = null; + } -/***/ }), -/* 199 */ -/***/ (function(module, exports, __webpack_require__) { + var self = this; + var state = self.states[self.currentState]; + state.fn.call(bindObject || self, inputError, function(err) { + if (err) { + if (state.fail) self.currentState = state.fail; + else return done ? done.call(bindObject, err) : null; + } else { + if (state.accept) self.currentState = state.accept; + else return done ? done.call(bindObject) : null; + } + if (self.currentState === finalState) { + return done ? done.call(bindObject, err) : null; + } - /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(1); - var AcceptorStateMachine = __webpack_require__(200); - var inherit = AWS.util.inherit; - var domain = AWS.util.domain; - var jmespath = __webpack_require__(201); - - /** - * @api private - */ - var hardErrorStates = {success: 1, error: 1, complete: 1}; - - function isTerminalState(machine) { - return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState); - } - - var fsm = new AcceptorStateMachine(); - fsm.setupStates = function() { - var transition = function(_, done) { - var self = this; - self._haltHandlersOnError = false; - - self.emit(self._asm.currentState, function(err) { - if (err) { - if (isTerminalState(self)) { - if (domain && self.domain instanceof domain.Domain) { - err.domainEmitter = self; - err.domain = self.domain; - err.domainThrown = false; - self.domain.emit('error', err); - } else { - throw err; - } - } else { - self.response.error = err; - done(err); - } - } else { - done(self.response.error); - } - }); - - }; - - this.addState('validate', 'build', 'error', transition); - this.addState('build', 'afterBuild', 'restart', transition); - this.addState('afterBuild', 'sign', 'restart', transition); - this.addState('sign', 'send', 'retry', transition); - this.addState('retry', 'afterRetry', 'afterRetry', transition); - this.addState('afterRetry', 'sign', 'error', transition); - this.addState('send', 'validateResponse', 'retry', transition); - this.addState('validateResponse', 'extractData', 'extractError', transition); - this.addState('extractError', 'extractData', 'retry', transition); - this.addState('extractData', 'success', 'retry', transition); - this.addState('restart', 'build', 'error', transition); - this.addState('success', 'complete', 'complete', transition); - this.addState('error', 'complete', 'complete', transition); - this.addState('complete', null, null, transition); - }; - fsm.setupStates(); - - /** - * ## Asynchronous Requests - * - * All requests made through the SDK are asynchronous and use a - * callback interface. Each service method that kicks off a request - * returns an `AWS.Request` object that you can use to register - * callbacks. - * - * For example, the following service method returns the request - * object as "request", which can be used to register callbacks: - * - * ```javascript - * // request is an AWS.Request object - * var request = ec2.describeInstances(); - * - * // register callbacks on request to retrieve response data - * request.on('success', function(response) { - * console.log(response.data); - * }); - * ``` - * - * When a request is ready to be sent, the {send} method should - * be called: - * - * ```javascript - * request.send(); - * ``` - * - * Since registered callbacks may or may not be idempotent, requests should only - * be sent once. To perform the same operation multiple times, you will need to - * create multiple request objects, each with its own registered callbacks. - * - * ## Removing Default Listeners for Events - * - * Request objects are built with default listeners for the various events, - * depending on the service type. In some cases, you may want to remove - * some built-in listeners to customize behaviour. Doing this requires - * access to the built-in listener functions, which are exposed through - * the {AWS.EventListeners.Core} namespace. For instance, you may - * want to customize the HTTP handler used when sending a request. In this - * case, you can remove the built-in listener associated with the 'send' - * event, the {AWS.EventListeners.Core.SEND} listener and add your own. - * - * ## Multiple Callbacks and Chaining - * - * You can register multiple callbacks on any request object. The - * callbacks can be registered for different events, or all for the - * same event. In addition, you can chain callback registration, for - * example: - * - * ```javascript - * request. - * on('success', function(response) { - * console.log("Success!"); - * }). - * on('error', function(response) { - * console.log("Error!"); - * }). - * on('complete', function(response) { - * console.log("Always!"); - * }). - * send(); - * ``` - * - * The above example will print either "Success! Always!", or "Error! Always!", - * depending on whether the request succeeded or not. - * - * @!attribute httpRequest - * @readonly - * @!group HTTP Properties - * @return [AWS.HttpRequest] the raw HTTP request object - * containing request headers and body information - * sent by the service. - * - * @!attribute startTime - * @readonly - * @!group Operation Properties - * @return [Date] the time that the request started - * - * @!group Request Building Events - * - * @!event validate(request) - * Triggered when a request is being validated. Listeners - * should throw an error if the request should not be sent. - * @param request [Request] the request object being sent - * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS - * @see AWS.EventListeners.Core.VALIDATE_REGION - * @example Ensuring that a certain parameter is set before sending a request - * var req = s3.putObject(params); - * req.on('validate', function() { - * if (!req.params.Body.match(/^Hello\s/)) { - * throw new Error('Body must start with "Hello "'); - * } - * }); - * req.send(function(err, data) { ... }); - * - * @!event build(request) - * Triggered when the request payload is being built. Listeners - * should fill the necessary information to send the request - * over HTTP. - * @param (see AWS.Request~validate) - * @example Add a custom HTTP header to a request - * var req = s3.putObject(params); - * req.on('build', function() { - * req.httpRequest.headers['Custom-Header'] = 'value'; - * }); - * req.send(function(err, data) { ... }); - * - * @!event sign(request) - * Triggered when the request is being signed. Listeners should - * add the correct authentication headers and/or adjust the body, - * depending on the authentication mechanism being used. - * @param (see AWS.Request~validate) - * - * @!group Request Sending Events - * - * @!event send(response) - * Triggered when the request is ready to be sent. Listeners - * should call the underlying transport layer to initiate - * the sending of the request. - * @param response [Response] the response object - * @context [Request] the request object that was sent - * @see AWS.EventListeners.Core.SEND - * - * @!event retry(response) - * Triggered when a request failed and might need to be retried or redirected. - * If the response is retryable, the listener should set the - * `response.error.retryable` property to `true`, and optionally set - * `response.error.retryDelay` to the millisecond delay for the next attempt. - * In the case of a redirect, `response.error.redirect` should be set to - * `true` with `retryDelay` set to an optional delay on the next request. - * - * If a listener decides that a request should not be retried, - * it should set both `retryable` and `redirect` to false. - * - * Note that a retryable error will be retried at most - * {AWS.Config.maxRetries} times (based on the service object's config). - * Similarly, a request that is redirected will only redirect at most - * {AWS.Config.maxRedirects} times. - * - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @example Adding a custom retry for a 404 response - * request.on('retry', function(response) { - * // this resource is not yet available, wait 10 seconds to get it again - * if (response.httpResponse.statusCode === 404 && response.error) { - * response.error.retryable = true; // retry this error - * response.error.retryDelay = 10000; // wait 10 seconds - * } - * }); - * - * @!group Data Parsing Events - * - * @!event extractError(response) - * Triggered on all non-2xx requests so that listeners can extract - * error details from the response body. Listeners to this event - * should set the `response.error` property. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event extractData(response) - * Triggered in successful requests to allow listeners to - * de-serialize the response body into `response.data`. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!group Completion Events - * - * @!event success(response) - * Triggered when the request completed successfully. - * `response.data` will contain the response data and - * `response.error` will be null. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event error(error, response) - * Triggered when an error occurs at any point during the - * request. `response.error` will contain details about the error - * that occurred. `response.data` will be null. - * @param error [Error] the error object containing details about - * the error that occurred. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event complete(response) - * Triggered whenever a request cycle completes. `response.error` - * should be checked, since the request may have failed. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!group HTTP Events - * - * @!event httpHeaders(statusCode, headers, response, statusMessage) - * Triggered when headers are sent by the remote server - * @param statusCode [Integer] the HTTP response code - * @param headers [map] the response headers - * @param (see AWS.Request~send) - * @param statusMessage [String] A status message corresponding to the HTTP - * response code - * @context (see AWS.Request~send) - * - * @!event httpData(chunk, response) - * Triggered when data is sent by the remote server - * @param chunk [Buffer] the buffer data containing the next data chunk - * from the server - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @see AWS.EventListeners.Core.HTTP_DATA - * - * @!event httpUploadProgress(progress, response) - * Triggered when the HTTP request has uploaded more data - * @param progress [map] An object containing the `loaded` and `total` bytes - * of the request. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @note This event will not be emitted in Node.js 0.8.x. - * - * @!event httpDownloadProgress(progress, response) - * Triggered when the HTTP request has downloaded more data - * @param progress [map] An object containing the `loaded` and `total` bytes - * of the request. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @note This event will not be emitted in Node.js 0.8.x. - * - * @!event httpError(error, response) - * Triggered when the HTTP request failed - * @param error [Error] the error object that was thrown - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event httpDone(response) - * Triggered when the server is finished sending data - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @see AWS.Response - */ - AWS.Request = inherit({ - - /** - * Creates a request for an operation on a given service with - * a set of input parameters. - * - * @param service [AWS.Service] the service to perform the operation on - * @param operation [String] the operation to perform on the service - * @param params [Object] parameters to send to the operation. - * See the operation's documentation for the format of the - * parameters. - */ - constructor: function Request(service, operation, params) { - var endpoint = service.endpoint; - var region = service.config.region; - var customUserAgent = service.config.customUserAgent; - - // global endpoints sign as us-east-1 - if (service.isGlobalEndpoint) region = 'us-east-1'; - - this.domain = domain && domain.active; - this.service = service; - this.operation = operation; - this.params = params || {}; - this.httpRequest = new AWS.HttpRequest(endpoint, region); - this.httpRequest.appendToUserAgent(customUserAgent); - this.startTime = service.getSkewCorrectedDate(); - - this.response = new AWS.Response(this); - this._asm = new AcceptorStateMachine(fsm.states, 'validate'); - this._haltHandlersOnError = false; - - AWS.SequentialExecutor.call(this); - this.emit = this.emitEvent; - }, - - /** - * @!group Sending a Request - */ - - /** - * @overload send(callback = null) - * Sends the request object. - * - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @context [AWS.Request] the request object being sent. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - * @example Sending a request with a callback - * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); - * request.send(function(err, data) { console.log(err, data); }); - * @example Sending a request with no callback (using event handlers) - * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); - * request.on('complete', function(response) { ... }); // register a callback - * request.send(); - */ - send: function send(callback) { - if (callback) { - // append to user agent - this.httpRequest.appendToUserAgent('callback'); - this.on('complete', function (resp) { - callback.call(resp, resp.error, resp.data); - }); - } - this.runTo(); - - return this.response; - }, - - /** - * @!method promise() - * Sends the request and returns a 'thenable' promise. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function(data) - * Called if the promise is fulfilled. - * @param data [Object] the de-serialized data returned from the request. - * @callback rejectedCallback function(error) - * Called if the promise is rejected. - * @param error [Error] the error object returned from the request. - * @return [Promise] A promise that represents the state of the request. - * @example Sending a request using promises. - * var request = s3.putObject({Bucket: 'bucket', Key: 'key'}); - * var result = request.promise(); - * result.then(function(data) { ... }, function(error) { ... }); - */ - - /** - * @api private - */ - build: function build(callback) { - return this.runTo('send', callback); - }, - - /** - * @api private - */ - runTo: function runTo(state, done) { - this._asm.runTo(state, done, this); - return this; - }, - - /** - * Aborts a request, emitting the error and complete events. - * - * @!macro nobrowser - * @example Aborting a request after sending - * var params = { - * Bucket: 'bucket', Key: 'key', - * Body: new Buffer(1024 * 1024 * 5) // 5MB payload - * }; - * var request = s3.putObject(params); - * request.send(function (err, data) { - * if (err) console.log("Error:", err.code, err.message); - * else console.log(data); - * }); - * - * // abort request in 1 second - * setTimeout(request.abort.bind(request), 1000); - * - * // prints "Error: RequestAbortedError Request aborted by user" - * @return [AWS.Request] the same request object, for chaining. - * @since v1.4.0 - */ - abort: function abort() { - this.removeAllListeners('validateResponse'); - this.removeAllListeners('extractError'); - this.on('validateResponse', function addAbortedError(resp) { - resp.error = AWS.util.error(new Error('Request aborted by user'), { - code: 'RequestAbortedError', retryable: false - }); - }); - - if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream - this.httpRequest.stream.abort(); - if (this.httpRequest._abortCallback) { - this.httpRequest._abortCallback(); - } else { - this.removeAllListeners('send'); // haven't sent yet, so let's not - } - } - - return this; - }, - - /** - * Iterates over each page of results given a pageable request, calling - * the provided callback with each page of data. After all pages have been - * retrieved, the callback is called with `null` data. - * - * @note This operation can generate multiple requests to a service. - * @example Iterating over multiple pages of objects in an S3 bucket - * var pages = 1; - * s3.listObjects().eachPage(function(err, data) { - * if (err) return; - * console.log("Page", pages++); - * console.log(data); - * }); - * @example Iterating over multiple pages with an asynchronous callback - * s3.listObjects(params).eachPage(function(err, data, done) { - * doSomethingAsyncAndOrExpensive(function() { - * // The next page of results isn't fetched until done is called - * done(); - * }); - * }); - * @callback callback function(err, data, [doneCallback]) - * Called with each page of resulting data from the request. If the - * optional `doneCallback` is provided in the function, it must be called - * when the callback is complete. - * - * @param err [Error] an error object, if an error occurred. - * @param data [Object] a single page of response data. If there is no - * more data, this object will be `null`. - * @param doneCallback [Function] an optional done callback. If this - * argument is defined in the function declaration, it should be called - * when the next page is ready to be retrieved. This is useful for - * controlling serial pagination across asynchronous operations. - * @return [Boolean] if the callback returns `false`, pagination will - * stop. - * - * @see AWS.Request.eachItem - * @see AWS.Response.nextPage - * @since v1.4.0 - */ - eachPage: function eachPage(callback) { - // Make all callbacks async-ish - callback = AWS.util.fn.makeAsync(callback, 3); - - function wrappedCallback(response) { - callback.call(response, response.error, response.data, function (result) { - if (result === false) return; - - if (response.hasNextPage()) { - response.nextPage().on('complete', wrappedCallback).send(); - } else { - callback.call(response, null, null, AWS.util.fn.noop); - } - }); - } - - this.on('complete', wrappedCallback).send(); - }, - - /** - * Enumerates over individual items of a request, paging the responses if - * necessary. - * - * @api experimental - * @since v1.4.0 - */ - eachItem: function eachItem(callback) { - var self = this; - function wrappedCallback(err, data) { - if (err) return callback(err, null); - if (data === null) return callback(null, null); - - var config = self.service.paginationConfig(self.operation); - var resultKey = config.resultKey; - if (Array.isArray(resultKey)) resultKey = resultKey[0]; - var items = jmespath.search(data, resultKey); - var continueIteration = true; - AWS.util.arrayEach(items, function(item) { - continueIteration = callback(null, item); - if (continueIteration === false) { - return AWS.util.abort; - } - }); - return continueIteration; - } - - this.eachPage(wrappedCallback); - }, - - /** - * @return [Boolean] whether the operation can return multiple pages of - * response data. - * @see AWS.Response.eachPage - * @since v1.4.0 - */ - isPageable: function isPageable() { - return this.service.paginationConfig(this.operation) ? true : false; - }, - - /** - * Sends the request and converts the request object into a readable stream - * that can be read from or piped into a writable stream. - * - * @note The data read from a readable stream contains only - * the raw HTTP body contents. - * @example Manually reading from a stream - * request.createReadStream().on('data', function(data) { - * console.log("Got data:", data.toString()); - * }); - * @example Piping a request body into a file - * var out = fs.createWriteStream('/path/to/outfile.jpg'); - * s3.service.getObject(params).createReadStream().pipe(out); - * @return [Stream] the readable stream object that can be piped - * or read from (by registering 'data' event listeners). - * @!macro nobrowser - */ - createReadStream: function createReadStream() { - var streams = AWS.util.stream; - var req = this; - var stream = null; - - if (AWS.HttpClient.streamsApiVersion === 2) { - stream = new streams.PassThrough(); - process.nextTick(function() { req.send(); }); - } else { - stream = new streams.Stream(); - stream.readable = true; - - stream.sent = false; - stream.on('newListener', function(event) { - if (!stream.sent && event === 'data') { - stream.sent = true; - process.nextTick(function() { req.send(); }); - } - }); - } - - this.on('error', function(err) { - stream.emit('error', err); - }); - - this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { - if (statusCode < 300) { - req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); - req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); - req.on('httpError', function streamHttpError(error) { - resp.error = error; - resp.error.retryable = false; - }); - - var shouldCheckContentLength = false; - var expectedLen; - if (req.httpRequest.method !== 'HEAD') { - expectedLen = parseInt(headers['content-length'], 10); - } - if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) { - shouldCheckContentLength = true; - var receivedLen = 0; - } - - var checkContentLengthAndEmit = function checkContentLengthAndEmit() { - if (shouldCheckContentLength && receivedLen !== expectedLen) { - stream.emit('error', AWS.util.error( - new Error('Stream content length mismatch. Received ' + - receivedLen + ' of ' + expectedLen + ' bytes.'), - { code: 'StreamContentLengthMismatch' } - )); - } else if (AWS.HttpClient.streamsApiVersion === 2) { - stream.end(); - } else { - stream.emit('end'); - } - }; - - var httpStream = resp.httpResponse.createUnbufferedStream(); - - if (AWS.HttpClient.streamsApiVersion === 2) { - if (shouldCheckContentLength) { - var lengthAccumulator = new streams.PassThrough(); - lengthAccumulator._write = function(chunk) { - if (chunk && chunk.length) { - receivedLen += chunk.length; - } - return streams.PassThrough.prototype._write.apply(this, arguments); - }; - - lengthAccumulator.on('end', checkContentLengthAndEmit); - stream.on('error', function(err) { - shouldCheckContentLength = false; - httpStream.unpipe(lengthAccumulator); - lengthAccumulator.emit('end'); - lengthAccumulator.end(); - }); - httpStream.pipe(lengthAccumulator).pipe(stream, { end: false }); - } else { - httpStream.pipe(stream); - } - } else { - - if (shouldCheckContentLength) { - httpStream.on('data', function(arg) { - if (arg && arg.length) { - receivedLen += arg.length; - } - }); - } - - httpStream.on('data', function(arg) { - stream.emit('data', arg); - }); - httpStream.on('end', checkContentLengthAndEmit); - } - - httpStream.on('error', function(err) { - shouldCheckContentLength = false; - stream.emit('error', err); - }); - } - }); - - return stream; - }, - - /** - * @param [Array,Response] args This should be the response object, - * or an array of args to send to the event. - * @api private - */ - emitEvent: function emit(eventName, args, done) { - if (typeof args === 'function') { done = args; args = null; } - if (!done) done = function() { }; - if (!args) args = this.eventParameters(eventName, this.response); - - var origEmit = AWS.SequentialExecutor.prototype.emit; - origEmit.call(this, eventName, args, function (err) { - if (err) this.response.error = err; - done.call(this, err); - }); - }, - - /** - * @api private - */ - eventParameters: function eventParameters(eventName) { - switch (eventName) { - case 'restart': - case 'validate': - case 'sign': - case 'build': - case 'afterValidate': - case 'afterBuild': - return [this]; - case 'error': - return [this.response.error, this.response]; - default: - return [this.response]; - } - }, - - /** - * @api private - */ - presign: function presign(expires, callback) { - if (!callback && typeof expires === 'function') { - callback = expires; - expires = null; - } - return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); - }, - - /** - * @api private - */ - isPresigned: function isPresigned() { - return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires'); - }, - - /** - * @api private - */ - toUnauthenticated: function toUnauthenticated() { - this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); - this.removeListener('sign', AWS.EventListeners.Core.SIGN); - return this; - }, - - /** - * @api private - */ - toGet: function toGet() { - if (this.service.api.protocol === 'query' || - this.service.api.protocol === 'ec2') { - this.removeListener('build', this.buildAsGet); - this.addListener('build', this.buildAsGet); - } - return this; - }, - - /** - * @api private - */ - buildAsGet: function buildAsGet(request) { - request.httpRequest.method = 'GET'; - request.httpRequest.path = request.service.endpoint.path + - '?' + request.httpRequest.body; - request.httpRequest.body = ''; - - // don't need these headers on a GET request - delete request.httpRequest.headers['Content-Length']; - delete request.httpRequest.headers['Content-Type']; - }, - - /** - * @api private - */ - haltHandlersOnError: function haltHandlersOnError() { - this._haltHandlersOnError = true; - } - }); - - /** - * @api private - */ - AWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.promise = function promise() { - var self = this; - // append to user agent - this.httpRequest.appendToUserAgent('promise'); - return new PromiseDependency(function(resolve, reject) { - self.on('complete', function(resp) { - if (resp.error) { - reject(resp.error); - } else { - // define $response property so that it is not enumberable - // this prevents circular reference errors when stringifying the JSON object - resolve(Object.defineProperty( - resp.data || {}, - '$response', - {value: resp} - )); - } - }); - self.runTo(); - }); - }; - }; - - /** - * @api private - */ - AWS.Request.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.promise; - }; - - AWS.util.addPromises(AWS.Request); - - AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); + self.runTo(finalState, done, bindObject, err); + }); + }; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { + if (typeof acceptState === 'function') { + fn = acceptState; acceptState = null; failState = null; + } else if (typeof failState === 'function') { + fn = failState; failState = null; + } -/***/ }), -/* 200 */ -/***/ (function(module, exports) { + if (!this.currentState) this.currentState = name; + this.states[name] = { accept: acceptState, fail: failState, fn: fn }; + return this; + }; - function AcceptorStateMachine(states, state) { - this.currentState = state || null; - this.states = states || {}; - } - - AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { - if (typeof finalState === 'function') { - inputError = bindObject; bindObject = done; - done = finalState; finalState = null; - } - - var self = this; - var state = self.states[self.currentState]; - state.fn.call(bindObject || self, inputError, function(err) { - if (err) { - if (state.fail) self.currentState = state.fail; - else return done ? done.call(bindObject, err) : null; - } else { - if (state.accept) self.currentState = state.accept; - else return done ? done.call(bindObject) : null; - } - if (self.currentState === finalState) { - return done ? done.call(bindObject, err) : null; - } - - self.runTo(finalState, done, bindObject, err); - }); - }; - - AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { - if (typeof acceptState === 'function') { - fn = acceptState; acceptState = null; failState = null; - } else if (typeof failState === 'function') { - fn = failState; failState = null; - } - - if (!this.currentState) this.currentState = name; - this.states[name] = { accept: acceptState, fail: failState, fn: fn }; - return this; - }; - - module.exports = AcceptorStateMachine; + module.exports = AcceptorStateMachine; /***/ }), @@ -15387,1507 +15389,1507 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }), -/* 202 */ +/* 202 */ +/***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + var jmespath = __webpack_require__(201); + + /** + * This class encapsulates the response information + * from a service request operation sent through {AWS.Request}. + * The response object has two main properties for getting information + * back from a request: + * + * ## The `data` property + * + * The `response.data` property contains the serialized object data + * retrieved from the service request. For instance, for an + * Amazon DynamoDB `listTables` method call, the response data might + * look like: + * + * ``` + * > resp.data + * { TableNames: + * [ 'table1', 'table2', ... ] } + * ``` + * + * The `data` property can be null if an error occurs (see below). + * + * ## The `error` property + * + * In the event of a service error (or transfer error), the + * `response.error` property will be filled with the given + * error data in the form: + * + * ``` + * { code: 'SHORT_UNIQUE_ERROR_CODE', + * message: 'Some human readable error message' } + * ``` + * + * In the case of an error, the `data` property will be `null`. + * Note that if you handle events that can be in a failure state, + * you should always check whether `response.error` is set + * before attempting to access the `response.data` property. + * + * @!attribute data + * @readonly + * @!group Data Properties + * @note Inside of a {AWS.Request~httpData} event, this + * property contains a single raw packet instead of the + * full de-serialized service response. + * @return [Object] the de-serialized response data + * from the service. + * + * @!attribute error + * An structure containing information about a service + * or networking error. + * @readonly + * @!group Data Properties + * @note This attribute is only filled if a service or + * networking error occurs. + * @return [Error] + * * code [String] a unique short code representing the + * error that was emitted. + * * message [String] a longer human readable error message + * * retryable [Boolean] whether the error message is + * retryable. + * * statusCode [Numeric] in the case of a request that reached the service, + * this value contains the response status code. + * * time [Date] the date time object when the error occurred. + * * hostname [String] set when a networking error occurs to easily + * identify the endpoint of the request. + * * region [String] set when a networking error occurs to easily + * identify the region of the request. + * + * @!attribute requestId + * @readonly + * @!group Data Properties + * @return [String] the unique request ID associated with the response. + * Log this value when debugging requests for AWS support. + * + * @!attribute retryCount + * @readonly + * @!group Operation Properties + * @return [Integer] the number of retries that were + * attempted before the request was completed. + * + * @!attribute redirectCount + * @readonly + * @!group Operation Properties + * @return [Integer] the number of redirects that were + * followed before the request was completed. + * + * @!attribute httpResponse + * @readonly + * @!group HTTP Properties + * @return [AWS.HttpResponse] the raw HTTP response object + * containing the response headers and body information + * from the server. + * + * @see AWS.Request + */ + AWS.Response = inherit({ + + /** + * @api private + */ + constructor: function Response(request) { + this.request = request; + this.data = null; + this.error = null; + this.retryCount = 0; + this.redirectCount = 0; + this.httpResponse = new AWS.HttpResponse(); + if (request) { + this.maxRetries = request.service.numRetries(); + this.maxRedirects = request.service.config.maxRedirects; + } + }, + + /** + * Creates a new request for the next page of response data, calling the + * callback with the page data if a callback is provided. + * + * @callback callback function(err, data) + * Called when a page of data is returned from the next request. + * + * @param err [Error] an error object, if an error occurred in the request + * @param data [Object] the next page of data, or null, if there are no + * more pages left. + * @return [AWS.Request] the request object for the next page of data + * @return [null] if no callback is provided and there are no pages left + * to retrieve. + * @since v1.4.0 + */ + nextPage: function nextPage(callback) { + var config; + var service = this.request.service; + var operation = this.request.operation; + try { + config = service.paginationConfig(operation, true); + } catch (e) { this.error = e; } + + if (!this.hasNextPage()) { + if (callback) callback(this.error, null); + else if (this.error) throw this.error; + return null; + } + + var params = AWS.util.copy(this.request.params); + if (!this.nextPageTokens) { + return callback ? callback(null, null) : null; + } else { + var inputTokens = config.inputToken; + if (typeof inputTokens === 'string') inputTokens = [inputTokens]; + for (var i = 0; i < inputTokens.length; i++) { + params[inputTokens[i]] = this.nextPageTokens[i]; + } + return service.makeRequest(this.request.operation, params, callback); + } + }, + + /** + * @return [Boolean] whether more pages of data can be returned by further + * requests + * @since v1.4.0 + */ + hasNextPage: function hasNextPage() { + this.cacheNextPageTokens(); + if (this.nextPageTokens) return true; + if (this.nextPageTokens === undefined) return undefined; + else return false; + }, + + /** + * @api private + */ + cacheNextPageTokens: function cacheNextPageTokens() { + if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens; + this.nextPageTokens = undefined; + + var config = this.request.service.paginationConfig(this.request.operation); + if (!config) return this.nextPageTokens; + + this.nextPageTokens = null; + if (config.moreResults) { + if (!jmespath.search(this.data, config.moreResults)) { + return this.nextPageTokens; + } + } + + var exprs = config.outputToken; + if (typeof exprs === 'string') exprs = [exprs]; + AWS.util.arrayEach.call(this, exprs, function (expr) { + var output = jmespath.search(this.data, expr); + if (output) { + this.nextPageTokens = this.nextPageTokens || []; + this.nextPageTokens.push(output); + } + }); + + return this.nextPageTokens; + } + + }); + + +/***/ }), +/* 203 */ +/***/ (function(module, exports, __webpack_require__) { + + /** + * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You + * may not use this file except in compliance with the License. A copy of + * the License is located at + * + * http://aws.amazon.com/apache2.0/ + * + * or in the "license" file accompanying this file. This file is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + */ + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + var jmespath = __webpack_require__(201); + + /** + * @api private + */ + function CHECK_ACCEPTORS(resp) { + var waiter = resp.request._waiter; + var acceptors = waiter.config.acceptors; + var acceptorMatched = false; + var state = 'retry'; + + acceptors.forEach(function(acceptor) { + if (!acceptorMatched) { + var matcher = waiter.matchers[acceptor.matcher]; + if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { + acceptorMatched = true; + state = acceptor.state; + } + } + }); + + if (!acceptorMatched && resp.error) state = 'failure'; + + if (state === 'success') { + waiter.setSuccess(resp); + } else { + waiter.setError(resp, state === 'retry'); + } + } + + /** + * @api private + */ + AWS.ResourceWaiter = inherit({ + /** + * Waits for a given state on a service object + * @param service [Service] the service object to wait on + * @param state [String] the state (defined in waiter configuration) to wait + * for. + * @example Create a waiter for running EC2 instances + * var ec2 = new AWS.EC2; + * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning'); + */ + constructor: function constructor(service, state) { + this.service = service; + this.state = state; + this.loadWaiterConfig(this.state); + }, + + service: null, + + state: null, + + config: null, + + matchers: { + path: function(resp, expected, argument) { + try { + var result = jmespath.search(resp.data, argument); + } catch (err) { + return false; + } + + return jmespath.strictDeepEqual(result,expected); + }, + + pathAll: function(resp, expected, argument) { + try { + var results = jmespath.search(resp.data, argument); + } catch (err) { + return false; + } + + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + if (!numResults) return false; + for (var ind = 0 ; ind < numResults; ind++) { + if (!jmespath.strictDeepEqual(results[ind], expected)) { + return false; + } + } + return true; + }, + + pathAny: function(resp, expected, argument) { + try { + var results = jmespath.search(resp.data, argument); + } catch (err) { + return false; + } + + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + for (var ind = 0 ; ind < numResults; ind++) { + if (jmespath.strictDeepEqual(results[ind], expected)) { + return true; + } + } + return false; + }, + + status: function(resp, expected) { + var statusCode = resp.httpResponse.statusCode; + return (typeof statusCode === 'number') && (statusCode === expected); + }, + + error: function(resp, expected) { + if (typeof expected === 'string' && resp.error) { + return expected === resp.error.code; + } + // if expected is not string, can be boolean indicating presence of error + return expected === !!resp.error; + } + }, + + listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('RETRY_CHECK', 'retry', function(resp) { + var waiter = resp.request._waiter; + if (resp.error && resp.error.code === 'ResourceNotReady') { + resp.error.retryDelay = (waiter.config.delay || 0) * 1000; + } + }); + + add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); + + add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); + }), + + /** + * @return [AWS.Request] + */ + wait: function wait(params, callback) { + if (typeof params === 'function') { + callback = params; params = undefined; + } + + if (params && params.$waiter) { + params = AWS.util.copy(params); + if (typeof params.$waiter.delay === 'number') { + this.config.delay = params.$waiter.delay; + } + if (typeof params.$waiter.maxAttempts === 'number') { + this.config.maxAttempts = params.$waiter.maxAttempts; + } + delete params.$waiter; + } + + var request = this.service.makeRequest(this.config.operation, params); + request._waiter = this; + request.response.maxRetries = this.config.maxAttempts; + request.addListeners(this.listeners); + + if (callback) request.send(callback); + return request; + }, + + setSuccess: function setSuccess(resp) { + resp.error = null; + resp.data = resp.data || {}; + resp.request.removeAllListeners('extractData'); + }, + + setError: function setError(resp, retryable) { + resp.data = null; + resp.error = AWS.util.error(resp.error || new Error(), { + code: 'ResourceNotReady', + message: 'Resource is not in the state ' + this.state, + retryable: retryable + }); + }, + + /** + * Loads waiter configuration from API configuration + * + * @api private + */ + loadWaiterConfig: function loadWaiterConfig(state) { + if (!this.service.api.waiters[state]) { + throw new AWS.util.error(new Error(), { + code: 'StateNotFoundError', + message: 'State ' + state + ' not found.' + }); + } + + this.config = AWS.util.copy(this.service.api.waiters[state]); + } + }); + + +/***/ }), +/* 204 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - var jmespath = __webpack_require__(201); - - /** - * This class encapsulates the response information - * from a service request operation sent through {AWS.Request}. - * The response object has two main properties for getting information - * back from a request: - * - * ## The `data` property - * - * The `response.data` property contains the serialized object data - * retrieved from the service request. For instance, for an - * Amazon DynamoDB `listTables` method call, the response data might - * look like: - * - * ``` - * > resp.data - * { TableNames: - * [ 'table1', 'table2', ... ] } - * ``` - * - * The `data` property can be null if an error occurs (see below). - * - * ## The `error` property - * - * In the event of a service error (or transfer error), the - * `response.error` property will be filled with the given - * error data in the form: - * - * ``` - * { code: 'SHORT_UNIQUE_ERROR_CODE', - * message: 'Some human readable error message' } - * ``` - * - * In the case of an error, the `data` property will be `null`. - * Note that if you handle events that can be in a failure state, - * you should always check whether `response.error` is set - * before attempting to access the `response.data` property. - * - * @!attribute data - * @readonly - * @!group Data Properties - * @note Inside of a {AWS.Request~httpData} event, this - * property contains a single raw packet instead of the - * full de-serialized service response. - * @return [Object] the de-serialized response data - * from the service. - * - * @!attribute error - * An structure containing information about a service - * or networking error. - * @readonly - * @!group Data Properties - * @note This attribute is only filled if a service or - * networking error occurs. - * @return [Error] - * * code [String] a unique short code representing the - * error that was emitted. - * * message [String] a longer human readable error message - * * retryable [Boolean] whether the error message is - * retryable. - * * statusCode [Numeric] in the case of a request that reached the service, - * this value contains the response status code. - * * time [Date] the date time object when the error occurred. - * * hostname [String] set when a networking error occurs to easily - * identify the endpoint of the request. - * * region [String] set when a networking error occurs to easily - * identify the region of the request. - * - * @!attribute requestId - * @readonly - * @!group Data Properties - * @return [String] the unique request ID associated with the response. - * Log this value when debugging requests for AWS support. - * - * @!attribute retryCount - * @readonly - * @!group Operation Properties - * @return [Integer] the number of retries that were - * attempted before the request was completed. - * - * @!attribute redirectCount - * @readonly - * @!group Operation Properties - * @return [Integer] the number of redirects that were - * followed before the request was completed. - * - * @!attribute httpResponse - * @readonly - * @!group HTTP Properties - * @return [AWS.HttpResponse] the raw HTTP response object - * containing the response headers and body information - * from the server. - * - * @see AWS.Request - */ - AWS.Response = inherit({ - - /** - * @api private - */ - constructor: function Response(request) { - this.request = request; - this.data = null; - this.error = null; - this.retryCount = 0; - this.redirectCount = 0; - this.httpResponse = new AWS.HttpResponse(); - if (request) { - this.maxRetries = request.service.numRetries(); - this.maxRedirects = request.service.config.maxRedirects; - } - }, - - /** - * Creates a new request for the next page of response data, calling the - * callback with the page data if a callback is provided. - * - * @callback callback function(err, data) - * Called when a page of data is returned from the next request. - * - * @param err [Error] an error object, if an error occurred in the request - * @param data [Object] the next page of data, or null, if there are no - * more pages left. - * @return [AWS.Request] the request object for the next page of data - * @return [null] if no callback is provided and there are no pages left - * to retrieve. - * @since v1.4.0 - */ - nextPage: function nextPage(callback) { - var config; - var service = this.request.service; - var operation = this.request.operation; - try { - config = service.paginationConfig(operation, true); - } catch (e) { this.error = e; } - - if (!this.hasNextPage()) { - if (callback) callback(this.error, null); - else if (this.error) throw this.error; - return null; - } - - var params = AWS.util.copy(this.request.params); - if (!this.nextPageTokens) { - return callback ? callback(null, null) : null; - } else { - var inputTokens = config.inputToken; - if (typeof inputTokens === 'string') inputTokens = [inputTokens]; - for (var i = 0; i < inputTokens.length; i++) { - params[inputTokens[i]] = this.nextPageTokens[i]; - } - return service.makeRequest(this.request.operation, params, callback); - } - }, - - /** - * @return [Boolean] whether more pages of data can be returned by further - * requests - * @since v1.4.0 - */ - hasNextPage: function hasNextPage() { - this.cacheNextPageTokens(); - if (this.nextPageTokens) return true; - if (this.nextPageTokens === undefined) return undefined; - else return false; - }, - - /** - * @api private - */ - cacheNextPageTokens: function cacheNextPageTokens() { - if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens; - this.nextPageTokens = undefined; - - var config = this.request.service.paginationConfig(this.request.operation); - if (!config) return this.nextPageTokens; - - this.nextPageTokens = null; - if (config.moreResults) { - if (!jmespath.search(this.data, config.moreResults)) { - return this.nextPageTokens; - } - } - - var exprs = config.outputToken; - if (typeof exprs === 'string') exprs = [exprs]; - AWS.util.arrayEach.call(this, exprs, function (expr) { - var output = jmespath.search(this.data, expr); - if (output) { - this.nextPageTokens = this.nextPageTokens || []; - this.nextPageTokens.push(output); - } - }); - - return this.nextPageTokens; - } - - }); + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; -/***/ }), -/* 203 */ -/***/ (function(module, exports, __webpack_require__) { + /** + * @api private + */ + AWS.Signers.RequestSigner = inherit({ + constructor: function RequestSigner(request) { + this.request = request; + }, - /** - * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). You - * may not use this file except in compliance with the License. A copy of - * the License is located at - * - * http://aws.amazon.com/apache2.0/ - * - * or in the "license" file accompanying this file. This file is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF - * ANY KIND, either express or implied. See the License for the specific - * language governing permissions and limitations under the License. - */ - - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - var jmespath = __webpack_require__(201); - - /** - * @api private - */ - function CHECK_ACCEPTORS(resp) { - var waiter = resp.request._waiter; - var acceptors = waiter.config.acceptors; - var acceptorMatched = false; - var state = 'retry'; - - acceptors.forEach(function(acceptor) { - if (!acceptorMatched) { - var matcher = waiter.matchers[acceptor.matcher]; - if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { - acceptorMatched = true; - state = acceptor.state; - } - } - }); - - if (!acceptorMatched && resp.error) state = 'failure'; - - if (state === 'success') { - waiter.setSuccess(resp); - } else { - waiter.setError(resp, state === 'retry'); - } - } - - /** - * @api private - */ - AWS.ResourceWaiter = inherit({ - /** - * Waits for a given state on a service object - * @param service [Service] the service object to wait on - * @param state [String] the state (defined in waiter configuration) to wait - * for. - * @example Create a waiter for running EC2 instances - * var ec2 = new AWS.EC2; - * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning'); - */ - constructor: function constructor(service, state) { - this.service = service; - this.state = state; - this.loadWaiterConfig(this.state); - }, - - service: null, - - state: null, - - config: null, - - matchers: { - path: function(resp, expected, argument) { - try { - var result = jmespath.search(resp.data, argument); - } catch (err) { - return false; - } - - return jmespath.strictDeepEqual(result,expected); - }, - - pathAll: function(resp, expected, argument) { - try { - var results = jmespath.search(resp.data, argument); - } catch (err) { - return false; - } - - if (!Array.isArray(results)) results = [results]; - var numResults = results.length; - if (!numResults) return false; - for (var ind = 0 ; ind < numResults; ind++) { - if (!jmespath.strictDeepEqual(results[ind], expected)) { - return false; - } - } - return true; - }, - - pathAny: function(resp, expected, argument) { - try { - var results = jmespath.search(resp.data, argument); - } catch (err) { - return false; - } - - if (!Array.isArray(results)) results = [results]; - var numResults = results.length; - for (var ind = 0 ; ind < numResults; ind++) { - if (jmespath.strictDeepEqual(results[ind], expected)) { - return true; - } - } - return false; - }, - - status: function(resp, expected) { - var statusCode = resp.httpResponse.statusCode; - return (typeof statusCode === 'number') && (statusCode === expected); - }, - - error: function(resp, expected) { - if (typeof expected === 'string' && resp.error) { - return expected === resp.error.code; - } - // if expected is not string, can be boolean indicating presence of error - return expected === !!resp.error; - } - }, - - listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) { - add('RETRY_CHECK', 'retry', function(resp) { - var waiter = resp.request._waiter; - if (resp.error && resp.error.code === 'ResourceNotReady') { - resp.error.retryDelay = (waiter.config.delay || 0) * 1000; - } - }); - - add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); - - add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); - }), - - /** - * @return [AWS.Request] - */ - wait: function wait(params, callback) { - if (typeof params === 'function') { - callback = params; params = undefined; - } - - if (params && params.$waiter) { - params = AWS.util.copy(params); - if (typeof params.$waiter.delay === 'number') { - this.config.delay = params.$waiter.delay; - } - if (typeof params.$waiter.maxAttempts === 'number') { - this.config.maxAttempts = params.$waiter.maxAttempts; - } - delete params.$waiter; - } - - var request = this.service.makeRequest(this.config.operation, params); - request._waiter = this; - request.response.maxRetries = this.config.maxAttempts; - request.addListeners(this.listeners); - - if (callback) request.send(callback); - return request; - }, - - setSuccess: function setSuccess(resp) { - resp.error = null; - resp.data = resp.data || {}; - resp.request.removeAllListeners('extractData'); - }, - - setError: function setError(resp, retryable) { - resp.data = null; - resp.error = AWS.util.error(resp.error || new Error(), { - code: 'ResourceNotReady', - message: 'Resource is not in the state ' + this.state, - retryable: retryable - }); - }, - - /** - * Loads waiter configuration from API configuration - * - * @api private - */ - loadWaiterConfig: function loadWaiterConfig(state) { - if (!this.service.api.waiters[state]) { - throw new AWS.util.error(new Error(), { - code: 'StateNotFoundError', - message: 'State ' + state + ' not found.' - }); - } - - this.config = AWS.util.copy(this.service.api.waiters[state]); - } - }); + setServiceClientId: function setServiceClientId(id) { + this.serviceClientId = id; + }, + getServiceClientId: function getServiceClientId() { + return this.serviceClientId; + } + }); -/***/ }), -/* 204 */ -/***/ (function(module, exports, __webpack_require__) { + AWS.Signers.RequestSigner.getVersion = function getVersion(version) { + switch (version) { + case 'v2': return AWS.Signers.V2; + case 'v3': return AWS.Signers.V3; + case 'v4': return AWS.Signers.V4; + case 's3': return AWS.Signers.S3; + case 'v3https': return AWS.Signers.V3Https; + } + throw new Error('Unknown signing version ' + version); + }; - var AWS = __webpack_require__(1); - - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.RequestSigner = inherit({ - constructor: function RequestSigner(request) { - this.request = request; - }, - - setServiceClientId: function setServiceClientId(id) { - this.serviceClientId = id; - }, - - getServiceClientId: function getServiceClientId() { - return this.serviceClientId; - } - }); - - AWS.Signers.RequestSigner.getVersion = function getVersion(version) { - switch (version) { - case 'v2': return AWS.Signers.V2; - case 'v3': return AWS.Signers.V3; - case 'v4': return AWS.Signers.V4; - case 's3': return AWS.Signers.S3; - case 'v3https': return AWS.Signers.V3Https; - } - throw new Error('Unknown signing version ' + version); - }; - - __webpack_require__(205); - __webpack_require__(206); - __webpack_require__(207); - __webpack_require__(208); - __webpack_require__(210); - __webpack_require__(211); + __webpack_require__(205); + __webpack_require__(206); + __webpack_require__(207); + __webpack_require__(208); + __webpack_require__(210); + __webpack_require__(211); /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { - addAuthorization: function addAuthorization(credentials, date) { - - if (!date) date = AWS.util.date.getDate(); - - var r = this.request; - - r.params.Timestamp = AWS.util.date.iso8601(date); - r.params.SignatureVersion = '2'; - r.params.SignatureMethod = 'HmacSHA256'; - r.params.AWSAccessKeyId = credentials.accessKeyId; - - if (credentials.sessionToken) { - r.params.SecurityToken = credentials.sessionToken; - } - - delete r.params.Signature; // delete old Signature for re-signing - r.params.Signature = this.signature(credentials); - - r.body = AWS.util.queryParamsToString(r.params); - r.headers['Content-Length'] = r.body.length; - }, - - signature: function signature(credentials) { - return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); - }, - - stringToSign: function stringToSign() { - var parts = []; - parts.push(this.request.method); - parts.push(this.request.endpoint.host.toLowerCase()); - parts.push(this.request.pathname()); - parts.push(AWS.util.queryParamsToString(this.request.params)); - return parts.join('\n'); - } - - }); - - module.exports = AWS.Signers.V2; + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { + addAuthorization: function addAuthorization(credentials, date) { + + if (!date) date = AWS.util.date.getDate(); + + var r = this.request; + + r.params.Timestamp = AWS.util.date.iso8601(date); + r.params.SignatureVersion = '2'; + r.params.SignatureMethod = 'HmacSHA256'; + r.params.AWSAccessKeyId = credentials.accessKeyId; + + if (credentials.sessionToken) { + r.params.SecurityToken = credentials.sessionToken; + } + + delete r.params.Signature; // delete old Signature for re-signing + r.params.Signature = this.signature(credentials); + + r.body = AWS.util.queryParamsToString(r.params); + r.headers['Content-Length'] = r.body.length; + }, + + signature: function signature(credentials) { + return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); + }, + + stringToSign: function stringToSign() { + var parts = []; + parts.push(this.request.method); + parts.push(this.request.endpoint.host.toLowerCase()); + parts.push(this.request.pathname()); + parts.push(AWS.util.queryParamsToString(this.request.params)); + return parts.join('\n'); + } + + }); + + module.exports = AWS.Signers.V2; /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { - addAuthorization: function addAuthorization(credentials, date) { - - var datetime = AWS.util.date.rfc822(date); - - this.request.headers['X-Amz-Date'] = datetime; - - if (credentials.sessionToken) { - this.request.headers['x-amz-security-token'] = credentials.sessionToken; - } - - this.request.headers['X-Amzn-Authorization'] = - this.authorization(credentials, datetime); - - }, - - authorization: function authorization(credentials) { - return 'AWS3 ' + - 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + - 'Algorithm=HmacSHA256,' + - 'SignedHeaders=' + this.signedHeaders() + ',' + - 'Signature=' + this.signature(credentials); - }, - - signedHeaders: function signedHeaders() { - var headers = []; - AWS.util.arrayEach(this.headersToSign(), function iterator(h) { - headers.push(h.toLowerCase()); - }); - return headers.sort().join(';'); - }, - - canonicalHeaders: function canonicalHeaders() { - var headers = this.request.headers; - var parts = []; - AWS.util.arrayEach(this.headersToSign(), function iterator(h) { - parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); - }); - return parts.sort().join('\n') + '\n'; - }, - - headersToSign: function headersToSign() { - var headers = []; - AWS.util.each(this.request.headers, function iterator(k) { - if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { - headers.push(k); - } - }); - return headers; - }, - - signature: function signature(credentials) { - return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); - }, - - stringToSign: function stringToSign() { - var parts = []; - parts.push(this.request.method); - parts.push('/'); - parts.push(''); - parts.push(this.canonicalHeaders()); - parts.push(this.request.body); - return AWS.util.crypto.sha256(parts.join('\n')); - } - - }); - - module.exports = AWS.Signers.V3; + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { + addAuthorization: function addAuthorization(credentials, date) { + + var datetime = AWS.util.date.rfc822(date); + + this.request.headers['X-Amz-Date'] = datetime; + + if (credentials.sessionToken) { + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + + this.request.headers['X-Amzn-Authorization'] = + this.authorization(credentials, datetime); + + }, + + authorization: function authorization(credentials) { + return 'AWS3 ' + + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + + 'Algorithm=HmacSHA256,' + + 'SignedHeaders=' + this.signedHeaders() + ',' + + 'Signature=' + this.signature(credentials); + }, + + signedHeaders: function signedHeaders() { + var headers = []; + AWS.util.arrayEach(this.headersToSign(), function iterator(h) { + headers.push(h.toLowerCase()); + }); + return headers.sort().join(';'); + }, + + canonicalHeaders: function canonicalHeaders() { + var headers = this.request.headers; + var parts = []; + AWS.util.arrayEach(this.headersToSign(), function iterator(h) { + parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); + }); + return parts.sort().join('\n') + '\n'; + }, + + headersToSign: function headersToSign() { + var headers = []; + AWS.util.each(this.request.headers, function iterator(k) { + if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { + headers.push(k); + } + }); + return headers; + }, + + signature: function signature(credentials) { + return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); + }, + + stringToSign: function stringToSign() { + var parts = []; + parts.push(this.request.method); + parts.push('/'); + parts.push(''); + parts.push(this.canonicalHeaders()); + parts.push(this.request.body); + return AWS.util.crypto.sha256(parts.join('\n')); + } + + }); + + module.exports = AWS.Signers.V3; /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - __webpack_require__(206); - - /** - * @api private - */ - AWS.Signers.V3Https = inherit(AWS.Signers.V3, { - authorization: function authorization(credentials) { - return 'AWS3-HTTPS ' + - 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + - 'Algorithm=HmacSHA256,' + - 'Signature=' + this.signature(credentials); - }, - - stringToSign: function stringToSign() { - return this.request.headers['X-Amz-Date']; - } - }); - - module.exports = AWS.Signers.V3Https; + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + __webpack_require__(206); + + /** + * @api private + */ + AWS.Signers.V3Https = inherit(AWS.Signers.V3, { + authorization: function authorization(credentials) { + return 'AWS3-HTTPS ' + + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + + 'Algorithm=HmacSHA256,' + + 'Signature=' + this.signature(credentials); + }, + + stringToSign: function stringToSign() { + return this.request.headers['X-Amz-Date']; + } + }); + + module.exports = AWS.Signers.V3Https; /***/ }), /* 208 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var v4Credentials = __webpack_require__(209); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - var expiresHeader = 'presigned-expires'; - - /** - * @api private - */ - AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { - constructor: function V4(request, serviceName, options) { - AWS.Signers.RequestSigner.call(this, request); - this.serviceName = serviceName; - options = options || {}; - this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true; - this.operation = options.operation; - }, - - algorithm: 'AWS4-HMAC-SHA256', - - addAuthorization: function addAuthorization(credentials, date) { - var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); - - if (this.isPresigned()) { - this.updateForPresigned(credentials, datetime); - } else { - this.addHeaders(credentials, datetime); - } - - this.request.headers['Authorization'] = - this.authorization(credentials, datetime); - }, - - addHeaders: function addHeaders(credentials, datetime) { - this.request.headers['X-Amz-Date'] = datetime; - if (credentials.sessionToken) { - this.request.headers['x-amz-security-token'] = credentials.sessionToken; - } - }, - - updateForPresigned: function updateForPresigned(credentials, datetime) { - var credString = this.credentialString(datetime); - var qs = { - 'X-Amz-Date': datetime, - 'X-Amz-Algorithm': this.algorithm, - 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, - 'X-Amz-Expires': this.request.headers[expiresHeader], - 'X-Amz-SignedHeaders': this.signedHeaders() - }; - - if (credentials.sessionToken) { - qs['X-Amz-Security-Token'] = credentials.sessionToken; - } - - if (this.request.headers['Content-Type']) { - qs['Content-Type'] = this.request.headers['Content-Type']; - } - if (this.request.headers['Content-MD5']) { - qs['Content-MD5'] = this.request.headers['Content-MD5']; - } - if (this.request.headers['Cache-Control']) { - qs['Cache-Control'] = this.request.headers['Cache-Control']; - } - - // need to pull in any other X-Amz-* headers - AWS.util.each.call(this, this.request.headers, function(key, value) { - if (key === expiresHeader) return; - if (this.isSignableHeader(key)) { - var lowerKey = key.toLowerCase(); - // Metadata should be normalized - if (lowerKey.indexOf('x-amz-meta-') === 0) { - qs[lowerKey] = value; - } else if (lowerKey.indexOf('x-amz-') === 0) { - qs[key] = value; - } - } - }); - - var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; - this.request.path += sep + AWS.util.queryParamsToString(qs); - }, - - authorization: function authorization(credentials, datetime) { - var parts = []; - var credString = this.credentialString(datetime); - parts.push(this.algorithm + ' Credential=' + - credentials.accessKeyId + '/' + credString); - parts.push('SignedHeaders=' + this.signedHeaders()); - parts.push('Signature=' + this.signature(credentials, datetime)); - return parts.join(', '); - }, - - signature: function signature(credentials, datetime) { - var signingKey = v4Credentials.getSigningKey( - credentials, - datetime.substr(0, 8), - this.request.region, - this.serviceName, - this.signatureCache - ); - return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex'); - }, - - stringToSign: function stringToSign(datetime) { - var parts = []; - parts.push('AWS4-HMAC-SHA256'); - parts.push(datetime); - parts.push(this.credentialString(datetime)); - parts.push(this.hexEncodedHash(this.canonicalString())); - return parts.join('\n'); - }, - - canonicalString: function canonicalString() { - var parts = [], pathname = this.request.pathname(); - if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname); - - parts.push(this.request.method); - parts.push(pathname); - parts.push(this.request.search()); - parts.push(this.canonicalHeaders() + '\n'); - parts.push(this.signedHeaders()); - parts.push(this.hexEncodedBodyHash()); - return parts.join('\n'); - }, - - canonicalHeaders: function canonicalHeaders() { - var headers = []; - AWS.util.each.call(this, this.request.headers, function (key, item) { - headers.push([key, item]); - }); - headers.sort(function (a, b) { - return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1; - }); - var parts = []; - AWS.util.arrayEach.call(this, headers, function (item) { - var key = item[0].toLowerCase(); - if (this.isSignableHeader(key)) { - var value = item[1]; - if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') { - throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), { - code: 'InvalidHeader' - }); - } - parts.push(key + ':' + - this.canonicalHeaderValues(value.toString())); - } - }); - return parts.join('\n'); - }, - - canonicalHeaderValues: function canonicalHeaderValues(values) { - return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); - }, - - signedHeaders: function signedHeaders() { - var keys = []; - AWS.util.each.call(this, this.request.headers, function (key) { - key = key.toLowerCase(); - if (this.isSignableHeader(key)) keys.push(key); - }); - return keys.sort().join(';'); - }, - - credentialString: function credentialString(datetime) { - return v4Credentials.createScope( - datetime.substr(0, 8), - this.request.region, - this.serviceName - ); - }, - - hexEncodedHash: function hash(string) { - return AWS.util.crypto.sha256(string, 'hex'); - }, - - hexEncodedBodyHash: function hexEncodedBodyHash() { - var request = this.request; - if (this.isPresigned() && this.serviceName === 's3' && !request.body) { - return 'UNSIGNED-PAYLOAD'; - } else if (request.headers['X-Amz-Content-Sha256']) { - return request.headers['X-Amz-Content-Sha256']; - } else { - return this.hexEncodedHash(this.request.body || ''); - } - }, - - unsignableHeaders: [ - 'authorization', - 'content-type', - 'content-length', - 'user-agent', - expiresHeader, - 'expect', - 'x-amzn-trace-id' - ], - - isSignableHeader: function isSignableHeader(key) { - if (key.toLowerCase().indexOf('x-amz-') === 0) return true; - return this.unsignableHeaders.indexOf(key) < 0; - }, - - isPresigned: function isPresigned() { - return this.request.headers[expiresHeader] ? true : false; - } - - }); - - module.exports = AWS.Signers.V4; + var AWS = __webpack_require__(1); + var v4Credentials = __webpack_require__(209); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + var expiresHeader = 'presigned-expires'; + + /** + * @api private + */ + AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { + constructor: function V4(request, serviceName, options) { + AWS.Signers.RequestSigner.call(this, request); + this.serviceName = serviceName; + options = options || {}; + this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true; + this.operation = options.operation; + }, + + algorithm: 'AWS4-HMAC-SHA256', + + addAuthorization: function addAuthorization(credentials, date) { + var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); + + if (this.isPresigned()) { + this.updateForPresigned(credentials, datetime); + } else { + this.addHeaders(credentials, datetime); + } + + this.request.headers['Authorization'] = + this.authorization(credentials, datetime); + }, + + addHeaders: function addHeaders(credentials, datetime) { + this.request.headers['X-Amz-Date'] = datetime; + if (credentials.sessionToken) { + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + }, + + updateForPresigned: function updateForPresigned(credentials, datetime) { + var credString = this.credentialString(datetime); + var qs = { + 'X-Amz-Date': datetime, + 'X-Amz-Algorithm': this.algorithm, + 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, + 'X-Amz-Expires': this.request.headers[expiresHeader], + 'X-Amz-SignedHeaders': this.signedHeaders() + }; + + if (credentials.sessionToken) { + qs['X-Amz-Security-Token'] = credentials.sessionToken; + } + + if (this.request.headers['Content-Type']) { + qs['Content-Type'] = this.request.headers['Content-Type']; + } + if (this.request.headers['Content-MD5']) { + qs['Content-MD5'] = this.request.headers['Content-MD5']; + } + if (this.request.headers['Cache-Control']) { + qs['Cache-Control'] = this.request.headers['Cache-Control']; + } + + // need to pull in any other X-Amz-* headers + AWS.util.each.call(this, this.request.headers, function(key, value) { + if (key === expiresHeader) return; + if (this.isSignableHeader(key)) { + var lowerKey = key.toLowerCase(); + // Metadata should be normalized + if (lowerKey.indexOf('x-amz-meta-') === 0) { + qs[lowerKey] = value; + } else if (lowerKey.indexOf('x-amz-') === 0) { + qs[key] = value; + } + } + }); + + var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; + this.request.path += sep + AWS.util.queryParamsToString(qs); + }, + + authorization: function authorization(credentials, datetime) { + var parts = []; + var credString = this.credentialString(datetime); + parts.push(this.algorithm + ' Credential=' + + credentials.accessKeyId + '/' + credString); + parts.push('SignedHeaders=' + this.signedHeaders()); + parts.push('Signature=' + this.signature(credentials, datetime)); + return parts.join(', '); + }, + + signature: function signature(credentials, datetime) { + var signingKey = v4Credentials.getSigningKey( + credentials, + datetime.substr(0, 8), + this.request.region, + this.serviceName, + this.signatureCache + ); + return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex'); + }, + + stringToSign: function stringToSign(datetime) { + var parts = []; + parts.push('AWS4-HMAC-SHA256'); + parts.push(datetime); + parts.push(this.credentialString(datetime)); + parts.push(this.hexEncodedHash(this.canonicalString())); + return parts.join('\n'); + }, + + canonicalString: function canonicalString() { + var parts = [], pathname = this.request.pathname(); + if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname); + + parts.push(this.request.method); + parts.push(pathname); + parts.push(this.request.search()); + parts.push(this.canonicalHeaders() + '\n'); + parts.push(this.signedHeaders()); + parts.push(this.hexEncodedBodyHash()); + return parts.join('\n'); + }, + + canonicalHeaders: function canonicalHeaders() { + var headers = []; + AWS.util.each.call(this, this.request.headers, function (key, item) { + headers.push([key, item]); + }); + headers.sort(function (a, b) { + return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1; + }); + var parts = []; + AWS.util.arrayEach.call(this, headers, function (item) { + var key = item[0].toLowerCase(); + if (this.isSignableHeader(key)) { + var value = item[1]; + if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') { + throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), { + code: 'InvalidHeader' + }); + } + parts.push(key + ':' + + this.canonicalHeaderValues(value.toString())); + } + }); + return parts.join('\n'); + }, + + canonicalHeaderValues: function canonicalHeaderValues(values) { + return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); + }, + + signedHeaders: function signedHeaders() { + var keys = []; + AWS.util.each.call(this, this.request.headers, function (key) { + key = key.toLowerCase(); + if (this.isSignableHeader(key)) keys.push(key); + }); + return keys.sort().join(';'); + }, + + credentialString: function credentialString(datetime) { + return v4Credentials.createScope( + datetime.substr(0, 8), + this.request.region, + this.serviceName + ); + }, + + hexEncodedHash: function hash(string) { + return AWS.util.crypto.sha256(string, 'hex'); + }, + + hexEncodedBodyHash: function hexEncodedBodyHash() { + var request = this.request; + if (this.isPresigned() && this.serviceName === 's3' && !request.body) { + return 'UNSIGNED-PAYLOAD'; + } else if (request.headers['X-Amz-Content-Sha256']) { + return request.headers['X-Amz-Content-Sha256']; + } else { + return this.hexEncodedHash(this.request.body || ''); + } + }, + + unsignableHeaders: [ + 'authorization', + 'content-type', + 'content-length', + 'user-agent', + expiresHeader, + 'expect', + 'x-amzn-trace-id' + ], + + isSignableHeader: function isSignableHeader(key) { + if (key.toLowerCase().indexOf('x-amz-') === 0) return true; + return this.unsignableHeaders.indexOf(key) < 0; + }, + + isPresigned: function isPresigned() { + return this.request.headers[expiresHeader] ? true : false; + } + + }); + + module.exports = AWS.Signers.V4; /***/ }), /* 209 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - - /** - * @api private - */ - var cachedSecret = {}; - - /** - * @api private - */ - var cacheQueue = []; - - /** - * @api private - */ - var maxCacheEntries = 50; - - /** - * @api private - */ - var v4Identifier = 'aws4_request'; - - module.exports = { - /** - * @api private - * - * @param date [String] - * @param region [String] - * @param serviceName [String] - * @return [String] - */ - createScope: function createScope(date, region, serviceName) { - return [ - date.substr(0, 8), - region, - serviceName, - v4Identifier - ].join('/'); - }, - - /** - * @api private - * - * @param credentials [Credentials] - * @param date [String] - * @param region [String] - * @param service [String] - * @param shouldCache [Boolean] - * @return [String] - */ - getSigningKey: function getSigningKey( - credentials, - date, - region, - service, - shouldCache - ) { - var credsIdentifier = AWS.util.crypto - .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); - var cacheKey = [credsIdentifier, date, region, service].join('_'); - shouldCache = shouldCache !== false; - if (shouldCache && (cacheKey in cachedSecret)) { - return cachedSecret[cacheKey]; - } - - var kDate = AWS.util.crypto.hmac( - 'AWS4' + credentials.secretAccessKey, - date, - 'buffer' - ); - var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); - var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); - - var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); - if (shouldCache) { - cachedSecret[cacheKey] = signingKey; - cacheQueue.push(cacheKey); - if (cacheQueue.length > maxCacheEntries) { - // remove the oldest entry (not the least recently used) - delete cachedSecret[cacheQueue.shift()]; - } - } - - return signingKey; - }, - - /** - * @api private - * - * Empties the derived signing key cache. Made available for testing purposes - * only. - */ - emptyCache: function emptyCache() { - cachedSecret = {}; - cacheQueue = []; - } - }; + var AWS = __webpack_require__(1); + + /** + * @api private + */ + var cachedSecret = {}; + + /** + * @api private + */ + var cacheQueue = []; + + /** + * @api private + */ + var maxCacheEntries = 50; + + /** + * @api private + */ + var v4Identifier = 'aws4_request'; + + module.exports = { + /** + * @api private + * + * @param date [String] + * @param region [String] + * @param serviceName [String] + * @return [String] + */ + createScope: function createScope(date, region, serviceName) { + return [ + date.substr(0, 8), + region, + serviceName, + v4Identifier + ].join('/'); + }, + + /** + * @api private + * + * @param credentials [Credentials] + * @param date [String] + * @param region [String] + * @param service [String] + * @param shouldCache [Boolean] + * @return [String] + */ + getSigningKey: function getSigningKey( + credentials, + date, + region, + service, + shouldCache + ) { + var credsIdentifier = AWS.util.crypto + .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); + var cacheKey = [credsIdentifier, date, region, service].join('_'); + shouldCache = shouldCache !== false; + if (shouldCache && (cacheKey in cachedSecret)) { + return cachedSecret[cacheKey]; + } + + var kDate = AWS.util.crypto.hmac( + 'AWS4' + credentials.secretAccessKey, + date, + 'buffer' + ); + var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); + var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); + + var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); + if (shouldCache) { + cachedSecret[cacheKey] = signingKey; + cacheQueue.push(cacheKey); + if (cacheQueue.length > maxCacheEntries) { + // remove the oldest entry (not the least recently used) + delete cachedSecret[cacheQueue.shift()]; + } + } + + return signingKey; + }, + + /** + * @api private + * + * Empties the derived signing key cache. Made available for testing purposes + * only. + */ + emptyCache: function emptyCache() { + cachedSecret = {}; + cacheQueue = []; + } + }; /***/ }), /* 210 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { - /** - * When building the stringToSign, these sub resource params should be - * part of the canonical resource string with their NON-decoded values - */ - subResources: { - 'acl': 1, - 'accelerate': 1, - '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 - }, - - // when building the stringToSign, these querystring params should be - // part of the canonical resource string with their NON-encoded values - responseHeaders: { - 'response-content-type': 1, - 'response-content-language': 1, - 'response-expires': 1, - 'response-cache-control': 1, - 'response-content-disposition': 1, - 'response-content-encoding': 1 - }, - - addAuthorization: function addAuthorization(credentials, date) { - if (!this.request.headers['presigned-expires']) { - this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date); - } - - if (credentials.sessionToken) { - // presigned URLs require this header to be lowercased - this.request.headers['x-amz-security-token'] = credentials.sessionToken; - } - - var signature = this.sign(credentials.secretAccessKey, this.stringToSign()); - var auth = 'AWS ' + credentials.accessKeyId + ':' + signature; - - this.request.headers['Authorization'] = auth; - }, - - stringToSign: function stringToSign() { - var r = this.request; - - var parts = []; - parts.push(r.method); - parts.push(r.headers['Content-MD5'] || ''); - parts.push(r.headers['Content-Type'] || ''); - - // This is the "Date" header, but we use X-Amz-Date. - // The S3 signing mechanism requires us to pass an empty - // string for this Date header regardless. - parts.push(r.headers['presigned-expires'] || ''); - - var headers = this.canonicalizedAmzHeaders(); - if (headers) parts.push(headers); - parts.push(this.canonicalizedResource()); - - return parts.join('\n'); - - }, - - canonicalizedAmzHeaders: function canonicalizedAmzHeaders() { - - var amzHeaders = []; - - AWS.util.each(this.request.headers, function (name) { - if (name.match(/^x-amz-/i)) - amzHeaders.push(name); - }); - - amzHeaders.sort(function (a, b) { - return a.toLowerCase() < b.toLowerCase() ? -1 : 1; - }); - - var parts = []; - AWS.util.arrayEach.call(this, amzHeaders, function (name) { - parts.push(name.toLowerCase() + ':' + String(this.request.headers[name])); - }); - - return parts.join('\n'); - - }, - - canonicalizedResource: function canonicalizedResource() { - - var r = this.request; - - var parts = r.path.split('?'); - var path = parts[0]; - var querystring = parts[1]; - - var resource = ''; - - if (r.virtualHostedBucket) - resource += '/' + r.virtualHostedBucket; - - resource += path; - - if (querystring) { - - // collect a list of sub resources and query params that need to be signed - var resources = []; - - AWS.util.arrayEach.call(this, querystring.split('&'), function (param) { - var name = param.split('=')[0]; - var value = param.split('=')[1]; - if (this.subResources[name] || this.responseHeaders[name]) { - var subresource = { name: name }; - if (value !== undefined) { - if (this.subResources[name]) { - subresource.value = value; - } else { - subresource.value = decodeURIComponent(value); - } - } - resources.push(subresource); - } - }); - - resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; }); - - if (resources.length) { - - querystring = []; - AWS.util.arrayEach(resources, function (res) { - if (res.value === undefined) { - querystring.push(res.name); - } else { - querystring.push(res.name + '=' + res.value); - } - }); - - resource += '?' + querystring.join('&'); - } - - } - - return resource; - - }, - - sign: function sign(secret, string) { - return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1'); - } - }); - - module.exports = AWS.Signers.S3; + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { + /** + * When building the stringToSign, these sub resource params should be + * part of the canonical resource string with their NON-decoded values + */ + subResources: { + 'acl': 1, + 'accelerate': 1, + '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 + }, + + // when building the stringToSign, these querystring params should be + // part of the canonical resource string with their NON-encoded values + responseHeaders: { + 'response-content-type': 1, + 'response-content-language': 1, + 'response-expires': 1, + 'response-cache-control': 1, + 'response-content-disposition': 1, + 'response-content-encoding': 1 + }, + + addAuthorization: function addAuthorization(credentials, date) { + if (!this.request.headers['presigned-expires']) { + this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date); + } + + if (credentials.sessionToken) { + // presigned URLs require this header to be lowercased + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + + var signature = this.sign(credentials.secretAccessKey, this.stringToSign()); + var auth = 'AWS ' + credentials.accessKeyId + ':' + signature; + + this.request.headers['Authorization'] = auth; + }, + + stringToSign: function stringToSign() { + var r = this.request; + + var parts = []; + parts.push(r.method); + parts.push(r.headers['Content-MD5'] || ''); + parts.push(r.headers['Content-Type'] || ''); + + // This is the "Date" header, but we use X-Amz-Date. + // The S3 signing mechanism requires us to pass an empty + // string for this Date header regardless. + parts.push(r.headers['presigned-expires'] || ''); + + var headers = this.canonicalizedAmzHeaders(); + if (headers) parts.push(headers); + parts.push(this.canonicalizedResource()); + + return parts.join('\n'); + + }, + + canonicalizedAmzHeaders: function canonicalizedAmzHeaders() { + + var amzHeaders = []; + + AWS.util.each(this.request.headers, function (name) { + if (name.match(/^x-amz-/i)) + amzHeaders.push(name); + }); + + amzHeaders.sort(function (a, b) { + return a.toLowerCase() < b.toLowerCase() ? -1 : 1; + }); + + var parts = []; + AWS.util.arrayEach.call(this, amzHeaders, function (name) { + parts.push(name.toLowerCase() + ':' + String(this.request.headers[name])); + }); + + return parts.join('\n'); + + }, + + canonicalizedResource: function canonicalizedResource() { + + var r = this.request; + + var parts = r.path.split('?'); + var path = parts[0]; + var querystring = parts[1]; + + var resource = ''; + + if (r.virtualHostedBucket) + resource += '/' + r.virtualHostedBucket; + + resource += path; + + if (querystring) { + + // collect a list of sub resources and query params that need to be signed + var resources = []; + + AWS.util.arrayEach.call(this, querystring.split('&'), function (param) { + var name = param.split('=')[0]; + var value = param.split('=')[1]; + if (this.subResources[name] || this.responseHeaders[name]) { + var subresource = { name: name }; + if (value !== undefined) { + if (this.subResources[name]) { + subresource.value = value; + } else { + subresource.value = decodeURIComponent(value); + } + } + resources.push(subresource); + } + }); + + resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; }); + + if (resources.length) { + + querystring = []; + AWS.util.arrayEach(resources, function (res) { + if (res.value === undefined) { + querystring.push(res.name); + } else { + querystring.push(res.name + '=' + res.value); + } + }); + + resource += '?' + querystring.join('&'); + } + + } + + return resource; + + }, + + sign: function sign(secret, string) { + return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1'); + } + }); + + module.exports = AWS.Signers.S3; /***/ }), /* 211 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - var expiresHeader = 'presigned-expires'; - - /** - * @api private - */ - function signedUrlBuilder(request) { - var expires = request.httpRequest.headers[expiresHeader]; - var signerClass = request.service.getSignerClass(request); - - delete request.httpRequest.headers['User-Agent']; - delete request.httpRequest.headers['X-Amz-User-Agent']; - - if (signerClass === AWS.Signers.V4) { - if (expires > 604800) { // one week expiry is invalid - var message = 'Presigning does not support expiry time greater ' + - 'than a week with SigV4 signing.'; - throw AWS.util.error(new Error(), { - code: 'InvalidExpiryTime', message: message, retryable: false - }); - } - request.httpRequest.headers[expiresHeader] = expires; - } else if (signerClass === AWS.Signers.S3) { - var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate(); - request.httpRequest.headers[expiresHeader] = parseInt( - AWS.util.date.unixTimestamp(now) + expires, 10).toString(); - } else { - throw AWS.util.error(new Error(), { - message: 'Presigning only supports S3 or SigV4 signing.', - code: 'UnsupportedSigner', retryable: false - }); - } - } - - /** - * @api private - */ - function signedUrlSigner(request) { - var endpoint = request.httpRequest.endpoint; - var parsedUrl = AWS.util.urlParse(request.httpRequest.path); - var queryParams = {}; - - if (parsedUrl.search) { - queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); - } - - var auth = request.httpRequest.headers['Authorization'].split(' '); - if (auth[0] === 'AWS') { - auth = auth[1].split(':'); - queryParams['AWSAccessKeyId'] = auth[0]; - queryParams['Signature'] = auth[1]; - - AWS.util.each(request.httpRequest.headers, function (key, value) { - if (key === expiresHeader) key = 'Expires'; - if (key.indexOf('x-amz-meta-') === 0) { - // Delete existing, potentially not normalized key - delete queryParams[key]; - key = key.toLowerCase(); - } - queryParams[key] = value; - }); - delete request.httpRequest.headers[expiresHeader]; - delete queryParams['Authorization']; - delete queryParams['Host']; - } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing - auth.shift(); - var rest = auth.join(' '); - var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; - queryParams['X-Amz-Signature'] = signature; - delete queryParams['Expires']; - } - - // build URL - endpoint.pathname = parsedUrl.pathname; - endpoint.search = AWS.util.queryParamsToString(queryParams); - } - - /** - * @api private - */ - AWS.Signers.Presign = inherit({ - /** - * @api private - */ - sign: function sign(request, expireTime, callback) { - request.httpRequest.headers[expiresHeader] = expireTime || 3600; - request.on('build', signedUrlBuilder); - request.on('sign', signedUrlSigner); - request.removeListener('afterBuild', - AWS.EventListeners.Core.SET_CONTENT_LENGTH); - request.removeListener('afterBuild', - AWS.EventListeners.Core.COMPUTE_SHA256); - - request.emit('beforePresign', [request]); - - if (callback) { - request.build(function() { - if (this.response.error) callback(this.response.error); - else { - callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); - } - }); - } else { - request.build(); - if (request.response.error) throw request.response.error; - return AWS.util.urlFormat(request.httpRequest.endpoint); - } - } - }); - - module.exports = AWS.Signers.Presign; + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + var expiresHeader = 'presigned-expires'; + + /** + * @api private + */ + function signedUrlBuilder(request) { + var expires = request.httpRequest.headers[expiresHeader]; + var signerClass = request.service.getSignerClass(request); + + delete request.httpRequest.headers['User-Agent']; + delete request.httpRequest.headers['X-Amz-User-Agent']; + + if (signerClass === AWS.Signers.V4) { + if (expires > 604800) { // one week expiry is invalid + var message = 'Presigning does not support expiry time greater ' + + 'than a week with SigV4 signing.'; + throw AWS.util.error(new Error(), { + code: 'InvalidExpiryTime', message: message, retryable: false + }); + } + request.httpRequest.headers[expiresHeader] = expires; + } else if (signerClass === AWS.Signers.S3) { + var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate(); + request.httpRequest.headers[expiresHeader] = parseInt( + AWS.util.date.unixTimestamp(now) + expires, 10).toString(); + } else { + throw AWS.util.error(new Error(), { + message: 'Presigning only supports S3 or SigV4 signing.', + code: 'UnsupportedSigner', retryable: false + }); + } + } + + /** + * @api private + */ + function signedUrlSigner(request) { + var endpoint = request.httpRequest.endpoint; + var parsedUrl = AWS.util.urlParse(request.httpRequest.path); + var queryParams = {}; + + if (parsedUrl.search) { + queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); + } + + var auth = request.httpRequest.headers['Authorization'].split(' '); + if (auth[0] === 'AWS') { + auth = auth[1].split(':'); + queryParams['AWSAccessKeyId'] = auth[0]; + queryParams['Signature'] = auth[1]; + + AWS.util.each(request.httpRequest.headers, function (key, value) { + if (key === expiresHeader) key = 'Expires'; + if (key.indexOf('x-amz-meta-') === 0) { + // Delete existing, potentially not normalized key + delete queryParams[key]; + key = key.toLowerCase(); + } + queryParams[key] = value; + }); + delete request.httpRequest.headers[expiresHeader]; + delete queryParams['Authorization']; + delete queryParams['Host']; + } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing + auth.shift(); + var rest = auth.join(' '); + var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; + queryParams['X-Amz-Signature'] = signature; + delete queryParams['Expires']; + } + + // build URL + endpoint.pathname = parsedUrl.pathname; + endpoint.search = AWS.util.queryParamsToString(queryParams); + } + + /** + * @api private + */ + AWS.Signers.Presign = inherit({ + /** + * @api private + */ + sign: function sign(request, expireTime, callback) { + request.httpRequest.headers[expiresHeader] = expireTime || 3600; + request.on('build', signedUrlBuilder); + request.on('sign', signedUrlSigner); + request.removeListener('afterBuild', + AWS.EventListeners.Core.SET_CONTENT_LENGTH); + request.removeListener('afterBuild', + AWS.EventListeners.Core.COMPUTE_SHA256); + + request.emit('beforePresign', [request]); + + if (callback) { + request.build(function() { + if (this.response.error) callback(this.response.error); + else { + callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); + } + }); + } else { + request.build(); + if (request.response.error) throw request.response.error; + return AWS.util.urlFormat(request.httpRequest.endpoint); + } + } + }); + + module.exports = AWS.Signers.Presign; /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - - /** - * @api private - */ - AWS.ParamValidator = AWS.util.inherit({ - /** - * Create a new validator object. - * - * @param validation [Boolean|map] whether input parameters should be - * validated against the operation description before sending the - * request. Pass a map to enable any of the following specific - * validation features: - * - * * **min** [Boolean] — Validates that a value meets the min - * constraint. This is enabled by default when paramValidation is set - * to `true`. - * * **max** [Boolean] — Validates that a value meets the max - * constraint. - * * **pattern** [Boolean] — Validates that a string value matches a - * regular expression. - * * **enum** [Boolean] — Validates that a string value matches one - * of the allowable enum values. - */ - constructor: function ParamValidator(validation) { - if (validation === true || validation === undefined) { - validation = {'min': true}; - } - this.validation = validation; - }, - - validate: function validate(shape, params, context) { - this.errors = []; - this.validateMember(shape, params || {}, context || 'params'); - - if (this.errors.length > 1) { - var msg = this.errors.join('\n* '); - msg = 'There were ' + this.errors.length + - ' validation errors:\n* ' + msg; - throw AWS.util.error(new Error(msg), - {code: 'MultipleValidationErrors', errors: this.errors}); - } else if (this.errors.length === 1) { - throw this.errors[0]; - } else { - return true; - } - }, - - fail: function fail(code, message) { - this.errors.push(AWS.util.error(new Error(message), {code: code})); - }, - - validateStructure: function validateStructure(shape, params, context) { - this.validateType(params, context, ['object'], 'structure'); - - var paramName; - for (var i = 0; shape.required && i < shape.required.length; i++) { - paramName = shape.required[i]; - var value = params[paramName]; - if (value === undefined || value === null) { - this.fail('MissingRequiredParameter', - 'Missing required key \'' + paramName + '\' in ' + context); - } - } - - // validate hash members - for (paramName in params) { - if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue; - - var paramValue = params[paramName], - memberShape = shape.members[paramName]; - - if (memberShape !== undefined) { - var memberContext = [context, paramName].join('.'); - this.validateMember(memberShape, paramValue, memberContext); - } else { - this.fail('UnexpectedParameter', - 'Unexpected key \'' + paramName + '\' found in ' + context); - } - } - - return true; - }, - - validateMember: function validateMember(shape, param, context) { - switch (shape.type) { - case 'structure': - return this.validateStructure(shape, param, context); - case 'list': - return this.validateList(shape, param, context); - case 'map': - return this.validateMap(shape, param, context); - default: - return this.validateScalar(shape, param, context); - } - }, - - validateList: function validateList(shape, params, context) { - if (this.validateType(params, context, [Array])) { - this.validateRange(shape, params.length, context, 'list member count'); - // validate array members - for (var i = 0; i < params.length; i++) { - this.validateMember(shape.member, params[i], context + '[' + i + ']'); - } - } - }, - - validateMap: function validateMap(shape, params, context) { - if (this.validateType(params, context, ['object'], 'map')) { - // Build up a count of map members to validate range traits. - var mapCount = 0; - for (var param in params) { - if (!Object.prototype.hasOwnProperty.call(params, param)) continue; - // Validate any map key trait constraints - this.validateMember(shape.key, param, - context + '[key=\'' + param + '\']') - this.validateMember(shape.value, params[param], - context + '[\'' + param + '\']'); - mapCount++; - } - this.validateRange(shape, mapCount, context, 'map member count'); - } - }, - - validateScalar: function validateScalar(shape, value, context) { - switch (shape.type) { - case null: - case undefined: - case 'string': - return this.validateString(shape, value, context); - case 'base64': - case 'binary': - return this.validatePayload(value, context); - case 'integer': - case 'float': - return this.validateNumber(shape, value, context); - case 'boolean': - return this.validateType(value, context, ['boolean']); - case 'timestamp': - return this.validateType(value, context, [Date, - /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'], - 'Date object, ISO-8601 string, or a UNIX timestamp'); - default: - return this.fail('UnkownType', 'Unhandled type ' + - shape.type + ' for ' + context); - } - }, - - validateString: function validateString(shape, value, context) { - var validTypes = ['string']; - if (shape.isJsonValue) { - validTypes = validTypes.concat(['number', 'object', 'boolean']); - } - if (value !== null && this.validateType(value, context, validTypes)) { - this.validateEnum(shape, value, context); - this.validateRange(shape, value.length, context, 'string length'); - this.validatePattern(shape, value, context); - } - }, - - validatePattern: function validatePattern(shape, value, context) { - if (this.validation['pattern'] && shape['pattern'] !== undefined) { - if (!(new RegExp(shape['pattern'])).test(value)) { - this.fail('PatternMatchError', 'Provided value "' + value + '" ' - + 'does not match regex pattern /' + shape['pattern'] + '/ for ' - + context); - } - } - }, - - validateRange: function validateRange(shape, value, context, descriptor) { - if (this.validation['min']) { - if (shape['min'] !== undefined && value < shape['min']) { - this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' - + shape['min'] + ', but found ' + value + ' for ' + context); - } - } - if (this.validation['max']) { - if (shape['max'] !== undefined && value > shape['max']) { - this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' - + shape['max'] + ', but found ' + value + ' for ' + context); - } - } - }, - - validateEnum: function validateRange(shape, value, context) { - if (this.validation['enum'] && shape['enum'] !== undefined) { - // Fail if the string value is not present in the enum list - if (shape['enum'].indexOf(value) === -1) { - this.fail('EnumError', 'Found string value of ' + value + ', but ' - + 'expected ' + shape['enum'].join('|') + ' for ' + context); - } - } - }, - - validateType: function validateType(value, context, acceptedTypes, type) { - // We will not log an error for null or undefined, but we will return - // false so that callers know that the expected type was not strictly met. - if (value === null || value === undefined) return false; - - var foundInvalidType = false; - for (var i = 0; i < acceptedTypes.length; i++) { - if (typeof acceptedTypes[i] === 'string') { - if (typeof value === acceptedTypes[i]) return true; - } else if (acceptedTypes[i] instanceof RegExp) { - if ((value || '').toString().match(acceptedTypes[i])) return true; - } else { - if (value instanceof acceptedTypes[i]) return true; - if (AWS.util.isType(value, acceptedTypes[i])) return true; - if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice(); - acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]); - } - foundInvalidType = true; - } - - var acceptedType = type; - if (!acceptedType) { - acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1'); - } - - var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : ''; - this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' + - vowel + ' ' + acceptedType); - return false; - }, - - validateNumber: function validateNumber(shape, value, context) { - if (value === null || value === undefined) return; - if (typeof value === 'string') { - var castedValue = parseFloat(value); - if (castedValue.toString() === value) value = castedValue; - } - if (this.validateType(value, context, ['number'])) { - this.validateRange(shape, value, context, 'numeric value'); - } - }, - - validatePayload: function validatePayload(value, context) { - if (value === null || value === undefined) return; - if (typeof value === 'string') return; - if (value && typeof value.byteLength === 'number') return; // typed arrays - if (AWS.util.isNode()) { // special check for buffer/stream in Node.js - var Stream = AWS.util.stream.Stream; - if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return; - } - - var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView']; - if (value) { - for (var i = 0; i < types.length; i++) { - if (AWS.util.isType(value, types[i])) return; - if (AWS.util.typeName(value.constructor) === types[i]) return; - } - } - - this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' + - 'string, Buffer, Stream, Blob, or typed array object'); - } - }); + var AWS = __webpack_require__(1); + + /** + * @api private + */ + AWS.ParamValidator = AWS.util.inherit({ + /** + * Create a new validator object. + * + * @param validation [Boolean|map] whether input parameters should be + * validated against the operation description before sending the + * request. Pass a map to enable any of the following specific + * validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + */ + constructor: function ParamValidator(validation) { + if (validation === true || validation === undefined) { + validation = {'min': true}; + } + this.validation = validation; + }, + + validate: function validate(shape, params, context) { + this.errors = []; + this.validateMember(shape, params || {}, context || 'params'); + + if (this.errors.length > 1) { + var msg = this.errors.join('\n* '); + msg = 'There were ' + this.errors.length + + ' validation errors:\n* ' + msg; + throw AWS.util.error(new Error(msg), + {code: 'MultipleValidationErrors', errors: this.errors}); + } else if (this.errors.length === 1) { + throw this.errors[0]; + } else { + return true; + } + }, + + fail: function fail(code, message) { + this.errors.push(AWS.util.error(new Error(message), {code: code})); + }, + + validateStructure: function validateStructure(shape, params, context) { + this.validateType(params, context, ['object'], 'structure'); + + var paramName; + for (var i = 0; shape.required && i < shape.required.length; i++) { + paramName = shape.required[i]; + var value = params[paramName]; + if (value === undefined || value === null) { + this.fail('MissingRequiredParameter', + 'Missing required key \'' + paramName + '\' in ' + context); + } + } + + // validate hash members + for (paramName in params) { + if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue; + + var paramValue = params[paramName], + memberShape = shape.members[paramName]; + + if (memberShape !== undefined) { + var memberContext = [context, paramName].join('.'); + this.validateMember(memberShape, paramValue, memberContext); + } else { + this.fail('UnexpectedParameter', + 'Unexpected key \'' + paramName + '\' found in ' + context); + } + } + + return true; + }, + + validateMember: function validateMember(shape, param, context) { + switch (shape.type) { + case 'structure': + return this.validateStructure(shape, param, context); + case 'list': + return this.validateList(shape, param, context); + case 'map': + return this.validateMap(shape, param, context); + default: + return this.validateScalar(shape, param, context); + } + }, + + validateList: function validateList(shape, params, context) { + if (this.validateType(params, context, [Array])) { + this.validateRange(shape, params.length, context, 'list member count'); + // validate array members + for (var i = 0; i < params.length; i++) { + this.validateMember(shape.member, params[i], context + '[' + i + ']'); + } + } + }, + + validateMap: function validateMap(shape, params, context) { + if (this.validateType(params, context, ['object'], 'map')) { + // Build up a count of map members to validate range traits. + var mapCount = 0; + for (var param in params) { + if (!Object.prototype.hasOwnProperty.call(params, param)) continue; + // Validate any map key trait constraints + this.validateMember(shape.key, param, + context + '[key=\'' + param + '\']') + this.validateMember(shape.value, params[param], + context + '[\'' + param + '\']'); + mapCount++; + } + this.validateRange(shape, mapCount, context, 'map member count'); + } + }, + + validateScalar: function validateScalar(shape, value, context) { + switch (shape.type) { + case null: + case undefined: + case 'string': + return this.validateString(shape, value, context); + case 'base64': + case 'binary': + return this.validatePayload(value, context); + case 'integer': + case 'float': + return this.validateNumber(shape, value, context); + case 'boolean': + return this.validateType(value, context, ['boolean']); + case 'timestamp': + return this.validateType(value, context, [Date, + /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'], + 'Date object, ISO-8601 string, or a UNIX timestamp'); + default: + return this.fail('UnkownType', 'Unhandled type ' + + shape.type + ' for ' + context); + } + }, + + validateString: function validateString(shape, value, context) { + var validTypes = ['string']; + if (shape.isJsonValue) { + validTypes = validTypes.concat(['number', 'object', 'boolean']); + } + if (value !== null && this.validateType(value, context, validTypes)) { + this.validateEnum(shape, value, context); + this.validateRange(shape, value.length, context, 'string length'); + this.validatePattern(shape, value, context); + } + }, + + validatePattern: function validatePattern(shape, value, context) { + if (this.validation['pattern'] && shape['pattern'] !== undefined) { + if (!(new RegExp(shape['pattern'])).test(value)) { + this.fail('PatternMatchError', 'Provided value "' + value + '" ' + + 'does not match regex pattern /' + shape['pattern'] + '/ for ' + + context); + } + } + }, + + validateRange: function validateRange(shape, value, context, descriptor) { + if (this.validation['min']) { + if (shape['min'] !== undefined && value < shape['min']) { + this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' + + shape['min'] + ', but found ' + value + ' for ' + context); + } + } + if (this.validation['max']) { + if (shape['max'] !== undefined && value > shape['max']) { + this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' + + shape['max'] + ', but found ' + value + ' for ' + context); + } + } + }, + + validateEnum: function validateRange(shape, value, context) { + if (this.validation['enum'] && shape['enum'] !== undefined) { + // Fail if the string value is not present in the enum list + if (shape['enum'].indexOf(value) === -1) { + this.fail('EnumError', 'Found string value of ' + value + ', but ' + + 'expected ' + shape['enum'].join('|') + ' for ' + context); + } + } + }, + + validateType: function validateType(value, context, acceptedTypes, type) { + // We will not log an error for null or undefined, but we will return + // false so that callers know that the expected type was not strictly met. + if (value === null || value === undefined) return false; + + var foundInvalidType = false; + for (var i = 0; i < acceptedTypes.length; i++) { + if (typeof acceptedTypes[i] === 'string') { + if (typeof value === acceptedTypes[i]) return true; + } else if (acceptedTypes[i] instanceof RegExp) { + if ((value || '').toString().match(acceptedTypes[i])) return true; + } else { + if (value instanceof acceptedTypes[i]) return true; + if (AWS.util.isType(value, acceptedTypes[i])) return true; + if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice(); + acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]); + } + foundInvalidType = true; + } + + var acceptedType = type; + if (!acceptedType) { + acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1'); + } + + var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : ''; + this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' + + vowel + ' ' + acceptedType); + return false; + }, + + validateNumber: function validateNumber(shape, value, context) { + if (value === null || value === undefined) return; + if (typeof value === 'string') { + var castedValue = parseFloat(value); + if (castedValue.toString() === value) value = castedValue; + } + if (this.validateType(value, context, ['number'])) { + this.validateRange(shape, value, context, 'numeric value'); + } + }, + + validatePayload: function validatePayload(value, context) { + if (value === null || value === undefined) return; + if (typeof value === 'string') return; + if (value && typeof value.byteLength === 'number') return; // typed arrays + if (AWS.util.isNode()) { // special check for buffer/stream in Node.js + var Stream = AWS.util.stream.Stream; + if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return; + } + + var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView']; + if (value) { + for (var i = 0; i < types.length; i++) { + if (AWS.util.isType(value, types[i])) return; + if (AWS.util.typeName(value.constructor) === types[i]) return; + } + } + + this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' + + 'string, Buffer, Stream, Blob, or typed array object'); + } + }); /***/ }) diff --git a/dist/aws-sdk-react-native.js b/dist/aws-sdk-react-native.js index 4fd64029d7..75160be91a 100644 --- a/dist/aws-sdk-react-native.js +++ b/dist/aws-sdk-react-native.js @@ -61,48 +61,48 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(2); - - __webpack_require__(43); + var AWS = __webpack_require__(2); + + __webpack_require__(43); module.exports = AWS; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(4); - // react-native specific modules - AWS.util.crypto.lib = __webpack_require__(7); - AWS.util.Buffer = __webpack_require__(10).Buffer; - AWS.util.url = __webpack_require__(17); - AWS.util.querystring = __webpack_require__(20); - AWS.util.environment = 'js-react-native'; - - module.exports = AWS; - - __webpack_require__(23); - __webpack_require__(24); - __webpack_require__(25); - __webpack_require__(30); - __webpack_require__(31); - __webpack_require__(36); - - // Load the DOMParser XML parser - AWS.XML.Parser = __webpack_require__(37); - - // Load the XHR HttpClient - __webpack_require__(39); - - // add custom request event handlers - var addContentType = __webpack_require__(42).addContentType; - AWS.EventListeners.Core.addNamedListeners(function(add) { - add('ADD_CONTENT_TYPE', 'afterBuild', addContentType); - }); - - if (typeof process === 'undefined') { - process = {}; - } - process.browser = true; + /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(4); + // react-native specific modules + AWS.util.crypto.lib = __webpack_require__(7); + AWS.util.Buffer = __webpack_require__(10).Buffer; + AWS.util.url = __webpack_require__(17); + AWS.util.querystring = __webpack_require__(20); + AWS.util.environment = 'js-react-native'; + + module.exports = AWS; + + __webpack_require__(23); + __webpack_require__(24); + __webpack_require__(25); + __webpack_require__(30); + __webpack_require__(31); + __webpack_require__(36); + + // Load the DOMParser XML parser + AWS.XML.Parser = __webpack_require__(37); + + // Load the XHR HttpClient + __webpack_require__(39); + + // add custom request event handlers + var addContentType = __webpack_require__(42).addContentType; + AWS.EventListeners.Core.addNamedListeners(function(add) { + add('ADD_CONTENT_TYPE', 'afterBuild', addContentType); + }); + + if (typeof process === 'undefined') { + process = {}; + } + process.browser = true; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) @@ -363,1042 +363,1042 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ (function(module, exports, __webpack_require__) { - /** - * The main AWS namespace - */ - var AWS = { util: __webpack_require__(2) }; - - /** - * @api private - * @!macro [new] nobrowser - * @note This feature is not supported in the browser environment of the SDK. - */ - var _hidden = {}; _hidden.toString(); // hack to parse macro - - module.exports = AWS; - - AWS.util.update(AWS, { - - /** - * @constant - */ - VERSION: '2.182.0', - - /** - * @api private - */ - Signers: {}, - - /** - * @api private - */ - Protocol: { - Json: __webpack_require__(13), - Query: __webpack_require__(16), - Rest: __webpack_require__(20), - RestJson: __webpack_require__(21), - RestXml: __webpack_require__(22) - }, - - /** - * @api private - */ - XML: { - Builder: __webpack_require__(23), - Parser: null // conditionally set based on environment - }, - - /** - * @api private - */ - JSON: { - Builder: __webpack_require__(14), - Parser: __webpack_require__(15) - }, - - /** - * @api private - */ - Model: { - Api: __webpack_require__(182), - Operation: __webpack_require__(183), - Shape: __webpack_require__(18), - Paginator: __webpack_require__(184), - ResourceWaiter: __webpack_require__(185) - }, - - /** - * @api private - */ - apiLoader: __webpack_require__(186) - }); - - __webpack_require__(187); - __webpack_require__(190); - - __webpack_require__(193); - __webpack_require__(194); - __webpack_require__(195); - __webpack_require__(199); - __webpack_require__(202); - __webpack_require__(203); - __webpack_require__(204); - __webpack_require__(212); - - /** - * @readonly - * @return [AWS.SequentialExecutor] a collection of global event listeners that - * are attached to every sent request. - * @see AWS.Request AWS.Request for a list of events to listen for - * @example Logging the time taken to send a request - * AWS.events.on('send', function startSend(resp) { - * resp.startTime = new Date().getTime(); - * }).on('complete', function calculateTime(resp) { - * var time = (new Date().getTime() - resp.startTime) / 1000; - * console.log('Request took ' + time + ' seconds'); - * }); - * - * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' - */ - AWS.events = new AWS.SequentialExecutor(); + /** + * The main AWS namespace + */ + var AWS = { util: __webpack_require__(2) }; + + /** + * @api private + * @!macro [new] nobrowser + * @note This feature is not supported in the browser environment of the SDK. + */ + var _hidden = {}; _hidden.toString(); // hack to parse macro + + module.exports = AWS; + + AWS.util.update(AWS, { + + /** + * @constant + */ + VERSION: '2.183.0', + + /** + * @api private + */ + Signers: {}, + + /** + * @api private + */ + Protocol: { + Json: __webpack_require__(13), + Query: __webpack_require__(16), + Rest: __webpack_require__(20), + RestJson: __webpack_require__(21), + RestXml: __webpack_require__(22) + }, + + /** + * @api private + */ + XML: { + Builder: __webpack_require__(23), + Parser: null // conditionally set based on environment + }, + + /** + * @api private + */ + JSON: { + Builder: __webpack_require__(14), + Parser: __webpack_require__(15) + }, + + /** + * @api private + */ + Model: { + Api: __webpack_require__(182), + Operation: __webpack_require__(183), + Shape: __webpack_require__(18), + Paginator: __webpack_require__(184), + ResourceWaiter: __webpack_require__(185) + }, + + /** + * @api private + */ + apiLoader: __webpack_require__(186) + }); + + __webpack_require__(187); + __webpack_require__(190); + + __webpack_require__(193); + __webpack_require__(194); + __webpack_require__(195); + __webpack_require__(199); + __webpack_require__(202); + __webpack_require__(203); + __webpack_require__(204); + __webpack_require__(212); + + /** + * @readonly + * @return [AWS.SequentialExecutor] a collection of global event listeners that + * are attached to every sent request. + * @see AWS.Request AWS.Request for a list of events to listen for + * @example Logging the time taken to send a request + * AWS.events.on('send', function startSend(resp) { + * resp.startTime = new Date().getTime(); + * }).on('complete', function calculateTime(resp) { + * var time = (new Date().getTime() - resp.startTime) / 1000; + * console.log('Request took ' + time + ' seconds'); + * }); + * + * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds' + */ + AWS.events = new AWS.SequentialExecutor(); /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* eslint guard-for-in:0 */ - var AWS; - - /** - * A set of utility methods for use with the AWS SDK. - * - * @!attribute abort - * Return this value from an iterator function {each} or {arrayEach} - * to break out of the iteration. - * @example Breaking out of an iterator function - * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { - * if (key == 'b') return AWS.util.abort; - * }); - * @see each - * @see arrayEach - * @api private - */ - var util = { - environment: 'nodejs', - engine: function engine() { - if (util.isBrowser() && typeof navigator !== 'undefined') { - return navigator.userAgent; - } else { - var engine = process.platform + '/' + process.version; - if (process.env.AWS_EXECUTION_ENV) { - engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV; - } - return engine; - } - }, - - userAgent: function userAgent() { - var name = util.environment; - var agent = 'aws-sdk-' + name + '/' + __webpack_require__(1).VERSION; - if (name === 'nodejs') agent += ' ' + util.engine(); - return agent; - }, - - isBrowser: function isBrowser() { return process && process.browser; }, - isNode: function isNode() { return !util.isBrowser(); }, - uriEscape: function uriEscape(string) { - var output = encodeURIComponent(string); - output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); - - // AWS percent-encodes some extra non-standard characters in a URI - output = output.replace(/[*]/g, function(ch) { - return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); - }); - - return output; - }, - - uriEscapePath: function uriEscapePath(string) { - var parts = []; - util.arrayEach(string.split('/'), function (part) { - parts.push(util.uriEscape(part)); - }); - return parts.join('/'); - }, - - urlParse: function urlParse(url) { - return util.url.parse(url); - }, - - urlFormat: function urlFormat(url) { - return util.url.format(url); - }, - - queryStringParse: function queryStringParse(qs) { - return util.querystring.parse(qs); - }, - - queryParamsToString: function queryParamsToString(params) { - var items = []; - var escape = util.uriEscape; - var sortedKeys = Object.keys(params).sort(); - - util.arrayEach(sortedKeys, function(name) { - var value = params[name]; - var ename = escape(name); - var result = ename + '='; - if (Array.isArray(value)) { - var vals = []; - util.arrayEach(value, function(item) { vals.push(escape(item)); }); - result = ename + '=' + vals.sort().join('&' + ename + '='); - } else if (value !== undefined && value !== null) { - result = ename + '=' + escape(value); - } - items.push(result); - }); - - return items.join('&'); - }, - - readFileSync: function readFileSync(path) { - if (util.isBrowser()) return null; - return __webpack_require__(6).readFileSync(path, 'utf-8'); - }, - - base64: { - encode: function encode64(string) { - if (typeof string === 'number') { - throw util.error(new Error('Cannot base64 encode number ' + string)); - } - if (string === null || typeof string === 'undefined') { - return string; - } - var buf = (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string) : new util.Buffer(string); - return buf.toString('base64'); - }, - - decode: function decode64(string) { - if (typeof string === 'number') { - throw util.error(new Error('Cannot base64 decode number ' + string)); - } - if (string === null || typeof string === 'undefined') { - return string; - } - return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string, 'base64') : new util.Buffer(string, 'base64'); - } - - }, - - buffer: { - toStream: function toStream(buffer) { - if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer); - - var readable = new (util.stream.Readable)(); - var pos = 0; - readable._read = function(size) { - if (pos >= buffer.length) return readable.push(null); - - var end = pos + size; - if (end > buffer.length) end = buffer.length; - readable.push(buffer.slice(pos, end)); - pos = end; - }; - - return readable; - }, - - /** - * Concatenates a list of Buffer objects. - */ - concat: function(buffers) { - var length = 0, - offset = 0, - buffer = null, i; - - for (i = 0; i < buffers.length; i++) { - length += buffers[i].length; - } - - buffer = new util.Buffer(length); - - for (i = 0; i < buffers.length; i++) { - buffers[i].copy(buffer, offset); - offset += buffers[i].length; - } - - return buffer; - } - }, - - string: { - byteLength: function byteLength(string) { - if (string === null || string === undefined) return 0; - if (typeof string === 'string') string = new util.Buffer(string); - - if (typeof string.byteLength === 'number') { - return string.byteLength; - } else if (typeof string.length === 'number') { - return string.length; - } else if (typeof string.size === 'number') { - return string.size; - } else if (typeof string.path === 'string') { - return __webpack_require__(6).lstatSync(string.path).size; - } else { - throw util.error(new Error('Cannot determine length of ' + string), - { object: string }); - } - }, - - upperFirst: function upperFirst(string) { - return string[0].toUpperCase() + string.substr(1); - }, - - lowerFirst: function lowerFirst(string) { - return string[0].toLowerCase() + string.substr(1); - } - }, - - ini: { - parse: function string(ini) { - var currentSection, map = {}; - util.arrayEach(ini.split(/\r?\n/), function(line) { - line = line.split(/(^|\s)[;#]/)[0]; // remove comments - var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); - if (section) { - currentSection = section[1]; - } else if (currentSection) { - var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); - if (item) { - map[currentSection] = map[currentSection] || {}; - map[currentSection][item[1]] = item[2]; - } - } - }); - - return map; - } - }, - - fn: { - noop: function() {}, - - /** - * Turn a synchronous function into as "async" function by making it call - * a callback. The underlying function is called with all but the last argument, - * which is treated as the callback. The callback is passed passed a first argument - * of null on success to mimick standard node callbacks. - */ - makeAsync: function makeAsync(fn, expectedArgs) { - if (expectedArgs && expectedArgs <= fn.length) { - return fn; - } - - return function() { - var args = Array.prototype.slice.call(arguments, 0); - var callback = args.pop(); - var result = fn.apply(null, args); - callback(result); - }; - } - }, - - /** - * Date and time utility functions. - */ - date: { - - /** - * @return [Date] the current JavaScript date object. Since all - * AWS services rely on this date object, you can override - * this function to provide a special time value to AWS service - * requests. - */ - getDate: function getDate() { - if (!AWS) AWS = __webpack_require__(1); - if (AWS.config.systemClockOffset) { // use offset when non-zero - return new Date(new Date().getTime() + AWS.config.systemClockOffset); - } else { - return new Date(); - } - }, - - /** - * @return [String] the date in ISO-8601 format - */ - iso8601: function iso8601(date) { - if (date === undefined) { date = util.date.getDate(); } - return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); - }, - - /** - * @return [String] the date in RFC 822 format - */ - rfc822: function rfc822(date) { - if (date === undefined) { date = util.date.getDate(); } - return date.toUTCString(); - }, - - /** - * @return [Integer] the UNIX timestamp value for the current time - */ - unixTimestamp: function unixTimestamp(date) { - if (date === undefined) { date = util.date.getDate(); } - return date.getTime() / 1000; - }, - - /** - * @param [String,number,Date] date - * @return [Date] - */ - from: function format(date) { - if (typeof date === 'number') { - return new Date(date * 1000); // unix timestamp - } else { - return new Date(date); - } - }, - - /** - * Given a Date or date-like value, this function formats the - * date into a string of the requested value. - * @param [String,number,Date] date - * @param [String] formatter Valid formats are: - # * 'iso8601' - # * 'rfc822' - # * 'unixTimestamp' - * @return [String] - */ - format: function format(date, formatter) { - if (!formatter) formatter = 'iso8601'; - return util.date[formatter](util.date.from(date)); - }, - - parseTimestamp: function parseTimestamp(value) { - if (typeof value === 'number') { // unix timestamp (number) - return new Date(value * 1000); - } else if (value.match(/^\d+$/)) { // unix timestamp - return new Date(value * 1000); - } else if (value.match(/^\d{4}/)) { // iso8601 - return new Date(value); - } else if (value.match(/^\w{3},/)) { // rfc822 - return new Date(value); - } else { - throw util.error( - new Error('unhandled timestamp format: ' + value), - {code: 'TimestampParserError'}); - } - } - - }, - - crypto: { - crc32Table: [ - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, - 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, - 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, - 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, - 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, - 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, - 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, - 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, - 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, - 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, - 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, - 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, - 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, - 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, - 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, - 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, - 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, - 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, - 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, - 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, - 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, - 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, - 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, - 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, - 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, - 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, - 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, - 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, - 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, - 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, - 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, - 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, - 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, - 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, - 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, - 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, - 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, - 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, - 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, - 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, - 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, - 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, - 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, - 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, - 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, - 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, - 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, - 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, - 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, - 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, - 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, - 0x2D02EF8D], - - crc32: function crc32(data) { - var tbl = util.crypto.crc32Table; - var crc = 0 ^ -1; - - if (typeof data === 'string') { - data = new util.Buffer(data); - } - - for (var i = 0; i < data.length; i++) { - var code = data.readUInt8(i); - crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; - } - return (crc ^ -1) >>> 0; - }, - - hmac: function hmac(key, string, digest, fn) { - if (!digest) digest = 'binary'; - if (digest === 'buffer') { digest = undefined; } - if (!fn) fn = 'sha256'; - if (typeof string === 'string') string = new util.Buffer(string); - return util.crypto.lib.createHmac(fn, key).update(string).digest(digest); - }, - - md5: function md5(data, digest, callback) { - return util.crypto.hash('md5', data, digest, callback); - }, - - sha256: function sha256(data, digest, callback) { - return util.crypto.hash('sha256', data, digest, callback); - }, - - hash: function(algorithm, data, digest, callback) { - var hash = util.crypto.createHash(algorithm); - if (!digest) { digest = 'binary'; } - if (digest === 'buffer') { digest = undefined; } - if (typeof data === 'string') data = new util.Buffer(data); - var sliceFn = util.arraySliceFn(data); - var isBuffer = util.Buffer.isBuffer(data); - //Identifying objects with an ArrayBuffer as buffers - if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; - - if (callback && typeof data === 'object' && - typeof data.on === 'function' && !isBuffer) { - data.on('data', function(chunk) { hash.update(chunk); }); - data.on('error', function(err) { callback(err); }); - data.on('end', function() { callback(null, hash.digest(digest)); }); - } else if (callback && sliceFn && !isBuffer && - typeof FileReader !== 'undefined') { - // this might be a File/Blob - var index = 0, size = 1024 * 512; - var reader = new FileReader(); - reader.onerror = function() { - callback(new Error('Failed to read data.')); - }; - reader.onload = function() { - var buf = new util.Buffer(new Uint8Array(reader.result)); - hash.update(buf); - index += buf.length; - reader._continueReading(); - }; - reader._continueReading = function() { - if (index >= data.size) { - callback(null, hash.digest(digest)); - return; - } - - var back = index + size; - if (back > data.size) back = data.size; - reader.readAsArrayBuffer(sliceFn.call(data, index, back)); - }; - - reader._continueReading(); - } else { - if (util.isBrowser() && typeof data === 'object' && !isBuffer) { - data = new util.Buffer(new Uint8Array(data)); - } - var out = hash.update(data).digest(digest); - if (callback) callback(null, out); - return out; - } - }, - - toHex: function toHex(data) { - var out = []; - for (var i = 0; i < data.length; i++) { - out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); - } - return out.join(''); - }, - - createHash: function createHash(algorithm) { - return util.crypto.lib.createHash(algorithm); - } - - }, - - /** @!ignore */ - - /* Abort constant */ - abort: {}, - - each: function each(object, iterFunction) { - for (var key in object) { - if (Object.prototype.hasOwnProperty.call(object, key)) { - var ret = iterFunction.call(this, key, object[key]); - if (ret === util.abort) break; - } - } - }, - - arrayEach: function arrayEach(array, iterFunction) { - for (var idx in array) { - if (Object.prototype.hasOwnProperty.call(array, idx)) { - var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); - if (ret === util.abort) break; - } - } - }, - - update: function update(obj1, obj2) { - util.each(obj2, function iterator(key, item) { - obj1[key] = item; - }); - return obj1; - }, - - merge: function merge(obj1, obj2) { - return util.update(util.copy(obj1), obj2); - }, - - copy: function copy(object) { - if (object === null || object === undefined) return object; - var dupe = {}; - // jshint forin:false - for (var key in object) { - dupe[key] = object[key]; - } - return dupe; - }, - - isEmpty: function isEmpty(obj) { - for (var prop in obj) { - if (Object.prototype.hasOwnProperty.call(obj, prop)) { - return false; - } - } - return true; - }, - - arraySliceFn: function arraySliceFn(obj) { - var fn = obj.slice || obj.webkitSlice || obj.mozSlice; - return typeof fn === 'function' ? fn : null; - }, - - isType: function isType(obj, type) { - // handle cross-"frame" objects - if (typeof type === 'function') type = util.typeName(type); - return Object.prototype.toString.call(obj) === '[object ' + type + ']'; - }, - - typeName: function typeName(type) { - if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name; - var str = type.toString(); - var match = str.match(/^\s*function (.+)\(/); - return match ? match[1] : str; - }, - - error: function error(err, options) { - var originalError = null; - if (typeof err.message === 'string' && err.message !== '') { - if (typeof options === 'string' || (options && options.message)) { - originalError = util.copy(err); - originalError.message = err.message; - } - } - err.message = err.message || null; - - if (typeof options === 'string') { - err.message = options; - } else if (typeof options === 'object' && options !== null) { - util.update(err, options); - if (options.message) - err.message = options.message; - if (options.code || options.name) - err.code = options.code || options.name; - if (options.stack) - err.stack = options.stack; - } - - if (typeof Object.defineProperty === 'function') { - Object.defineProperty(err, 'name', {writable: true, enumerable: false}); - Object.defineProperty(err, 'message', {enumerable: true}); - } - - err.name = options && options.name || err.name || err.code || 'Error'; - err.time = new Date(); - - if (originalError) err.originalError = originalError; - - return err; - }, - - /** - * @api private - */ - inherit: function inherit(klass, features) { - var newObject = null; - if (features === undefined) { - features = klass; - klass = Object; - newObject = {}; - } else { - var ctor = function ConstructorWrapper() {}; - ctor.prototype = klass.prototype; - newObject = new ctor(); - } - - // constructor not supplied, create pass-through ctor - if (features.constructor === Object) { - features.constructor = function() { - if (klass !== Object) { - return klass.apply(this, arguments); - } - }; - } - - features.constructor.prototype = newObject; - util.update(features.constructor.prototype, features); - features.constructor.__super__ = klass; - return features.constructor; - }, - - /** - * @api private - */ - mixin: function mixin() { - var klass = arguments[0]; - for (var i = 1; i < arguments.length; i++) { - // jshint forin:false - for (var prop in arguments[i].prototype) { - var fn = arguments[i].prototype[prop]; - if (prop !== 'constructor') { - klass.prototype[prop] = fn; - } - } - } - return klass; - }, - - /** - * @api private - */ - hideProperties: function hideProperties(obj, props) { - if (typeof Object.defineProperty !== 'function') return; - - util.arrayEach(props, function (key) { - Object.defineProperty(obj, key, { - enumerable: false, writable: true, configurable: true }); - }); - }, - - /** - * @api private - */ - property: function property(obj, name, value, enumerable, isValue) { - var opts = { - configurable: true, - enumerable: enumerable !== undefined ? enumerable : true - }; - if (typeof value === 'function' && !isValue) { - opts.get = value; - } - else { - opts.value = value; opts.writable = true; - } - - Object.defineProperty(obj, name, opts); - }, - - /** - * @api private - */ - memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { - var cachedValue = null; - - // build enumerable attribute for each value with lazy accessor. - util.property(obj, name, function() { - if (cachedValue === null) { - cachedValue = get(); - } - return cachedValue; - }, enumerable); - }, - - /** - * TODO Remove in major version revision - * This backfill populates response data without the - * top-level payload name. - * - * @api private - */ - hoistPayloadMember: function hoistPayloadMember(resp) { - var req = resp.request; - var operation = req.operation; - var output = req.service.api.operations[operation].output; - if (output.payload) { - var payloadMember = output.members[output.payload]; - var responsePayload = resp.data[output.payload]; - if (payloadMember.type === 'structure') { - util.each(responsePayload, function(key, value) { - util.property(resp.data, key, value, false); - }); - } - } - }, - - /** - * Compute SHA-256 checksums of streams - * - * @api private - */ - computeSha256: function computeSha256(body, done) { - if (util.isNode()) { - var Stream = util.stream.Stream; - var fs = __webpack_require__(6); - if (body instanceof Stream) { - if (typeof body.path === 'string') { // assume file object - var settings = {}; - if (typeof body.start === 'number') { - settings.start = body.start; - } - if (typeof body.end === 'number') { - settings.end = body.end; - } - body = fs.createReadStream(body.path, settings); - } else { // TODO support other stream types - return done(new Error('Non-file stream objects are ' + - 'not supported with SigV4')); - } - } - } - - util.crypto.sha256(body, 'hex', function(err, sha) { - if (err) done(err); - else done(null, sha); - }); - }, - - /** - * @api private - */ - isClockSkewed: function isClockSkewed(serverTime) { - if (serverTime) { - util.property(AWS.config, 'isClockSkewed', - Math.abs(new Date().getTime() - serverTime) >= 300000, false); - return AWS.config.isClockSkewed; - } - }, - - applyClockOffset: function applyClockOffset(serverTime) { - if (serverTime) - AWS.config.systemClockOffset = serverTime - new Date().getTime(); - }, - - /** - * @api private - */ - extractRequestId: function extractRequestId(resp) { - var requestId = resp.httpResponse.headers['x-amz-request-id'] || - resp.httpResponse.headers['x-amzn-requestid']; - - if (!requestId && resp.data && resp.data.ResponseMetadata) { - requestId = resp.data.ResponseMetadata.RequestId; - } - - if (requestId) { - resp.requestId = requestId; - } - - if (resp.error) { - resp.error.requestId = requestId; - } - }, - - /** - * @api private - */ - addPromises: function addPromises(constructors, PromiseDependency) { - if (PromiseDependency === undefined && AWS && AWS.config) { - PromiseDependency = AWS.config.getPromisesDependency(); - } - if (PromiseDependency === undefined && typeof Promise !== 'undefined') { - PromiseDependency = Promise; - } - if (typeof PromiseDependency !== 'function') var deletePromises = true; - if (!Array.isArray(constructors)) constructors = [constructors]; - - for (var ind = 0; ind < constructors.length; ind++) { - var constructor = constructors[ind]; - if (deletePromises) { - if (constructor.deletePromisesFromClass) { - constructor.deletePromisesFromClass(); - } - } else if (constructor.addPromisesToClass) { - constructor.addPromisesToClass(PromiseDependency); - } - } - }, - - /** - * @api private - */ - promisifyMethod: function promisifyMethod(methodName, PromiseDependency) { - return function promise() { - var self = this; - return new PromiseDependency(function(resolve, reject) { - self[methodName](function(err, data) { - if (err) { - reject(err); - } else { - resolve(data); - } - }); - }); - }; - }, - - /** - * @api private - */ - isDualstackAvailable: function isDualstackAvailable(service) { - if (!service) return false; - var metadata = __webpack_require__(7); - if (typeof service !== 'string') service = service.serviceIdentifier; - if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false; - return !!metadata[service].dualstackAvailable; - }, - - /** - * @api private - */ - calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions) { - if (!retryDelayOptions) retryDelayOptions = {}; - var customBackoff = retryDelayOptions.customBackoff || null; - if (typeof customBackoff === 'function') { - return customBackoff(retryCount); - } - var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100; - var delay = Math.random() * (Math.pow(2, retryCount) * base); - return delay; - }, - - /** - * @api private - */ - handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) { - if (!options) options = {}; - var http = AWS.HttpClient.getInstance(); - var httpOptions = options.httpOptions || {}; - var retryCount = 0; - - var errCallback = function(err) { - var maxRetries = options.maxRetries || 0; - if (err && err.code === 'TimeoutError') err.retryable = true; - if (err && err.retryable && retryCount < maxRetries) { - retryCount++; - var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions); - setTimeout(sendRequest, delay + (err.retryAfter || 0)); - } else { - cb(err); - } - }; - - var sendRequest = function() { - var data = ''; - http.handleRequest(httpRequest, httpOptions, function(httpResponse) { - httpResponse.on('data', function(chunk) { data += chunk.toString(); }); - httpResponse.on('end', function() { - var statusCode = httpResponse.statusCode; - if (statusCode < 300) { - cb(null, data); - } else { - var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0; - var err = util.error(new Error(), - { retryable: statusCode >= 500 || statusCode === 429 } - ); - if (retryAfter && err.retryable) err.retryAfter = retryAfter; - errCallback(err); - } - }); - }, errCallback); - }; - - AWS.util.defer(sendRequest); - }, - - /** - * @api private - */ - uuid: { - v4: function uuidV4() { - return __webpack_require__(8).v4(); - } - }, - - /** - * @api private - */ - convertPayloadToString: function convertPayloadToString(resp) { - var req = resp.request; - var operation = req.operation; - var rules = req.service.api.operations[operation].output || {}; - if (rules.payload && resp.data[rules.payload]) { - resp.data[rules.payload] = resp.data[rules.payload].toString(); - } - }, - - /** - * @api private - */ - defer: function defer(callback) { - if (typeof process === 'object' && typeof process.nextTick === 'function') { - process.nextTick(callback); - } else if (typeof setImmediate === 'function') { - setImmediate(callback); - } else { - setTimeout(callback, 0); - } - }, - - /** - * @api private - */ - defaultProfile: 'default', - - /** - * @api private - */ - configOptInEnv: 'AWS_SDK_LOAD_CONFIG', - - /** - * @api private - */ - sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE', - - /** - * @api private - */ - sharedConfigFileEnv: 'AWS_CONFIG_FILE' - }; - - module.exports = util; + /* WEBPACK VAR INJECTION */(function(process, setImmediate) {/* eslint guard-for-in:0 */ + var AWS; + + /** + * A set of utility methods for use with the AWS SDK. + * + * @!attribute abort + * Return this value from an iterator function {each} or {arrayEach} + * to break out of the iteration. + * @example Breaking out of an iterator function + * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) { + * if (key == 'b') return AWS.util.abort; + * }); + * @see each + * @see arrayEach + * @api private + */ + var util = { + environment: 'nodejs', + engine: function engine() { + if (util.isBrowser() && typeof navigator !== 'undefined') { + return navigator.userAgent; + } else { + var engine = process.platform + '/' + process.version; + if (process.env.AWS_EXECUTION_ENV) { + engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV; + } + return engine; + } + }, + + userAgent: function userAgent() { + var name = util.environment; + var agent = 'aws-sdk-' + name + '/' + __webpack_require__(1).VERSION; + if (name === 'nodejs') agent += ' ' + util.engine(); + return agent; + }, + + isBrowser: function isBrowser() { return process && process.browser; }, + isNode: function isNode() { return !util.isBrowser(); }, + uriEscape: function uriEscape(string) { + var output = encodeURIComponent(string); + output = output.replace(/[^A-Za-z0-9_.~\-%]+/g, escape); + + // AWS percent-encodes some extra non-standard characters in a URI + output = output.replace(/[*]/g, function(ch) { + return '%' + ch.charCodeAt(0).toString(16).toUpperCase(); + }); + + return output; + }, + + uriEscapePath: function uriEscapePath(string) { + var parts = []; + util.arrayEach(string.split('/'), function (part) { + parts.push(util.uriEscape(part)); + }); + return parts.join('/'); + }, + + urlParse: function urlParse(url) { + return util.url.parse(url); + }, + + urlFormat: function urlFormat(url) { + return util.url.format(url); + }, + + queryStringParse: function queryStringParse(qs) { + return util.querystring.parse(qs); + }, + + queryParamsToString: function queryParamsToString(params) { + var items = []; + var escape = util.uriEscape; + var sortedKeys = Object.keys(params).sort(); + + util.arrayEach(sortedKeys, function(name) { + var value = params[name]; + var ename = escape(name); + var result = ename + '='; + if (Array.isArray(value)) { + var vals = []; + util.arrayEach(value, function(item) { vals.push(escape(item)); }); + result = ename + '=' + vals.sort().join('&' + ename + '='); + } else if (value !== undefined && value !== null) { + result = ename + '=' + escape(value); + } + items.push(result); + }); + + return items.join('&'); + }, + + readFileSync: function readFileSync(path) { + if (util.isBrowser()) return null; + return __webpack_require__(6).readFileSync(path, 'utf-8'); + }, + + base64: { + encode: function encode64(string) { + if (typeof string === 'number') { + throw util.error(new Error('Cannot base64 encode number ' + string)); + } + if (string === null || typeof string === 'undefined') { + return string; + } + var buf = (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string) : new util.Buffer(string); + return buf.toString('base64'); + }, + + decode: function decode64(string) { + if (typeof string === 'number') { + throw util.error(new Error('Cannot base64 decode number ' + string)); + } + if (string === null || typeof string === 'undefined') { + return string; + } + return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ? util.Buffer.from(string, 'base64') : new util.Buffer(string, 'base64'); + } + + }, + + buffer: { + toStream: function toStream(buffer) { + if (!util.Buffer.isBuffer(buffer)) buffer = new util.Buffer(buffer); + + var readable = new (util.stream.Readable)(); + var pos = 0; + readable._read = function(size) { + if (pos >= buffer.length) return readable.push(null); + + var end = pos + size; + if (end > buffer.length) end = buffer.length; + readable.push(buffer.slice(pos, end)); + pos = end; + }; + + return readable; + }, + + /** + * Concatenates a list of Buffer objects. + */ + concat: function(buffers) { + var length = 0, + offset = 0, + buffer = null, i; + + for (i = 0; i < buffers.length; i++) { + length += buffers[i].length; + } + + buffer = new util.Buffer(length); + + for (i = 0; i < buffers.length; i++) { + buffers[i].copy(buffer, offset); + offset += buffers[i].length; + } + + return buffer; + } + }, + + string: { + byteLength: function byteLength(string) { + if (string === null || string === undefined) return 0; + if (typeof string === 'string') string = new util.Buffer(string); + + if (typeof string.byteLength === 'number') { + return string.byteLength; + } else if (typeof string.length === 'number') { + return string.length; + } else if (typeof string.size === 'number') { + return string.size; + } else if (typeof string.path === 'string') { + return __webpack_require__(6).lstatSync(string.path).size; + } else { + throw util.error(new Error('Cannot determine length of ' + string), + { object: string }); + } + }, + + upperFirst: function upperFirst(string) { + return string[0].toUpperCase() + string.substr(1); + }, + + lowerFirst: function lowerFirst(string) { + return string[0].toLowerCase() + string.substr(1); + } + }, + + ini: { + parse: function string(ini) { + var currentSection, map = {}; + util.arrayEach(ini.split(/\r?\n/), function(line) { + line = line.split(/(^|\s)[;#]/)[0]; // remove comments + var section = line.match(/^\s*\[([^\[\]]+)\]\s*$/); + if (section) { + currentSection = section[1]; + } else if (currentSection) { + var item = line.match(/^\s*(.+?)\s*=\s*(.+?)\s*$/); + if (item) { + map[currentSection] = map[currentSection] || {}; + map[currentSection][item[1]] = item[2]; + } + } + }); + + return map; + } + }, + + fn: { + noop: function() {}, + + /** + * Turn a synchronous function into as "async" function by making it call + * a callback. The underlying function is called with all but the last argument, + * which is treated as the callback. The callback is passed passed a first argument + * of null on success to mimick standard node callbacks. + */ + makeAsync: function makeAsync(fn, expectedArgs) { + if (expectedArgs && expectedArgs <= fn.length) { + return fn; + } + + return function() { + var args = Array.prototype.slice.call(arguments, 0); + var callback = args.pop(); + var result = fn.apply(null, args); + callback(result); + }; + } + }, + + /** + * Date and time utility functions. + */ + date: { + + /** + * @return [Date] the current JavaScript date object. Since all + * AWS services rely on this date object, you can override + * this function to provide a special time value to AWS service + * requests. + */ + getDate: function getDate() { + if (!AWS) AWS = __webpack_require__(1); + if (AWS.config.systemClockOffset) { // use offset when non-zero + return new Date(new Date().getTime() + AWS.config.systemClockOffset); + } else { + return new Date(); + } + }, + + /** + * @return [String] the date in ISO-8601 format + */ + iso8601: function iso8601(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toISOString().replace(/\.\d{3}Z$/, 'Z'); + }, + + /** + * @return [String] the date in RFC 822 format + */ + rfc822: function rfc822(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.toUTCString(); + }, + + /** + * @return [Integer] the UNIX timestamp value for the current time + */ + unixTimestamp: function unixTimestamp(date) { + if (date === undefined) { date = util.date.getDate(); } + return date.getTime() / 1000; + }, + + /** + * @param [String,number,Date] date + * @return [Date] + */ + from: function format(date) { + if (typeof date === 'number') { + return new Date(date * 1000); // unix timestamp + } else { + return new Date(date); + } + }, + + /** + * Given a Date or date-like value, this function formats the + * date into a string of the requested value. + * @param [String,number,Date] date + * @param [String] formatter Valid formats are: + # * 'iso8601' + # * 'rfc822' + # * 'unixTimestamp' + * @return [String] + */ + format: function format(date, formatter) { + if (!formatter) formatter = 'iso8601'; + return util.date[formatter](util.date.from(date)); + }, + + parseTimestamp: function parseTimestamp(value) { + if (typeof value === 'number') { // unix timestamp (number) + return new Date(value * 1000); + } else if (value.match(/^\d+$/)) { // unix timestamp + return new Date(value * 1000); + } else if (value.match(/^\d{4}/)) { // iso8601 + return new Date(value); + } else if (value.match(/^\w{3},/)) { // rfc822 + return new Date(value); + } else { + throw util.error( + new Error('unhandled timestamp format: ' + value), + {code: 'TimestampParserError'}); + } + } + + }, + + crypto: { + crc32Table: [ + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, + 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, + 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, + 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, + 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, + 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, + 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, + 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, + 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, + 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, + 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, + 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, + 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, + 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, + 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, + 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, + 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, + 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, + 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, + 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, + 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, + 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, + 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, + 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, + 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, + 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, + 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, + 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, + 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, + 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, + 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, + 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, + 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, + 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, + 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, + 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, + 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, + 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, + 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, + 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, + 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, + 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, + 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, + 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, + 0x2D02EF8D], + + crc32: function crc32(data) { + var tbl = util.crypto.crc32Table; + var crc = 0 ^ -1; + + if (typeof data === 'string') { + data = new util.Buffer(data); + } + + for (var i = 0; i < data.length; i++) { + var code = data.readUInt8(i); + crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF]; + } + return (crc ^ -1) >>> 0; + }, + + hmac: function hmac(key, string, digest, fn) { + if (!digest) digest = 'binary'; + if (digest === 'buffer') { digest = undefined; } + if (!fn) fn = 'sha256'; + if (typeof string === 'string') string = new util.Buffer(string); + return util.crypto.lib.createHmac(fn, key).update(string).digest(digest); + }, + + md5: function md5(data, digest, callback) { + return util.crypto.hash('md5', data, digest, callback); + }, + + sha256: function sha256(data, digest, callback) { + return util.crypto.hash('sha256', data, digest, callback); + }, + + hash: function(algorithm, data, digest, callback) { + var hash = util.crypto.createHash(algorithm); + if (!digest) { digest = 'binary'; } + if (digest === 'buffer') { digest = undefined; } + if (typeof data === 'string') data = new util.Buffer(data); + var sliceFn = util.arraySliceFn(data); + var isBuffer = util.Buffer.isBuffer(data); + //Identifying objects with an ArrayBuffer as buffers + if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true; + + if (callback && typeof data === 'object' && + typeof data.on === 'function' && !isBuffer) { + data.on('data', function(chunk) { hash.update(chunk); }); + data.on('error', function(err) { callback(err); }); + data.on('end', function() { callback(null, hash.digest(digest)); }); + } else if (callback && sliceFn && !isBuffer && + typeof FileReader !== 'undefined') { + // this might be a File/Blob + var index = 0, size = 1024 * 512; + var reader = new FileReader(); + reader.onerror = function() { + callback(new Error('Failed to read data.')); + }; + reader.onload = function() { + var buf = new util.Buffer(new Uint8Array(reader.result)); + hash.update(buf); + index += buf.length; + reader._continueReading(); + }; + reader._continueReading = function() { + if (index >= data.size) { + callback(null, hash.digest(digest)); + return; + } + + var back = index + size; + if (back > data.size) back = data.size; + reader.readAsArrayBuffer(sliceFn.call(data, index, back)); + }; + + reader._continueReading(); + } else { + if (util.isBrowser() && typeof data === 'object' && !isBuffer) { + data = new util.Buffer(new Uint8Array(data)); + } + var out = hash.update(data).digest(digest); + if (callback) callback(null, out); + return out; + } + }, + + toHex: function toHex(data) { + var out = []; + for (var i = 0; i < data.length; i++) { + out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2)); + } + return out.join(''); + }, + + createHash: function createHash(algorithm) { + return util.crypto.lib.createHash(algorithm); + } + + }, + + /** @!ignore */ + + /* Abort constant */ + abort: {}, + + each: function each(object, iterFunction) { + for (var key in object) { + if (Object.prototype.hasOwnProperty.call(object, key)) { + var ret = iterFunction.call(this, key, object[key]); + if (ret === util.abort) break; + } + } + }, + + arrayEach: function arrayEach(array, iterFunction) { + for (var idx in array) { + if (Object.prototype.hasOwnProperty.call(array, idx)) { + var ret = iterFunction.call(this, array[idx], parseInt(idx, 10)); + if (ret === util.abort) break; + } + } + }, + + update: function update(obj1, obj2) { + util.each(obj2, function iterator(key, item) { + obj1[key] = item; + }); + return obj1; + }, + + merge: function merge(obj1, obj2) { + return util.update(util.copy(obj1), obj2); + }, + + copy: function copy(object) { + if (object === null || object === undefined) return object; + var dupe = {}; + // jshint forin:false + for (var key in object) { + dupe[key] = object[key]; + } + return dupe; + }, + + isEmpty: function isEmpty(obj) { + for (var prop in obj) { + if (Object.prototype.hasOwnProperty.call(obj, prop)) { + return false; + } + } + return true; + }, + + arraySliceFn: function arraySliceFn(obj) { + var fn = obj.slice || obj.webkitSlice || obj.mozSlice; + return typeof fn === 'function' ? fn : null; + }, + + isType: function isType(obj, type) { + // handle cross-"frame" objects + if (typeof type === 'function') type = util.typeName(type); + return Object.prototype.toString.call(obj) === '[object ' + type + ']'; + }, + + typeName: function typeName(type) { + if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name; + var str = type.toString(); + var match = str.match(/^\s*function (.+)\(/); + return match ? match[1] : str; + }, + + error: function error(err, options) { + var originalError = null; + if (typeof err.message === 'string' && err.message !== '') { + if (typeof options === 'string' || (options && options.message)) { + originalError = util.copy(err); + originalError.message = err.message; + } + } + err.message = err.message || null; + + if (typeof options === 'string') { + err.message = options; + } else if (typeof options === 'object' && options !== null) { + util.update(err, options); + if (options.message) + err.message = options.message; + if (options.code || options.name) + err.code = options.code || options.name; + if (options.stack) + err.stack = options.stack; + } + + if (typeof Object.defineProperty === 'function') { + Object.defineProperty(err, 'name', {writable: true, enumerable: false}); + Object.defineProperty(err, 'message', {enumerable: true}); + } + + err.name = options && options.name || err.name || err.code || 'Error'; + err.time = new Date(); + + if (originalError) err.originalError = originalError; + + return err; + }, + + /** + * @api private + */ + inherit: function inherit(klass, features) { + var newObject = null; + if (features === undefined) { + features = klass; + klass = Object; + newObject = {}; + } else { + var ctor = function ConstructorWrapper() {}; + ctor.prototype = klass.prototype; + newObject = new ctor(); + } + + // constructor not supplied, create pass-through ctor + if (features.constructor === Object) { + features.constructor = function() { + if (klass !== Object) { + return klass.apply(this, arguments); + } + }; + } + + features.constructor.prototype = newObject; + util.update(features.constructor.prototype, features); + features.constructor.__super__ = klass; + return features.constructor; + }, + + /** + * @api private + */ + mixin: function mixin() { + var klass = arguments[0]; + for (var i = 1; i < arguments.length; i++) { + // jshint forin:false + for (var prop in arguments[i].prototype) { + var fn = arguments[i].prototype[prop]; + if (prop !== 'constructor') { + klass.prototype[prop] = fn; + } + } + } + return klass; + }, + + /** + * @api private + */ + hideProperties: function hideProperties(obj, props) { + if (typeof Object.defineProperty !== 'function') return; + + util.arrayEach(props, function (key) { + Object.defineProperty(obj, key, { + enumerable: false, writable: true, configurable: true }); + }); + }, + + /** + * @api private + */ + property: function property(obj, name, value, enumerable, isValue) { + var opts = { + configurable: true, + enumerable: enumerable !== undefined ? enumerable : true + }; + if (typeof value === 'function' && !isValue) { + opts.get = value; + } + else { + opts.value = value; opts.writable = true; + } + + Object.defineProperty(obj, name, opts); + }, + + /** + * @api private + */ + memoizedProperty: function memoizedProperty(obj, name, get, enumerable) { + var cachedValue = null; + + // build enumerable attribute for each value with lazy accessor. + util.property(obj, name, function() { + if (cachedValue === null) { + cachedValue = get(); + } + return cachedValue; + }, enumerable); + }, + + /** + * TODO Remove in major version revision + * This backfill populates response data without the + * top-level payload name. + * + * @api private + */ + hoistPayloadMember: function hoistPayloadMember(resp) { + var req = resp.request; + var operation = req.operation; + var output = req.service.api.operations[operation].output; + if (output.payload) { + var payloadMember = output.members[output.payload]; + var responsePayload = resp.data[output.payload]; + if (payloadMember.type === 'structure') { + util.each(responsePayload, function(key, value) { + util.property(resp.data, key, value, false); + }); + } + } + }, + + /** + * Compute SHA-256 checksums of streams + * + * @api private + */ + computeSha256: function computeSha256(body, done) { + if (util.isNode()) { + var Stream = util.stream.Stream; + var fs = __webpack_require__(6); + if (body instanceof Stream) { + if (typeof body.path === 'string') { // assume file object + var settings = {}; + if (typeof body.start === 'number') { + settings.start = body.start; + } + if (typeof body.end === 'number') { + settings.end = body.end; + } + body = fs.createReadStream(body.path, settings); + } else { // TODO support other stream types + return done(new Error('Non-file stream objects are ' + + 'not supported with SigV4')); + } + } + } + + util.crypto.sha256(body, 'hex', function(err, sha) { + if (err) done(err); + else done(null, sha); + }); + }, + + /** + * @api private + */ + isClockSkewed: function isClockSkewed(serverTime) { + if (serverTime) { + util.property(AWS.config, 'isClockSkewed', + Math.abs(new Date().getTime() - serverTime) >= 300000, false); + return AWS.config.isClockSkewed; + } + }, + + applyClockOffset: function applyClockOffset(serverTime) { + if (serverTime) + AWS.config.systemClockOffset = serverTime - new Date().getTime(); + }, + + /** + * @api private + */ + extractRequestId: function extractRequestId(resp) { + var requestId = resp.httpResponse.headers['x-amz-request-id'] || + resp.httpResponse.headers['x-amzn-requestid']; + + if (!requestId && resp.data && resp.data.ResponseMetadata) { + requestId = resp.data.ResponseMetadata.RequestId; + } + + if (requestId) { + resp.requestId = requestId; + } + + if (resp.error) { + resp.error.requestId = requestId; + } + }, + + /** + * @api private + */ + addPromises: function addPromises(constructors, PromiseDependency) { + if (PromiseDependency === undefined && AWS && AWS.config) { + PromiseDependency = AWS.config.getPromisesDependency(); + } + if (PromiseDependency === undefined && typeof Promise !== 'undefined') { + PromiseDependency = Promise; + } + if (typeof PromiseDependency !== 'function') var deletePromises = true; + if (!Array.isArray(constructors)) constructors = [constructors]; + + for (var ind = 0; ind < constructors.length; ind++) { + var constructor = constructors[ind]; + if (deletePromises) { + if (constructor.deletePromisesFromClass) { + constructor.deletePromisesFromClass(); + } + } else if (constructor.addPromisesToClass) { + constructor.addPromisesToClass(PromiseDependency); + } + } + }, + + /** + * @api private + */ + promisifyMethod: function promisifyMethod(methodName, PromiseDependency) { + return function promise() { + var self = this; + return new PromiseDependency(function(resolve, reject) { + self[methodName](function(err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + }); + }; + }, + + /** + * @api private + */ + isDualstackAvailable: function isDualstackAvailable(service) { + if (!service) return false; + var metadata = __webpack_require__(7); + if (typeof service !== 'string') service = service.serviceIdentifier; + if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false; + return !!metadata[service].dualstackAvailable; + }, + + /** + * @api private + */ + calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions) { + if (!retryDelayOptions) retryDelayOptions = {}; + var customBackoff = retryDelayOptions.customBackoff || null; + if (typeof customBackoff === 'function') { + return customBackoff(retryCount); + } + var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100; + var delay = Math.random() * (Math.pow(2, retryCount) * base); + return delay; + }, + + /** + * @api private + */ + handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) { + if (!options) options = {}; + var http = AWS.HttpClient.getInstance(); + var httpOptions = options.httpOptions || {}; + var retryCount = 0; + + var errCallback = function(err) { + var maxRetries = options.maxRetries || 0; + if (err && err.code === 'TimeoutError') err.retryable = true; + if (err && err.retryable && retryCount < maxRetries) { + retryCount++; + var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions); + setTimeout(sendRequest, delay + (err.retryAfter || 0)); + } else { + cb(err); + } + }; + + var sendRequest = function() { + var data = ''; + http.handleRequest(httpRequest, httpOptions, function(httpResponse) { + httpResponse.on('data', function(chunk) { data += chunk.toString(); }); + httpResponse.on('end', function() { + var statusCode = httpResponse.statusCode; + if (statusCode < 300) { + cb(null, data); + } else { + var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0; + var err = util.error(new Error(), + { retryable: statusCode >= 500 || statusCode === 429 } + ); + if (retryAfter && err.retryable) err.retryAfter = retryAfter; + errCallback(err); + } + }); + }, errCallback); + }; + + AWS.util.defer(sendRequest); + }, + + /** + * @api private + */ + uuid: { + v4: function uuidV4() { + return __webpack_require__(8).v4(); + } + }, + + /** + * @api private + */ + convertPayloadToString: function convertPayloadToString(resp) { + var req = resp.request; + var operation = req.operation; + var rules = req.service.api.operations[operation].output || {}; + if (rules.payload && resp.data[rules.payload]) { + resp.data[rules.payload] = resp.data[rules.payload].toString(); + } + }, + + /** + * @api private + */ + defer: function defer(callback) { + if (typeof process === 'object' && typeof process.nextTick === 'function') { + process.nextTick(callback); + } else if (typeof setImmediate === 'function') { + setImmediate(callback); + } else { + setTimeout(callback, 0); + } + }, + + /** + * @api private + */ + defaultProfile: 'default', + + /** + * @api private + */ + configOptInEnv: 'AWS_SDK_LOAD_CONFIG', + + /** + * @api private + */ + sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE', + + /** + * @api private + */ + sharedConfigFileEnv: 'AWS_CONFIG_FILE' + }; + + module.exports = util; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(4).setImmediate)) @@ -1854,7 +1854,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 7 */ /***/ (function(module, exports) { - module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory"},"cloudformation":{"name":"CloudFormation","cors":true},"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*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild"},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"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":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM"},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay"},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"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"},"costexplorer":{"prefix":"ce","name":"CostExplorer"},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData"},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend"},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia"},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia"},"kinesisvideo":{"name":"KinesisVideo"},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate"},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups"},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"}} + module.exports = {"acm":{"name":"ACM","cors":true},"apigateway":{"name":"APIGateway","cors":true},"applicationautoscaling":{"prefix":"application-autoscaling","name":"ApplicationAutoScaling","cors":true},"appstream":{"name":"AppStream"},"autoscaling":{"name":"AutoScaling","cors":true},"batch":{"name":"Batch"},"budgets":{"name":"Budgets"},"clouddirectory":{"name":"CloudDirectory"},"cloudformation":{"name":"CloudFormation","cors":true},"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*"],"cors":true},"cloudhsm":{"name":"CloudHSM","cors":true},"cloudsearch":{"name":"CloudSearch"},"cloudsearchdomain":{"name":"CloudSearchDomain"},"cloudtrail":{"name":"CloudTrail","cors":true},"cloudwatch":{"prefix":"monitoring","name":"CloudWatch","cors":true},"cloudwatchevents":{"prefix":"events","name":"CloudWatchEvents","versions":["2014-02-03*"],"cors":true},"cloudwatchlogs":{"prefix":"logs","name":"CloudWatchLogs","cors":true},"codebuild":{"name":"CodeBuild"},"codecommit":{"name":"CodeCommit","cors":true},"codedeploy":{"name":"CodeDeploy","cors":true},"codepipeline":{"name":"CodePipeline","cors":true},"cognitoidentity":{"prefix":"cognito-identity","name":"CognitoIdentity","cors":true},"cognitoidentityserviceprovider":{"prefix":"cognito-idp","name":"CognitoIdentityServiceProvider","cors":true},"cognitosync":{"prefix":"cognito-sync","name":"CognitoSync","cors":true},"configservice":{"prefix":"config","name":"ConfigService","cors":true},"cur":{"name":"CUR","cors":true},"datapipeline":{"name":"DataPipeline"},"devicefarm":{"name":"DeviceFarm","cors":true},"directconnect":{"name":"DirectConnect","cors":true},"directoryservice":{"prefix":"ds","name":"DirectoryService"},"discovery":{"name":"Discovery"},"dms":{"name":"DMS"},"dynamodb":{"name":"DynamoDB","cors":true},"dynamodbstreams":{"prefix":"streams.dynamodb","name":"DynamoDBStreams","cors":true},"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":true},"ecr":{"name":"ECR","cors":true},"ecs":{"name":"ECS","cors":true},"efs":{"prefix":"elasticfilesystem","name":"EFS","cors":true},"elasticache":{"name":"ElastiCache","versions":["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],"cors":true},"elasticbeanstalk":{"name":"ElasticBeanstalk","cors":true},"elb":{"prefix":"elasticloadbalancing","name":"ELB","cors":true},"elbv2":{"prefix":"elasticloadbalancingv2","name":"ELBv2","cors":true},"emr":{"prefix":"elasticmapreduce","name":"EMR","cors":true},"es":{"name":"ES"},"elastictranscoder":{"name":"ElasticTranscoder","cors":true},"firehose":{"name":"Firehose","cors":true},"gamelift":{"name":"GameLift","cors":true},"glacier":{"name":"Glacier"},"health":{"name":"Health"},"iam":{"name":"IAM"},"importexport":{"name":"ImportExport"},"inspector":{"name":"Inspector","versions":["2015-08-18*"],"cors":true},"iot":{"name":"Iot","cors":true},"iotdata":{"prefix":"iot-data","name":"IotData","cors":true},"kinesis":{"name":"Kinesis","cors":true},"kinesisanalytics":{"name":"KinesisAnalytics"},"kms":{"name":"KMS","cors":true},"lambda":{"name":"Lambda","cors":true},"lexruntime":{"prefix":"runtime.lex","name":"LexRuntime","cors":true},"lightsail":{"name":"Lightsail"},"machinelearning":{"name":"MachineLearning","cors":true},"marketplacecommerceanalytics":{"name":"MarketplaceCommerceAnalytics","cors":true},"marketplacemetering":{"prefix":"meteringmarketplace","name":"MarketplaceMetering"},"mturk":{"prefix":"mturk-requester","name":"MTurk","cors":true},"mobileanalytics":{"name":"MobileAnalytics","cors":true},"opsworks":{"name":"OpsWorks","cors":true},"opsworkscm":{"name":"OpsWorksCM"},"organizations":{"name":"Organizations"},"pinpoint":{"name":"Pinpoint"},"polly":{"name":"Polly","cors":true},"rds":{"name":"RDS","versions":["2014-09-01*"],"cors":true},"redshift":{"name":"Redshift","cors":true},"rekognition":{"name":"Rekognition","cors":true},"resourcegroupstaggingapi":{"name":"ResourceGroupsTaggingAPI"},"route53":{"name":"Route53","cors":true},"route53domains":{"name":"Route53Domains","cors":true},"s3":{"name":"S3","dualstackAvailable":true,"cors":true},"servicecatalog":{"name":"ServiceCatalog","cors":true},"ses":{"prefix":"email","name":"SES","cors":true},"shield":{"name":"Shield"},"simpledb":{"prefix":"sdb","name":"SimpleDB"},"sms":{"name":"SMS"},"snowball":{"name":"Snowball"},"sns":{"name":"SNS","cors":true},"sqs":{"name":"SQS","cors":true},"ssm":{"name":"SSM","cors":true},"storagegateway":{"name":"StorageGateway","cors":true},"stepfunctions":{"prefix":"states","name":"StepFunctions"},"sts":{"name":"STS","cors":true},"support":{"name":"Support"},"swf":{"name":"SWF"},"xray":{"name":"XRay"},"waf":{"name":"WAF","cors":true},"wafregional":{"prefix":"waf-regional","name":"WAFRegional"},"workdocs":{"name":"WorkDocs","cors":true},"workspaces":{"name":"WorkSpaces"},"codestar":{"name":"CodeStar"},"lexmodelbuildingservice":{"prefix":"lex-models","name":"LexModelBuildingService","cors":true},"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"},"costexplorer":{"prefix":"ce","name":"CostExplorer"},"mediaconvert":{"name":"MediaConvert"},"medialive":{"name":"MediaLive"},"mediapackage":{"name":"MediaPackage"},"mediastore":{"name":"MediaStore"},"mediastoredata":{"prefix":"mediastore-data","name":"MediaStoreData"},"appsync":{"name":"AppSync"},"guardduty":{"name":"GuardDuty"},"mq":{"name":"MQ"},"comprehend":{"name":"Comprehend"},"iotjobsdataplane":{"prefix":"iot-jobs-data","name":"IoTJobsDataPlane"},"kinesisvideoarchivedmedia":{"prefix":"kinesis-video-archived-media","name":"KinesisVideoArchivedMedia"},"kinesisvideomedia":{"prefix":"kinesis-video-media","name":"KinesisVideoMedia"},"kinesisvideo":{"name":"KinesisVideo"},"sagemakerruntime":{"prefix":"runtime.sagemaker","name":"SageMakerRuntime"},"sagemaker":{"name":"SageMaker"},"translate":{"name":"Translate"},"resourcegroups":{"prefix":"resource-groups","name":"ResourceGroups"},"alexaforbusiness":{"name":"AlexaForBusiness"},"cloud9":{"name":"Cloud9"},"serverlessapplicationrepository":{"prefix":"serverlessrepo","name":"ServerlessApplicationRepository"},"servicediscovery":{"name":"ServiceDiscovery"},"workmail":{"name":"WorkMail"},"autoscalingplans":{"prefix":"autoscaling-plans","name":"AutoScalingPlans"}} /***/ }), /* 8 */ @@ -2084,1218 +2084,1218 @@ return /******/ (function(modules) { // webpackBootstrap /* 13 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - var JsonBuilder = __webpack_require__(14); - var JsonParser = __webpack_require__(15); - - function buildRequest(req) { - var httpRequest = req.httpRequest; - var api = req.service.api; - var target = api.targetPrefix + '.' + api.operations[req.operation].name; - var version = api.jsonVersion || '1.0'; - var input = api.operations[req.operation].input; - var builder = new JsonBuilder(); - - if (version === 1) version = '1.0'; - httpRequest.body = builder.build(req.params || {}, input); - httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; - httpRequest.headers['X-Amz-Target'] = target; - } - - function extractError(resp) { - var error = {}; - var httpResponse = resp.httpResponse; - - error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; - if (typeof error.code === 'string') { - error.code = error.code.split(':')[0]; - } - - if (httpResponse.body.length > 0) { - try { - var e = JSON.parse(httpResponse.body.toString()); - if (e.__type || e.code) { - error.code = (e.__type || e.code).split('#').pop(); - } - if (error.code === 'RequestEntityTooLarge') { - error.message = 'Request body must be less than 1 MB'; - } else { - error.message = (e.message || e.Message || null); - } - } catch (e) { - error.statusCode = httpResponse.statusCode; - error.message = httpResponse.statusMessage; - } - } else { - error.statusCode = httpResponse.statusCode; - error.message = httpResponse.statusCode.toString(); - } - - resp.error = util.error(new Error(), error); - } - - function extractData(resp) { - var body = resp.httpResponse.body.toString() || '{}'; - if (resp.request.service.config.convertResponseTypes === false) { - resp.data = JSON.parse(body); - } else { - var operation = resp.request.service.api.operations[resp.request.operation]; - var shape = operation.output || {}; - var parser = new JsonParser(); - resp.data = parser.parse(body, shape); - } - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData - }; + var util = __webpack_require__(2); + var JsonBuilder = __webpack_require__(14); + var JsonParser = __webpack_require__(15); + + function buildRequest(req) { + var httpRequest = req.httpRequest; + var api = req.service.api; + var target = api.targetPrefix + '.' + api.operations[req.operation].name; + var version = api.jsonVersion || '1.0'; + var input = api.operations[req.operation].input; + var builder = new JsonBuilder(); + + if (version === 1) version = '1.0'; + httpRequest.body = builder.build(req.params || {}, input); + httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version; + httpRequest.headers['X-Amz-Target'] = target; + } + + function extractError(resp) { + var error = {}; + var httpResponse = resp.httpResponse; + + error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError'; + if (typeof error.code === 'string') { + error.code = error.code.split(':')[0]; + } + + if (httpResponse.body.length > 0) { + try { + var e = JSON.parse(httpResponse.body.toString()); + if (e.__type || e.code) { + error.code = (e.__type || e.code).split('#').pop(); + } + if (error.code === 'RequestEntityTooLarge') { + error.message = 'Request body must be less than 1 MB'; + } else { + error.message = (e.message || e.Message || null); + } + } catch (e) { + error.statusCode = httpResponse.statusCode; + error.message = httpResponse.statusMessage; + } + } else { + error.statusCode = httpResponse.statusCode; + error.message = httpResponse.statusCode.toString(); + } + + resp.error = util.error(new Error(), error); + } + + function extractData(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + if (resp.request.service.config.convertResponseTypes === false) { + resp.data = JSON.parse(body); + } else { + var operation = resp.request.service.api.operations[resp.request.operation]; + var shape = operation.output || {}; + var parser = new JsonParser(); + resp.data = parser.parse(body, shape); + } + } + + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - - function JsonBuilder() { } - - JsonBuilder.prototype.build = function(value, shape) { - return JSON.stringify(translate(value, shape)); - }; - - function translate(value, shape) { - if (!shape || value === undefined || value === null) return undefined; - - switch (shape.type) { - case 'structure': return translateStructure(value, shape); - case 'map': return translateMap(value, shape); - case 'list': return translateList(value, shape); - default: return translateScalar(value, shape); - } - } - - function translateStructure(structure, shape) { - var struct = {}; - util.each(structure, function(name, value) { - var memberShape = shape.members[name]; - if (memberShape) { - if (memberShape.location !== 'body') return; - var locationName = memberShape.isLocationName ? memberShape.name : name; - var result = translate(value, memberShape); - if (result !== undefined) struct[locationName] = result; - } - }); - return struct; - } - - function translateList(list, shape) { - var out = []; - util.arrayEach(list, function(value) { - var result = translate(value, shape.member); - if (result !== undefined) out.push(result); - }); - return out; - } - - function translateMap(map, shape) { - var out = {}; - util.each(map, function(key, value) { - var result = translate(value, shape.value); - if (result !== undefined) out[key] = result; - }); - return out; - } - - function translateScalar(value, shape) { - return shape.toWireFormat(value); - } - - module.exports = JsonBuilder; + var util = __webpack_require__(2); + + function JsonBuilder() { } + + JsonBuilder.prototype.build = function(value, shape) { + return JSON.stringify(translate(value, shape)); + }; + + function translate(value, shape) { + if (!shape || value === undefined || value === null) return undefined; + + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } + } + + function translateStructure(structure, shape) { + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + if (memberShape.location !== 'body') return; + var locationName = memberShape.isLocationName ? memberShape.name : name; + var result = translate(value, memberShape); + if (result !== undefined) struct[locationName] = result; + } + }); + return struct; + } + + function translateList(list, shape) { + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result !== undefined) out.push(result); + }); + return out; + } + + function translateMap(map, shape) { + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result !== undefined) out[key] = result; + }); + return out; + } + + function translateScalar(value, shape) { + return shape.toWireFormat(value); + } + + module.exports = JsonBuilder; /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - - function JsonParser() { } - - JsonParser.prototype.parse = function(value, shape) { - return translate(JSON.parse(value), shape); - }; - - function translate(value, shape) { - if (!shape || value === undefined) return undefined; - - switch (shape.type) { - case 'structure': return translateStructure(value, shape); - case 'map': return translateMap(value, shape); - case 'list': return translateList(value, shape); - default: return translateScalar(value, shape); - } - } - - function translateStructure(structure, shape) { - if (structure == null) return undefined; - - var struct = {}; - var shapeMembers = shape.members; - util.each(shapeMembers, function(name, memberShape) { - var locationName = memberShape.isLocationName ? memberShape.name : name; - if (Object.prototype.hasOwnProperty.call(structure, locationName)) { - var value = structure[locationName]; - var result = translate(value, memberShape); - if (result !== undefined) struct[name] = result; - } - }); - return struct; - } - - function translateList(list, shape) { - if (list == null) return undefined; - - var out = []; - util.arrayEach(list, function(value) { - var result = translate(value, shape.member); - if (result === undefined) out.push(null); - else out.push(result); - }); - return out; - } - - function translateMap(map, shape) { - if (map == null) return undefined; - - var out = {}; - util.each(map, function(key, value) { - var result = translate(value, shape.value); - if (result === undefined) out[key] = null; - else out[key] = result; - }); - return out; - } - - function translateScalar(value, shape) { - return shape.toType(value); - } - - module.exports = JsonParser; + var util = __webpack_require__(2); + + function JsonParser() { } + + JsonParser.prototype.parse = function(value, shape) { + return translate(JSON.parse(value), shape); + }; + + function translate(value, shape) { + if (!shape || value === undefined) return undefined; + + switch (shape.type) { + case 'structure': return translateStructure(value, shape); + case 'map': return translateMap(value, shape); + case 'list': return translateList(value, shape); + default: return translateScalar(value, shape); + } + } + + function translateStructure(structure, shape) { + if (structure == null) return undefined; + + var struct = {}; + var shapeMembers = shape.members; + util.each(shapeMembers, function(name, memberShape) { + var locationName = memberShape.isLocationName ? memberShape.name : name; + if (Object.prototype.hasOwnProperty.call(structure, locationName)) { + var value = structure[locationName]; + var result = translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; + } + + function translateList(list, shape) { + if (list == null) return undefined; + + var out = []; + util.arrayEach(list, function(value) { + var result = translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; + } + + function translateMap(map, shape) { + if (map == null) return undefined; + + var out = {}; + util.each(map, function(key, value) { + var result = translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; + } + + function translateScalar(value, shape) { + return shape.toType(value); + } + + module.exports = JsonParser; /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var util = __webpack_require__(2); - var QueryParamSerializer = __webpack_require__(17); - var Shape = __webpack_require__(18); - - function buildRequest(req) { - var operation = req.service.api.operations[req.operation]; - var httpRequest = req.httpRequest; - httpRequest.headers['Content-Type'] = - 'application/x-www-form-urlencoded; charset=utf-8'; - httpRequest.params = { - Version: req.service.api.apiVersion, - Action: operation.name - }; - - // convert the request parameters into a list of query params, - // e.g. Deeply.NestedParam.0.Name=value - var builder = new QueryParamSerializer(); - builder.serialize(req.params, operation.input, function(name, value) { - httpRequest.params[name] = value; - }); - httpRequest.body = util.queryParamsToString(httpRequest.params); - } - - function extractError(resp) { - var data, body = resp.httpResponse.body.toString(); - if (body.match(' -1 ? - value || '' : value; - if (this.isJsonValue) { - return JSON.parse(value); - } - - return value && typeof value.toString === 'function' ? - value.toString() : value; - }; - - this.toWireFormat = function(value) { - return this.isJsonValue ? JSON.stringify(value) : value; - }; - } - - function FloatShape() { - Shape.apply(this, arguments); - - this.toType = function(value) { - if (value === null || value === undefined) return null; - return parseFloat(value); - }; - this.toWireFormat = this.toType; - } - - function IntegerShape() { - Shape.apply(this, arguments); - - this.toType = function(value) { - if (value === null || value === undefined) return null; - return parseInt(value, 10); - }; - this.toWireFormat = this.toType; - } - - function BinaryShape() { - Shape.apply(this, arguments); - this.toType = util.base64.decode; - this.toWireFormat = util.base64.encode; - } - - function Base64Shape() { - BinaryShape.apply(this, arguments); - } - - function BooleanShape() { - Shape.apply(this, arguments); - - this.toType = function(value) { - if (typeof value === 'boolean') return value; - if (value === null || value === undefined) return null; - return value === 'true'; - }; - } - - /** - * @api private - */ - Shape.shapes = { - StructureShape: StructureShape, - ListShape: ListShape, - MapShape: MapShape, - StringShape: StringShape, - BooleanShape: BooleanShape, - Base64Shape: Base64Shape - }; - - module.exports = Shape; + var Collection = __webpack_require__(19); + + var util = __webpack_require__(2); + + function property(obj, name, value) { + if (value !== null && value !== undefined) { + util.property.apply(this, arguments); + } + } + + function memoizedProperty(obj, name) { + if (!obj.constructor.prototype[name]) { + util.memoizedProperty.apply(this, arguments); + } + } + + function Shape(shape, options, memberName) { + options = options || {}; + + property(this, 'shape', shape.shape); + property(this, 'api', options.api, false); + property(this, 'type', shape.type); + property(this, 'enum', shape.enum); + property(this, 'min', shape.min); + property(this, 'max', shape.max); + property(this, 'pattern', shape.pattern); + property(this, 'location', shape.location || this.location || 'body'); + property(this, 'name', this.name || shape.xmlName || shape.queryName || + shape.locationName || memberName); + property(this, 'isStreaming', shape.streaming || this.isStreaming || false); + property(this, 'isComposite', shape.isComposite || false); + property(this, 'isShape', true, false); + property(this, 'isQueryName', Boolean(shape.queryName), false); + property(this, 'isLocationName', Boolean(shape.locationName), false); + property(this, 'isIdempotent', shape.idempotencyToken === true); + property(this, 'isJsonValue', shape.jsonvalue === true); + property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true); + + if (options.documentation) { + property(this, 'documentation', shape.documentation); + property(this, 'documentationUrl', shape.documentationUrl); + } + + if (shape.xmlAttribute) { + property(this, 'isXmlAttribute', shape.xmlAttribute || false); + } + + // type conversion and parsing + property(this, 'defaultValue', null); + this.toWireFormat = function(value) { + if (value === null || value === undefined) return ''; + return value; + }; + this.toType = function(value) { return value; }; + } + + /** + * @api private + */ + Shape.normalizedTypes = { + character: 'string', + double: 'float', + long: 'integer', + short: 'integer', + biginteger: 'integer', + bigdecimal: 'float', + blob: 'binary' + }; + + /** + * @api private + */ + Shape.types = { + 'structure': StructureShape, + 'list': ListShape, + 'map': MapShape, + 'boolean': BooleanShape, + 'timestamp': TimestampShape, + 'float': FloatShape, + 'integer': IntegerShape, + 'string': StringShape, + 'base64': Base64Shape, + 'binary': BinaryShape + }; + + Shape.resolve = function resolve(shape, options) { + if (shape.shape) { + var refShape = options.api.shapes[shape.shape]; + if (!refShape) { + throw new Error('Cannot find shape reference: ' + shape.shape); + } + + return refShape; + } else { + return null; + } + }; + + Shape.create = function create(shape, options, memberName) { + if (shape.isShape) return shape; + + var refShape = Shape.resolve(shape, options); + if (refShape) { + var filteredKeys = Object.keys(shape); + if (!options.documentation) { + filteredKeys = filteredKeys.filter(function(name) { + return !name.match(/documentation/); + }); + } + + // create an inline shape with extra members + var InlineShape = function() { + refShape.constructor.call(this, shape, options, memberName); + }; + InlineShape.prototype = refShape; + return new InlineShape(); + } else { + // set type if not set + if (!shape.type) { + if (shape.members) shape.type = 'structure'; + else if (shape.member) shape.type = 'list'; + else if (shape.key) shape.type = 'map'; + else shape.type = 'string'; + } + + // normalize types + var origType = shape.type; + if (Shape.normalizedTypes[shape.type]) { + shape.type = Shape.normalizedTypes[shape.type]; + } + + if (Shape.types[shape.type]) { + return new Shape.types[shape.type](shape, options, memberName); + } else { + throw new Error('Unrecognized shape type: ' + origType); + } + } + }; + + function CompositeShape(shape) { + Shape.apply(this, arguments); + property(this, 'isComposite', true); + + if (shape.flattened) { + property(this, 'flattened', shape.flattened || false); + } + } + + function StructureShape(shape, options) { + var requiredMap = null, firstInit = !this.isShape; + + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'members', {}); + property(this, 'memberNames', []); + property(this, 'required', []); + property(this, 'isRequired', function() { return false; }); + } + + if (shape.members) { + property(this, 'members', new Collection(shape.members, options, function(name, member) { + return Shape.create(member, options, name); + })); + memoizedProperty(this, 'memberNames', function() { + return shape.xmlOrder || Object.keys(shape.members); + }); + } + + if (shape.required) { + property(this, 'required', shape.required); + property(this, 'isRequired', function(name) { + if (!requiredMap) { + requiredMap = {}; + for (var i = 0; i < shape.required.length; i++) { + requiredMap[shape.required[i]] = true; + } + } + + return requiredMap[name]; + }, false, true); + } + + property(this, 'resultWrapper', shape.resultWrapper || null); + + if (shape.payload) { + property(this, 'payload', shape.payload); + } + + if (typeof shape.xmlNamespace === 'string') { + property(this, 'xmlNamespaceUri', shape.xmlNamespace); + } else if (typeof shape.xmlNamespace === 'object') { + property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix); + property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri); + } + } + + function ListShape(shape, options) { + var self = this, firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return []; }); + } + + if (shape.member) { + memoizedProperty(this, 'member', function() { + return Shape.create(shape.member, options); + }); + } + + if (this.flattened) { + var oldName = this.name; + memoizedProperty(this, 'name', function() { + return self.member.name || oldName; + }); + } + } + + function MapShape(shape, options) { + var firstInit = !this.isShape; + CompositeShape.apply(this, arguments); + + if (firstInit) { + property(this, 'defaultValue', function() { return {}; }); + property(this, 'key', Shape.create({type: 'string'}, options)); + property(this, 'value', Shape.create({type: 'string'}, options)); + } + + if (shape.key) { + memoizedProperty(this, 'key', function() { + return Shape.create(shape.key, options); + }); + } + if (shape.value) { + memoizedProperty(this, 'value', function() { + return Shape.create(shape.value, options); + }); + } + } + + function TimestampShape(shape) { + var self = this; + Shape.apply(this, arguments); + + if (this.location === 'header') { + property(this, 'timestampFormat', 'rfc822'); + } else if (shape.timestampFormat) { + property(this, 'timestampFormat', shape.timestampFormat); + } else if (!this.timestampFormat && this.api) { + if (this.api.timestampFormat) { + property(this, 'timestampFormat', this.api.timestampFormat); + } else { + switch (this.api.protocol) { + case 'json': + case 'rest-json': + property(this, 'timestampFormat', 'unixTimestamp'); + break; + case 'rest-xml': + case 'query': + case 'ec2': + property(this, 'timestampFormat', 'iso8601'); + break; + } + } + } + + this.toType = function(value) { + if (value === null || value === undefined) return null; + if (typeof value.toUTCString === 'function') return value; + return typeof value === 'string' || typeof value === 'number' ? + util.date.parseTimestamp(value) : null; + }; + + this.toWireFormat = function(value) { + return util.date.format(value, self.timestampFormat); + }; + } + + function StringShape() { + Shape.apply(this, arguments); + + var nullLessProtocols = ['rest-xml', 'query', 'ec2']; + this.toType = function(value) { + value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ? + value || '' : value; + if (this.isJsonValue) { + return JSON.parse(value); + } + + return value && typeof value.toString === 'function' ? + value.toString() : value; + }; + + this.toWireFormat = function(value) { + return this.isJsonValue ? JSON.stringify(value) : value; + }; + } + + function FloatShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseFloat(value); + }; + this.toWireFormat = this.toType; + } + + function IntegerShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (value === null || value === undefined) return null; + return parseInt(value, 10); + }; + this.toWireFormat = this.toType; + } + + function BinaryShape() { + Shape.apply(this, arguments); + this.toType = util.base64.decode; + this.toWireFormat = util.base64.encode; + } + + function Base64Shape() { + BinaryShape.apply(this, arguments); + } + + function BooleanShape() { + Shape.apply(this, arguments); + + this.toType = function(value) { + if (typeof value === 'boolean') return value; + if (value === null || value === undefined) return null; + return value === 'true'; + }; + } + + /** + * @api private + */ + Shape.shapes = { + StructureShape: StructureShape, + ListShape: ListShape, + MapShape: MapShape, + StringShape: StringShape, + BooleanShape: BooleanShape, + Base64Shape: Base64Shape + }; + + module.exports = Shape; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { - var memoizedProperty = __webpack_require__(2).memoizedProperty; - - function memoize(name, value, fn, nameTr) { - memoizedProperty(this, nameTr(name), function() { - return fn(name, value); - }); - } - - function Collection(iterable, options, fn, nameTr) { - nameTr = nameTr || String; - var self = this; - - for (var id in iterable) { - if (Object.prototype.hasOwnProperty.call(iterable, id)) { - memoize.call(self, id, iterable[id], fn, nameTr); - } - } - } - - module.exports = Collection; + var memoizedProperty = __webpack_require__(2).memoizedProperty; + + function memoize(name, value, fn, nameTr) { + memoizedProperty(this, nameTr(name), function() { + return fn(name, value); + }); + } + + function Collection(iterable, options, fn, nameTr) { + nameTr = nameTr || String; + var self = this; + + for (var id in iterable) { + if (Object.prototype.hasOwnProperty.call(iterable, id)) { + memoize.call(self, id, iterable[id], fn, nameTr); + } + } + } + + module.exports = Collection; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - - function populateMethod(req) { - req.httpRequest.method = req.service.api.operations[req.operation].httpMethod; - } - - function generateURI(endpointPath, operationPath, input, params) { - var uri = [endpointPath, operationPath].join('/'); - uri = uri.replace(/\/+/g, '/'); - - var queryString = {}, queryStringSet = false; - util.each(input.members, function (name, member) { - var paramValue = params[name]; - if (paramValue === null || paramValue === undefined) return; - if (member.location === 'uri') { - var regex = new RegExp('\\{' + member.name + '(\\+)?\\}'); - uri = uri.replace(regex, function(_, plus) { - var fn = plus ? util.uriEscapePath : util.uriEscape; - return fn(String(paramValue)); - }); - } else if (member.location === 'querystring') { - queryStringSet = true; - - if (member.type === 'list') { - queryString[member.name] = paramValue.map(function(val) { - return util.uriEscape(String(val)); - }); - } else if (member.type === 'map') { - util.each(paramValue, function(key, value) { - if (Array.isArray(value)) { - queryString[key] = value.map(function(val) { - return util.uriEscape(String(val)); - }); - } else { - queryString[key] = util.uriEscape(String(value)); - } - }); - } else { - queryString[member.name] = util.uriEscape(String(paramValue)); - } - } - }); - - if (queryStringSet) { - uri += (uri.indexOf('?') >= 0 ? '&' : '?'); - var parts = []; - util.arrayEach(Object.keys(queryString).sort(), function(key) { - if (!Array.isArray(queryString[key])) { - queryString[key] = [queryString[key]]; - } - for (var i = 0; i < queryString[key].length; i++) { - parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); - } - }); - uri += parts.join('&'); - } - - return uri; - } - - function populateURI(req) { - var operation = req.service.api.operations[req.operation]; - var input = operation.input; - - var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); - req.httpRequest.path = uri; - } - - function populateHeaders(req) { - var operation = req.service.api.operations[req.operation]; - util.each(operation.input.members, function (name, member) { - var value = req.params[name]; - if (value === null || value === undefined) return; - - if (member.location === 'headers' && member.type === 'map') { - util.each(value, function(key, memberValue) { - req.httpRequest.headers[member.name + key] = memberValue; - }); - } else if (member.location === 'header') { - value = member.toWireFormat(value).toString(); - if (member.isJsonValue) { - value = util.base64.encode(value); - } - req.httpRequest.headers[member.name] = value; - } - }); - } - - function buildRequest(req) { - populateMethod(req); - populateURI(req); - populateHeaders(req); - } - - function extractError() { - } - - function extractData(resp) { - var req = resp.request; - var data = {}; - var r = resp.httpResponse; - var operation = req.service.api.operations[req.operation]; - var output = operation.output; - - // normalize headers names to lower-cased keys for matching - var headers = {}; - util.each(r.headers, function (k, v) { - headers[k.toLowerCase()] = v; - }); - - util.each(output.members, function(name, member) { - var header = (member.name || name).toLowerCase(); - if (member.location === 'headers' && member.type === 'map') { - data[name] = {}; - var location = member.isLocationName ? member.name : ''; - var pattern = new RegExp('^' + location + '(.+)', 'i'); - util.each(r.headers, function (k, v) { - var result = k.match(pattern); - if (result !== null) { - data[name][result[1]] = v; - } - }); - } else if (member.location === 'header') { - if (headers[header] !== undefined) { - var value = member.isJsonValue ? - util.base64.decode(headers[header]) : - headers[header]; - data[name] = member.toType(value); - } - } else if (member.location === 'statusCode') { - data[name] = parseInt(r.statusCode, 10); - } - }); - - resp.data = data; - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData, - generateURI: generateURI - }; + var util = __webpack_require__(2); + + function populateMethod(req) { + req.httpRequest.method = req.service.api.operations[req.operation].httpMethod; + } + + function generateURI(endpointPath, operationPath, input, params) { + var uri = [endpointPath, operationPath].join('/'); + uri = uri.replace(/\/+/g, '/'); + + var queryString = {}, queryStringSet = false; + util.each(input.members, function (name, member) { + var paramValue = params[name]; + if (paramValue === null || paramValue === undefined) return; + if (member.location === 'uri') { + var regex = new RegExp('\\{' + member.name + '(\\+)?\\}'); + uri = uri.replace(regex, function(_, plus) { + var fn = plus ? util.uriEscapePath : util.uriEscape; + return fn(String(paramValue)); + }); + } else if (member.location === 'querystring') { + queryStringSet = true; + + if (member.type === 'list') { + queryString[member.name] = paramValue.map(function(val) { + return util.uriEscape(String(val)); + }); + } else if (member.type === 'map') { + util.each(paramValue, function(key, value) { + if (Array.isArray(value)) { + queryString[key] = value.map(function(val) { + return util.uriEscape(String(val)); + }); + } else { + queryString[key] = util.uriEscape(String(value)); + } + }); + } else { + queryString[member.name] = util.uriEscape(String(paramValue)); + } + } + }); + + if (queryStringSet) { + uri += (uri.indexOf('?') >= 0 ? '&' : '?'); + var parts = []; + util.arrayEach(Object.keys(queryString).sort(), function(key) { + if (!Array.isArray(queryString[key])) { + queryString[key] = [queryString[key]]; + } + for (var i = 0; i < queryString[key].length; i++) { + parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]); + } + }); + uri += parts.join('&'); + } + + return uri; + } + + function populateURI(req) { + var operation = req.service.api.operations[req.operation]; + var input = operation.input; + + var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); + req.httpRequest.path = uri; + } + + function populateHeaders(req) { + var operation = req.service.api.operations[req.operation]; + util.each(operation.input.members, function (name, member) { + var value = req.params[name]; + if (value === null || value === undefined) return; + + if (member.location === 'headers' && member.type === 'map') { + util.each(value, function(key, memberValue) { + req.httpRequest.headers[member.name + key] = memberValue; + }); + } else if (member.location === 'header') { + value = member.toWireFormat(value).toString(); + if (member.isJsonValue) { + value = util.base64.encode(value); + } + req.httpRequest.headers[member.name] = value; + } + }); + } + + function buildRequest(req) { + populateMethod(req); + populateURI(req); + populateHeaders(req); + } + + function extractError() { + } + + function extractData(resp) { + var req = resp.request; + var data = {}; + var r = resp.httpResponse; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + // normalize headers names to lower-cased keys for matching + var headers = {}; + util.each(r.headers, function (k, v) { + headers[k.toLowerCase()] = v; + }); + + util.each(output.members, function(name, member) { + var header = (member.name || name).toLowerCase(); + if (member.location === 'headers' && member.type === 'map') { + data[name] = {}; + var location = member.isLocationName ? member.name : ''; + var pattern = new RegExp('^' + location + '(.+)', 'i'); + util.each(r.headers, function (k, v) { + var result = k.match(pattern); + if (result !== null) { + data[name][result[1]] = v; + } + }); + } else if (member.location === 'header') { + if (headers[header] !== undefined) { + var value = member.isJsonValue ? + util.base64.decode(headers[header]) : + headers[header]; + data[name] = member.toType(value); + } + } else if (member.location === 'statusCode') { + data[name] = parseInt(r.statusCode, 10); + } + }); + + resp.data = data; + } + + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData, + generateURI: generateURI + }; /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - var Rest = __webpack_require__(20); - var Json = __webpack_require__(13); - var JsonBuilder = __webpack_require__(14); - var JsonParser = __webpack_require__(15); - - function populateBody(req) { - var builder = new JsonBuilder(); - var input = req.service.api.operations[req.operation].input; - - if (input.payload) { - var params = {}; - var payloadShape = input.members[input.payload]; - params = req.params[input.payload]; - if (params === undefined) return; - - if (payloadShape.type === 'structure') { - req.httpRequest.body = builder.build(params, payloadShape); - applyContentTypeHeader(req); - } else { // non-JSON payload - req.httpRequest.body = params; - if (payloadShape.type === 'binary' || payloadShape.isStreaming) { - applyContentTypeHeader(req, true); - } - } - } else { - req.httpRequest.body = builder.build(req.params, input); - applyContentTypeHeader(req); - } - } - - function applyContentTypeHeader(req, isBinary) { - var operation = req.service.api.operations[req.operation]; - var input = operation.input; - - if (!req.httpRequest.headers['Content-Type']) { - var type = isBinary ? 'binary/octet-stream' : 'application/json'; - req.httpRequest.headers['Content-Type'] = type; - } - } - - function buildRequest(req) { - Rest.buildRequest(req); - - // never send body payload on GET/HEAD/DELETE - if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { - populateBody(req); - } - } - - function extractError(resp) { - Json.extractError(resp); - } - - function extractData(resp) { - Rest.extractData(resp); - - var req = resp.request; - var rules = req.service.api.operations[req.operation].output || {}; - if (rules.payload) { - var payloadMember = rules.members[rules.payload]; - var body = resp.httpResponse.body; - if (payloadMember.type === 'structure' || payloadMember.type === 'list') { - var parser = new JsonParser(); - resp.data[rules.payload] = parser.parse(body, payloadMember); - } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { - resp.data[rules.payload] = body; - } else { - resp.data[rules.payload] = payloadMember.toType(body); - } - } else { - var data = resp.data; - Json.extractData(resp); - resp.data = util.merge(data, resp.data); - } - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData - }; + var util = __webpack_require__(2); + var Rest = __webpack_require__(20); + var Json = __webpack_require__(13); + var JsonBuilder = __webpack_require__(14); + var JsonParser = __webpack_require__(15); + + function populateBody(req) { + var builder = new JsonBuilder(); + var input = req.service.api.operations[req.operation].input; + + if (input.payload) { + var params = {}; + var payloadShape = input.members[input.payload]; + params = req.params[input.payload]; + if (params === undefined) return; + + if (payloadShape.type === 'structure') { + req.httpRequest.body = builder.build(params, payloadShape); + applyContentTypeHeader(req); + } else { // non-JSON payload + req.httpRequest.body = params; + if (payloadShape.type === 'binary' || payloadShape.isStreaming) { + applyContentTypeHeader(req, true); + } + } + } else { + req.httpRequest.body = builder.build(req.params, input); + applyContentTypeHeader(req); + } + } + + function applyContentTypeHeader(req, isBinary) { + var operation = req.service.api.operations[req.operation]; + var input = operation.input; + + if (!req.httpRequest.headers['Content-Type']) { + var type = isBinary ? 'binary/octet-stream' : 'application/json'; + req.httpRequest.headers['Content-Type'] = type; + } + } + + function buildRequest(req) { + Rest.buildRequest(req); + + // never send body payload on GET/HEAD/DELETE + if (['GET', 'HEAD', 'DELETE'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } + } + + function extractError(resp) { + Json.extractError(resp); + } + + function extractData(resp) { + Rest.extractData(resp); + + var req = resp.request; + var rules = req.service.api.operations[req.operation].output || {}; + if (rules.payload) { + var payloadMember = rules.members[rules.payload]; + var body = resp.httpResponse.body; + if (payloadMember.type === 'structure' || payloadMember.type === 'list') { + var parser = new JsonParser(); + resp.data[rules.payload] = parser.parse(body, payloadMember); + } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { + resp.data[rules.payload] = body; + } else { + resp.data[rules.payload] = payloadMember.toType(body); + } + } else { + var data = resp.data; + Json.extractData(resp); + resp.data = util.merge(data, resp.data); + } + } + + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var util = __webpack_require__(2); - var Rest = __webpack_require__(20); - - function populateBody(req) { - var input = req.service.api.operations[req.operation].input; - var builder = new AWS.XML.Builder(); - var params = req.params; - - var payload = input.payload; - if (payload) { - var payloadMember = input.members[payload]; - params = params[payload]; - if (params === undefined) return; - - if (payloadMember.type === 'structure') { - var rootElement = payloadMember.name; - req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); - } else { // non-xml payload - req.httpRequest.body = params; - } - } else { - req.httpRequest.body = builder.toXML(params, input, input.name || - input.shape || util.string.upperFirst(req.operation) + 'Request'); - } - } - - function buildRequest(req) { - Rest.buildRequest(req); - - // never send body payload on GET/HEAD - if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { - populateBody(req); - } - } - - function extractError(resp) { - Rest.extractError(resp); - - var data; - try { - data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString()); - } catch (e) { - data = { - Code: resp.httpResponse.statusCode, - Message: resp.httpResponse.statusMessage - }; - } - - if (data.Errors) data = data.Errors; - if (data.Error) data = data.Error; - if (data.Code) { - resp.error = util.error(new Error(), { - code: data.Code, - message: data.Message - }); - } else { - resp.error = util.error(new Error(), { - code: resp.httpResponse.statusCode, - message: null - }); - } - } - - function extractData(resp) { - Rest.extractData(resp); - - var parser; - var req = resp.request; - var body = resp.httpResponse.body; - var operation = req.service.api.operations[req.operation]; - var output = operation.output; - - var payload = output.payload; - if (payload) { - var payloadMember = output.members[payload]; - if (payloadMember.type === 'structure') { - parser = new AWS.XML.Parser(); - resp.data[payload] = parser.parse(body.toString(), payloadMember); - } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { - resp.data[payload] = body; - } else { - resp.data[payload] = payloadMember.toType(body); - } - } else if (body.length > 0) { - parser = new AWS.XML.Parser(); - var data = parser.parse(body.toString(), output); - util.update(resp.data, data); - } - } - - module.exports = { - buildRequest: buildRequest, - extractError: extractError, - extractData: extractData - }; + var AWS = __webpack_require__(1); + var util = __webpack_require__(2); + var Rest = __webpack_require__(20); + + function populateBody(req) { + var input = req.service.api.operations[req.operation].input; + var builder = new AWS.XML.Builder(); + var params = req.params; + + var payload = input.payload; + if (payload) { + var payloadMember = input.members[payload]; + params = params[payload]; + if (params === undefined) return; + + if (payloadMember.type === 'structure') { + var rootElement = payloadMember.name; + req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true); + } else { // non-xml payload + req.httpRequest.body = params; + } + } else { + req.httpRequest.body = builder.toXML(params, input, input.name || + input.shape || util.string.upperFirst(req.operation) + 'Request'); + } + } + + function buildRequest(req) { + Rest.buildRequest(req); + + // never send body payload on GET/HEAD + if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) { + populateBody(req); + } + } + + function extractError(resp) { + Rest.extractError(resp); + + var data; + try { + data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString()); + } catch (e) { + data = { + Code: resp.httpResponse.statusCode, + Message: resp.httpResponse.statusMessage + }; + } + + if (data.Errors) data = data.Errors; + if (data.Error) data = data.Error; + if (data.Code) { + resp.error = util.error(new Error(), { + code: data.Code, + message: data.Message + }); + } else { + resp.error = util.error(new Error(), { + code: resp.httpResponse.statusCode, + message: null + }); + } + } + + function extractData(resp) { + Rest.extractData(resp); + + var parser; + var req = resp.request; + var body = resp.httpResponse.body; + var operation = req.service.api.operations[req.operation]; + var output = operation.output; + + var payload = output.payload; + if (payload) { + var payloadMember = output.members[payload]; + if (payloadMember.type === 'structure') { + parser = new AWS.XML.Parser(); + resp.data[payload] = parser.parse(body.toString(), payloadMember); + } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) { + resp.data[payload] = body; + } else { + resp.data[payload] = payloadMember.toType(body); + } + } else if (body.length > 0) { + parser = new AWS.XML.Parser(); + var data = parser.parse(body.toString(), output); + util.update(resp.data, data); + } + } + + module.exports = { + buildRequest: buildRequest, + extractError: extractError, + extractData: extractData + }; /***/ }), /* 23 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - var builder = __webpack_require__(24); - - function XmlBuilder() { } - - XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { - var xml = builder.create(rootElement); - applyNamespaces(xml, shape); - serialize(xml, params, shape); - return xml.children.length > 0 || noEmpty ? xml.root().toString() : ''; - }; - - function serialize(xml, value, shape) { - switch (shape.type) { - case 'structure': return serializeStructure(xml, value, shape); - case 'map': return serializeMap(xml, value, shape); - case 'list': return serializeList(xml, value, shape); - default: return serializeScalar(xml, value, shape); - } - } - - function serializeStructure(xml, params, shape) { - util.arrayEach(shape.memberNames, function(memberName) { - var memberShape = shape.members[memberName]; - if (memberShape.location !== 'body') return; - - var value = params[memberName]; - var name = memberShape.name; - if (value !== undefined && value !== null) { - if (memberShape.isXmlAttribute) { - xml.att(name, value); - } else if (memberShape.flattened) { - serialize(xml, value, memberShape); - } else { - var element = xml.ele(name); - applyNamespaces(element, memberShape); - serialize(element, value, memberShape); - } - } - }); - } - - function serializeMap(xml, map, shape) { - var xmlKey = shape.key.name || 'key'; - var xmlValue = shape.value.name || 'value'; - - util.each(map, function(key, value) { - var entry = xml.ele(shape.flattened ? shape.name : 'entry'); - serialize(entry.ele(xmlKey), key, shape.key); - serialize(entry.ele(xmlValue), value, shape.value); - }); - } - - function serializeList(xml, list, shape) { - if (shape.flattened) { - util.arrayEach(list, function(value) { - var name = shape.member.name || shape.name; - var element = xml.ele(name); - serialize(element, value, shape.member); - }); - } else { - util.arrayEach(list, function(value) { - var name = shape.member.name || 'member'; - var element = xml.ele(name); - serialize(element, value, shape.member); - }); - } - } - - function serializeScalar(xml, value, shape) { - xml.txt(shape.toWireFormat(value)); - } - - function applyNamespaces(xml, shape) { - var uri, prefix = 'xmlns'; - if (shape.xmlNamespaceUri) { - uri = shape.xmlNamespaceUri; - if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; - } else if (xml.isRoot && shape.api.xmlNamespaceUri) { - uri = shape.api.xmlNamespaceUri; - } - - if (uri) xml.att(prefix, uri); - } - - module.exports = XmlBuilder; + var util = __webpack_require__(2); + var builder = __webpack_require__(24); + + function XmlBuilder() { } + + XmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) { + var xml = builder.create(rootElement); + applyNamespaces(xml, shape); + serialize(xml, params, shape); + return xml.children.length > 0 || noEmpty ? xml.root().toString() : ''; + }; + + function serialize(xml, value, shape) { + switch (shape.type) { + case 'structure': return serializeStructure(xml, value, shape); + case 'map': return serializeMap(xml, value, shape); + case 'list': return serializeList(xml, value, shape); + default: return serializeScalar(xml, value, shape); + } + } + + function serializeStructure(xml, params, shape) { + util.arrayEach(shape.memberNames, function(memberName) { + var memberShape = shape.members[memberName]; + if (memberShape.location !== 'body') return; + + var value = params[memberName]; + var name = memberShape.name; + if (value !== undefined && value !== null) { + if (memberShape.isXmlAttribute) { + xml.att(name, value); + } else if (memberShape.flattened) { + serialize(xml, value, memberShape); + } else { + var element = xml.ele(name); + applyNamespaces(element, memberShape); + serialize(element, value, memberShape); + } + } + }); + } + + function serializeMap(xml, map, shape) { + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + + util.each(map, function(key, value) { + var entry = xml.ele(shape.flattened ? shape.name : 'entry'); + serialize(entry.ele(xmlKey), key, shape.key); + serialize(entry.ele(xmlValue), value, shape.value); + }); + } + + function serializeList(xml, list, shape) { + if (shape.flattened) { + util.arrayEach(list, function(value) { + var name = shape.member.name || shape.name; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } else { + util.arrayEach(list, function(value) { + var name = shape.member.name || 'member'; + var element = xml.ele(name); + serialize(element, value, shape.member); + }); + } + } + + function serializeScalar(xml, value, shape) { + xml.txt(shape.toWireFormat(value)); + } + + function applyNamespaces(xml, shape) { + var uri, prefix = 'xmlns'; + if (shape.xmlNamespaceUri) { + uri = shape.xmlNamespaceUri; + if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix; + } else if (xml.isRoot && shape.api.xmlNamespaceUri) { + uri = shape.api.xmlNamespaceUri; + } + + if (uri) xml.att(prefix, uri); + } + + module.exports = XmlBuilder; /***/ }), @@ -9613,4984 +9613,4986 @@ return /******/ (function(modules) { // webpackBootstrap /* 182 */ /***/ (function(module, exports, __webpack_require__) { - var Collection = __webpack_require__(19); - var Operation = __webpack_require__(183); - var Shape = __webpack_require__(18); - var Paginator = __webpack_require__(184); - var ResourceWaiter = __webpack_require__(185); - - var util = __webpack_require__(2); - var property = util.property; - var memoizedProperty = util.memoizedProperty; - - function Api(api, options) { - api = api || {}; - options = options || {}; - options.api = this; - - api.metadata = api.metadata || {}; - - property(this, 'isApi', true, false); - property(this, 'apiVersion', api.metadata.apiVersion); - property(this, 'endpointPrefix', api.metadata.endpointPrefix); - property(this, 'signingName', api.metadata.signingName); - property(this, 'globalEndpoint', api.metadata.globalEndpoint); - property(this, 'signatureVersion', api.metadata.signatureVersion); - property(this, 'jsonVersion', api.metadata.jsonVersion); - property(this, 'targetPrefix', api.metadata.targetPrefix); - property(this, 'protocol', api.metadata.protocol); - property(this, 'timestampFormat', api.metadata.timestampFormat); - property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); - property(this, 'abbreviation', api.metadata.serviceAbbreviation); - property(this, 'fullName', api.metadata.serviceFullName); - - memoizedProperty(this, 'className', function() { - var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; - if (!name) return null; - - name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); - if (name === 'ElasticLoadBalancing') name = 'ELB'; - return name; - }); - - property(this, 'operations', new Collection(api.operations, options, function(name, operation) { - return new Operation(name, operation, options); - }, util.string.lowerFirst)); - - property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { - return Shape.create(shape, options); - })); - - property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { - return new Paginator(name, paginator, options); - })); - - property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { - return new ResourceWaiter(name, waiter, options); - }, util.string.lowerFirst)); - - if (options.documentation) { - property(this, 'documentation', api.documentation); - property(this, 'documentationUrl', api.documentationUrl); - } - } - - module.exports = Api; + var Collection = __webpack_require__(19); + var Operation = __webpack_require__(183); + var Shape = __webpack_require__(18); + var Paginator = __webpack_require__(184); + var ResourceWaiter = __webpack_require__(185); + var util = __webpack_require__(2); + var property = util.property; + var memoizedProperty = util.memoizedProperty; - /***/ }), - /* 183 */ - /***/ (function(module, exports, __webpack_require__) { + function Api(api, options) { + api = api || {}; + options = options || {}; + options.api = this; + + api.metadata = api.metadata || {}; + + property(this, 'isApi', true, false); + property(this, 'apiVersion', api.metadata.apiVersion); + property(this, 'endpointPrefix', api.metadata.endpointPrefix); + property(this, 'signingName', api.metadata.signingName); + property(this, 'globalEndpoint', api.metadata.globalEndpoint); + property(this, 'signatureVersion', api.metadata.signatureVersion); + property(this, 'jsonVersion', api.metadata.jsonVersion); + property(this, 'targetPrefix', api.metadata.targetPrefix); + property(this, 'protocol', api.metadata.protocol); + property(this, 'timestampFormat', api.metadata.timestampFormat); + property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace); + property(this, 'abbreviation', api.metadata.serviceAbbreviation); + property(this, 'fullName', api.metadata.serviceFullName); + + memoizedProperty(this, 'className', function() { + var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName; + if (!name) return null; + + name = name.replace(/^Amazon|AWS\s*|\(.*|\s+|\W+/g, ''); + if (name === 'ElasticLoadBalancing') name = 'ELB'; + return name; + }); - var Shape = __webpack_require__(18); - - var util = __webpack_require__(2); - var property = util.property; - var memoizedProperty = util.memoizedProperty; - - function Operation(name, operation, options) { - var self = this; - options = options || {}; - - property(this, 'name', operation.name || name); - property(this, 'api', options.api, false); - - operation.http = operation.http || {}; - property(this, 'httpMethod', operation.http.method || 'POST'); - property(this, 'httpPath', operation.http.requestUri || '/'); - property(this, 'authtype', operation.authtype || ''); - - memoizedProperty(this, 'input', function() { - if (!operation.input) { - return new Shape.create({type: 'structure'}, options); - } - return Shape.create(operation.input, options); - }); - - memoizedProperty(this, 'output', function() { - if (!operation.output) { - return new Shape.create({type: 'structure'}, options); - } - return Shape.create(operation.output, options); - }); - - memoizedProperty(this, 'errors', function() { - var list = []; - if (!operation.errors) return null; - - for (var i = 0; i < operation.errors.length; i++) { - list.push(Shape.create(operation.errors[i], options)); - } - - return list; - }); - - memoizedProperty(this, 'paginator', function() { - return options.api.paginators[name]; - }); - - if (options.documentation) { - property(this, 'documentation', operation.documentation); - property(this, 'documentationUrl', operation.documentationUrl); - } - - // idempotentMembers only tracks top-level input shapes - memoizedProperty(this, 'idempotentMembers', function() { - var idempotentMembers = []; - var input = self.input; - var members = input.members; - if (!input.members) { - return idempotentMembers; - } - for (var name in members) { - if (!members.hasOwnProperty(name)) { - continue; - } - if (members[name].isIdempotent === true) { - idempotentMembers.push(name); - } - } - return idempotentMembers; - }); - - } - - module.exports = Operation; + property(this, 'operations', new Collection(api.operations, options, function(name, operation) { + return new Operation(name, operation, options); + }, util.string.lowerFirst)); + property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) { + return Shape.create(shape, options); + })); - /***/ }), - /* 184 */ - /***/ (function(module, exports, __webpack_require__) { + property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) { + return new Paginator(name, paginator, options); + })); - var property = __webpack_require__(2).property; - - function Paginator(name, paginator) { - property(this, 'inputToken', paginator.input_token); - property(this, 'limitKey', paginator.limit_key); - property(this, 'moreResults', paginator.more_results); - property(this, 'outputToken', paginator.output_token); - property(this, 'resultKey', paginator.result_key); - } - - module.exports = Paginator; + property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) { + return new ResourceWaiter(name, waiter, options); + }, util.string.lowerFirst)); + + if (options.documentation) { + property(this, 'documentation', api.documentation); + property(this, 'documentationUrl', api.documentationUrl); + } + } + + module.exports = Api; /***/ }), - /* 185 */ + /* 183 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(2); - var property = util.property; - - function ResourceWaiter(name, waiter, options) { - options = options || {}; - property(this, 'name', name); - property(this, 'api', options.api, false); - - if (waiter.operation) { - property(this, 'operation', util.string.lowerFirst(waiter.operation)); - } - - var self = this; - var keys = [ - 'type', - 'description', - 'delay', - 'maxAttempts', - 'acceptors' - ]; - - keys.forEach(function(key) { - var value = waiter[key]; - if (value) { - property(self, key, value); - } - }); - } - - module.exports = ResourceWaiter; + var Shape = __webpack_require__(18); + var util = __webpack_require__(2); + var property = util.property; + var memoizedProperty = util.memoizedProperty; - /***/ }), - /* 186 */ - /***/ (function(module, exports) { + function Operation(name, operation, options) { + var self = this; + options = options || {}; - function apiLoader(svc, version) { - if (!apiLoader.services.hasOwnProperty(svc)) { - throw new Error('InvalidService: Failed to load api for ' + svc); - } - return apiLoader.services[svc][version]; - } - - /** - * This member of AWS.apiLoader is private, but changing it will necessitate a - * change to ../scripts/services-table-generator.ts - */ - apiLoader.services = {}; - module.exports = apiLoader; + property(this, 'name', operation.name || name); + property(this, 'api', options.api, false); + operation.http = operation.http || {}; + property(this, 'httpMethod', operation.http.method || 'POST'); + property(this, 'httpPath', operation.http.requestUri || '/'); + property(this, 'authtype', operation.authtype || ''); - /***/ }), - /* 187 */ - /***/ (function(module, exports, __webpack_require__) { + memoizedProperty(this, 'input', function() { + if (!operation.input) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.input, options); + }); - var AWS = __webpack_require__(1); - var Api = __webpack_require__(182); - var regionConfig = __webpack_require__(188); - var inherit = AWS.util.inherit; - var clientCount = 0; - - /** - * The service class representing an AWS service. - * - * @abstract - * - * @!attribute apiVersions - * @return [Array] the list of API versions supported by this service. - * @readonly - */ - AWS.Service = inherit({ - /** - * Create a new service object with a configuration object - * - * @param config [map] a map of configuration options - */ - constructor: function Service(config) { - if (!this.loadServiceClass) { - throw AWS.util.error(new Error(), - 'Service must be constructed with `new\' operator'); - } - var ServiceClass = this.loadServiceClass(config || {}); - if (ServiceClass) { - var originalConfig = AWS.util.copy(config); - var svc = new ServiceClass(config); - Object.defineProperty(svc, '_originalConfig', { - get: function() { return originalConfig; }, - enumerable: false, - configurable: true - }); - svc._clientId = ++clientCount; - return svc; - } - this.initialize(config); - }, - - /** - * @api private - */ - initialize: function initialize(config) { - var svcConfig = AWS.config[this.serviceIdentifier]; - - this.config = new AWS.Config(AWS.config); - if (svcConfig) this.config.update(svcConfig, true); - if (config) this.config.update(config, true); - - this.validateService(); - if (!this.config.endpoint) regionConfig(this); - - this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); - this.setEndpoint(this.config.endpoint); - }, - - /** - * @api private - */ - validateService: function validateService() { - }, - - /** - * @api private - */ - loadServiceClass: function loadServiceClass(serviceConfig) { - var config = serviceConfig; - if (!AWS.util.isEmpty(this.api)) { - return null; - } else if (config.apiConfig) { - return AWS.Service.defineServiceApi(this.constructor, config.apiConfig); - } else if (!this.constructor.services) { - return null; - } else { - config = new AWS.Config(AWS.config); - config.update(serviceConfig, true); - var version = config.apiVersions[this.constructor.serviceIdentifier]; - version = version || config.apiVersion; - return this.getLatestServiceClass(version); - } - }, - - /** - * @api private - */ - getLatestServiceClass: function getLatestServiceClass(version) { - version = this.getLatestServiceVersion(version); - if (this.constructor.services[version] === null) { - AWS.Service.defineServiceApi(this.constructor, version); - } - - return this.constructor.services[version]; - }, - - /** - * @api private - */ - getLatestServiceVersion: function getLatestServiceVersion(version) { - if (!this.constructor.services || this.constructor.services.length === 0) { - throw new Error('No services defined on ' + - this.constructor.serviceIdentifier); - } - - if (!version) { - version = 'latest'; - } else if (AWS.util.isType(version, Date)) { - version = AWS.util.date.iso8601(version).split('T')[0]; - } - - if (Object.hasOwnProperty(this.constructor.services, version)) { - return version; - } - - var keys = Object.keys(this.constructor.services).sort(); - var selectedVersion = null; - for (var i = keys.length - 1; i >= 0; i--) { - // versions that end in "*" are not available on disk and can be - // skipped, so do not choose these as selectedVersions - if (keys[i][keys[i].length - 1] !== '*') { - selectedVersion = keys[i]; - } - if (keys[i].substr(0, 10) <= version) { - return selectedVersion; - } - } - - throw new Error('Could not find ' + this.constructor.serviceIdentifier + - ' API to satisfy version constraint `' + version + '\''); - }, - - /** - * @api private - */ - api: {}, - - /** - * @api private - */ - defaultRetryCount: 3, - - /** - * @api private - */ - customizeRequests: function customizeRequests(callback) { - if (!callback) { - this.customRequestHandler = null; - } else if (typeof callback === 'function') { - this.customRequestHandler = callback; - } else { - throw new Error('Invalid callback type \'' + typeof callback + '\' provided in customizeRequests'); - } - }, - - /** - * Calls an operation on a service with the given input parameters. - * - * @param operation [String] the name of the operation to call on the service. - * @param params [map] a map of input options for the operation - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - */ - makeRequest: function makeRequest(operation, params, callback) { - if (typeof params === 'function') { - callback = params; - params = null; - } - - params = params || {}; - if (this.config.params) { // copy only toplevel bound params - var rules = this.api.operations[operation]; - if (rules) { - params = AWS.util.copy(params); - AWS.util.each(this.config.params, function(key, value) { - if (rules.input.members[key]) { - if (params[key] === undefined || params[key] === null) { - params[key] = value; - } - } - }); - } - } - - var request = new AWS.Request(this, operation, params); - this.addAllRequestListeners(request); - - if (callback) request.send(callback); - return request; - }, - - /** - * Calls an operation on a service with the given input parameters, without - * any authentication data. This method is useful for "public" API operations. - * - * @param operation [String] the name of the operation to call on the service. - * @param params [map] a map of input options for the operation - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - */ - makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { - if (typeof params === 'function') { - callback = params; - params = {}; - } - - var request = this.makeRequest(operation, params).toUnauthenticated(); - return callback ? request.send(callback) : request; - }, - - /** - * Waits for a given state - * - * @param state [String] the state on the service to wait for - * @param params [map] a map of parameters to pass with each request - * @option params $waiter [map] a map of configuration options for the waiter - * @option params $waiter.delay [Number] The number of seconds to wait between - * requests - * @option params $waiter.maxAttempts [Number] The maximum number of requests - * to send while waiting - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - */ - waitFor: function waitFor(state, params, callback) { - var waiter = new AWS.ResourceWaiter(this, state); - return waiter.wait(params, callback); - }, - - /** - * @api private - */ - addAllRequestListeners: function addAllRequestListeners(request) { - var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(), - AWS.EventListeners.CorePost]; - for (var i = 0; i < list.length; i++) { - if (list[i]) request.addListeners(list[i]); - } - - // disable parameter validation - if (!this.config.paramValidation) { - request.removeListener('validate', - AWS.EventListeners.Core.VALIDATE_PARAMETERS); - } - - if (this.config.logger) { // add logging events - request.addListeners(AWS.EventListeners.Logger); - } - - this.setupRequestListeners(request); - // call prototype's customRequestHandler - if (typeof this.constructor.prototype.customRequestHandler === 'function') { - this.constructor.prototype.customRequestHandler(request); - } - // call instance's customRequestHandler - if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') { - this.customRequestHandler(request); - } - }, - - /** - * Override this method to setup any custom request listeners for each - * new request to the service. - * - * @abstract - */ - setupRequestListeners: function setupRequestListeners() { - }, - - /** - * Gets the signer class for a given request - * @api private - */ - getSignerClass: function getSignerClass(request) { - var version; - // get operation authtype if present - var operation = null; - var authtype = ''; - if (request) { - var operations = request.service.api.operations || {}; - operation = operations[request.operation] || null; - authtype = operation ? operation.authtype : ''; - } - if (this.config.signatureVersion) { - version = this.config.signatureVersion; - } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') { - version = 'v4'; - } else { - version = this.api.signatureVersion; - } - return AWS.Signers.RequestSigner.getVersion(version); - }, - - /** - * @api private - */ - serviceInterface: function serviceInterface() { - switch (this.api.protocol) { - case 'ec2': return AWS.EventListeners.Query; - case 'query': return AWS.EventListeners.Query; - case 'json': return AWS.EventListeners.Json; - case 'rest-json': return AWS.EventListeners.RestJson; - case 'rest-xml': return AWS.EventListeners.RestXml; - } - if (this.api.protocol) { - throw new Error('Invalid service `protocol\' ' + - this.api.protocol + ' in API config'); - } - }, - - /** - * @api private - */ - successfulResponse: function successfulResponse(resp) { - return resp.httpResponse.statusCode < 300; - }, - - /** - * How many times a failed request should be retried before giving up. - * the defaultRetryCount can be overriden by service classes. - * - * @api private - */ - numRetries: function numRetries() { - if (this.config.maxRetries !== undefined) { - return this.config.maxRetries; - } else { - return this.defaultRetryCount; - } - }, - - /** - * @api private - */ - retryDelays: function retryDelays(retryCount) { - return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions); - }, - - /** - * @api private - */ - retryableError: function retryableError(error) { - if (this.timeoutError(error)) return true; - if (this.networkingError(error)) return true; - if (this.expiredCredentialsError(error)) return true; - if (this.throttledError(error)) return true; - if (error.statusCode >= 500) return true; - return false; - }, - - /** - * @api private - */ - networkingError: function networkingError(error) { - return error.code === 'NetworkingError'; - }, - - /** - * @api private - */ - timeoutError: function timeoutError(error) { - return error.code === 'TimeoutError'; - }, - - /** - * @api private - */ - expiredCredentialsError: function expiredCredentialsError(error) { - // TODO : this only handles *one* of the expired credential codes - return (error.code === 'ExpiredTokenException'); - }, - - /** - * @api private - */ - clockSkewError: function clockSkewError(error) { - switch (error.code) { - case 'RequestTimeTooSkewed': - case 'RequestExpired': - case 'InvalidSignatureException': - case 'SignatureDoesNotMatch': - case 'AuthFailure': - case 'RequestInTheFuture': - return true; - default: return false; - } - }, - - /** - * @api private - */ - getSkewCorrectedDate: function getSkewCorrectedDate() { - return new Date(Date.now() + this.config.systemClockOffset); - }, - - /** - * @api private - */ - applyClockOffset: function applyClockOffset(newServerTime) { - if (newServerTime) { - this.config.systemClockOffset = newServerTime - Date.now(); - } - }, - - /** - * @api private - */ - isClockSkewed: function isClockSkewed(newServerTime) { - if (newServerTime) { - return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 30000; - } - }, - - /** - * @api private - */ - throttledError: function throttledError(error) { - // this logic varies between services - switch (error.code) { - case 'ProvisionedThroughputExceededException': - case 'Throttling': - case 'ThrottlingException': - case 'RequestLimitExceeded': - case 'RequestThrottled': - return true; - default: - return false; - } - }, - - /** - * @api private - */ - endpointFromTemplate: function endpointFromTemplate(endpoint) { - if (typeof endpoint !== 'string') return endpoint; - - var e = endpoint; - e = e.replace(/\{service\}/g, this.api.endpointPrefix); - e = e.replace(/\{region\}/g, this.config.region); - e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); - return e; - }, - - /** - * @api private - */ - setEndpoint: function setEndpoint(endpoint) { - this.endpoint = new AWS.Endpoint(endpoint, this.config); - }, - - /** - * @api private - */ - paginationConfig: function paginationConfig(operation, throwException) { - var paginator = this.api.operations[operation].paginator; - if (!paginator) { - if (throwException) { - var e = new Error(); - throw AWS.util.error(e, 'No pagination configuration for ' + operation); - } - return null; - } - - return paginator; - } - }); - - AWS.util.update(AWS.Service, { - - /** - * Adds one method for each operation described in the api configuration - * - * @api private - */ - defineMethods: function defineMethods(svc) { - AWS.util.each(svc.prototype.api.operations, function iterator(method) { - if (svc.prototype[method]) return; - var operation = svc.prototype.api.operations[method]; - if (operation.authtype === 'none') { - svc.prototype[method] = function (params, callback) { - return this.makeUnauthenticatedRequest(method, params, callback); - }; - } else { - svc.prototype[method] = function (params, callback) { - return this.makeRequest(method, params, callback); - }; - } - }); - }, - - /** - * Defines a new Service class using a service identifier and list of versions - * including an optional set of features (functions) to apply to the class - * prototype. - * - * @param serviceIdentifier [String] the identifier for the service - * @param versions [Array] a list of versions that work with this - * service - * @param features [Object] an object to attach to the prototype - * @return [Class] the service class defined by this function. - */ - defineService: function defineService(serviceIdentifier, versions, features) { - AWS.Service._serviceMap[serviceIdentifier] = true; - if (!Array.isArray(versions)) { - features = versions; - versions = []; - } - - var svc = inherit(AWS.Service, features || {}); - - if (typeof serviceIdentifier === 'string') { - AWS.Service.addVersions(svc, versions); - - var identifier = svc.serviceIdentifier || serviceIdentifier; - svc.serviceIdentifier = identifier; - } else { // defineService called with an API - svc.prototype.api = serviceIdentifier; - AWS.Service.defineMethods(svc); - } - - return svc; - }, - - /** - * @api private - */ - addVersions: function addVersions(svc, versions) { - if (!Array.isArray(versions)) versions = [versions]; - - svc.services = svc.services || {}; - for (var i = 0; i < versions.length; i++) { - if (svc.services[versions[i]] === undefined) { - svc.services[versions[i]] = null; - } - } - - svc.apiVersions = Object.keys(svc.services).sort(); - }, - - /** - * @api private - */ - defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { - var svc = inherit(superclass, { - serviceIdentifier: superclass.serviceIdentifier - }); - - function setApi(api) { - if (api.isApi) { - svc.prototype.api = api; - } else { - svc.prototype.api = new Api(api); - } - } - - if (typeof version === 'string') { - if (apiConfig) { - setApi(apiConfig); - } else { - try { - setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); - } catch (err) { - throw AWS.util.error(err, { - message: 'Could not find API configuration ' + - superclass.serviceIdentifier + '-' + version - }); - } - } - if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) { - superclass.apiVersions = superclass.apiVersions.concat(version).sort(); - } - superclass.services[version] = svc; - } else { - setApi(version); - } - - AWS.Service.defineMethods(svc); - return svc; - }, - - /** - * @api private - */ - hasService: function(identifier) { - return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier); - }, - - /** - * @api private - */ - _serviceMap: {} - }); - - module.exports = AWS.Service; + memoizedProperty(this, 'output', function() { + if (!operation.output) { + return new Shape.create({type: 'structure'}, options); + } + return Shape.create(operation.output, options); + }); + memoizedProperty(this, 'errors', function() { + var list = []; + if (!operation.errors) return null; - /***/ }), - /* 188 */ - /***/ (function(module, exports, __webpack_require__) { + for (var i = 0; i < operation.errors.length; i++) { + list.push(Shape.create(operation.errors[i], options)); + } - var util = __webpack_require__(2); - var regionConfig = __webpack_require__(189); - - function generateRegionPrefix(region) { - if (!region) return null; - - var parts = region.split('-'); - if (parts.length < 3) return null; - return parts.slice(0, parts.length - 2).join('-') + '-*'; - } - - function derivedKeys(service) { - var region = service.config.region; - var regionPrefix = generateRegionPrefix(region); - var endpointPrefix = service.api.endpointPrefix; - - return [ - [region, endpointPrefix], - [regionPrefix, endpointPrefix], - [region, '*'], - [regionPrefix, '*'], - ['*', endpointPrefix], - ['*', '*'] - ].map(function(item) { - return item[0] && item[1] ? item.join('/') : null; - }); - } - - function applyConfig(service, config) { - util.each(config, function(key, value) { - if (key === 'globalEndpoint') return; - if (service.config[key] === undefined || service.config[key] === null) { - service.config[key] = value; - } - }); - } - - function configureEndpoint(service) { - var keys = derivedKeys(service); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - if (!key) continue; - - if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) { - var config = regionConfig.rules[key]; - if (typeof config === 'string') { - config = regionConfig.patterns[config]; - } - - // set dualstack endpoint - if (service.config.useDualstack && util.isDualstackAvailable(service)) { - config = util.copy(config); - config.endpoint = '{service}.dualstack.{region}.amazonaws.com'; - } - - // set global endpoint - service.isGlobalEndpoint = !!config.globalEndpoint; - - // signature version - if (!config.signatureVersion) config.signatureVersion = 'v4'; - - // merge config - applyConfig(service, config); - return; - } - } - } - - module.exports = configureEndpoint; + return list; + }); + memoizedProperty(this, 'paginator', function() { + return options.api.paginators[name]; + }); - /***/ }), - /* 189 */ - /***/ (function(module, exports) { + if (options.documentation) { + property(this, 'documentation', operation.documentation); + property(this, 'documentationUrl', operation.documentationUrl); + } - module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":{"endpoint":"https://{service}.amazonaws.com","signatureVersion":"v3https","globalEndpoint":true},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"}}} + // idempotentMembers only tracks top-level input shapes + memoizedProperty(this, 'idempotentMembers', function() { + var idempotentMembers = []; + var input = self.input; + var members = input.members; + if (!input.members) { + return idempotentMembers; + } + for (var name in members) { + if (!members.hasOwnProperty(name)) { + continue; + } + if (members[name].isIdempotent === true) { + idempotentMembers.push(name); + } + } + return idempotentMembers; + }); - /***/ }), - /* 190 */ - /***/ (function(module, exports, __webpack_require__) { + } - var AWS = __webpack_require__(1); - __webpack_require__(191); - __webpack_require__(192); - var PromisesDependency; - - /** - * The main configuration class used by all service objects to set - * the region, credentials, and other options for requests. - * - * By default, credentials and region settings are left unconfigured. - * This should be configured by the application before using any - * AWS service APIs. - * - * In order to set global configuration options, properties should - * be assigned to the global {AWS.config} object. - * - * @see AWS.config - * - * @!group General Configuration Options - * - * @!attribute credentials - * @return [AWS.Credentials] the AWS credentials to sign requests with. - * - * @!attribute region - * @example Set the global region setting to us-west-2 - * AWS.config.update({region: 'us-west-2'}); - * @return [AWS.Credentials] The region to send service requests to. - * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html - * A list of available endpoints for each AWS service - * - * @!attribute maxRetries - * @return [Integer] the maximum amount of retries to perform for a - * service request. By default this value is calculated by the specific - * service object that the request is being made to. - * - * @!attribute maxRedirects - * @return [Integer] the maximum amount of redirects to follow for a - * service request. Defaults to 10. - * - * @!attribute paramValidation - * @return [Boolean|map] whether input parameters should be validated against - * the operation description before sending the request. Defaults to true. - * Pass a map to enable any of the following specific validation features: - * - * * **min** [Boolean] — Validates that a value meets the min - * constraint. This is enabled by default when paramValidation is set - * to `true`. - * * **max** [Boolean] — Validates that a value meets the max - * constraint. - * * **pattern** [Boolean] — Validates that a string value matches a - * regular expression. - * * **enum** [Boolean] — Validates that a string value matches one - * of the allowable enum values. - * - * @!attribute computeChecksums - * @return [Boolean] whether to compute checksums for payload bodies when - * the service accepts it (currently supported in S3 only). - * - * @!attribute convertResponseTypes - * @return [Boolean] whether types are converted when parsing response data. - * Currently only supported for JSON based services. Turning this off may - * improve performance on large response payloads. Defaults to `true`. - * - * @!attribute correctClockSkew - * @return [Boolean] whether to apply a clock skew correction and retry - * requests that fail because of an skewed client clock. Defaults to - * `false`. - * - * @!attribute sslEnabled - * @return [Boolean] whether SSL is enabled for requests - * - * @!attribute s3ForcePathStyle - * @return [Boolean] whether to force path style URLs for S3 objects - * - * @!attribute s3BucketEndpoint - * @note Setting this configuration option requires an `endpoint` to be - * provided explicitly to the service constructor. - * @return [Boolean] whether the provided endpoint addresses an individual - * bucket (false if it addresses the root API endpoint). - * - * @!attribute s3DisableBodySigning - * @return [Boolean] whether to disable S3 body signing when using signature version `v4`. - * Body signing can only be disabled when using https. Defaults to `true`. - * - * @!attribute useAccelerateEndpoint - * @note This configuration option is only compatible with S3 while accessing - * dns-compatible buckets. - * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service. - * Defaults to `false`. - * - * @!attribute retryDelayOptions - * @example Set the base retry delay for all services to 300 ms - * AWS.config.update({retryDelayOptions: {base: 300}}); - * // Delays with maxRetries = 3: 300, 600, 1200 - * @example Set a custom backoff function to provide delay values on retries - * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount) { - * // returns delay in ms - * }}}); - * @return [map] A set of options to configure the retry delay on retryable errors. - * Currently supported options are: - * - * * **base** [Integer] — The base number of milliseconds to use in the - * exponential backoff for operation retries. Defaults to 100 ms for all services except - * DynamoDB, where it defaults to 50ms. - * * **customBackoff ** [function] — A custom function that accepts a retry count - * and returns the amount of time to delay in milliseconds. The `base` option will be - * ignored if this option is supplied. - * - * @!attribute httpOptions - * @return [map] A set of options to pass to the low-level HTTP request. - * Currently supported options are: - * - * * **proxy** [String] — the URL to proxy requests through - * * **agent** [http.Agent, https.Agent] — the Agent object to perform - * HTTP requests with. Used for connection pooling. Defaults to the global - * agent (`http.globalAgent`) for non-SSL connections. Note that for - * SSL connections, a special Agent object is used in order to enable - * peer certificate verification. This feature is only supported in the - * Node.js environment. - * * **connectTimeout** [Integer] — Sets the socket to timeout after - * failing to establish a connection with the server after - * `connectTimeout` milliseconds. This timeout has no effect once a socket - * connection has been established. - * * **timeout** [Integer] — Sets the socket to timeout after timeout - * milliseconds of inactivity on the socket. Defaults to two minutes - * (120000) - * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous - * HTTP requests. Used in the browser environment only. Set to false to - * send requests synchronously. Defaults to true (async on). - * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" - * property of an XMLHttpRequest object. Used in the browser environment - * only. Defaults to false. - * @!attribute logger - * @return [#write,#log] an object that responds to .write() (like a stream) - * or .log() (like the console object) in order to log information about - * requests - * - * @!attribute systemClockOffset - * @return [Number] an offset value in milliseconds to apply to all signing - * times. Use this to compensate for clock skew when your system may be - * out of sync with the service time. Note that this configuration option - * can only be applied to the global `AWS.config` object and cannot be - * overridden in service-specific configuration. Defaults to 0 milliseconds. - * - * @!attribute signatureVersion - * @return [String] the signature version to sign requests with (overriding - * the API configuration). Possible values are: 'v2', 'v3', 'v4'. - * - * @!attribute signatureCache - * @return [Boolean] whether the signature to sign requests with (overriding - * the API configuration) is cached. Only applies to the signature version 'v4'. - * Defaults to `true`. - */ - AWS.Config = AWS.util.inherit({ - /** - * @!endgroup - */ - - /** - * Creates a new configuration object. This is the object that passes - * option data along to service requests, including credentials, security, - * region information, and some service specific settings. - * - * @example Creating a new configuration object with credentials and region - * var config = new AWS.Config({ - * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2' - * }); - * @option options accessKeyId [String] your AWS access key ID. - * @option options secretAccessKey [String] your AWS secret access key. - * @option options sessionToken [AWS.Credentials] the optional AWS - * session token to sign requests with. - * @option options credentials [AWS.Credentials] the AWS credentials - * to sign requests with. You can either specify this object, or - * specify the accessKeyId and secretAccessKey options directly. - * @option options credentialProvider [AWS.CredentialProviderChain] the - * provider chain used to resolve credentials if no static `credentials` - * property is set. - * @option options region [String] the region to send service requests to. - * See {region} for more information. - * @option options maxRetries [Integer] the maximum amount of retries to - * attempt with a request. See {maxRetries} for more information. - * @option options maxRedirects [Integer] the maximum amount of redirects to - * follow with a request. See {maxRedirects} for more information. - * @option options sslEnabled [Boolean] whether to enable SSL for - * requests. - * @option options paramValidation [Boolean|map] whether input parameters - * should be validated against the operation description before sending - * the request. Defaults to true. Pass a map to enable any of the - * following specific validation features: - * - * * **min** [Boolean] — Validates that a value meets the min - * constraint. This is enabled by default when paramValidation is set - * to `true`. - * * **max** [Boolean] — Validates that a value meets the max - * constraint. - * * **pattern** [Boolean] — Validates that a string value matches a - * regular expression. - * * **enum** [Boolean] — Validates that a string value matches one - * of the allowable enum values. - * @option options computeChecksums [Boolean] whether to compute checksums - * for payload bodies when the service accepts it (currently supported - * in S3 only) - * @option options convertResponseTypes [Boolean] whether types are converted - * when parsing response data. Currently only supported for JSON based - * services. Turning this off may improve performance on large response - * payloads. Defaults to `true`. - * @option options correctClockSkew [Boolean] whether to apply a clock skew - * correction and retry requests that fail because of an skewed client - * clock. Defaults to `false`. - * @option options s3ForcePathStyle [Boolean] whether to force path - * style URLs for S3 objects. - * @option options s3BucketEndpoint [Boolean] whether the provided endpoint - * addresses an individual bucket (false if it addresses the root API - * endpoint). Note that setting this configuration option requires an - * `endpoint` to be provided explicitly to the service constructor. - * @option options s3DisableBodySigning [Boolean] whether S3 body signing - * should be disabled when using signature version `v4`. Body signing - * can only be disabled when using https. Defaults to `true`. - * - * @option options retryDelayOptions [map] A set of options to configure - * the retry delay on retryable errors. Currently supported options are: - * - * * **base** [Integer] — The base number of milliseconds to use in the - * exponential backoff for operation retries. Defaults to 100 ms for all - * services except DynamoDB, where it defaults to 50ms. - * * **customBackoff ** [function] — A custom function that accepts a retry count - * and returns the amount of time to delay in milliseconds. The `base` option will be - * ignored if this option is supplied. - * @option options httpOptions [map] A set of options to pass to the low-level - * HTTP request. Currently supported options are: - * - * * **proxy** [String] — the URL to proxy requests through - * * **agent** [http.Agent, https.Agent] — the Agent object to perform - * HTTP requests with. Used for connection pooling. Defaults to the global - * agent (`http.globalAgent`) for non-SSL connections. Note that for - * SSL connections, a special Agent object is used in order to enable - * peer certificate verification. This feature is only available in the - * Node.js environment. - * * **connectTimeout** [Integer] — Sets the socket to timeout after - * failing to establish a connection with the server after - * `connectTimeout` milliseconds. This timeout has no effect once a socket - * connection has been established. - * * **timeout** [Integer] — Sets the socket to timeout after timeout - * milliseconds of inactivity on the socket. Defaults to two minutes - * (120000). - * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous - * HTTP requests. Used in the browser environment only. Set to false to - * send requests synchronously. Defaults to true (async on). - * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" - * property of an XMLHttpRequest object. Used in the browser environment - * only. Defaults to false. - * @option options apiVersion [String, Date] a String in YYYY-MM-DD format - * (or a date) that represents the latest possible API version that can be - * used in all services (unless overridden by `apiVersions`). Specify - * 'latest' to use the latest possible version. - * @option options apiVersions [map] a map of service - * identifiers (the lowercase service class name) with the API version to - * use when instantiating a service. Specify 'latest' for each individual - * that can use the latest available version. - * @option options logger [#write,#log] an object that responds to .write() - * (like a stream) or .log() (like the console object) in order to log - * information about requests - * @option options systemClockOffset [Number] an offset value in milliseconds - * to apply to all signing times. Use this to compensate for clock skew - * when your system may be out of sync with the service time. Note that - * this configuration option can only be applied to the global `AWS.config` - * object and cannot be overridden in service-specific configuration. - * Defaults to 0 milliseconds. - * @option options signatureVersion [String] the signature version to sign - * requests with (overriding the API configuration). Possible values are: - * 'v2', 'v3', 'v4'. - * @option options signatureCache [Boolean] whether the signature to sign - * requests with (overriding the API configuration) is cached. Only applies - * to the signature version 'v4'. Defaults to `true`. - * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32 - * checksum of HTTP response bodies returned by DynamoDB. Default: `true`. - */ - constructor: function Config(options) { - if (options === undefined) options = {}; - options = this.extractCredentials(options); - - AWS.util.each.call(this, this.keys, function (key, value) { - this.set(key, options[key], value); - }); - }, - - /** - * @!group Managing Credentials - */ - - /** - * Loads credentials from the configuration object. This is used internally - * by the SDK to ensure that refreshable {Credentials} objects are properly - * refreshed and loaded when sending a request. If you want to ensure that - * your credentials are loaded prior to a request, you can use this method - * directly to provide accurate credential data stored in the object. - * - * @note If you configure the SDK with static or environment credentials, - * the credential data should already be present in {credentials} attribute. - * This method is primarily necessary to load credentials from asynchronous - * sources, or sources that can refresh credentials periodically. - * @example Getting your access key - * AWS.config.getCredentials(function(err) { - * if (err) console.log(err.stack); // credentials not loaded - * else console.log("Access Key:", AWS.config.credentials.accessKeyId); - * }) - * @callback callback function(err) - * Called when the {credentials} have been properly set on the configuration - * object. - * - * @param err [Error] if this is set, credentials were not successfully - * loaded and this error provides information why. - * @see credentials - * @see Credentials - */ - getCredentials: function getCredentials(callback) { - var self = this; - - function finish(err) { - callback(err, err ? null : self.credentials); - } - - function credError(msg, err) { - return new AWS.util.error(err || new Error(), { - code: 'CredentialsError', - message: msg, - name: 'CredentialsError' - }); - } - - function getAsyncCredentials() { - self.credentials.get(function(err) { - if (err) { - var msg = 'Could not load credentials from ' + - self.credentials.constructor.name; - err = credError(msg, err); - } - finish(err); - }); - } - - function getStaticCredentials() { - var err = null; - if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) { - err = credError('Missing credentials'); - } - finish(err); - } - - if (self.credentials) { - if (typeof self.credentials.get === 'function') { - getAsyncCredentials(); - } else { // static credentials - getStaticCredentials(); - } - } else if (self.credentialProvider) { - self.credentialProvider.resolve(function(err, creds) { - if (err) { - err = credError('Could not load credentials from any providers', err); - } - self.credentials = creds; - finish(err); - }); - } else { - finish(credError('No credentials to load')); - } - }, - - /** - * @!group Loading and Setting Configuration Options - */ - - /** - * @overload update(options, allowUnknownKeys = false) - * Updates the current configuration object with new options. - * - * @example Update maxRetries property of a configuration object - * config.update({maxRetries: 10}); - * @param [Object] options a map of option keys and values. - * @param [Boolean] allowUnknownKeys whether unknown keys can be set on - * the configuration object. Defaults to `false`. - * @see constructor - */ - update: function update(options, allowUnknownKeys) { - allowUnknownKeys = allowUnknownKeys || false; - options = this.extractCredentials(options); - AWS.util.each.call(this, options, function (key, value) { - if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) || - AWS.Service.hasService(key)) { - this.set(key, value); - } - }); - }, - - /** - * Loads configuration data from a JSON file into this config object. - * @note Loading configuration will reset all existing configuration - * on the object. - * @!macro nobrowser - * @param path [String] the path relative to your process's current - * working directory to load configuration from. - * @return [AWS.Config] the same configuration object - */ - loadFromPath: function loadFromPath(path) { - this.clear(); - - var options = JSON.parse(AWS.util.readFileSync(path)); - var fileSystemCreds = new AWS.FileSystemCredentials(path); - var chain = new AWS.CredentialProviderChain(); - chain.providers.unshift(fileSystemCreds); - chain.resolve(function (err, creds) { - if (err) throw err; - else options.credentials = creds; - }); - - this.constructor(options); - - return this; - }, - - /** - * Clears configuration data on this object - * - * @api private - */ - clear: function clear() { - /*jshint forin:false */ - AWS.util.each.call(this, this.keys, function (key) { - delete this[key]; - }); - - // reset credential provider - this.set('credentials', undefined); - this.set('credentialProvider', undefined); - }, - - /** - * Sets a property on the configuration object, allowing for a - * default value - * @api private - */ - set: function set(property, value, defaultValue) { - if (value === undefined) { - if (defaultValue === undefined) { - defaultValue = this.keys[property]; - } - if (typeof defaultValue === 'function') { - this[property] = defaultValue.call(this); - } else { - this[property] = defaultValue; - } - } else if (property === 'httpOptions' && this[property]) { - // deep merge httpOptions - this[property] = AWS.util.merge(this[property], value); - } else { - this[property] = value; - } - }, - - /** - * All of the keys with their default values. - * - * @constant - * @api private - */ - keys: { - credentials: null, - credentialProvider: null, - region: null, - logger: null, - apiVersions: {}, - apiVersion: null, - endpoint: undefined, - httpOptions: { - timeout: 120000 - }, - maxRetries: undefined, - maxRedirects: 10, - paramValidation: true, - sslEnabled: true, - s3ForcePathStyle: false, - s3BucketEndpoint: false, - s3DisableBodySigning: true, - computeChecksums: true, - convertResponseTypes: true, - correctClockSkew: false, - customUserAgent: null, - dynamoDbCrc32: true, - systemClockOffset: 0, - signatureVersion: null, - signatureCache: true, - retryDelayOptions: {}, - useAccelerateEndpoint: false - }, - - /** - * Extracts accessKeyId, secretAccessKey and sessionToken - * from a configuration hash. - * - * @api private - */ - extractCredentials: function extractCredentials(options) { - if (options.accessKeyId && options.secretAccessKey) { - options = AWS.util.copy(options); - options.credentials = new AWS.Credentials(options); - } - return options; - }, - - /** - * Sets the promise dependency the SDK will use wherever Promises are returned. - * Passing `null` will force the SDK to use native Promises if they are available. - * If native Promises are not available, passing `null` will have no effect. - * @param [Constructor] dep A reference to a Promise constructor - */ - setPromisesDependency: function setPromisesDependency(dep) { - PromisesDependency = dep; - // if null was passed in, we should try to use native promises - if (dep === null && typeof Promise === 'function') { - PromisesDependency = Promise; - } - var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain]; - if (AWS.S3 && AWS.S3.ManagedUpload) constructors.push(AWS.S3.ManagedUpload); - AWS.util.addPromises(constructors, PromisesDependency); - }, - - /** - * Gets the promise dependency set by `AWS.config.setPromisesDependency`. - */ - getPromisesDependency: function getPromisesDependency() { - return PromisesDependency; - } - }); - - /** - * @return [AWS.Config] The global configuration object singleton instance - * @readonly - * @see AWS.Config - */ - AWS.config = new AWS.Config(); + module.exports = Operation; /***/ }), - /* 191 */ + /* 184 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - - /** - * Represents your AWS security credentials, specifically the - * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. - * Creating a `Credentials` object allows you to pass around your - * security information to configuration and service objects. - * - * Note that this class typically does not need to be constructed manually, - * as the {AWS.Config} and {AWS.Service} classes both accept simple - * options hashes with the three keys. These structures will be converted - * into Credentials objects automatically. - * - * ## Expiring and Refreshing Credentials - * - * Occasionally credentials can expire in the middle of a long-running - * application. In this case, the SDK will automatically attempt to - * refresh the credentials from the storage location if the Credentials - * class implements the {refresh} method. - * - * If you are implementing a credential storage location, you - * will want to create a subclass of the `Credentials` class and - * override the {refresh} method. This method allows credentials to be - * retrieved from the backing store, be it a file system, database, or - * some network storage. The method should reset the credential attributes - * on the object. - * - * @!attribute expired - * @return [Boolean] whether the credentials have been expired and - * require a refresh. Used in conjunction with {expireTime}. - * @!attribute expireTime - * @return [Date] a time when credentials should be considered expired. Used - * in conjunction with {expired}. - * @!attribute accessKeyId - * @return [String] the AWS access key ID - * @!attribute secretAccessKey - * @return [String] the AWS secret access key - * @!attribute sessionToken - * @return [String] an optional AWS session token - */ - AWS.Credentials = AWS.util.inherit({ - /** - * A credentials object can be created using positional arguments or an options - * hash. - * - * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) - * Creates a Credentials object with a given set of credential information - * as positional arguments. - * @param accessKeyId [String] the AWS access key ID - * @param secretAccessKey [String] the AWS secret access key - * @param sessionToken [String] the optional AWS session token - * @example Create a credentials object with AWS credentials - * var creds = new AWS.Credentials('akid', 'secret', 'session'); - * @overload AWS.Credentials(options) - * Creates a Credentials object with a given set of credential information - * as an options hash. - * @option options accessKeyId [String] the AWS access key ID - * @option options secretAccessKey [String] the AWS secret access key - * @option options sessionToken [String] the optional AWS session token - * @example Create a credentials object with AWS credentials - * var creds = new AWS.Credentials({ - * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' - * }); - */ - constructor: function Credentials() { - // hide secretAccessKey from being displayed with util.inspect - AWS.util.hideProperties(this, ['secretAccessKey']); - - this.expired = false; - this.expireTime = null; - if (arguments.length === 1 && typeof arguments[0] === 'object') { - var creds = arguments[0].credentials || arguments[0]; - this.accessKeyId = creds.accessKeyId; - this.secretAccessKey = creds.secretAccessKey; - this.sessionToken = creds.sessionToken; - } else { - this.accessKeyId = arguments[0]; - this.secretAccessKey = arguments[1]; - this.sessionToken = arguments[2]; - } - }, - - /** - * @return [Integer] the number of seconds before {expireTime} during which - * the credentials will be considered expired. - */ - expiryWindow: 15, - - /** - * @return [Boolean] whether the credentials object should call {refresh} - * @note Subclasses should override this method to provide custom refresh - * logic. - */ - needsRefresh: function needsRefresh() { - var currentTime = AWS.util.date.getDate().getTime(); - var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); - - if (this.expireTime && adjustedTime > this.expireTime) { - return true; - } else { - return this.expired || !this.accessKeyId || !this.secretAccessKey; - } - }, - - /** - * Gets the existing credentials, refreshing them if they are not yet loaded - * or have expired. Users should call this method before using {refresh}, - * as this will not attempt to reload credentials when they are already - * loaded into the object. - * - * @callback callback function(err) - * When this callback is called with no error, it means either credentials - * do not need to be refreshed or refreshed credentials information has - * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, - * and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - */ - get: function get(callback) { - var self = this; - if (this.needsRefresh()) { - this.refresh(function(err) { - if (!err) self.expired = false; // reset expired flag - if (callback) callback(err); - }); - } else if (callback) { - callback(); - } - }, - - /** - * @!method getPromise() - * Returns a 'thenable' promise. - * Gets the existing credentials, refreshing them if they are not yet loaded - * or have expired. Users should call this method before using {refresh}, - * as this will not attempt to reload credentials when they are already - * loaded into the object. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function() - * Called if the promise is fulfilled. When this callback is called, it - * means either credentials do not need to be refreshed or refreshed - * credentials information has been loaded into the object (as the - * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] if an error occurred, this value will be filled - * @return [Promise] A promise that represents the state of the `get` call. - * @example Calling the `getPromise` method. - * var promise = credProvider.getPromise(); - * promise.then(function() { ... }, function(err) { ... }); - */ - - /** - * @!method refreshPromise() - * Returns a 'thenable' promise. - * Refreshes the credentials. Users should call {get} before attempting - * to forcibly refresh credentials. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function() - * Called if the promise is fulfilled. When this callback is called, it - * means refreshed credentials information has been loaded into the object - * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] if an error occurred, this value will be filled - * @return [Promise] A promise that represents the state of the `refresh` call. - * @example Calling the `refreshPromise` method. - * var promise = credProvider.refreshPromise(); - * promise.then(function() { ... }, function(err) { ... }); - */ - - /** - * Refreshes the credentials. Users should call {get} before attempting - * to forcibly refresh credentials. - * - * @callback callback function(err) - * When this callback is called with no error, it means refreshed - * credentials information has been loaded into the object (as the - * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @note Subclasses should override this class to reset the - * {accessKeyId}, {secretAccessKey} and optional {sessionToken} - * on the credentials object and then call the callback with - * any error information. - * @see get - */ - refresh: function refresh(callback) { - this.expired = false; - callback(); - } - }); - - /** - * @api private - */ - AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); - this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); - }; - - /** - * @api private - */ - AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.getPromise; - delete this.prototype.refreshPromise; - }; - - AWS.util.addPromises(AWS.Credentials); + var property = __webpack_require__(2).property; + function Paginator(name, paginator) { + property(this, 'inputToken', paginator.input_token); + property(this, 'limitKey', paginator.limit_key); + property(this, 'moreResults', paginator.more_results); + property(this, 'outputToken', paginator.output_token); + property(this, 'resultKey', paginator.result_key); + } - /***/ }), - /* 192 */ - /***/ (function(module, exports, __webpack_require__) { - - var AWS = __webpack_require__(1); - - /** - * Creates a credential provider chain that searches for AWS credentials - * in a list of credential providers specified by the {providers} property. - * - * By default, the chain will use the {defaultProviders} to resolve credentials. - * These providers will look in the environment using the - * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. - * - * ## Setting Providers - * - * Each provider in the {providers} list should be a function that returns - * a {AWS.Credentials} object, or a hardcoded credentials object. The function - * form allows for delayed execution of the credential construction. - * - * ## Resolving Credentials from a Chain - * - * Call {resolve} to return the first valid credential object that can be - * loaded by the provider chain. - * - * For example, to resolve a chain with a custom provider that checks a file - * on disk after the set of {defaultProviders}: - * - * ```javascript - * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); - * var chain = new AWS.CredentialProviderChain(); - * chain.providers.push(diskProvider); - * chain.resolve(); - * ``` - * - * The above code will return the `diskProvider` object if the - * file contains credentials and the `defaultProviders` do not contain - * any credential settings. - * - * @!attribute providers - * @return [Array] - * a list of credentials objects or functions that return credentials - * objects. If the provider is a function, the function will be - * executed lazily when the provider needs to be checked for valid - * credentials. By default, this object will be set to the - * {defaultProviders}. - * @see defaultProviders - */ - AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { - - /** - * Creates a new CredentialProviderChain with a default set of providers - * specified by {defaultProviders}. - */ - constructor: function CredentialProviderChain(providers) { - if (providers) { - this.providers = providers; - } else { - this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); - } - }, - - /** - * @!method resolvePromise() - * Returns a 'thenable' promise. - * Resolves the provider chain by searching for the first set of - * credentials in {providers}. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function(credentials) - * Called if the promise is fulfilled and the provider resolves the chain - * to a credentials object - * @param credentials [AWS.Credentials] the credentials object resolved - * by the provider chain. - * @callback rejectedCallback function(error) - * Called if the promise is rejected. - * @param err [Error] the error object returned if no credentials are found. - * @return [Promise] A promise that represents the state of the `resolve` method call. - * @example Calling the `resolvePromise` method. - * var promise = chain.resolvePromise(); - * promise.then(function(credentials) { ... }, function(err) { ... }); - */ - - /** - * Resolves the provider chain by searching for the first set of - * credentials in {providers}. - * - * @callback callback function(err, credentials) - * Called when the provider resolves the chain to a credentials object - * or null if no credentials can be found. - * - * @param err [Error] the error object returned if no credentials are - * found. - * @param credentials [AWS.Credentials] the credentials object resolved - * by the provider chain. - * @return [AWS.CredentialProviderChain] the provider, for chaining. - */ - resolve: function resolve(callback) { - if (this.providers.length === 0) { - callback(new Error('No providers')); - return this; - } - - var index = 0; - var providers = this.providers.slice(0); - - function resolveNext(err, creds) { - if ((!err && creds) || index === providers.length) { - callback(err, creds); - return; - } - - var provider = providers[index++]; - if (typeof provider === 'function') { - creds = provider.call(); - } else { - creds = provider; - } - - if (creds.get) { - creds.get(function(getErr) { - resolveNext(getErr, getErr ? null : creds); - }); - } else { - resolveNext(null, creds); - } - } - - resolveNext(); - return this; - } - }); - - /** - * The default set of providers used by a vanilla CredentialProviderChain. - * - * In the browser: - * - * ```javascript - * AWS.CredentialProviderChain.defaultProviders = [] - * ``` - * - * In Node.js: - * - * ```javascript - * AWS.CredentialProviderChain.defaultProviders = [ - * function () { return new AWS.EnvironmentCredentials('AWS'); }, - * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, - * function () { return new AWS.SharedIniFileCredentials(); }, - * function () { - * // if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set - * return new AWS.ECSCredentials(); - * // else - * return new AWS.EC2MetadataCredentials(); - * } - * ] - * ``` - */ - AWS.CredentialProviderChain.defaultProviders = []; - - /** - * @api private - */ - AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); - }; - - /** - * @api private - */ - AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.resolvePromise; - }; - - AWS.util.addPromises(AWS.CredentialProviderChain); + module.exports = Paginator; /***/ }), - /* 193 */ + /* 185 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * The endpoint that a service will talk to, for example, - * `'https://ec2.ap-southeast-1.amazonaws.com'`. If - * you need to override an endpoint for a service, you can - * set the endpoint on a service by passing the endpoint - * object with the `endpoint` option key: - * - * ```javascript - * var ep = new AWS.Endpoint('awsproxy.example.com'); - * var s3 = new AWS.S3({endpoint: ep}); - * s3.service.endpoint.hostname == 'awsproxy.example.com' - * ``` - * - * Note that if you do not specify a protocol, the protocol will - * be selected based on your current {AWS.config} configuration. - * - * @!attribute protocol - * @return [String] the protocol (http or https) of the endpoint - * URL - * @!attribute hostname - * @return [String] the host portion of the endpoint, e.g., - * example.com - * @!attribute host - * @return [String] the host portion of the endpoint including - * the port, e.g., example.com:80 - * @!attribute port - * @return [Integer] the port of the endpoint - * @!attribute href - * @return [String] the full URL of the endpoint - */ - AWS.Endpoint = inherit({ - - /** - * @overload Endpoint(endpoint) - * Constructs a new endpoint given an endpoint URL. If the - * URL omits a protocol (http or https), the default protocol - * set in the global {AWS.config} will be used. - * @param endpoint [String] the URL to construct an endpoint from - */ - constructor: function Endpoint(endpoint, config) { - AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); - - if (typeof endpoint === 'undefined' || endpoint === null) { - throw new Error('Invalid endpoint: ' + endpoint); - } else if (typeof endpoint !== 'string') { - return AWS.util.copy(endpoint); - } - - if (!endpoint.match(/^http/)) { - var useSSL = config && config.sslEnabled !== undefined ? - config.sslEnabled : AWS.config.sslEnabled; - endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; - } - - AWS.util.update(this, AWS.util.urlParse(endpoint)); - - // Ensure the port property is set as an integer - if (this.port) { - this.port = parseInt(this.port, 10); - } else { - this.port = this.protocol === 'https:' ? 443 : 80; - } - } - - }); - - /** - * The low level HTTP request object, encapsulating all HTTP header - * and body data sent by a service request. - * - * @!attribute method - * @return [String] the HTTP method of the request - * @!attribute path - * @return [String] the path portion of the URI, e.g., - * "/list/?start=5&num=10" - * @!attribute headers - * @return [map] - * a map of header keys and their respective values - * @!attribute body - * @return [String] the request body payload - * @!attribute endpoint - * @return [AWS.Endpoint] the endpoint for the request - * @!attribute region - * @api private - * @return [String] the region, for signing purposes only. - */ - AWS.HttpRequest = inherit({ - - /** - * @api private - */ - constructor: function HttpRequest(endpoint, region) { - endpoint = new AWS.Endpoint(endpoint); - this.method = 'POST'; - this.path = endpoint.path || '/'; - this.headers = {}; - this.body = ''; - this.endpoint = endpoint; - this.region = region; - this._userAgent = ''; - this.setUserAgent(); - }, - - /** - * @api private - */ - setUserAgent: function setUserAgent() { - this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); - }, - - getUserAgentHeaderName: function getUserAgentHeaderName() { - var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; - return prefix + 'User-Agent'; - }, - - /** - * @api private - */ - appendToUserAgent: function appendToUserAgent(agentPartial) { - if (typeof agentPartial === 'string' && agentPartial) { - this._userAgent += ' ' + agentPartial; - } - this.headers[this.getUserAgentHeaderName()] = this._userAgent; - }, - - /** - * @api private - */ - getUserAgent: function getUserAgent() { - return this._userAgent; - }, - - /** - * @return [String] the part of the {path} excluding the - * query string - */ - pathname: function pathname() { - return this.path.split('?', 1)[0]; - }, - - /** - * @return [String] the query string portion of the {path} - */ - search: function search() { - var query = this.path.split('?', 2)[1]; - if (query) { - query = AWS.util.queryStringParse(query); - return AWS.util.queryParamsToString(query); - } - return ''; - } - - }); - - /** - * The low level HTTP response object, encapsulating all HTTP header - * and body data returned from the request. - * - * @!attribute statusCode - * @return [Integer] the HTTP status code of the response (e.g., 200, 404) - * @!attribute headers - * @return [map] - * a map of response header keys and their respective values - * @!attribute body - * @return [String] the response body payload - * @!attribute [r] streaming - * @return [Boolean] whether this response is being streamed at a low-level. - * Defaults to `false` (buffered reads). Do not modify this manually, use - * {createUnbufferedStream} to convert the stream to unbuffered mode - * instead. - */ - AWS.HttpResponse = inherit({ - - /** - * @api private - */ - constructor: function HttpResponse() { - this.statusCode = undefined; - this.headers = {}; - this.body = undefined; - this.streaming = false; - this.stream = null; - }, - - /** - * Disables buffering on the HTTP response and returns the stream for reading. - * @return [Stream, XMLHttpRequest, null] the underlying stream object. - * Use this object to directly read data off of the stream. - * @note This object is only available after the {AWS.Request~httpHeaders} - * event has fired. This method must be called prior to - * {AWS.Request~httpData}. - * @example Taking control of a stream - * request.on('httpHeaders', function(statusCode, headers) { - * if (statusCode < 300) { - * if (headers.etag === 'xyz') { - * // pipe the stream, disabling buffering - * var stream = this.response.httpResponse.createUnbufferedStream(); - * stream.pipe(process.stdout); - * } else { // abort this request and set a better error message - * this.abort(); - * this.response.error = new Error('Invalid ETag'); - * } - * } - * }).send(console.log); - */ - createUnbufferedStream: function createUnbufferedStream() { - this.streaming = true; - return this.stream; - } - }); - - - AWS.HttpClient = inherit({}); - - /** - * @api private - */ - AWS.HttpClient.getInstance = function getInstance() { - if (this.singleton === undefined) { - this.singleton = new this(); - } - return this.singleton; - }; + var util = __webpack_require__(2); + var property = util.property; + function ResourceWaiter(name, waiter, options) { + options = options || {}; + property(this, 'name', name); + property(this, 'api', options.api, false); - /***/ }), - /* 194 */ - /***/ (function(module, exports, __webpack_require__) { + if (waiter.operation) { + property(this, 'operation', util.string.lowerFirst(waiter.operation)); + } + + var self = this; + var keys = [ + 'type', + 'description', + 'delay', + 'maxAttempts', + 'acceptors' + ]; - var AWS = __webpack_require__(1); - - /** - * @api private - * @!method on(eventName, callback) - * Registers an event listener callback for the event given by `eventName`. - * Parameters passed to the callback function depend on the individual event - * being triggered. See the event documentation for those parameters. - * - * @param eventName [String] the event name to register the listener for - * @param callback [Function] the listener callback function - * @return [AWS.SequentialExecutor] the same object for chaining - */ - AWS.SequentialExecutor = AWS.util.inherit({ - - constructor: function SequentialExecutor() { - this._events = {}; - }, - - /** - * @api private - */ - listeners: function listeners(eventName) { - return this._events[eventName] ? this._events[eventName].slice(0) : []; - }, - - on: function on(eventName, listener) { - if (this._events[eventName]) { - this._events[eventName].push(listener); - } else { - this._events[eventName] = [listener]; - } - return this; - }, - - /** - * @api private - */ - onAsync: function onAsync(eventName, listener) { - listener._isAsync = true; - return this.on(eventName, listener); - }, - - removeListener: function removeListener(eventName, listener) { - var listeners = this._events[eventName]; - if (listeners) { - var length = listeners.length; - var position = -1; - for (var i = 0; i < length; ++i) { - if (listeners[i] === listener) { - position = i; - } - } - if (position > -1) { - listeners.splice(position, 1); - } - } - return this; - }, - - removeAllListeners: function removeAllListeners(eventName) { - if (eventName) { - delete this._events[eventName]; - } else { - this._events = {}; - } - return this; - }, - - /** - * @api private - */ - emit: function emit(eventName, eventArgs, doneCallback) { - if (!doneCallback) doneCallback = function() { }; - var listeners = this.listeners(eventName); - var count = listeners.length; - this.callListeners(listeners, eventArgs, doneCallback); - return count > 0; - }, - - /** - * @api private - */ - callListeners: function callListeners(listeners, args, doneCallback, prevError) { - var self = this; - var error = prevError || null; - - function callNextListener(err) { - if (err) { - error = AWS.util.error(error || new Error(), err); - if (self._haltHandlersOnError) { - return doneCallback.call(self, error); - } - } - self.callListeners(listeners, args, doneCallback, error); - } - - while (listeners.length > 0) { - var listener = listeners.shift(); - if (listener._isAsync) { // asynchronous listener - listener.apply(self, args.concat([callNextListener])); - return; // stop here, callNextListener will continue - } else { // synchronous listener - try { - listener.apply(self, args); - } catch (err) { - error = AWS.util.error(error || new Error(), err); - } - if (error && self._haltHandlersOnError) { - doneCallback.call(self, error); - return; - } - } - } - doneCallback.call(self, error); - }, - - /** - * Adds or copies a set of listeners from another list of - * listeners or SequentialExecutor object. - * - * @param listeners [map>, AWS.SequentialExecutor] - * a list of events and callbacks, or an event emitter object - * containing listeners to add to this emitter object. - * @return [AWS.SequentialExecutor] the emitter object, for chaining. - * @example Adding listeners from a map of listeners - * emitter.addListeners({ - * event1: [function() { ... }, function() { ... }], - * event2: [function() { ... }] - * }); - * emitter.emit('event1'); // emitter has event1 - * emitter.emit('event2'); // emitter has event2 - * @example Adding listeners from another emitter object - * var emitter1 = new AWS.SequentialExecutor(); - * emitter1.on('event1', function() { ... }); - * emitter1.on('event2', function() { ... }); - * var emitter2 = new AWS.SequentialExecutor(); - * emitter2.addListeners(emitter1); - * emitter2.emit('event1'); // emitter2 has event1 - * emitter2.emit('event2'); // emitter2 has event2 - */ - addListeners: function addListeners(listeners) { - var self = this; - - // extract listeners if parameter is an SequentialExecutor object - if (listeners._events) listeners = listeners._events; - - AWS.util.each(listeners, function(event, callbacks) { - if (typeof callbacks === 'function') callbacks = [callbacks]; - AWS.util.arrayEach(callbacks, function(callback) { - self.on(event, callback); - }); - }); - - return self; - }, - - /** - * Registers an event with {on} and saves the callback handle function - * as a property on the emitter object using a given `name`. - * - * @param name [String] the property name to set on this object containing - * the callback function handle so that the listener can be removed in - * the future. - * @param (see on) - * @return (see on) - * @example Adding a named listener DATA_CALLBACK - * var listener = function() { doSomething(); }; - * emitter.addNamedListener('DATA_CALLBACK', 'data', listener); - * - * // the following prints: true - * console.log(emitter.DATA_CALLBACK == listener); - */ - addNamedListener: function addNamedListener(name, eventName, callback) { - this[name] = callback; - this.addListener(eventName, callback); - return this; - }, - - /** - * @api private - */ - addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) { - callback._isAsync = true; - return this.addNamedListener(name, eventName, callback); - }, - - /** - * Helper method to add a set of named listeners using - * {addNamedListener}. The callback contains a parameter - * with a handle to the `addNamedListener` method. - * - * @callback callback function(add) - * The callback function is called immediately in order to provide - * the `add` function to the block. This simplifies the addition of - * a large group of named listeners. - * @param add [Function] the {addNamedListener} function to call - * when registering listeners. - * @example Adding a set of named listeners - * emitter.addNamedListeners(function(add) { - * add('DATA_CALLBACK', 'data', function() { ... }); - * add('OTHER', 'otherEvent', function() { ... }); - * add('LAST', 'lastEvent', function() { ... }); - * }); - * - * // these properties are now set: - * emitter.DATA_CALLBACK; - * emitter.OTHER; - * emitter.LAST; - */ - addNamedListeners: function addNamedListeners(callback) { - var self = this; - callback( - function() { - self.addNamedListener.apply(self, arguments); - }, - function() { - self.addNamedAsyncListener.apply(self, arguments); - } - ); - return this; - } - }); - - /** - * {on} is the prefered method. - * @api private - */ - AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; - - module.exports = AWS.SequentialExecutor; + keys.forEach(function(key) { + var value = waiter[key]; + if (value) { + property(self, key, value); + } + }); + } + + module.exports = ResourceWaiter; /***/ }), - /* 195 */ - /***/ (function(module, exports, __webpack_require__) { + /* 186 */ + /***/ (function(module, exports) { - var AWS = __webpack_require__(1); - var SequentialExecutor = __webpack_require__(194); - /** - * The namespace used to register global event listeners for request building - * and sending. - */ - AWS.EventListeners = { - /** - * @!attribute VALIDATE_CREDENTIALS - * A request listener that validates whether the request is being - * sent with credentials. - * Handles the {AWS.Request~validate 'validate' Request event} - * @example Sending a request without validating credentials - * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS; - * request.removeListener('validate', listener); - * @readonly - * @return [Function] - * @!attribute VALIDATE_REGION - * A request listener that validates whether the region is set - * for a request. - * Handles the {AWS.Request~validate 'validate' Request event} - * @example Sending a request without validating region configuration - * var listener = AWS.EventListeners.Core.VALIDATE_REGION; - * request.removeListener('validate', listener); - * @readonly - * @return [Function] - * @!attribute VALIDATE_PARAMETERS - * A request listener that validates input parameters in a request. - * Handles the {AWS.Request~validate 'validate' Request event} - * @example Sending a request without validating parameters - * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS; - * request.removeListener('validate', listener); - * @example Disable parameter validation globally - * AWS.EventListeners.Core.removeListener('validate', - * AWS.EventListeners.Core.VALIDATE_REGION); - * @readonly - * @return [Function] - * @!attribute SEND - * A request listener that initiates the HTTP connection for a - * request being sent. Handles the {AWS.Request~send 'send' Request event} - * @example Replacing the HTTP handler - * var listener = AWS.EventListeners.Core.SEND; - * request.removeListener('send', listener); - * request.on('send', function(response) { - * customHandler.send(response); - * }); - * @return [Function] - * @readonly - * @!attribute HTTP_DATA - * A request listener that reads data from the HTTP connection in order - * to build the response data. - * Handles the {AWS.Request~httpData 'httpData' Request event}. - * Remove this handler if you are overriding the 'httpData' event and - * do not want extra data processing and buffering overhead. - * @example Disabling default data processing - * var listener = AWS.EventListeners.Core.HTTP_DATA; - * request.removeListener('httpData', listener); - * @return [Function] - * @readonly - */ - Core: {} /* doc hack */ - }; - - /** - * @api private - */ - function getOperationAuthtype(req) { - if (!req.service.api.operations) { - return ''; - } - var operation = req.service.api.operations[req.operation]; - return operation ? operation.authtype : ''; - } - - AWS.EventListeners = { - Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) { - addAsync('VALIDATE_CREDENTIALS', 'validate', - function VALIDATE_CREDENTIALS(req, done) { - if (!req.service.api.signatureVersion) return done(); // none - req.service.config.getCredentials(function(err) { - if (err) { - req.response.error = AWS.util.error(err, - {code: 'CredentialsError', message: 'Missing credentials in config'}); - } - done(); - }); - }); - - add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { - if (!req.service.config.region && !req.service.isGlobalEndpoint) { - req.response.error = AWS.util.error(new Error(), - {code: 'ConfigError', message: 'Missing region in config'}); - } - }); - - add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) { - if (!req.service.api.operations) { - return; - } - var operation = req.service.api.operations[req.operation]; - if (!operation) { - return; - } - var idempotentMembers = operation.idempotentMembers; - if (!idempotentMembers.length) { - return; - } - // creates a copy of params so user's param object isn't mutated - var params = AWS.util.copy(req.params); - for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) { - if (!params[idempotentMembers[i]]) { - // add the member - params[idempotentMembers[i]] = AWS.util.uuid.v4(); - } - } - req.params = params; - }); - - add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { - if (!req.service.api.operations) { - return; - } - var rules = req.service.api.operations[req.operation].input; - var validation = req.service.config.paramValidation; - new AWS.ParamValidator(validation).validate(rules, req.params); - }); - - addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { - req.haltHandlersOnError(); - if (!req.service.api.operations) { - return; - } - var operation = req.service.api.operations[req.operation]; - var authtype = operation ? operation.authtype : ''; - if (!req.service.api.signatureVersion && !authtype) return done(); // none - if (req.service.getSignerClass(req) === AWS.Signers.V4) { - var body = req.httpRequest.body || ''; - if (authtype.indexOf('unsigned-body') >= 0) { - req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; - return done(); - } - AWS.util.computeSha256(body, function(err, sha) { - if (err) { - done(err); - } - else { - req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; - done(); - } - }); - } else { - done(); - } - }); - - add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) { - var authtype = getOperationAuthtype(req); - if (req.httpRequest.headers['Content-Length'] === undefined - && authtype.indexOf('unsigned-body') === -1) { - var length = AWS.util.string.byteLength(req.httpRequest.body); - req.httpRequest.headers['Content-Length'] = length; - } - }); - - add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) { - req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; - }); - - add('RESTART', 'restart', function RESTART() { - var err = this.response.error; - if (!err || !err.retryable) return; - - this.httpRequest = new AWS.HttpRequest( - this.service.endpoint, - this.service.region - ); - - if (this.response.retryCount < this.service.config.maxRetries) { - this.response.retryCount++; - } else { - this.response.error = null; - } - }); - - addAsync('SIGN', 'sign', function SIGN(req, done) { - var service = req.service; - var operations = req.service.api.operations || {}; - var operation = operations[req.operation]; - var authtype = operation ? operation.authtype : ''; - if (!service.api.signatureVersion && !authtype) return done(); // none - - service.config.getCredentials(function (err, credentials) { - if (err) { - req.response.error = err; - return done(); - } - - try { - var date = service.getSkewCorrectedDate(); - var SignerClass = service.getSignerClass(req); - var signer = new SignerClass(req.httpRequest, - service.api.signingName || service.api.endpointPrefix, - { - signatureCache: service.config.signatureCache, - operation: operation - }); - signer.setServiceClientId(service._clientId); - - // clear old authorization headers - delete req.httpRequest.headers['Authorization']; - delete req.httpRequest.headers['Date']; - delete req.httpRequest.headers['X-Amz-Date']; - - // add new authorization - signer.addAuthorization(credentials, date); - req.signedAt = date; - } catch (e) { - req.response.error = e; - } - done(); - }); - }); - - add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { - if (this.service.successfulResponse(resp, this)) { - resp.data = {}; - resp.error = null; - } else { - resp.data = null; - resp.error = AWS.util.error(new Error(), - {code: 'UnknownError', message: 'An unknown error occurred.'}); - } - }); - - addAsync('SEND', 'send', function SEND(resp, done) { - resp.httpResponse._abortCallback = done; - resp.error = null; - resp.data = null; - - function callback(httpResp) { - resp.httpResponse.stream = httpResp; - var stream = resp.request.httpRequest.stream; - - httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) { - resp.request.emit( - 'httpHeaders', - [statusCode, headers, resp, statusMessage] - ); - - if (!resp.httpResponse.streaming) { - if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check - httpResp.on('readable', function onReadable() { - var data = httpResp.read(); - if (data !== null) { - resp.request.emit('httpData', [data, resp]); - } - }); - } else { // legacy streams API - httpResp.on('data', function onData(data) { - resp.request.emit('httpData', [data, resp]); - }); - } - } - }); - - httpResp.on('end', function onEnd() { - if (!stream || !stream.didCallback) { - resp.request.emit('httpDone'); - done(); - } - }); - } - - function progress(httpResp) { - httpResp.on('sendProgress', function onSendProgress(value) { - resp.request.emit('httpUploadProgress', [value, resp]); - }); - - httpResp.on('receiveProgress', function onReceiveProgress(value) { - resp.request.emit('httpDownloadProgress', [value, resp]); - }); - } - - function error(err) { - if (err.code !== 'RequestAbortedError') { - var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError'; - err = AWS.util.error(err, { - code: errCode, - region: resp.request.httpRequest.region, - hostname: resp.request.httpRequest.endpoint.hostname, - retryable: true - }); - } - resp.error = err; - resp.request.emit('httpError', [resp.error, resp], function() { - done(); - }); - } - - function executeSend() { - var http = AWS.HttpClient.getInstance(); - var httpOptions = resp.request.service.config.httpOptions || {}; - try { - var stream = http.handleRequest(resp.request.httpRequest, httpOptions, - callback, error); - progress(stream); - } catch (err) { - error(err); - } - } - var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000; - if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign - this.emit('sign', [this], function(err) { - if (err) done(err); - else executeSend(); - }); - } else { - executeSend(); - } - }); - - add('HTTP_HEADERS', 'httpHeaders', - function HTTP_HEADERS(statusCode, headers, resp, statusMessage) { - resp.httpResponse.statusCode = statusCode; - resp.httpResponse.statusMessage = statusMessage; - resp.httpResponse.headers = headers; - resp.httpResponse.body = new AWS.util.Buffer(''); - resp.httpResponse.buffers = []; - resp.httpResponse.numBytes = 0; - var dateHeader = headers.date || headers.Date; - var service = resp.request.service; - if (dateHeader) { - var serverTime = Date.parse(dateHeader); - if (service.config.correctClockSkew - && service.isClockSkewed(serverTime)) { - service.applyClockOffset(serverTime); - } - } - }); - - add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) { - if (chunk) { - if (AWS.util.isNode()) { - resp.httpResponse.numBytes += chunk.length; - - var total = resp.httpResponse.headers['content-length']; - var progress = { loaded: resp.httpResponse.numBytes, total: total }; - resp.request.emit('httpDownloadProgress', [progress, resp]); - } - - resp.httpResponse.buffers.push(new AWS.util.Buffer(chunk)); - } - }); - - add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) { - // convert buffers array into single buffer - if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) { - var body = AWS.util.buffer.concat(resp.httpResponse.buffers); - resp.httpResponse.body = body; - } - delete resp.httpResponse.numBytes; - delete resp.httpResponse.buffers; - }); - - add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) { - if (resp.httpResponse.statusCode) { - resp.error.statusCode = resp.httpResponse.statusCode; - if (resp.error.retryable === undefined) { - resp.error.retryable = this.service.retryableError(resp.error, this); - } - } - }); - - add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) { - if (!resp.error) return; - switch (resp.error.code) { - case 'RequestExpired': // EC2 only - case 'ExpiredTokenException': - case 'ExpiredToken': - resp.error.retryable = true; - resp.request.service.config.credentials.expired = true; - } - }); - - add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { - var err = resp.error; - if (!err) return; - if (typeof err.code === 'string' && typeof err.message === 'string') { - if (err.code.match(/Signature/) && err.message.match(/expired/)) { - resp.error.retryable = true; - } - } - }); - - add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { - if (!resp.error) return; - if (this.service.clockSkewError(resp.error) - && this.service.config.correctClockSkew) { - resp.error.retryable = true; - } - }); - - add('REDIRECT', 'retry', function REDIRECT(resp) { - if (resp.error && resp.error.statusCode >= 300 && - resp.error.statusCode < 400 && resp.httpResponse.headers['location']) { - this.httpRequest.endpoint = - new AWS.Endpoint(resp.httpResponse.headers['location']); - this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; - resp.error.redirect = true; - resp.error.retryable = true; - } - }); - - add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) { - if (resp.error) { - if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { - resp.error.retryDelay = 0; - } else if (resp.retryCount < resp.maxRetries) { - resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; - } - } - }); - - addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { - var delay, willRetry = false; - - if (resp.error) { - delay = resp.error.retryDelay || 0; - if (resp.error.retryable && resp.retryCount < resp.maxRetries) { - resp.retryCount++; - willRetry = true; - } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { - resp.redirectCount++; - willRetry = true; - } - } - - if (willRetry) { - resp.error = null; - setTimeout(done, delay); - } else { - done(); - } - }); - }), - - CorePost: new SequentialExecutor().addNamedListeners(function(add) { - add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); - add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); - - add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { - if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { - var message = 'Inaccessible host: `' + err.hostname + - '\'. This service may not be available in the `' + err.region + - '\' region.'; - this.response.error = AWS.util.error(new Error(message), { - code: 'UnknownEndpoint', - region: err.region, - hostname: err.hostname, - retryable: true, - originalError: err - }); - } - }); - }), - - Logger: new SequentialExecutor().addNamedListeners(function(add) { - add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) { - var req = resp.request; - var logger = req.service.config.logger; - if (!logger) return; - function filterSensitiveLog(inputShape, shape) { - if (!shape) { - return shape; - } - switch (inputShape.type) { - case 'structure': - var struct = {}; - AWS.util.each(shape, function(subShapeName, subShape) { - if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) { - struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape); - } else { - struct[subShapeName] = subShape; - } - }) - return struct - case 'list': - var list = []; - AWS.util.arrayEach(shape, function(subShape, index) { - list.push(filterSensitiveLog(inputShape.member, subShape)); - }) - return list; - case 'map': - var map = {}; - AWS.util.each(shape, function(key, value) { - map[key] = filterSensitiveLog(inputShape.value, value); - }) - return map; - default: - if (inputShape.isSensitive) { - return '***SensitiveInformation***' - } else { - return shape; - } - } - } - - function buildMessage() { - var time = resp.request.service.getSkewCorrectedDate().getTime(); - var delta = (time - req.startTime.getTime()) / 1000; - var ansi = logger.isTTY ? true : false; - var status = resp.httpResponse.statusCode; - var censoredParams = req.params; - if ( - req.service.api.operations && - req.service.api.operations[req.operation] && - req.service.api.operations[req.operation].input - ) { - var inputShape = req.service.api.operations[req.operation].input; - censoredParams = filterSensitiveLog(inputShape, req.params); - } - var params = __webpack_require__(196).inspect(censoredParams, true, null); - var message = ''; - if (ansi) message += '\x1B[33m'; - message += '[AWS ' + req.service.serviceIdentifier + ' ' + status; - message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]'; - if (ansi) message += '\x1B[0;1m'; - message += ' ' + AWS.util.string.lowerFirst(req.operation); - message += '(' + params + ')'; - if (ansi) message += '\x1B[0m'; - return message; - } - - var line = buildMessage(); - if (typeof logger.log === 'function') { - logger.log(line); - } else if (typeof logger.write === 'function') { - logger.write(line + '\n'); - } - }); - }), - - Json: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(13); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - Rest: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(20); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - RestJson: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(21); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - RestXml: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(22); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }), - - Query: new SequentialExecutor().addNamedListeners(function(add) { - var svc = __webpack_require__(16); - add('BUILD', 'build', svc.buildRequest); - add('EXTRACT_DATA', 'extractData', svc.extractData); - add('EXTRACT_ERROR', 'extractError', svc.extractError); - }) - }; + function apiLoader(svc, version) { + if (!apiLoader.services.hasOwnProperty(svc)) { + throw new Error('InvalidService: Failed to load api for ' + svc); + } + return apiLoader.services[svc][version]; + } + + /** + * @api private + * + * This member of AWS.apiLoader is private, but changing it will necessitate a + * change to ../scripts/services-table-generator.ts + */ + apiLoader.services = {}; + module.exports = apiLoader; /***/ }), - /* 196 */ + /* 187 */ /***/ (function(module, exports, __webpack_require__) { - /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. + var AWS = __webpack_require__(1); + var Api = __webpack_require__(182); + var regionConfig = __webpack_require__(188); + var inherit = AWS.util.inherit; + var clientCount = 0; - var formatRegExp = /%[sdj%]/g; - exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); + /** + * The service class representing an AWS service. + * + * @abstract + * + * @!attribute apiVersions + * @return [Array] the list of API versions supported by this service. + * @readonly + */ + AWS.Service = inherit({ + /** + * Create a new service object with a configuration object + * + * @param config [map] a map of configuration options + */ + constructor: function Service(config) { + if (!this.loadServiceClass) { + throw AWS.util.error(new Error(), + 'Service must be constructed with `new\' operator'); } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; + var ServiceClass = this.loadServiceClass(config || {}); + if (ServiceClass) { + var originalConfig = AWS.util.copy(config); + var svc = new ServiceClass(config); + Object.defineProperty(svc, '_originalConfig', { + get: function() { return originalConfig; }, + enumerable: false, + configurable: true + }); + svc._clientId = ++clientCount; + return svc; } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; + this.initialize(config); + }, + + /** + * @api private + */ + initialize: function initialize(config) { + var svcConfig = AWS.config[this.serviceIdentifier]; + + this.config = new AWS.Config(AWS.config); + if (svcConfig) this.config.update(svcConfig, true); + if (config) this.config.update(config, true); + + this.validateService(); + if (!this.config.endpoint) regionConfig(this); + + this.config.endpoint = this.endpointFromTemplate(this.config.endpoint); + this.setEndpoint(this.config.endpoint); + }, + + /** + * @api private + */ + validateService: function validateService() { + }, + + /** + * @api private + */ + loadServiceClass: function loadServiceClass(serviceConfig) { + var config = serviceConfig; + if (!AWS.util.isEmpty(this.api)) { + return null; + } else if (config.apiConfig) { + return AWS.Service.defineServiceApi(this.constructor, config.apiConfig); + } else if (!this.constructor.services) { + return null; } else { - str += ' ' + inspect(x); + config = new AWS.Config(AWS.config); + config.update(serviceConfig, true); + var version = config.apiVersions[this.constructor.serviceIdentifier]; + version = version || config.apiVersion; + return this.getLatestServiceClass(version); } - } - return str; - }; + }, + /** + * @api private + */ + getLatestServiceClass: function getLatestServiceClass(version) { + version = this.getLatestServiceVersion(version); + if (this.constructor.services[version] === null) { + AWS.Service.defineServiceApi(this.constructor, version); + } - // Mark that a method should not be used. - // Returns a modified function which warns once by default. - // If --no-deprecation is set, then it is a no-op. - exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } + return this.constructor.services[version]; + }, - if (process.noDeprecation === true) { - return fn; - } + /** + * @api private + */ + getLatestServiceVersion: function getLatestServiceVersion(version) { + if (!this.constructor.services || this.constructor.services.length === 0) { + throw new Error('No services defined on ' + + this.constructor.serviceIdentifier); + } - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; + if (!version) { + version = 'latest'; + } else if (AWS.util.isType(version, Date)) { + version = AWS.util.date.iso8601(version).split('T')[0]; } - return fn.apply(this, arguments); - } - return deprecated; - }; + if (Object.hasOwnProperty(this.constructor.services, version)) { + return version; + } + var keys = Object.keys(this.constructor.services).sort(); + var selectedVersion = null; + for (var i = keys.length - 1; i >= 0; i--) { + // versions that end in "*" are not available on disk and can be + // skipped, so do not choose these as selectedVersions + if (keys[i][keys[i].length - 1] !== '*') { + selectedVersion = keys[i]; + } + if (keys[i].substr(0, 10) <= version) { + return selectedVersion; + } + } - var debugs = {}; - var debugEnviron; - exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; + throw new Error('Could not find ' + this.constructor.serviceIdentifier + + ' API to satisfy version constraint `' + version + '\''); + }, + + /** + * @api private + */ + api: {}, + + /** + * @api private + */ + defaultRetryCount: 3, + + /** + * @api private + */ + customizeRequests: function customizeRequests(callback) { + if (!callback) { + this.customRequestHandler = null; + } else if (typeof callback === 'function') { + this.customRequestHandler = callback; } else { - debugs[set] = function() {}; + throw new Error('Invalid callback type \'' + typeof callback + '\' provided in customizeRequests'); } - } - return debugs[set]; - }; + }, + /** + * Calls an operation on a service with the given input parameters. + * + * @param operation [String] the name of the operation to call on the service. + * @param params [map] a map of input options for the operation + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + makeRequest: function makeRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = null; + } + + params = params || {}; + if (this.config.params) { // copy only toplevel bound params + var rules = this.api.operations[operation]; + if (rules) { + params = AWS.util.copy(params); + AWS.util.each(this.config.params, function(key, value) { + if (rules.input.members[key]) { + if (params[key] === undefined || params[key] === null) { + params[key] = value; + } + } + }); + } + } - /** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ - /* legacy: obj, showHidden, depth, colors*/ - function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); - } - exports.inspect = inspect; + var request = new AWS.Request(this, operation, params); + this.addAllRequestListeners(request); + + if (callback) request.send(callback); + return request; + }, + /** + * Calls an operation on a service with the given input parameters, without + * any authentication data. This method is useful for "public" API operations. + * + * @param operation [String] the name of the operation to call on the service. + * @param params [map] a map of input options for the operation + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) { + if (typeof params === 'function') { + callback = params; + params = {}; + } + + var request = this.makeRequest(operation, params).toUnauthenticated(); + return callback ? request.send(callback) : request; + }, - // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics - inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] - }; + /** + * Waits for a given state + * + * @param state [String] the state on the service to wait for + * @param params [map] a map of parameters to pass with each request + * @option params $waiter [map] a map of configuration options for the waiter + * @option params $waiter.delay [Number] The number of seconds to wait between + * requests + * @option params $waiter.maxAttempts [Number] The maximum number of requests + * to send while waiting + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + */ + waitFor: function waitFor(state, params, callback) { + var waiter = new AWS.ResourceWaiter(this, state); + return waiter.wait(params, callback); + }, - // Don't use 'blue' not visible on cmd.exe - inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' - }; + /** + * @api private + */ + addAllRequestListeners: function addAllRequestListeners(request) { + var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(), + AWS.EventListeners.CorePost]; + for (var i = 0; i < list.length; i++) { + if (list[i]) request.addListeners(list[i]); + } + // disable parameter validation + if (!this.config.paramValidation) { + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_PARAMETERS); + } - function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; + if (this.config.logger) { // add logging events + request.addListeners(AWS.EventListeners.Logger); + } - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } - } + this.setupRequestListeners(request); + // call prototype's customRequestHandler + if (typeof this.constructor.prototype.customRequestHandler === 'function') { + this.constructor.prototype.customRequestHandler(request); + } + // call instance's customRequestHandler + if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') { + this.customRequestHandler(request); + } + }, + /** + * Override this method to setup any custom request listeners for each + * new request to the service. + * + * @abstract + */ + setupRequestListeners: function setupRequestListeners() { + }, - function stylizeNoColor(str, styleType) { - return str; - } + /** + * Gets the signer class for a given request + * @api private + */ + getSignerClass: function getSignerClass(request) { + var version; + // get operation authtype if present + var operation = null; + var authtype = ''; + if (request) { + var operations = request.service.api.operations || {}; + operation = operations[request.operation] || null; + authtype = operation ? operation.authtype : ''; + } + if (this.config.signatureVersion) { + version = this.config.signatureVersion; + } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') { + version = 'v4'; + } else { + version = this.api.signatureVersion; + } + return AWS.Signers.RequestSigner.getVersion(version); + }, + /** + * @api private + */ + serviceInterface: function serviceInterface() { + switch (this.api.protocol) { + case 'ec2': return AWS.EventListeners.Query; + case 'query': return AWS.EventListeners.Query; + case 'json': return AWS.EventListeners.Json; + case 'rest-json': return AWS.EventListeners.RestJson; + case 'rest-xml': return AWS.EventListeners.RestXml; + } + if (this.api.protocol) { + throw new Error('Invalid service `protocol\' ' + + this.api.protocol + ' in API config'); + } + }, - function arrayToHash(array) { - var hash = {}; + /** + * @api private + */ + successfulResponse: function successfulResponse(resp) { + return resp.httpResponse.statusCode < 300; + }, - array.forEach(function(val, idx) { - hash[val] = true; - }); + /** + * How many times a failed request should be retried before giving up. + * the defaultRetryCount can be overriden by service classes. + * + * @api private + */ + numRetries: function numRetries() { + if (this.config.maxRetries !== undefined) { + return this.config.maxRetries; + } else { + return this.defaultRetryCount; + } + }, - return hash; - } + /** + * @api private + */ + retryDelays: function retryDelays(retryCount) { + return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions); + }, + /** + * @api private + */ + retryableError: function retryableError(error) { + if (this.timeoutError(error)) return true; + if (this.networkingError(error)) return true; + if (this.expiredCredentialsError(error)) return true; + if (this.throttledError(error)) return true; + if (error.statusCode >= 500) return true; + return false; + }, - function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } + /** + * @api private + */ + networkingError: function networkingError(error) { + return error.code === 'NetworkingError'; + }, - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } + /** + * @api private + */ + timeoutError: function timeoutError(error) { + return error.code === 'TimeoutError'; + }, - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); + /** + * @api private + */ + expiredCredentialsError: function expiredCredentialsError(error) { + // TODO : this only handles *one* of the expired credential codes + return (error.code === 'ExpiredTokenException'); + }, - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } + /** + * @api private + */ + clockSkewError: function clockSkewError(error) { + switch (error.code) { + case 'RequestTimeTooSkewed': + case 'RequestExpired': + case 'InvalidSignatureException': + case 'SignatureDoesNotMatch': + case 'AuthFailure': + case 'RequestInTheFuture': + return true; + default: return false; + } + }, - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } + /** + * @api private + */ + getSkewCorrectedDate: function getSkewCorrectedDate() { + return new Date(Date.now() + this.config.systemClockOffset); + }, - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); + /** + * @api private + */ + applyClockOffset: function applyClockOffset(newServerTime) { + if (newServerTime) { + this.config.systemClockOffset = newServerTime - Date.now(); } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + }, + + /** + * @api private + */ + isClockSkewed: function isClockSkewed(newServerTime) { + if (newServerTime) { + return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 30000; } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); + }, + + /** + * @api private + */ + throttledError: function throttledError(error) { + // this logic varies between services + switch (error.code) { + case 'ProvisionedThroughputExceededException': + case 'Throttling': + case 'ThrottlingException': + case 'RequestLimitExceeded': + case 'RequestThrottled': + return true; + default: + return false; } - if (isError(value)) { - return formatError(value); + }, + + /** + * @api private + */ + endpointFromTemplate: function endpointFromTemplate(endpoint) { + if (typeof endpoint !== 'string') return endpoint; + + var e = endpoint; + e = e.replace(/\{service\}/g, this.api.endpointPrefix); + e = e.replace(/\{region\}/g, this.config.region); + e = e.replace(/\{scheme\}/g, this.config.sslEnabled ? 'https' : 'http'); + return e; + }, + + /** + * @api private + */ + setEndpoint: function setEndpoint(endpoint) { + this.endpoint = new AWS.Endpoint(endpoint, this.config); + }, + + /** + * @api private + */ + paginationConfig: function paginationConfig(operation, throwException) { + var paginator = this.api.operations[operation].paginator; + if (!paginator) { + if (throwException) { + var e = new Error(); + throw AWS.util.error(e, 'No pagination configuration for ' + operation); + } + return null; } + + return paginator; } + }); - var base = '', array = false, braces = ['{', '}']; + AWS.util.update(AWS.Service, { + + /** + * Adds one method for each operation described in the api configuration + * + * @api private + */ + defineMethods: function defineMethods(svc) { + AWS.util.each(svc.prototype.api.operations, function iterator(method) { + if (svc.prototype[method]) return; + var operation = svc.prototype.api.operations[method]; + if (operation.authtype === 'none') { + svc.prototype[method] = function (params, callback) { + return this.makeUnauthenticatedRequest(method, params, callback); + }; + } else { + svc.prototype[method] = function (params, callback) { + return this.makeRequest(method, params, callback); + }; + } + }); + }, - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } + /** + * Defines a new Service class using a service identifier and list of versions + * including an optional set of features (functions) to apply to the class + * prototype. + * + * @param serviceIdentifier [String] the identifier for the service + * @param versions [Array] a list of versions that work with this + * service + * @param features [Object] an object to attach to the prototype + * @return [Class] the service class defined by this function. + */ + defineService: function defineService(serviceIdentifier, versions, features) { + AWS.Service._serviceMap[serviceIdentifier] = true; + if (!Array.isArray(versions)) { + features = versions; + versions = []; + } + + var svc = inherit(AWS.Service, features || {}); + + if (typeof serviceIdentifier === 'string') { + AWS.Service.addVersions(svc, versions); + + var identifier = svc.serviceIdentifier || serviceIdentifier; + svc.serviceIdentifier = identifier; + } else { // defineService called with an API + svc.prototype.api = serviceIdentifier; + AWS.Service.defineMethods(svc); + } + + return svc; + }, - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } + /** + * @api private + */ + addVersions: function addVersions(svc, versions) { + if (!Array.isArray(versions)) versions = [versions]; - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } + svc.services = svc.services || {}; + for (var i = 0; i < versions.length; i++) { + if (svc.services[versions[i]] === undefined) { + svc.services[versions[i]] = null; + } + } - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } + svc.apiVersions = Object.keys(svc.services).sort(); + }, - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } + /** + * @api private + */ + defineServiceApi: function defineServiceApi(superclass, version, apiConfig) { + var svc = inherit(superclass, { + serviceIdentifier: superclass.serviceIdentifier + }); - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } + function setApi(api) { + if (api.isApi) { + svc.prototype.api = api; + } else { + svc.prototype.api = new Api(api); + } + } - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + if (typeof version === 'string') { + if (apiConfig) { + setApi(apiConfig); + } else { + try { + setApi(AWS.apiLoader(superclass.serviceIdentifier, version)); + } catch (err) { + throw AWS.util.error(err, { + message: 'Could not find API configuration ' + + superclass.serviceIdentifier + '-' + version + }); + } + } + if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) { + superclass.apiVersions = superclass.apiVersions.concat(version).sort(); + } + superclass.services[version] = svc; } else { - return ctx.stylize('[Object]', 'special'); + setApi(version); } - } - ctx.seen.push(value); + AWS.Service.defineMethods(svc); + return svc; + }, - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } + /** + * @api private + */ + hasService: function(identifier) { + return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier); + }, - ctx.seen.pop(); + /** + * @api private + */ + _serviceMap: {} + }); - return reduceToSingleString(output, base, braces); - } + module.exports = AWS.Service; - function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); + /***/ }), + /* 188 */ + /***/ (function(module, exports, __webpack_require__) { + + var util = __webpack_require__(2); + var regionConfig = __webpack_require__(189); + + function generateRegionPrefix(region) { + if (!region) return null; + + var parts = region.split('-'); + if (parts.length < 3) return null; + return parts.slice(0, parts.length - 2).join('-') + '-*'; } + function derivedKeys(service) { + var region = service.config.region; + var regionPrefix = generateRegionPrefix(region); + var endpointPrefix = service.api.endpointPrefix; - function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; + return [ + [region, endpointPrefix], + [regionPrefix, endpointPrefix], + [region, '*'], + [regionPrefix, '*'], + ['*', endpointPrefix], + ['*', '*'] + ].map(function(item) { + return item[0] && item[1] ? item.join('/') : null; + }); } + function applyConfig(service, config) { + util.each(config, function(key, value) { + if (key === 'globalEndpoint') return; + if (service.config[key] === undefined || service.config[key] === null) { + service.config[key] = value; + } + }); + } - function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); + function configureEndpoint(service) { + var keys = derivedKeys(service); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!key) continue; + + if (Object.prototype.hasOwnProperty.call(regionConfig.rules, key)) { + var config = regionConfig.rules[key]; + if (typeof config === 'string') { + config = regionConfig.patterns[config]; + } + + // set dualstack endpoint + if (service.config.useDualstack && util.isDualstackAvailable(service)) { + config = util.copy(config); + config.endpoint = '{service}.dualstack.{region}.amazonaws.com'; + } + + // set global endpoint + service.isGlobalEndpoint = !!config.globalEndpoint; + + // signature version + if (!config.signatureVersion) config.signatureVersion = 'v4'; + + // merge config + applyConfig(service, config); + return; } } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; } + module.exports = configureEndpoint; - function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); + + /***/ }), + /* 189 */ + /***/ (function(module, exports) { + + module.exports = {"rules":{"*/*":{"endpoint":"{service}.{region}.amazonaws.com"},"cn-*/*":{"endpoint":"{service}.{region}.amazonaws.com.cn"},"*/budgets":"globalSSL","*/cloudfront":"globalSSL","*/iam":"globalSSL","*/sts":"globalSSL","*/importexport":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2","globalEndpoint":true},"*/route53":{"endpoint":"https://{service}.amazonaws.com","signatureVersion":"v3https","globalEndpoint":true},"*/waf":"globalSSL","us-gov-*/iam":"globalGovCloud","us-gov-*/sts":{"endpoint":"{service}.{region}.amazonaws.com"},"us-gov-west-1/s3":"s3signature","us-west-1/s3":"s3signature","us-west-2/s3":"s3signature","eu-west-1/s3":"s3signature","ap-southeast-1/s3":"s3signature","ap-southeast-2/s3":"s3signature","ap-northeast-1/s3":"s3signature","sa-east-1/s3":"s3signature","us-east-1/s3":{"endpoint":"{service}.amazonaws.com","signatureVersion":"s3"},"us-east-1/sdb":{"endpoint":"{service}.amazonaws.com","signatureVersion":"v2"},"*/sdb":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"v2"}},"patterns":{"globalSSL":{"endpoint":"https://{service}.amazonaws.com","globalEndpoint":true},"globalGovCloud":{"endpoint":"{service}.us-gov.amazonaws.com"},"s3signature":{"endpoint":"{service}.{region}.amazonaws.com","signatureVersion":"s3"}}} + + /***/ }), + /* 190 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + __webpack_require__(191); + __webpack_require__(192); + var PromisesDependency; + + /** + * The main configuration class used by all service objects to set + * the region, credentials, and other options for requests. + * + * By default, credentials and region settings are left unconfigured. + * This should be configured by the application before using any + * AWS service APIs. + * + * In order to set global configuration options, properties should + * be assigned to the global {AWS.config} object. + * + * @see AWS.config + * + * @!group General Configuration Options + * + * @!attribute credentials + * @return [AWS.Credentials] the AWS credentials to sign requests with. + * + * @!attribute region + * @example Set the global region setting to us-west-2 + * AWS.config.update({region: 'us-west-2'}); + * @return [AWS.Credentials] The region to send service requests to. + * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html + * A list of available endpoints for each AWS service + * + * @!attribute maxRetries + * @return [Integer] the maximum amount of retries to perform for a + * service request. By default this value is calculated by the specific + * service object that the request is being made to. + * + * @!attribute maxRedirects + * @return [Integer] the maximum amount of redirects to follow for a + * service request. Defaults to 10. + * + * @!attribute paramValidation + * @return [Boolean|map] whether input parameters should be validated against + * the operation description before sending the request. Defaults to true. + * Pass a map to enable any of the following specific validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + * + * @!attribute computeChecksums + * @return [Boolean] whether to compute checksums for payload bodies when + * the service accepts it (currently supported in S3 only). + * + * @!attribute convertResponseTypes + * @return [Boolean] whether types are converted when parsing response data. + * Currently only supported for JSON based services. Turning this off may + * improve performance on large response payloads. Defaults to `true`. + * + * @!attribute correctClockSkew + * @return [Boolean] whether to apply a clock skew correction and retry + * requests that fail because of an skewed client clock. Defaults to + * `false`. + * + * @!attribute sslEnabled + * @return [Boolean] whether SSL is enabled for requests + * + * @!attribute s3ForcePathStyle + * @return [Boolean] whether to force path style URLs for S3 objects + * + * @!attribute s3BucketEndpoint + * @note Setting this configuration option requires an `endpoint` to be + * provided explicitly to the service constructor. + * @return [Boolean] whether the provided endpoint addresses an individual + * bucket (false if it addresses the root API endpoint). + * + * @!attribute s3DisableBodySigning + * @return [Boolean] whether to disable S3 body signing when using signature version `v4`. + * Body signing can only be disabled when using https. Defaults to `true`. + * + * @!attribute useAccelerateEndpoint + * @note This configuration option is only compatible with S3 while accessing + * dns-compatible buckets. + * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service. + * Defaults to `false`. + * + * @!attribute retryDelayOptions + * @example Set the base retry delay for all services to 300 ms + * AWS.config.update({retryDelayOptions: {base: 300}}); + * // Delays with maxRetries = 3: 300, 600, 1200 + * @example Set a custom backoff function to provide delay values on retries + * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount) { + * // returns delay in ms + * }}}); + * @return [map] A set of options to configure the retry delay on retryable errors. + * Currently supported options are: + * + * * **base** [Integer] — The base number of milliseconds to use in the + * exponential backoff for operation retries. Defaults to 100 ms for all services except + * DynamoDB, where it defaults to 50ms. + * * **customBackoff ** [function] — A custom function that accepts a retry count + * and returns the amount of time to delay in milliseconds. The `base` option will be + * ignored if this option is supplied. + * + * @!attribute httpOptions + * @return [map] A set of options to pass to the low-level HTTP request. + * Currently supported options are: + * + * * **proxy** [String] — the URL to proxy requests through + * * **agent** [http.Agent, https.Agent] — the Agent object to perform + * HTTP requests with. Used for connection pooling. Defaults to the global + * agent (`http.globalAgent`) for non-SSL connections. Note that for + * SSL connections, a special Agent object is used in order to enable + * peer certificate verification. This feature is only supported in the + * Node.js environment. + * * **connectTimeout** [Integer] — Sets the socket to timeout after + * failing to establish a connection with the server after + * `connectTimeout` milliseconds. This timeout has no effect once a socket + * connection has been established. + * * **timeout** [Integer] — Sets the socket to timeout after timeout + * milliseconds of inactivity on the socket. Defaults to two minutes + * (120000) + * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous + * HTTP requests. Used in the browser environment only. Set to false to + * send requests synchronously. Defaults to true (async on). + * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" + * property of an XMLHttpRequest object. Used in the browser environment + * only. Defaults to false. + * @!attribute logger + * @return [#write,#log] an object that responds to .write() (like a stream) + * or .log() (like the console object) in order to log information about + * requests + * + * @!attribute systemClockOffset + * @return [Number] an offset value in milliseconds to apply to all signing + * times. Use this to compensate for clock skew when your system may be + * out of sync with the service time. Note that this configuration option + * can only be applied to the global `AWS.config` object and cannot be + * overridden in service-specific configuration. Defaults to 0 milliseconds. + * + * @!attribute signatureVersion + * @return [String] the signature version to sign requests with (overriding + * the API configuration). Possible values are: 'v2', 'v3', 'v4'. + * + * @!attribute signatureCache + * @return [Boolean] whether the signature to sign requests with (overriding + * the API configuration) is cached. Only applies to the signature version 'v4'. + * Defaults to `true`. + */ + AWS.Config = AWS.util.inherit({ + /** + * @!endgroup + */ + + /** + * Creates a new configuration object. This is the object that passes + * option data along to service requests, including credentials, security, + * region information, and some service specific settings. + * + * @example Creating a new configuration object with credentials and region + * var config = new AWS.Config({ + * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2' + * }); + * @option options accessKeyId [String] your AWS access key ID. + * @option options secretAccessKey [String] your AWS secret access key. + * @option options sessionToken [AWS.Credentials] the optional AWS + * session token to sign requests with. + * @option options credentials [AWS.Credentials] the AWS credentials + * to sign requests with. You can either specify this object, or + * specify the accessKeyId and secretAccessKey options directly. + * @option options credentialProvider [AWS.CredentialProviderChain] the + * provider chain used to resolve credentials if no static `credentials` + * property is set. + * @option options region [String] the region to send service requests to. + * See {region} for more information. + * @option options maxRetries [Integer] the maximum amount of retries to + * attempt with a request. See {maxRetries} for more information. + * @option options maxRedirects [Integer] the maximum amount of redirects to + * follow with a request. See {maxRedirects} for more information. + * @option options sslEnabled [Boolean] whether to enable SSL for + * requests. + * @option options paramValidation [Boolean|map] whether input parameters + * should be validated against the operation description before sending + * the request. Defaults to true. Pass a map to enable any of the + * following specific validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + * @option options computeChecksums [Boolean] whether to compute checksums + * for payload bodies when the service accepts it (currently supported + * in S3 only) + * @option options convertResponseTypes [Boolean] whether types are converted + * when parsing response data. Currently only supported for JSON based + * services. Turning this off may improve performance on large response + * payloads. Defaults to `true`. + * @option options correctClockSkew [Boolean] whether to apply a clock skew + * correction and retry requests that fail because of an skewed client + * clock. Defaults to `false`. + * @option options s3ForcePathStyle [Boolean] whether to force path + * style URLs for S3 objects. + * @option options s3BucketEndpoint [Boolean] whether the provided endpoint + * addresses an individual bucket (false if it addresses the root API + * endpoint). Note that setting this configuration option requires an + * `endpoint` to be provided explicitly to the service constructor. + * @option options s3DisableBodySigning [Boolean] whether S3 body signing + * should be disabled when using signature version `v4`. Body signing + * can only be disabled when using https. Defaults to `true`. + * + * @option options retryDelayOptions [map] A set of options to configure + * the retry delay on retryable errors. Currently supported options are: + * + * * **base** [Integer] — The base number of milliseconds to use in the + * exponential backoff for operation retries. Defaults to 100 ms for all + * services except DynamoDB, where it defaults to 50ms. + * * **customBackoff ** [function] — A custom function that accepts a retry count + * and returns the amount of time to delay in milliseconds. The `base` option will be + * ignored if this option is supplied. + * @option options httpOptions [map] A set of options to pass to the low-level + * HTTP request. Currently supported options are: + * + * * **proxy** [String] — the URL to proxy requests through + * * **agent** [http.Agent, https.Agent] — the Agent object to perform + * HTTP requests with. Used for connection pooling. Defaults to the global + * agent (`http.globalAgent`) for non-SSL connections. Note that for + * SSL connections, a special Agent object is used in order to enable + * peer certificate verification. This feature is only available in the + * Node.js environment. + * * **connectTimeout** [Integer] — Sets the socket to timeout after + * failing to establish a connection with the server after + * `connectTimeout` milliseconds. This timeout has no effect once a socket + * connection has been established. + * * **timeout** [Integer] — Sets the socket to timeout after timeout + * milliseconds of inactivity on the socket. Defaults to two minutes + * (120000). + * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous + * HTTP requests. Used in the browser environment only. Set to false to + * send requests synchronously. Defaults to true (async on). + * * **xhrWithCredentials** [Boolean] — Sets the "withCredentials" + * property of an XMLHttpRequest object. Used in the browser environment + * only. Defaults to false. + * @option options apiVersion [String, Date] a String in YYYY-MM-DD format + * (or a date) that represents the latest possible API version that can be + * used in all services (unless overridden by `apiVersions`). Specify + * 'latest' to use the latest possible version. + * @option options apiVersions [map] a map of service + * identifiers (the lowercase service class name) with the API version to + * use when instantiating a service. Specify 'latest' for each individual + * that can use the latest available version. + * @option options logger [#write,#log] an object that responds to .write() + * (like a stream) or .log() (like the console object) in order to log + * information about requests + * @option options systemClockOffset [Number] an offset value in milliseconds + * to apply to all signing times. Use this to compensate for clock skew + * when your system may be out of sync with the service time. Note that + * this configuration option can only be applied to the global `AWS.config` + * object and cannot be overridden in service-specific configuration. + * Defaults to 0 milliseconds. + * @option options signatureVersion [String] the signature version to sign + * requests with (overriding the API configuration). Possible values are: + * 'v2', 'v3', 'v4'. + * @option options signatureCache [Boolean] whether the signature to sign + * requests with (overriding the API configuration) is cached. Only applies + * to the signature version 'v4'. Defaults to `true`. + * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32 + * checksum of HTTP response bodies returned by DynamoDB. Default: `true`. + */ + constructor: function Config(options) { + if (options === undefined) options = {}; + options = this.extractCredentials(options); + + AWS.util.each.call(this, this.keys, function (key, value) { + this.set(key, options[key], value); + }); + }, + + /** + * @!group Managing Credentials + */ + + /** + * Loads credentials from the configuration object. This is used internally + * by the SDK to ensure that refreshable {Credentials} objects are properly + * refreshed and loaded when sending a request. If you want to ensure that + * your credentials are loaded prior to a request, you can use this method + * directly to provide accurate credential data stored in the object. + * + * @note If you configure the SDK with static or environment credentials, + * the credential data should already be present in {credentials} attribute. + * This method is primarily necessary to load credentials from asynchronous + * sources, or sources that can refresh credentials periodically. + * @example Getting your access key + * AWS.config.getCredentials(function(err) { + * if (err) console.log(err.stack); // credentials not loaded + * else console.log("Access Key:", AWS.config.credentials.accessKeyId); + * }) + * @callback callback function(err) + * Called when the {credentials} have been properly set on the configuration + * object. + * + * @param err [Error] if this is set, credentials were not successfully + * loaded and this error provides information why. + * @see credentials + * @see Credentials + */ + getCredentials: function getCredentials(callback) { + var self = this; + + function finish(err) { + callback(err, err ? null : self.credentials); + } + + function credError(msg, err) { + return new AWS.util.error(err || new Error(), { + code: 'CredentialsError', + message: msg, + name: 'CredentialsError' + }); } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); + + function getAsyncCredentials() { + self.credentials.get(function(err) { + if (err) { + var msg = 'Could not load credentials from ' + + self.credentials.constructor.name; + err = credError(msg, err); } - } - } else { - str = ctx.stylize('[Circular]', 'special'); + finish(err); + }); } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; + + function getStaticCredentials() { + var err = null; + if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) { + err = credError('Missing credentials'); + } + finish(err); } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); + + if (self.credentials) { + if (typeof self.credentials.get === 'function') { + getAsyncCredentials(); + } else { // static credentials + getStaticCredentials(); + } + } else if (self.credentialProvider) { + self.credentialProvider.resolve(function(err, creds) { + if (err) { + err = credError('Could not load credentials from any providers', err); + } + self.credentials = creds; + finish(err); + }); } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); + finish(credError('No credentials to load')); } - } + }, - return name + ': ' + str; - } + /** + * @!group Loading and Setting Configuration Options + */ + + /** + * @overload update(options, allowUnknownKeys = false) + * Updates the current configuration object with new options. + * + * @example Update maxRetries property of a configuration object + * config.update({maxRetries: 10}); + * @param [Object] options a map of option keys and values. + * @param [Boolean] allowUnknownKeys whether unknown keys can be set on + * the configuration object. Defaults to `false`. + * @see constructor + */ + update: function update(options, allowUnknownKeys) { + allowUnknownKeys = allowUnknownKeys || false; + options = this.extractCredentials(options); + AWS.util.each.call(this, options, function (key, value) { + if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) || + AWS.Service.hasService(key)) { + this.set(key, value); + } + }); + }, + /** + * Loads configuration data from a JSON file into this config object. + * @note Loading configuration will reset all existing configuration + * on the object. + * @!macro nobrowser + * @param path [String] the path relative to your process's current + * working directory to load configuration from. + * @return [AWS.Config] the same configuration object + */ + loadFromPath: function loadFromPath(path) { + this.clear(); + + var options = JSON.parse(AWS.util.readFileSync(path)); + var fileSystemCreds = new AWS.FileSystemCredentials(path); + var chain = new AWS.CredentialProviderChain(); + chain.providers.unshift(fileSystemCreds); + chain.resolve(function (err, creds) { + if (err) throw err; + else options.credentials = creds; + }); - function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); + this.constructor(options); - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } + return this; + }, - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } + /** + * Clears configuration data on this object + * + * @api private + */ + clear: function clear() { + /*jshint forin:false */ + AWS.util.each.call(this, this.keys, function (key) { + delete this[key]; + }); + // reset credential provider + this.set('credentials', undefined); + this.set('credentialProvider', undefined); + }, - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { - return Array.isArray(ar); - } - exports.isArray = isArray; + /** + * Sets a property on the configuration object, allowing for a + * default value + * @api private + */ + set: function set(property, value, defaultValue) { + if (value === undefined) { + if (defaultValue === undefined) { + defaultValue = this.keys[property]; + } + if (typeof defaultValue === 'function') { + this[property] = defaultValue.call(this); + } else { + this[property] = defaultValue; + } + } else if (property === 'httpOptions' && this[property]) { + // deep merge httpOptions + this[property] = AWS.util.merge(this[property], value); + } else { + this[property] = value; + } + }, - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - exports.isBoolean = isBoolean; + /** + * All of the keys with their default values. + * + * @constant + * @api private + */ + keys: { + credentials: null, + credentialProvider: null, + region: null, + logger: null, + apiVersions: {}, + apiVersion: null, + endpoint: undefined, + httpOptions: { + timeout: 120000 + }, + maxRetries: undefined, + maxRedirects: 10, + paramValidation: true, + sslEnabled: true, + s3ForcePathStyle: false, + s3BucketEndpoint: false, + s3DisableBodySigning: true, + computeChecksums: true, + convertResponseTypes: true, + correctClockSkew: false, + customUserAgent: null, + dynamoDbCrc32: true, + systemClockOffset: 0, + signatureVersion: null, + signatureCache: true, + retryDelayOptions: {}, + useAccelerateEndpoint: false + }, - function isNull(arg) { - return arg === null; - } - exports.isNull = isNull; + /** + * Extracts accessKeyId, secretAccessKey and sessionToken + * from a configuration hash. + * + * @api private + */ + extractCredentials: function extractCredentials(options) { + if (options.accessKeyId && options.secretAccessKey) { + options = AWS.util.copy(options); + options.credentials = new AWS.Credentials(options); + } + return options; + }, - function isNullOrUndefined(arg) { - return arg == null; - } - exports.isNullOrUndefined = isNullOrUndefined; + /** + * Sets the promise dependency the SDK will use wherever Promises are returned. + * Passing `null` will force the SDK to use native Promises if they are available. + * If native Promises are not available, passing `null` will have no effect. + * @param [Constructor] dep A reference to a Promise constructor + */ + setPromisesDependency: function setPromisesDependency(dep) { + PromisesDependency = dep; + // if null was passed in, we should try to use native promises + if (dep === null && typeof Promise === 'function') { + PromisesDependency = Promise; + } + var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain]; + if (AWS.S3 && AWS.S3.ManagedUpload) constructors.push(AWS.S3.ManagedUpload); + AWS.util.addPromises(constructors, PromisesDependency); + }, - function isNumber(arg) { - return typeof arg === 'number'; - } - exports.isNumber = isNumber; + /** + * Gets the promise dependency set by `AWS.config.setPromisesDependency`. + */ + getPromisesDependency: function getPromisesDependency() { + return PromisesDependency; + } + }); - function isString(arg) { - return typeof arg === 'string'; - } - exports.isString = isString; + /** + * @return [AWS.Config] The global configuration object singleton instance + * @readonly + * @see AWS.Config + */ + AWS.config = new AWS.Config(); - function isSymbol(arg) { - return typeof arg === 'symbol'; - } - exports.isSymbol = isSymbol; - function isUndefined(arg) { - return arg === void 0; - } - exports.isUndefined = isUndefined; + /***/ }), + /* 191 */ + /***/ (function(module, exports, __webpack_require__) { - function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; - } - exports.isRegExp = isRegExp; + var AWS = __webpack_require__(1); + + /** + * Represents your AWS security credentials, specifically the + * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. + * Creating a `Credentials` object allows you to pass around your + * security information to configuration and service objects. + * + * Note that this class typically does not need to be constructed manually, + * as the {AWS.Config} and {AWS.Service} classes both accept simple + * options hashes with the three keys. These structures will be converted + * into Credentials objects automatically. + * + * ## Expiring and Refreshing Credentials + * + * Occasionally credentials can expire in the middle of a long-running + * application. In this case, the SDK will automatically attempt to + * refresh the credentials from the storage location if the Credentials + * class implements the {refresh} method. + * + * If you are implementing a credential storage location, you + * will want to create a subclass of the `Credentials` class and + * override the {refresh} method. This method allows credentials to be + * retrieved from the backing store, be it a file system, database, or + * some network storage. The method should reset the credential attributes + * on the object. + * + * @!attribute expired + * @return [Boolean] whether the credentials have been expired and + * require a refresh. Used in conjunction with {expireTime}. + * @!attribute expireTime + * @return [Date] a time when credentials should be considered expired. Used + * in conjunction with {expired}. + * @!attribute accessKeyId + * @return [String] the AWS access key ID + * @!attribute secretAccessKey + * @return [String] the AWS secret access key + * @!attribute sessionToken + * @return [String] an optional AWS session token + */ + AWS.Credentials = AWS.util.inherit({ + /** + * A credentials object can be created using positional arguments or an options + * hash. + * + * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) + * Creates a Credentials object with a given set of credential information + * as positional arguments. + * @param accessKeyId [String] the AWS access key ID + * @param secretAccessKey [String] the AWS secret access key + * @param sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials('akid', 'secret', 'session'); + * @overload AWS.Credentials(options) + * Creates a Credentials object with a given set of credential information + * as an options hash. + * @option options accessKeyId [String] the AWS access key ID + * @option options secretAccessKey [String] the AWS secret access key + * @option options sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials({ + * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' + * }); + */ + constructor: function Credentials() { + // hide secretAccessKey from being displayed with util.inspect + AWS.util.hideProperties(this, ['secretAccessKey']); + + this.expired = false; + this.expireTime = null; + if (arguments.length === 1 && typeof arguments[0] === 'object') { + var creds = arguments[0].credentials || arguments[0]; + this.accessKeyId = creds.accessKeyId; + this.secretAccessKey = creds.secretAccessKey; + this.sessionToken = creds.sessionToken; + } else { + this.accessKeyId = arguments[0]; + this.secretAccessKey = arguments[1]; + this.sessionToken = arguments[2]; + } + }, - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - exports.isObject = isObject; + /** + * @return [Integer] the number of seconds before {expireTime} during which + * the credentials will be considered expired. + */ + expiryWindow: 15, + + /** + * @return [Boolean] whether the credentials object should call {refresh} + * @note Subclasses should override this method to provide custom refresh + * logic. + */ + needsRefresh: function needsRefresh() { + var currentTime = AWS.util.date.getDate().getTime(); + var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); + + if (this.expireTime && adjustedTime > this.expireTime) { + return true; + } else { + return this.expired || !this.accessKeyId || !this.secretAccessKey; + } + }, - function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; - } - exports.isDate = isDate; + /** + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * @callback callback function(err) + * When this callback is called with no error, it means either credentials + * do not need to be refreshed or refreshed credentials information has + * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, + * and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + */ + get: function get(callback) { + var self = this; + if (this.needsRefresh()) { + this.refresh(function(err) { + if (!err) self.expired = false; // reset expired flag + if (callback) callback(err); + }); + } else if (callback) { + callback(); + } + }, - function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); - } - exports.isError = isError; + /** + * @!method getPromise() + * Returns a 'thenable' promise. + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means either credentials do not need to be refreshed or refreshed + * credentials information has been loaded into the object (as the + * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled + * @return [Promise] A promise that represents the state of the `get` call. + * @example Calling the `getPromise` method. + * var promise = credProvider.getPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * @!method refreshPromise() + * Returns a 'thenable' promise. + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means refreshed credentials information has been loaded into the object + * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled + * @return [Promise] A promise that represents the state of the `refresh` call. + * @example Calling the `refreshPromise` method. + * var promise = credProvider.refreshPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * @callback callback function(err) + * When this callback is called with no error, it means refreshed + * credentials information has been loaded into the object (as the + * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @note Subclasses should override this class to reset the + * {accessKeyId}, {secretAccessKey} and optional {sessionToken} + * on the credentials object and then call the callback with + * any error information. + * @see get + */ + refresh: function refresh(callback) { + this.expired = false; + callback(); + } + }); - function isFunction(arg) { - return typeof arg === 'function'; - } - exports.isFunction = isFunction; + /** + * @api private + */ + AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); + this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); + }; - function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - } - exports.isPrimitive = isPrimitive; + /** + * @api private + */ + AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.getPromise; + delete this.prototype.refreshPromise; + }; - exports.isBuffer = __webpack_require__(197); + AWS.util.addPromises(AWS.Credentials); - function objectToString(o) { - return Object.prototype.toString.call(o); - } + /***/ }), + /* 192 */ + /***/ (function(module, exports, __webpack_require__) { - function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); - } + var AWS = __webpack_require__(1); + /** + * Creates a credential provider chain that searches for AWS credentials + * in a list of credential providers specified by the {providers} property. + * + * By default, the chain will use the {defaultProviders} to resolve credentials. + * These providers will look in the environment using the + * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. + * + * ## Setting Providers + * + * Each provider in the {providers} list should be a function that returns + * a {AWS.Credentials} object, or a hardcoded credentials object. The function + * form allows for delayed execution of the credential construction. + * + * ## Resolving Credentials from a Chain + * + * Call {resolve} to return the first valid credential object that can be + * loaded by the provider chain. + * + * For example, to resolve a chain with a custom provider that checks a file + * on disk after the set of {defaultProviders}: + * + * ```javascript + * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); + * var chain = new AWS.CredentialProviderChain(); + * chain.providers.push(diskProvider); + * chain.resolve(); + * ``` + * + * The above code will return the `diskProvider` object if the + * file contains credentials and the `defaultProviders` do not contain + * any credential settings. + * + * @!attribute providers + * @return [Array] + * a list of credentials objects or functions that return credentials + * objects. If the provider is a function, the function will be + * executed lazily when the provider needs to be checked for valid + * credentials. By default, this object will be set to the + * {defaultProviders}. + * @see defaultProviders + */ + AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { - var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; + /** + * Creates a new CredentialProviderChain with a default set of providers + * specified by {defaultProviders}. + */ + constructor: function CredentialProviderChain(providers) { + if (providers) { + this.providers = providers; + } else { + this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); + } + }, - // 26 Feb 16:19:34 - function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); - } + /** + * @!method resolvePromise() + * Returns a 'thenable' promise. + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(credentials) + * Called if the promise is fulfilled and the provider resolves the chain + * to a credentials object + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param err [Error] the error object returned if no credentials are found. + * @return [Promise] A promise that represents the state of the `resolve` method call. + * @example Calling the `resolvePromise` method. + * var promise = chain.resolvePromise(); + * promise.then(function(credentials) { ... }, function(err) { ... }); + */ + + /** + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * @callback callback function(err, credentials) + * Called when the provider resolves the chain to a credentials object + * or null if no credentials can be found. + * + * @param err [Error] the error object returned if no credentials are + * found. + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @return [AWS.CredentialProviderChain] the provider, for chaining. + */ + resolve: function resolve(callback) { + if (this.providers.length === 0) { + callback(new Error('No providers')); + return this; + } + var index = 0; + var providers = this.providers.slice(0); - // log is just a thin wrapper to console.log that prepends a timestamp - exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); - }; + function resolveNext(err, creds) { + if ((!err && creds) || index === providers.length) { + callback(err, creds); + return; + } + + var provider = providers[index++]; + if (typeof provider === 'function') { + creds = provider.call(); + } else { + creds = provider; + } + if (creds.get) { + creds.get(function(getErr) { + resolveNext(getErr, getErr ? null : creds); + }); + } else { + resolveNext(null, creds); + } + } + + resolveNext(); + return this; + } + }); /** - * Inherit the prototype methods from one constructor into another. + * The default set of providers used by a vanilla CredentialProviderChain. * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). + * In the browser: * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [] + * ``` + * + * In Node.js: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [ + * function () { return new AWS.EnvironmentCredentials('AWS'); }, + * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + * function () { return new AWS.SharedIniFileCredentials(); }, + * function () { + * // if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set + * return new AWS.ECSCredentials(); + * // else + * return new AWS.EC2MetadataCredentials(); + * } + * ] + * ``` */ - exports.inherits = __webpack_require__(198); + AWS.CredentialProviderChain.defaultProviders = []; - exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; + /** + * @api private + */ + AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); + }; - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; + /** + * @api private + */ + AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.resolvePromise; }; - function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); - } + AWS.util.addPromises(AWS.CredentialProviderChain); - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(3))) /***/ }), - /* 197 */ - /***/ (function(module, exports) { + /* 193 */ + /***/ (function(module, exports, __webpack_require__) { - module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; - } + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * The endpoint that a service will talk to, for example, + * `'https://ec2.ap-southeast-1.amazonaws.com'`. If + * you need to override an endpoint for a service, you can + * set the endpoint on a service by passing the endpoint + * object with the `endpoint` option key: + * + * ```javascript + * var ep = new AWS.Endpoint('awsproxy.example.com'); + * var s3 = new AWS.S3({endpoint: ep}); + * s3.service.endpoint.hostname == 'awsproxy.example.com' + * ``` + * + * Note that if you do not specify a protocol, the protocol will + * be selected based on your current {AWS.config} configuration. + * + * @!attribute protocol + * @return [String] the protocol (http or https) of the endpoint + * URL + * @!attribute hostname + * @return [String] the host portion of the endpoint, e.g., + * example.com + * @!attribute host + * @return [String] the host portion of the endpoint including + * the port, e.g., example.com:80 + * @!attribute port + * @return [Integer] the port of the endpoint + * @!attribute href + * @return [String] the full URL of the endpoint + */ + AWS.Endpoint = inherit({ + + /** + * @overload Endpoint(endpoint) + * Constructs a new endpoint given an endpoint URL. If the + * URL omits a protocol (http or https), the default protocol + * set in the global {AWS.config} will be used. + * @param endpoint [String] the URL to construct an endpoint from + */ + constructor: function Endpoint(endpoint, config) { + AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); + + if (typeof endpoint === 'undefined' || endpoint === null) { + throw new Error('Invalid endpoint: ' + endpoint); + } else if (typeof endpoint !== 'string') { + return AWS.util.copy(endpoint); + } + + if (!endpoint.match(/^http/)) { + var useSSL = config && config.sslEnabled !== undefined ? + config.sslEnabled : AWS.config.sslEnabled; + endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; + } + + AWS.util.update(this, AWS.util.urlParse(endpoint)); + + // Ensure the port property is set as an integer + if (this.port) { + this.port = parseInt(this.port, 10); + } else { + this.port = this.protocol === 'https:' ? 443 : 80; + } + } - /***/ }), - /* 198 */ - /***/ (function(module, exports) { + }); - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor + /** + * The low level HTTP request object, encapsulating all HTTP header + * and body data sent by a service request. + * + * @!attribute method + * @return [String] the HTTP method of the request + * @!attribute path + * @return [String] the path portion of the URI, e.g., + * "/list/?start=5&num=10" + * @!attribute headers + * @return [map] + * a map of header keys and their respective values + * @!attribute body + * @return [String] the request body payload + * @!attribute endpoint + * @return [AWS.Endpoint] the endpoint for the request + * @!attribute region + * @api private + * @return [String] the region, for signing purposes only. + */ + AWS.HttpRequest = inherit({ + + /** + * @api private + */ + constructor: function HttpRequest(endpoint, region) { + endpoint = new AWS.Endpoint(endpoint); + this.method = 'POST'; + this.path = endpoint.path || '/'; + this.headers = {}; + this.body = ''; + this.endpoint = endpoint; + this.region = region; + this._userAgent = ''; + this.setUserAgent(); + }, + + /** + * @api private + */ + setUserAgent: function setUserAgent() { + this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); + }, + + getUserAgentHeaderName: function getUserAgentHeaderName() { + var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; + return prefix + 'User-Agent'; + }, + + /** + * @api private + */ + appendToUserAgent: function appendToUserAgent(agentPartial) { + if (typeof agentPartial === 'string' && agentPartial) { + this._userAgent += ' ' + agentPartial; + } + this.headers[this.getUserAgentHeaderName()] = this._userAgent; + }, + + /** + * @api private + */ + getUserAgent: function getUserAgent() { + return this._userAgent; + }, + + /** + * @return [String] the part of the {path} excluding the + * query string + */ + pathname: function pathname() { + return this.path.split('?', 1)[0]; + }, + + /** + * @return [String] the query string portion of the {path} + */ + search: function search() { + var query = this.path.split('?', 2)[1]; + if (query) { + query = AWS.util.queryStringParse(query); + return AWS.util.queryParamsToString(query); + } + return ''; } - } + }); - /***/ }), - /* 199 */ - /***/ (function(module, exports, __webpack_require__) { + /** + * The low level HTTP response object, encapsulating all HTTP header + * and body data returned from the request. + * + * @!attribute statusCode + * @return [Integer] the HTTP status code of the response (e.g., 200, 404) + * @!attribute headers + * @return [map] + * a map of response header keys and their respective values + * @!attribute body + * @return [String] the response body payload + * @!attribute [r] streaming + * @return [Boolean] whether this response is being streamed at a low-level. + * Defaults to `false` (buffered reads). Do not modify this manually, use + * {createUnbufferedStream} to convert the stream to unbuffered mode + * instead. + */ + AWS.HttpResponse = inherit({ + + /** + * @api private + */ + constructor: function HttpResponse() { + this.statusCode = undefined; + this.headers = {}; + this.body = undefined; + this.streaming = false; + this.stream = null; + }, - /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(1); - var AcceptorStateMachine = __webpack_require__(200); - var inherit = AWS.util.inherit; - var domain = AWS.util.domain; - var jmespath = __webpack_require__(201); - - /** - * @api private - */ - var hardErrorStates = {success: 1, error: 1, complete: 1}; - - function isTerminalState(machine) { - return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState); - } - - var fsm = new AcceptorStateMachine(); - fsm.setupStates = function() { - var transition = function(_, done) { - var self = this; - self._haltHandlersOnError = false; - - self.emit(self._asm.currentState, function(err) { - if (err) { - if (isTerminalState(self)) { - if (domain && self.domain instanceof domain.Domain) { - err.domainEmitter = self; - err.domain = self.domain; - err.domainThrown = false; - self.domain.emit('error', err); - } else { - throw err; - } - } else { - self.response.error = err; - done(err); - } - } else { - done(self.response.error); - } - }); - - }; - - this.addState('validate', 'build', 'error', transition); - this.addState('build', 'afterBuild', 'restart', transition); - this.addState('afterBuild', 'sign', 'restart', transition); - this.addState('sign', 'send', 'retry', transition); - this.addState('retry', 'afterRetry', 'afterRetry', transition); - this.addState('afterRetry', 'sign', 'error', transition); - this.addState('send', 'validateResponse', 'retry', transition); - this.addState('validateResponse', 'extractData', 'extractError', transition); - this.addState('extractError', 'extractData', 'retry', transition); - this.addState('extractData', 'success', 'retry', transition); - this.addState('restart', 'build', 'error', transition); - this.addState('success', 'complete', 'complete', transition); - this.addState('error', 'complete', 'complete', transition); - this.addState('complete', null, null, transition); - }; - fsm.setupStates(); - - /** - * ## Asynchronous Requests - * - * All requests made through the SDK are asynchronous and use a - * callback interface. Each service method that kicks off a request - * returns an `AWS.Request` object that you can use to register - * callbacks. - * - * For example, the following service method returns the request - * object as "request", which can be used to register callbacks: - * - * ```javascript - * // request is an AWS.Request object - * var request = ec2.describeInstances(); - * - * // register callbacks on request to retrieve response data - * request.on('success', function(response) { - * console.log(response.data); - * }); - * ``` - * - * When a request is ready to be sent, the {send} method should - * be called: - * - * ```javascript - * request.send(); - * ``` - * - * Since registered callbacks may or may not be idempotent, requests should only - * be sent once. To perform the same operation multiple times, you will need to - * create multiple request objects, each with its own registered callbacks. - * - * ## Removing Default Listeners for Events - * - * Request objects are built with default listeners for the various events, - * depending on the service type. In some cases, you may want to remove - * some built-in listeners to customize behaviour. Doing this requires - * access to the built-in listener functions, which are exposed through - * the {AWS.EventListeners.Core} namespace. For instance, you may - * want to customize the HTTP handler used when sending a request. In this - * case, you can remove the built-in listener associated with the 'send' - * event, the {AWS.EventListeners.Core.SEND} listener and add your own. - * - * ## Multiple Callbacks and Chaining - * - * You can register multiple callbacks on any request object. The - * callbacks can be registered for different events, or all for the - * same event. In addition, you can chain callback registration, for - * example: - * - * ```javascript - * request. - * on('success', function(response) { - * console.log("Success!"); - * }). - * on('error', function(response) { - * console.log("Error!"); - * }). - * on('complete', function(response) { - * console.log("Always!"); - * }). - * send(); - * ``` - * - * The above example will print either "Success! Always!", or "Error! Always!", - * depending on whether the request succeeded or not. - * - * @!attribute httpRequest - * @readonly - * @!group HTTP Properties - * @return [AWS.HttpRequest] the raw HTTP request object - * containing request headers and body information - * sent by the service. - * - * @!attribute startTime - * @readonly - * @!group Operation Properties - * @return [Date] the time that the request started - * - * @!group Request Building Events - * - * @!event validate(request) - * Triggered when a request is being validated. Listeners - * should throw an error if the request should not be sent. - * @param request [Request] the request object being sent - * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS - * @see AWS.EventListeners.Core.VALIDATE_REGION - * @example Ensuring that a certain parameter is set before sending a request - * var req = s3.putObject(params); - * req.on('validate', function() { - * if (!req.params.Body.match(/^Hello\s/)) { - * throw new Error('Body must start with "Hello "'); - * } - * }); - * req.send(function(err, data) { ... }); - * - * @!event build(request) - * Triggered when the request payload is being built. Listeners - * should fill the necessary information to send the request - * over HTTP. - * @param (see AWS.Request~validate) - * @example Add a custom HTTP header to a request - * var req = s3.putObject(params); - * req.on('build', function() { - * req.httpRequest.headers['Custom-Header'] = 'value'; - * }); - * req.send(function(err, data) { ... }); - * - * @!event sign(request) - * Triggered when the request is being signed. Listeners should - * add the correct authentication headers and/or adjust the body, - * depending on the authentication mechanism being used. - * @param (see AWS.Request~validate) - * - * @!group Request Sending Events - * - * @!event send(response) - * Triggered when the request is ready to be sent. Listeners - * should call the underlying transport layer to initiate - * the sending of the request. - * @param response [Response] the response object - * @context [Request] the request object that was sent - * @see AWS.EventListeners.Core.SEND - * - * @!event retry(response) - * Triggered when a request failed and might need to be retried or redirected. - * If the response is retryable, the listener should set the - * `response.error.retryable` property to `true`, and optionally set - * `response.error.retryDelay` to the millisecond delay for the next attempt. - * In the case of a redirect, `response.error.redirect` should be set to - * `true` with `retryDelay` set to an optional delay on the next request. - * - * If a listener decides that a request should not be retried, - * it should set both `retryable` and `redirect` to false. - * - * Note that a retryable error will be retried at most - * {AWS.Config.maxRetries} times (based on the service object's config). - * Similarly, a request that is redirected will only redirect at most - * {AWS.Config.maxRedirects} times. - * - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @example Adding a custom retry for a 404 response - * request.on('retry', function(response) { - * // this resource is not yet available, wait 10 seconds to get it again - * if (response.httpResponse.statusCode === 404 && response.error) { - * response.error.retryable = true; // retry this error - * response.error.retryDelay = 10000; // wait 10 seconds - * } - * }); - * - * @!group Data Parsing Events - * - * @!event extractError(response) - * Triggered on all non-2xx requests so that listeners can extract - * error details from the response body. Listeners to this event - * should set the `response.error` property. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event extractData(response) - * Triggered in successful requests to allow listeners to - * de-serialize the response body into `response.data`. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!group Completion Events - * - * @!event success(response) - * Triggered when the request completed successfully. - * `response.data` will contain the response data and - * `response.error` will be null. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event error(error, response) - * Triggered when an error occurs at any point during the - * request. `response.error` will contain details about the error - * that occurred. `response.data` will be null. - * @param error [Error] the error object containing details about - * the error that occurred. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event complete(response) - * Triggered whenever a request cycle completes. `response.error` - * should be checked, since the request may have failed. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!group HTTP Events - * - * @!event httpHeaders(statusCode, headers, response, statusMessage) - * Triggered when headers are sent by the remote server - * @param statusCode [Integer] the HTTP response code - * @param headers [map] the response headers - * @param (see AWS.Request~send) - * @param statusMessage [String] A status message corresponding to the HTTP - * response code - * @context (see AWS.Request~send) - * - * @!event httpData(chunk, response) - * Triggered when data is sent by the remote server - * @param chunk [Buffer] the buffer data containing the next data chunk - * from the server - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @see AWS.EventListeners.Core.HTTP_DATA - * - * @!event httpUploadProgress(progress, response) - * Triggered when the HTTP request has uploaded more data - * @param progress [map] An object containing the `loaded` and `total` bytes - * of the request. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @note This event will not be emitted in Node.js 0.8.x. - * - * @!event httpDownloadProgress(progress, response) - * Triggered when the HTTP request has downloaded more data - * @param progress [map] An object containing the `loaded` and `total` bytes - * of the request. - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * @note This event will not be emitted in Node.js 0.8.x. - * - * @!event httpError(error, response) - * Triggered when the HTTP request failed - * @param error [Error] the error object that was thrown - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @!event httpDone(response) - * Triggered when the server is finished sending data - * @param (see AWS.Request~send) - * @context (see AWS.Request~send) - * - * @see AWS.Response - */ - AWS.Request = inherit({ - - /** - * Creates a request for an operation on a given service with - * a set of input parameters. - * - * @param service [AWS.Service] the service to perform the operation on - * @param operation [String] the operation to perform on the service - * @param params [Object] parameters to send to the operation. - * See the operation's documentation for the format of the - * parameters. - */ - constructor: function Request(service, operation, params) { - var endpoint = service.endpoint; - var region = service.config.region; - var customUserAgent = service.config.customUserAgent; - - // global endpoints sign as us-east-1 - if (service.isGlobalEndpoint) region = 'us-east-1'; - - this.domain = domain && domain.active; - this.service = service; - this.operation = operation; - this.params = params || {}; - this.httpRequest = new AWS.HttpRequest(endpoint, region); - this.httpRequest.appendToUserAgent(customUserAgent); - this.startTime = service.getSkewCorrectedDate(); - - this.response = new AWS.Response(this); - this._asm = new AcceptorStateMachine(fsm.states, 'validate'); - this._haltHandlersOnError = false; - - AWS.SequentialExecutor.call(this); - this.emit = this.emitEvent; - }, - - /** - * @!group Sending a Request - */ - - /** - * @overload send(callback = null) - * Sends the request object. - * - * @callback callback function(err, data) - * If a callback is supplied, it is called when a response is returned - * from the service. - * @context [AWS.Request] the request object being sent. - * @param err [Error] the error object returned from the request. - * Set to `null` if the request is successful. - * @param data [Object] the de-serialized data returned from - * the request. Set to `null` if a request error occurs. - * @example Sending a request with a callback - * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); - * request.send(function(err, data) { console.log(err, data); }); - * @example Sending a request with no callback (using event handlers) - * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); - * request.on('complete', function(response) { ... }); // register a callback - * request.send(); - */ - send: function send(callback) { - if (callback) { - // append to user agent - this.httpRequest.appendToUserAgent('callback'); - this.on('complete', function (resp) { - callback.call(resp, resp.error, resp.data); - }); - } - this.runTo(); - - return this.response; - }, - - /** - * @!method promise() - * Sends the request and returns a 'thenable' promise. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function(data) - * Called if the promise is fulfilled. - * @param data [Object] the de-serialized data returned from the request. - * @callback rejectedCallback function(error) - * Called if the promise is rejected. - * @param error [Error] the error object returned from the request. - * @return [Promise] A promise that represents the state of the request. - * @example Sending a request using promises. - * var request = s3.putObject({Bucket: 'bucket', Key: 'key'}); - * var result = request.promise(); - * result.then(function(data) { ... }, function(error) { ... }); - */ - - /** - * @api private - */ - build: function build(callback) { - return this.runTo('send', callback); - }, - - /** - * @api private - */ - runTo: function runTo(state, done) { - this._asm.runTo(state, done, this); - return this; - }, - - /** - * Aborts a request, emitting the error and complete events. - * - * @!macro nobrowser - * @example Aborting a request after sending - * var params = { - * Bucket: 'bucket', Key: 'key', - * Body: new Buffer(1024 * 1024 * 5) // 5MB payload - * }; - * var request = s3.putObject(params); - * request.send(function (err, data) { - * if (err) console.log("Error:", err.code, err.message); - * else console.log(data); - * }); - * - * // abort request in 1 second - * setTimeout(request.abort.bind(request), 1000); - * - * // prints "Error: RequestAbortedError Request aborted by user" - * @return [AWS.Request] the same request object, for chaining. - * @since v1.4.0 - */ - abort: function abort() { - this.removeAllListeners('validateResponse'); - this.removeAllListeners('extractError'); - this.on('validateResponse', function addAbortedError(resp) { - resp.error = AWS.util.error(new Error('Request aborted by user'), { - code: 'RequestAbortedError', retryable: false - }); - }); - - if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream - this.httpRequest.stream.abort(); - if (this.httpRequest._abortCallback) { - this.httpRequest._abortCallback(); - } else { - this.removeAllListeners('send'); // haven't sent yet, so let's not - } - } - - return this; - }, - - /** - * Iterates over each page of results given a pageable request, calling - * the provided callback with each page of data. After all pages have been - * retrieved, the callback is called with `null` data. - * - * @note This operation can generate multiple requests to a service. - * @example Iterating over multiple pages of objects in an S3 bucket - * var pages = 1; - * s3.listObjects().eachPage(function(err, data) { - * if (err) return; - * console.log("Page", pages++); - * console.log(data); - * }); - * @example Iterating over multiple pages with an asynchronous callback - * s3.listObjects(params).eachPage(function(err, data, done) { - * doSomethingAsyncAndOrExpensive(function() { - * // The next page of results isn't fetched until done is called - * done(); - * }); - * }); - * @callback callback function(err, data, [doneCallback]) - * Called with each page of resulting data from the request. If the - * optional `doneCallback` is provided in the function, it must be called - * when the callback is complete. - * - * @param err [Error] an error object, if an error occurred. - * @param data [Object] a single page of response data. If there is no - * more data, this object will be `null`. - * @param doneCallback [Function] an optional done callback. If this - * argument is defined in the function declaration, it should be called - * when the next page is ready to be retrieved. This is useful for - * controlling serial pagination across asynchronous operations. - * @return [Boolean] if the callback returns `false`, pagination will - * stop. - * - * @see AWS.Request.eachItem - * @see AWS.Response.nextPage - * @since v1.4.0 - */ - eachPage: function eachPage(callback) { - // Make all callbacks async-ish - callback = AWS.util.fn.makeAsync(callback, 3); - - function wrappedCallback(response) { - callback.call(response, response.error, response.data, function (result) { - if (result === false) return; - - if (response.hasNextPage()) { - response.nextPage().on('complete', wrappedCallback).send(); - } else { - callback.call(response, null, null, AWS.util.fn.noop); - } - }); - } - - this.on('complete', wrappedCallback).send(); - }, - - /** - * Enumerates over individual items of a request, paging the responses if - * necessary. - * - * @api experimental - * @since v1.4.0 - */ - eachItem: function eachItem(callback) { - var self = this; - function wrappedCallback(err, data) { - if (err) return callback(err, null); - if (data === null) return callback(null, null); - - var config = self.service.paginationConfig(self.operation); - var resultKey = config.resultKey; - if (Array.isArray(resultKey)) resultKey = resultKey[0]; - var items = jmespath.search(data, resultKey); - var continueIteration = true; - AWS.util.arrayEach(items, function(item) { - continueIteration = callback(null, item); - if (continueIteration === false) { - return AWS.util.abort; - } - }); - return continueIteration; - } - - this.eachPage(wrappedCallback); - }, - - /** - * @return [Boolean] whether the operation can return multiple pages of - * response data. - * @see AWS.Response.eachPage - * @since v1.4.0 - */ - isPageable: function isPageable() { - return this.service.paginationConfig(this.operation) ? true : false; - }, - - /** - * Sends the request and converts the request object into a readable stream - * that can be read from or piped into a writable stream. - * - * @note The data read from a readable stream contains only - * the raw HTTP body contents. - * @example Manually reading from a stream - * request.createReadStream().on('data', function(data) { - * console.log("Got data:", data.toString()); - * }); - * @example Piping a request body into a file - * var out = fs.createWriteStream('/path/to/outfile.jpg'); - * s3.service.getObject(params).createReadStream().pipe(out); - * @return [Stream] the readable stream object that can be piped - * or read from (by registering 'data' event listeners). - * @!macro nobrowser - */ - createReadStream: function createReadStream() { - var streams = AWS.util.stream; - var req = this; - var stream = null; - - if (AWS.HttpClient.streamsApiVersion === 2) { - stream = new streams.PassThrough(); - process.nextTick(function() { req.send(); }); - } else { - stream = new streams.Stream(); - stream.readable = true; - - stream.sent = false; - stream.on('newListener', function(event) { - if (!stream.sent && event === 'data') { - stream.sent = true; - process.nextTick(function() { req.send(); }); - } - }); - } - - this.on('error', function(err) { - stream.emit('error', err); - }); - - this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { - if (statusCode < 300) { - req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); - req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); - req.on('httpError', function streamHttpError(error) { - resp.error = error; - resp.error.retryable = false; - }); - - var shouldCheckContentLength = false; - var expectedLen; - if (req.httpRequest.method !== 'HEAD') { - expectedLen = parseInt(headers['content-length'], 10); - } - if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) { - shouldCheckContentLength = true; - var receivedLen = 0; - } - - var checkContentLengthAndEmit = function checkContentLengthAndEmit() { - if (shouldCheckContentLength && receivedLen !== expectedLen) { - stream.emit('error', AWS.util.error( - new Error('Stream content length mismatch. Received ' + - receivedLen + ' of ' + expectedLen + ' bytes.'), - { code: 'StreamContentLengthMismatch' } - )); - } else if (AWS.HttpClient.streamsApiVersion === 2) { - stream.end(); - } else { - stream.emit('end'); - } - }; - - var httpStream = resp.httpResponse.createUnbufferedStream(); - - if (AWS.HttpClient.streamsApiVersion === 2) { - if (shouldCheckContentLength) { - var lengthAccumulator = new streams.PassThrough(); - lengthAccumulator._write = function(chunk) { - if (chunk && chunk.length) { - receivedLen += chunk.length; - } - return streams.PassThrough.prototype._write.apply(this, arguments); - }; - - lengthAccumulator.on('end', checkContentLengthAndEmit); - stream.on('error', function(err) { - shouldCheckContentLength = false; - httpStream.unpipe(lengthAccumulator); - lengthAccumulator.emit('end'); - lengthAccumulator.end(); - }); - httpStream.pipe(lengthAccumulator).pipe(stream, { end: false }); - } else { - httpStream.pipe(stream); - } - } else { - - if (shouldCheckContentLength) { - httpStream.on('data', function(arg) { - if (arg && arg.length) { - receivedLen += arg.length; - } - }); - } - - httpStream.on('data', function(arg) { - stream.emit('data', arg); - }); - httpStream.on('end', checkContentLengthAndEmit); - } - - httpStream.on('error', function(err) { - shouldCheckContentLength = false; - stream.emit('error', err); - }); - } - }); - - return stream; - }, - - /** - * @param [Array,Response] args This should be the response object, - * or an array of args to send to the event. - * @api private - */ - emitEvent: function emit(eventName, args, done) { - if (typeof args === 'function') { done = args; args = null; } - if (!done) done = function() { }; - if (!args) args = this.eventParameters(eventName, this.response); - - var origEmit = AWS.SequentialExecutor.prototype.emit; - origEmit.call(this, eventName, args, function (err) { - if (err) this.response.error = err; - done.call(this, err); - }); - }, - - /** - * @api private - */ - eventParameters: function eventParameters(eventName) { - switch (eventName) { - case 'restart': - case 'validate': - case 'sign': - case 'build': - case 'afterValidate': - case 'afterBuild': - return [this]; - case 'error': - return [this.response.error, this.response]; - default: - return [this.response]; - } - }, - - /** - * @api private - */ - presign: function presign(expires, callback) { - if (!callback && typeof expires === 'function') { - callback = expires; - expires = null; - } - return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); - }, - - /** - * @api private - */ - isPresigned: function isPresigned() { - return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires'); - }, - - /** - * @api private - */ - toUnauthenticated: function toUnauthenticated() { - this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); - this.removeListener('sign', AWS.EventListeners.Core.SIGN); - return this; - }, - - /** - * @api private - */ - toGet: function toGet() { - if (this.service.api.protocol === 'query' || - this.service.api.protocol === 'ec2') { - this.removeListener('build', this.buildAsGet); - this.addListener('build', this.buildAsGet); - } - return this; - }, - - /** - * @api private - */ - buildAsGet: function buildAsGet(request) { - request.httpRequest.method = 'GET'; - request.httpRequest.path = request.service.endpoint.path + - '?' + request.httpRequest.body; - request.httpRequest.body = ''; - - // don't need these headers on a GET request - delete request.httpRequest.headers['Content-Length']; - delete request.httpRequest.headers['Content-Type']; - }, - - /** - * @api private - */ - haltHandlersOnError: function haltHandlersOnError() { - this._haltHandlersOnError = true; - } - }); - - /** - * @api private - */ - AWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.promise = function promise() { - var self = this; - // append to user agent - this.httpRequest.appendToUserAgent('promise'); - return new PromiseDependency(function(resolve, reject) { - self.on('complete', function(resp) { - if (resp.error) { - reject(resp.error); - } else { - // define $response property so that it is not enumberable - // this prevents circular reference errors when stringifying the JSON object - resolve(Object.defineProperty( - resp.data || {}, - '$response', - {value: resp} - )); - } - }); - self.runTo(); - }); - }; - }; - - /** - * @api private - */ - AWS.Request.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.promise; - }; - - AWS.util.addPromises(AWS.Request); - - AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); + /** + * Disables buffering on the HTTP response and returns the stream for reading. + * @return [Stream, XMLHttpRequest, null] the underlying stream object. + * Use this object to directly read data off of the stream. + * @note This object is only available after the {AWS.Request~httpHeaders} + * event has fired. This method must be called prior to + * {AWS.Request~httpData}. + * @example Taking control of a stream + * request.on('httpHeaders', function(statusCode, headers) { + * if (statusCode < 300) { + * if (headers.etag === 'xyz') { + * // pipe the stream, disabling buffering + * var stream = this.response.httpResponse.createUnbufferedStream(); + * stream.pipe(process.stdout); + * } else { // abort this request and set a better error message + * this.abort(); + * this.response.error = new Error('Invalid ETag'); + * } + * } + * }).send(console.log); + */ + createUnbufferedStream: function createUnbufferedStream() { + this.streaming = true; + return this.stream; + } + }); - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) - /***/ }), - /* 200 */ - /***/ (function(module, exports) { + AWS.HttpClient = inherit({}); - function AcceptorStateMachine(states, state) { - this.currentState = state || null; - this.states = states || {}; - } - - AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { - if (typeof finalState === 'function') { - inputError = bindObject; bindObject = done; - done = finalState; finalState = null; - } - - var self = this; - var state = self.states[self.currentState]; - state.fn.call(bindObject || self, inputError, function(err) { - if (err) { - if (state.fail) self.currentState = state.fail; - else return done ? done.call(bindObject, err) : null; - } else { - if (state.accept) self.currentState = state.accept; - else return done ? done.call(bindObject) : null; - } - if (self.currentState === finalState) { - return done ? done.call(bindObject, err) : null; - } - - self.runTo(finalState, done, bindObject, err); - }); - }; - - AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { - if (typeof acceptState === 'function') { - fn = acceptState; acceptState = null; failState = null; - } else if (typeof failState === 'function') { - fn = failState; failState = null; - } - - if (!this.currentState) this.currentState = name; - this.states[name] = { accept: acceptState, fail: failState, fn: fn }; - return this; - }; - - module.exports = AcceptorStateMachine; + /** + * @api private + */ + AWS.HttpClient.getInstance = function getInstance() { + if (this.singleton === undefined) { + this.singleton = new this(); + } + return this.singleton; + }; /***/ }), - /* 201 */ + /* 194 */ /***/ (function(module, exports, __webpack_require__) { - (function(exports) { - "use strict"; + var AWS = __webpack_require__(1); - function isArray(obj) { - if (obj !== null) { - return Object.prototype.toString.call(obj) === "[object Array]"; - } else { - return false; - } - } + /** + * @api private + * @!method on(eventName, callback) + * Registers an event listener callback for the event given by `eventName`. + * Parameters passed to the callback function depend on the individual event + * being triggered. See the event documentation for those parameters. + * + * @param eventName [String] the event name to register the listener for + * @param callback [Function] the listener callback function + * @return [AWS.SequentialExecutor] the same object for chaining + */ + AWS.SequentialExecutor = AWS.util.inherit({ - function isObject(obj) { - if (obj !== null) { - return Object.prototype.toString.call(obj) === "[object Object]"; + constructor: function SequentialExecutor() { + this._events = {}; + }, + + /** + * @api private + */ + listeners: function listeners(eventName) { + return this._events[eventName] ? this._events[eventName].slice(0) : []; + }, + + on: function on(eventName, listener) { + if (this._events[eventName]) { + this._events[eventName].push(listener); } else { - return false; + this._events[eventName] = [listener]; } - } + return this; + }, - function strictDeepEqual(first, second) { - // Check the scalar case first. - if (first === second) { - return true; + /** + * @api private + */ + onAsync: function onAsync(eventName, listener) { + listener._isAsync = true; + return this.on(eventName, listener); + }, + + removeListener: function removeListener(eventName, listener) { + var listeners = this._events[eventName]; + if (listeners) { + var length = listeners.length; + var position = -1; + for (var i = 0; i < length; ++i) { + if (listeners[i] === listener) { + position = i; + } + } + if (position > -1) { + listeners.splice(position, 1); + } } + return this; + }, - // Check if they are the same type. - var firstType = Object.prototype.toString.call(first); - if (firstType !== Object.prototype.toString.call(second)) { - return false; + removeAllListeners: function removeAllListeners(eventName) { + if (eventName) { + delete this._events[eventName]; + } else { + this._events = {}; } - // We know that first and second have the same type so we can just check the - // first type from now on. - if (isArray(first) === true) { - // Short circuit if they're not the same length; - if (first.length !== second.length) { - return false; - } - for (var i = 0; i < first.length; i++) { - if (strictDeepEqual(first[i], second[i]) === false) { - return false; + return this; + }, + + /** + * @api private + */ + emit: function emit(eventName, eventArgs, doneCallback) { + if (!doneCallback) doneCallback = function() { }; + var listeners = this.listeners(eventName); + var count = listeners.length; + this.callListeners(listeners, eventArgs, doneCallback); + return count > 0; + }, + + /** + * @api private + */ + callListeners: function callListeners(listeners, args, doneCallback, prevError) { + var self = this; + var error = prevError || null; + + function callNextListener(err) { + if (err) { + error = AWS.util.error(error || new Error(), err); + if (self._haltHandlersOnError) { + return doneCallback.call(self, error); } } - return true; + self.callListeners(listeners, args, doneCallback, error); } - if (isObject(first) === true) { - // An object is equal if it has the same key/value pairs. - var keysSeen = {}; - for (var key in first) { - if (hasOwnProperty.call(first, key)) { - if (strictDeepEqual(first[key], second[key]) === false) { - return false; - } - keysSeen[key] = true; + + while (listeners.length > 0) { + var listener = listeners.shift(); + if (listener._isAsync) { // asynchronous listener + listener.apply(self, args.concat([callNextListener])); + return; // stop here, callNextListener will continue + } else { // synchronous listener + try { + listener.apply(self, args); + } catch (err) { + error = AWS.util.error(error || new Error(), err); } - } - // Now check that there aren't any keys in second that weren't - // in first. - for (var key2 in second) { - if (hasOwnProperty.call(second, key2)) { - if (keysSeen[key2] !== true) { - return false; - } + if (error && self._haltHandlersOnError) { + doneCallback.call(self, error); + return; } } - return true; } - return false; - } + doneCallback.call(self, error); + }, - function isFalse(obj) { - // From the spec: - // A false value corresponds to the following values: - // Empty list - // Empty object - // Empty string - // False boolean - // null value + /** + * Adds or copies a set of listeners from another list of + * listeners or SequentialExecutor object. + * + * @param listeners [map>, AWS.SequentialExecutor] + * a list of events and callbacks, or an event emitter object + * containing listeners to add to this emitter object. + * @return [AWS.SequentialExecutor] the emitter object, for chaining. + * @example Adding listeners from a map of listeners + * emitter.addListeners({ + * event1: [function() { ... }, function() { ... }], + * event2: [function() { ... }] + * }); + * emitter.emit('event1'); // emitter has event1 + * emitter.emit('event2'); // emitter has event2 + * @example Adding listeners from another emitter object + * var emitter1 = new AWS.SequentialExecutor(); + * emitter1.on('event1', function() { ... }); + * emitter1.on('event2', function() { ... }); + * var emitter2 = new AWS.SequentialExecutor(); + * emitter2.addListeners(emitter1); + * emitter2.emit('event1'); // emitter2 has event1 + * emitter2.emit('event2'); // emitter2 has event2 + */ + addListeners: function addListeners(listeners) { + var self = this; + + // extract listeners if parameter is an SequentialExecutor object + if (listeners._events) listeners = listeners._events; + + AWS.util.each(listeners, function(event, callbacks) { + if (typeof callbacks === 'function') callbacks = [callbacks]; + AWS.util.arrayEach(callbacks, function(callback) { + self.on(event, callback); + }); + }); - // First check the scalar values. - if (obj === "" || obj === false || obj === null) { - return true; - } else if (isArray(obj) && obj.length === 0) { - // Check for an empty array. - return true; - } else if (isObject(obj)) { - // Check for an empty object. - for (var key in obj) { - // If there are any keys, then - // the object is not empty so the object - // is not false. - if (obj.hasOwnProperty(key)) { - return false; - } - } - return true; - } else { - return false; - } - } + return self; + }, - function objValues(obj) { - var keys = Object.keys(obj); - var values = []; - for (var i = 0; i < keys.length; i++) { - values.push(obj[keys[i]]); - } - return values; - } + /** + * Registers an event with {on} and saves the callback handle function + * as a property on the emitter object using a given `name`. + * + * @param name [String] the property name to set on this object containing + * the callback function handle so that the listener can be removed in + * the future. + * @param (see on) + * @return (see on) + * @example Adding a named listener DATA_CALLBACK + * var listener = function() { doSomething(); }; + * emitter.addNamedListener('DATA_CALLBACK', 'data', listener); + * + * // the following prints: true + * console.log(emitter.DATA_CALLBACK == listener); + */ + addNamedListener: function addNamedListener(name, eventName, callback) { + this[name] = callback; + this.addListener(eventName, callback); + return this; + }, - function merge(a, b) { - var merged = {}; - for (var key in a) { - merged[key] = a[key]; - } - for (var key2 in b) { - merged[key2] = b[key2]; + /** + * @api private + */ + addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback) { + callback._isAsync = true; + return this.addNamedListener(name, eventName, callback); + }, + + /** + * Helper method to add a set of named listeners using + * {addNamedListener}. The callback contains a parameter + * with a handle to the `addNamedListener` method. + * + * @callback callback function(add) + * The callback function is called immediately in order to provide + * the `add` function to the block. This simplifies the addition of + * a large group of named listeners. + * @param add [Function] the {addNamedListener} function to call + * when registering listeners. + * @example Adding a set of named listeners + * emitter.addNamedListeners(function(add) { + * add('DATA_CALLBACK', 'data', function() { ... }); + * add('OTHER', 'otherEvent', function() { ... }); + * add('LAST', 'lastEvent', function() { ... }); + * }); + * + * // these properties are now set: + * emitter.DATA_CALLBACK; + * emitter.OTHER; + * emitter.LAST; + */ + addNamedListeners: function addNamedListeners(callback) { + var self = this; + callback( + function() { + self.addNamedListener.apply(self, arguments); + }, + function() { + self.addNamedAsyncListener.apply(self, arguments); } - return merged; + ); + return this; } + }); - var trimLeft; - if (typeof String.prototype.trimLeft === "function") { - trimLeft = function(str) { - return str.trimLeft(); - }; - } else { - trimLeft = function(str) { - return str.match(/^\s*(.*)/)[1]; - }; - } + /** + * {on} is the prefered method. + * @api private + */ + AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on; - // Type constants used to define functions. - var TYPE_NUMBER = 0; - var TYPE_ANY = 1; - var TYPE_STRING = 2; - var TYPE_ARRAY = 3; - var TYPE_OBJECT = 4; - var TYPE_BOOLEAN = 5; - var TYPE_EXPREF = 6; - var TYPE_NULL = 7; - var TYPE_ARRAY_NUMBER = 8; - var TYPE_ARRAY_STRING = 9; + module.exports = AWS.SequentialExecutor; - var TOK_EOF = "EOF"; - var TOK_UNQUOTEDIDENTIFIER = "UnquotedIdentifier"; - var TOK_QUOTEDIDENTIFIER = "QuotedIdentifier"; - var TOK_RBRACKET = "Rbracket"; - var TOK_RPAREN = "Rparen"; - var TOK_COMMA = "Comma"; - var TOK_COLON = "Colon"; - var TOK_RBRACE = "Rbrace"; - var TOK_NUMBER = "Number"; - var TOK_CURRENT = "Current"; - var TOK_EXPREF = "Expref"; - var TOK_PIPE = "Pipe"; - var TOK_OR = "Or"; - var TOK_AND = "And"; - var TOK_EQ = "EQ"; - var TOK_GT = "GT"; - var TOK_LT = "LT"; - var TOK_GTE = "GTE"; - var TOK_LTE = "LTE"; - var TOK_NE = "NE"; - var TOK_FLATTEN = "Flatten"; - var TOK_STAR = "Star"; - var TOK_FILTER = "Filter"; - var TOK_DOT = "Dot"; - var TOK_NOT = "Not"; - var TOK_LBRACE = "Lbrace"; - var TOK_LBRACKET = "Lbracket"; - var TOK_LPAREN= "Lparen"; - var TOK_LITERAL= "Literal"; - // The "&", "[", "<", ">" tokens - // are not in basicToken because - // there are two token variants - // ("&&", "[?", "<=", ">="). This is specially handled - // below. + /***/ }), + /* 195 */ + /***/ (function(module, exports, __webpack_require__) { - var basicTokens = { - ".": TOK_DOT, - "*": TOK_STAR, - ",": TOK_COMMA, - ":": TOK_COLON, - "{": TOK_LBRACE, - "}": TOK_RBRACE, - "]": TOK_RBRACKET, - "(": TOK_LPAREN, - ")": TOK_RPAREN, - "@": TOK_CURRENT - }; + var AWS = __webpack_require__(1); + var SequentialExecutor = __webpack_require__(194); + /** + * The namespace used to register global event listeners for request building + * and sending. + */ + AWS.EventListeners = { + /** + * @!attribute VALIDATE_CREDENTIALS + * A request listener that validates whether the request is being + * sent with credentials. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating credentials + * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS; + * request.removeListener('validate', listener); + * @readonly + * @return [Function] + * @!attribute VALIDATE_REGION + * A request listener that validates whether the region is set + * for a request. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating region configuration + * var listener = AWS.EventListeners.Core.VALIDATE_REGION; + * request.removeListener('validate', listener); + * @readonly + * @return [Function] + * @!attribute VALIDATE_PARAMETERS + * A request listener that validates input parameters in a request. + * Handles the {AWS.Request~validate 'validate' Request event} + * @example Sending a request without validating parameters + * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS; + * request.removeListener('validate', listener); + * @example Disable parameter validation globally + * AWS.EventListeners.Core.removeListener('validate', + * AWS.EventListeners.Core.VALIDATE_REGION); + * @readonly + * @return [Function] + * @!attribute SEND + * A request listener that initiates the HTTP connection for a + * request being sent. Handles the {AWS.Request~send 'send' Request event} + * @example Replacing the HTTP handler + * var listener = AWS.EventListeners.Core.SEND; + * request.removeListener('send', listener); + * request.on('send', function(response) { + * customHandler.send(response); + * }); + * @return [Function] + * @readonly + * @!attribute HTTP_DATA + * A request listener that reads data from the HTTP connection in order + * to build the response data. + * Handles the {AWS.Request~httpData 'httpData' Request event}. + * Remove this handler if you are overriding the 'httpData' event and + * do not want extra data processing and buffering overhead. + * @example Disabling default data processing + * var listener = AWS.EventListeners.Core.HTTP_DATA; + * request.removeListener('httpData', listener); + * @return [Function] + * @readonly + */ + Core: {} /* doc hack */ + }; - var operatorStartToken = { - "<": true, - ">": true, - "=": true, - "!": true - }; + /** + * @api private + */ + function getOperationAuthtype(req) { + if (!req.service.api.operations) { + return ''; + } + var operation = req.service.api.operations[req.operation]; + return operation ? operation.authtype : ''; + } - var skipChars = { - " ": true, - "\t": true, - "\n": true - }; + AWS.EventListeners = { + Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) { + addAsync('VALIDATE_CREDENTIALS', 'validate', + function VALIDATE_CREDENTIALS(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + req.service.config.getCredentials(function(err) { + if (err) { + req.response.error = AWS.util.error(err, + {code: 'CredentialsError', message: 'Missing credentials in config'}); + } + done(); + }); + }); + add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) { + if (!req.service.config.region && !req.service.isGlobalEndpoint) { + req.response.error = AWS.util.error(new Error(), + {code: 'ConfigError', message: 'Missing region in config'}); + } + }); - function isAlpha(ch) { - return (ch >= "a" && ch <= "z") || - (ch >= "A" && ch <= "Z") || - ch === "_"; - } + add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) { + if (!req.service.api.operations) { + return; + } + var operation = req.service.api.operations[req.operation]; + if (!operation) { + return; + } + var idempotentMembers = operation.idempotentMembers; + if (!idempotentMembers.length) { + return; + } + // creates a copy of params so user's param object isn't mutated + var params = AWS.util.copy(req.params); + for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) { + if (!params[idempotentMembers[i]]) { + // add the member + params[idempotentMembers[i]] = AWS.util.uuid.v4(); + } + } + req.params = params; + }); - function isNum(ch) { - return (ch >= "0" && ch <= "9") || - ch === "-"; - } - function isAlphaNum(ch) { - return (ch >= "a" && ch <= "z") || - (ch >= "A" && ch <= "Z") || - (ch >= "0" && ch <= "9") || - ch === "_"; - } + add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) { + if (!req.service.api.operations) { + return; + } + var rules = req.service.api.operations[req.operation].input; + var validation = req.service.config.paramValidation; + new AWS.ParamValidator(validation).validate(rules, req.params); + }); - function Lexer() { - } - Lexer.prototype = { - tokenize: function(stream) { - var tokens = []; - this._current = 0; - var start; - var identifier; - var token; - while (this._current < stream.length) { - if (isAlpha(stream[this._current])) { - start = this._current; - identifier = this._consumeUnquotedIdentifier(stream); - tokens.push({type: TOK_UNQUOTEDIDENTIFIER, - value: identifier, - start: start}); - } else if (basicTokens[stream[this._current]] !== undefined) { - tokens.push({type: basicTokens[stream[this._current]], - value: stream[this._current], - start: this._current}); - this._current++; - } else if (isNum(stream[this._current])) { - token = this._consumeNumber(stream); - tokens.push(token); - } else if (stream[this._current] === "[") { - // No need to increment this._current. This happens - // in _consumeLBracket - token = this._consumeLBracket(stream); - tokens.push(token); - } else if (stream[this._current] === "\"") { - start = this._current; - identifier = this._consumeQuotedIdentifier(stream); - tokens.push({type: TOK_QUOTEDIDENTIFIER, - value: identifier, - start: start}); - } else if (stream[this._current] === "'") { - start = this._current; - identifier = this._consumeRawStringLiteral(stream); - tokens.push({type: TOK_LITERAL, - value: identifier, - start: start}); - } else if (stream[this._current] === "`") { - start = this._current; - var literal = this._consumeLiteral(stream); - tokens.push({type: TOK_LITERAL, - value: literal, - start: start}); - } else if (operatorStartToken[stream[this._current]] !== undefined) { - tokens.push(this._consumeOperator(stream)); - } else if (skipChars[stream[this._current]] !== undefined) { - // Ignore whitespace. - this._current++; - } else if (stream[this._current] === "&") { - start = this._current; - this._current++; - if (stream[this._current] === "&") { - this._current++; - tokens.push({type: TOK_AND, value: "&&", start: start}); - } else { - tokens.push({type: TOK_EXPREF, value: "&", start: start}); - } - } else if (stream[this._current] === "|") { - start = this._current; - this._current++; - if (stream[this._current] === "|") { - this._current++; - tokens.push({type: TOK_OR, value: "||", start: start}); - } else { - tokens.push({type: TOK_PIPE, value: "|", start: start}); - } - } else { - var error = new Error("Unknown character:" + stream[this._current]); - error.name = "LexerError"; - throw error; - } + addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) { + req.haltHandlersOnError(); + if (!req.service.api.operations) { + return; + } + var operation = req.service.api.operations[req.operation]; + var authtype = operation ? operation.authtype : ''; + if (!req.service.api.signatureVersion && !authtype) return done(); // none + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + var body = req.httpRequest.body || ''; + if (authtype.indexOf('unsigned-body') >= 0) { + req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; + return done(); + } + AWS.util.computeSha256(body, function(err, sha) { + if (err) { + done(err); } - return tokens; - }, - - _consumeUnquotedIdentifier: function(stream) { - var start = this._current; - this._current++; - while (this._current < stream.length && isAlphaNum(stream[this._current])) { - this._current++; + else { + req.httpRequest.headers['X-Amz-Content-Sha256'] = sha; + done(); } - return stream.slice(start, this._current); - }, + }); + } else { + done(); + } + }); - _consumeQuotedIdentifier: function(stream) { - var start = this._current; - this._current++; - var maxLength = stream.length; - while (stream[this._current] !== "\"" && this._current < maxLength) { - // You can escape a double quote and you can escape an escape. - var current = this._current; - if (stream[current] === "\\" && (stream[current + 1] === "\\" || - stream[current + 1] === "\"")) { - current += 2; - } else { - current++; - } - this._current = current; - } - this._current++; - return JSON.parse(stream.slice(start, this._current)); - }, + add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) { + var authtype = getOperationAuthtype(req); + if (req.httpRequest.headers['Content-Length'] === undefined + && authtype.indexOf('unsigned-body') === -1) { + var length = AWS.util.string.byteLength(req.httpRequest.body); + req.httpRequest.headers['Content-Length'] = length; + } + }); - _consumeRawStringLiteral: function(stream) { - var start = this._current; - this._current++; - var maxLength = stream.length; - while (stream[this._current] !== "'" && this._current < maxLength) { - // You can escape a single quote and you can escape an escape. - var current = this._current; - if (stream[current] === "\\" && (stream[current + 1] === "\\" || - stream[current + 1] === "'")) { - current += 2; - } else { - current++; - } - this._current = current; - } - this._current++; - var literal = stream.slice(start + 1, this._current - 1); - return literal.replace("\\'", "'"); - }, + add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) { + req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host; + }); - _consumeNumber: function(stream) { - var start = this._current; - this._current++; - var maxLength = stream.length; - while (isNum(stream[this._current]) && this._current < maxLength) { - this._current++; - } - var value = parseInt(stream.slice(start, this._current)); - return {type: TOK_NUMBER, value: value, start: start}; - }, + add('RESTART', 'restart', function RESTART() { + var err = this.response.error; + if (!err || !err.retryable) return; - _consumeLBracket: function(stream) { - var start = this._current; - this._current++; - if (stream[this._current] === "?") { - this._current++; - return {type: TOK_FILTER, value: "[?", start: start}; - } else if (stream[this._current] === "]") { - this._current++; - return {type: TOK_FLATTEN, value: "[]", start: start}; - } else { - return {type: TOK_LBRACKET, value: "[", start: start}; - } - }, + this.httpRequest = new AWS.HttpRequest( + this.service.endpoint, + this.service.region + ); - _consumeOperator: function(stream) { - var start = this._current; - var startingChar = stream[start]; - this._current++; - if (startingChar === "!") { - if (stream[this._current] === "=") { - this._current++; - return {type: TOK_NE, value: "!=", start: start}; - } else { - return {type: TOK_NOT, value: "!", start: start}; - } - } else if (startingChar === "<") { - if (stream[this._current] === "=") { - this._current++; - return {type: TOK_LTE, value: "<=", start: start}; - } else { - return {type: TOK_LT, value: "<", start: start}; - } - } else if (startingChar === ">") { - if (stream[this._current] === "=") { - this._current++; - return {type: TOK_GTE, value: ">=", start: start}; - } else { - return {type: TOK_GT, value: ">", start: start}; - } - } else if (startingChar === "=") { - if (stream[this._current] === "=") { - this._current++; - return {type: TOK_EQ, value: "==", start: start}; - } - } - }, + if (this.response.retryCount < this.service.config.maxRetries) { + this.response.retryCount++; + } else { + this.response.error = null; + } + }); - _consumeLiteral: function(stream) { - this._current++; - var start = this._current; - var maxLength = stream.length; - var literal; - while(stream[this._current] !== "`" && this._current < maxLength) { - // You can escape a literal char or you can escape the escape. - var current = this._current; - if (stream[current] === "\\" && (stream[current + 1] === "\\" || - stream[current + 1] === "`")) { - current += 2; - } else { - current++; - } - this._current = current; + addAsync('SIGN', 'sign', function SIGN(req, done) { + var service = req.service; + var operations = req.service.api.operations || {}; + var operation = operations[req.operation]; + var authtype = operation ? operation.authtype : ''; + if (!service.api.signatureVersion && !authtype) return done(); // none + + service.config.getCredentials(function (err, credentials) { + if (err) { + req.response.error = err; + return done(); + } + + try { + var date = service.getSkewCorrectedDate(); + var SignerClass = service.getSignerClass(req); + var signer = new SignerClass(req.httpRequest, + service.api.signingName || service.api.endpointPrefix, + { + signatureCache: service.config.signatureCache, + operation: operation + }); + signer.setServiceClientId(service._clientId); + + // clear old authorization headers + delete req.httpRequest.headers['Authorization']; + delete req.httpRequest.headers['Date']; + delete req.httpRequest.headers['X-Amz-Date']; + + // add new authorization + signer.addAuthorization(credentials, date); + req.signedAt = date; + } catch (e) { + req.response.error = e; + } + done(); + }); + }); + + add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) { + if (this.service.successfulResponse(resp, this)) { + resp.data = {}; + resp.error = null; + } else { + resp.data = null; + resp.error = AWS.util.error(new Error(), + {code: 'UnknownError', message: 'An unknown error occurred.'}); + } + }); + + addAsync('SEND', 'send', function SEND(resp, done) { + resp.httpResponse._abortCallback = done; + resp.error = null; + resp.data = null; + + function callback(httpResp) { + resp.httpResponse.stream = httpResp; + var stream = resp.request.httpRequest.stream; + + httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) { + resp.request.emit( + 'httpHeaders', + [statusCode, headers, resp, statusMessage] + ); + + if (!resp.httpResponse.streaming) { + if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check + httpResp.on('readable', function onReadable() { + var data = httpResp.read(); + if (data !== null) { + resp.request.emit('httpData', [data, resp]); + } + }); + } else { // legacy streams API + httpResp.on('data', function onData(data) { + resp.request.emit('httpData', [data, resp]); + }); + } } - var literalString = trimLeft(stream.slice(start, this._current)); - literalString = literalString.replace("\\`", "`"); - if (this._looksLikeJSON(literalString)) { - literal = JSON.parse(literalString); - } else { - // Try to JSON parse it as "" - literal = JSON.parse("\"" + literalString + "\""); + }); + + httpResp.on('end', function onEnd() { + if (!stream || !stream.didCallback) { + resp.request.emit('httpDone'); + done(); } - // +1 gets us to the ending "`", +1 to move on to the next char. - this._current++; - return literal; - }, + }); + } - _looksLikeJSON: function(literalString) { - var startingChars = "[{\""; - var jsonLiterals = ["true", "false", "null"]; - var numberLooking = "-0123456789"; + function progress(httpResp) { + httpResp.on('sendProgress', function onSendProgress(value) { + resp.request.emit('httpUploadProgress', [value, resp]); + }); - if (literalString === "") { - return false; - } else if (startingChars.indexOf(literalString[0]) >= 0) { - return true; - } else if (jsonLiterals.indexOf(literalString) >= 0) { - return true; - } else if (numberLooking.indexOf(literalString[0]) >= 0) { - try { - JSON.parse(literalString); - return true; - } catch (ex) { - return false; - } - } else { - return false; - } + httpResp.on('receiveProgress', function onReceiveProgress(value) { + resp.request.emit('httpDownloadProgress', [value, resp]); + }); } - }; - var bindingPower = {}; - bindingPower[TOK_EOF] = 0; - bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0; - bindingPower[TOK_QUOTEDIDENTIFIER] = 0; - bindingPower[TOK_RBRACKET] = 0; - bindingPower[TOK_RPAREN] = 0; - bindingPower[TOK_COMMA] = 0; - bindingPower[TOK_RBRACE] = 0; - bindingPower[TOK_NUMBER] = 0; - bindingPower[TOK_CURRENT] = 0; - bindingPower[TOK_EXPREF] = 0; - bindingPower[TOK_PIPE] = 1; - bindingPower[TOK_OR] = 2; - bindingPower[TOK_AND] = 3; - bindingPower[TOK_EQ] = 5; - bindingPower[TOK_GT] = 5; - bindingPower[TOK_LT] = 5; - bindingPower[TOK_GTE] = 5; - bindingPower[TOK_LTE] = 5; - bindingPower[TOK_NE] = 5; - bindingPower[TOK_FLATTEN] = 9; - bindingPower[TOK_STAR] = 20; - bindingPower[TOK_FILTER] = 21; - bindingPower[TOK_DOT] = 40; - bindingPower[TOK_NOT] = 45; - bindingPower[TOK_LBRACE] = 50; - bindingPower[TOK_LBRACKET] = 55; - bindingPower[TOK_LPAREN] = 60; + function error(err) { + if (err.code !== 'RequestAbortedError') { + var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError'; + err = AWS.util.error(err, { + code: errCode, + region: resp.request.httpRequest.region, + hostname: resp.request.httpRequest.endpoint.hostname, + retryable: true + }); + } + resp.error = err; + resp.request.emit('httpError', [resp.error, resp], function() { + done(); + }); + } - function Parser() { - } + function executeSend() { + var http = AWS.HttpClient.getInstance(); + var httpOptions = resp.request.service.config.httpOptions || {}; + try { + var stream = http.handleRequest(resp.request.httpRequest, httpOptions, + callback, error); + progress(stream); + } catch (err) { + error(err); + } + } + var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000; + if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign + this.emit('sign', [this], function(err) { + if (err) done(err); + else executeSend(); + }); + } else { + executeSend(); + } + }); - Parser.prototype = { - parse: function(expression) { - this._loadTokens(expression); - this.index = 0; - var ast = this.expression(0); - if (this._lookahead(0) !== TOK_EOF) { - var t = this._lookaheadToken(0); - var error = new Error( - "Unexpected token type: " + t.type + ", value: " + t.value); - error.name = "ParserError"; - throw error; - } - return ast; - }, + add('HTTP_HEADERS', 'httpHeaders', + function HTTP_HEADERS(statusCode, headers, resp, statusMessage) { + resp.httpResponse.statusCode = statusCode; + resp.httpResponse.statusMessage = statusMessage; + resp.httpResponse.headers = headers; + resp.httpResponse.body = new AWS.util.Buffer(''); + resp.httpResponse.buffers = []; + resp.httpResponse.numBytes = 0; + var dateHeader = headers.date || headers.Date; + var service = resp.request.service; + if (dateHeader) { + var serverTime = Date.parse(dateHeader); + if (service.config.correctClockSkew + && service.isClockSkewed(serverTime)) { + service.applyClockOffset(serverTime); + } + } + }); - _loadTokens: function(expression) { - var lexer = new Lexer(); - var tokens = lexer.tokenize(expression); - tokens.push({type: TOK_EOF, value: "", start: expression.length}); - this.tokens = tokens; - }, + add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) { + if (chunk) { + if (AWS.util.isNode()) { + resp.httpResponse.numBytes += chunk.length; - expression: function(rbp) { - var leftToken = this._lookaheadToken(0); - this._advance(); - var left = this.nud(leftToken); - var currentToken = this._lookahead(0); - while (rbp < bindingPower[currentToken]) { - this._advance(); - left = this.led(currentToken, left); - currentToken = this._lookahead(0); - } - return left; - }, + var total = resp.httpResponse.headers['content-length']; + var progress = { loaded: resp.httpResponse.numBytes, total: total }; + resp.request.emit('httpDownloadProgress', [progress, resp]); + } - _lookahead: function(number) { - return this.tokens[this.index + number].type; - }, + resp.httpResponse.buffers.push(new AWS.util.Buffer(chunk)); + } + }); - _lookaheadToken: function(number) { - return this.tokens[this.index + number]; - }, + add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) { + // convert buffers array into single buffer + if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) { + var body = AWS.util.buffer.concat(resp.httpResponse.buffers); + resp.httpResponse.body = body; + } + delete resp.httpResponse.numBytes; + delete resp.httpResponse.buffers; + }); - _advance: function() { - this.index++; - }, + add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) { + if (resp.httpResponse.statusCode) { + resp.error.statusCode = resp.httpResponse.statusCode; + if (resp.error.retryable === undefined) { + resp.error.retryable = this.service.retryableError(resp.error, this); + } + } + }); - nud: function(token) { - var left; - var right; - var expression; - switch (token.type) { - case TOK_LITERAL: - return {type: "Literal", value: token.value}; - case TOK_UNQUOTEDIDENTIFIER: - return {type: "Field", name: token.value}; - case TOK_QUOTEDIDENTIFIER: - var node = {type: "Field", name: token.value}; - if (this._lookahead(0) === TOK_LPAREN) { - throw new Error("Quoted identifier not allowed for function names."); - } else { - return node; - } - break; - case TOK_NOT: - right = this.expression(bindingPower.Not); - return {type: "NotExpression", children: [right]}; - case TOK_STAR: - left = {type: "Identity"}; - right = null; - if (this._lookahead(0) === TOK_RBRACKET) { - // This can happen in a multiselect, - // [a, b, *] - right = {type: "Identity"}; + add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) { + if (!resp.error) return; + switch (resp.error.code) { + case 'RequestExpired': // EC2 only + case 'ExpiredTokenException': + case 'ExpiredToken': + resp.error.retryable = true; + resp.request.service.config.credentials.expired = true; + } + }); + + add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) { + var err = resp.error; + if (!err) return; + if (typeof err.code === 'string' && typeof err.message === 'string') { + if (err.code.match(/Signature/) && err.message.match(/expired/)) { + resp.error.retryable = true; + } + } + }); + + add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) { + if (!resp.error) return; + if (this.service.clockSkewError(resp.error) + && this.service.config.correctClockSkew) { + resp.error.retryable = true; + } + }); + + add('REDIRECT', 'retry', function REDIRECT(resp) { + if (resp.error && resp.error.statusCode >= 300 && + resp.error.statusCode < 400 && resp.httpResponse.headers['location']) { + this.httpRequest.endpoint = + new AWS.Endpoint(resp.httpResponse.headers['location']); + this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host; + resp.error.redirect = true; + resp.error.retryable = true; + } + }); + + add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) { + if (resp.error) { + if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.error.retryDelay = 0; + } else if (resp.retryCount < resp.maxRetries) { + resp.error.retryDelay = this.service.retryDelays(resp.retryCount) || 0; + } + } + }); + + addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) { + var delay, willRetry = false; + + if (resp.error) { + delay = resp.error.retryDelay || 0; + if (resp.error.retryable && resp.retryCount < resp.maxRetries) { + resp.retryCount++; + willRetry = true; + } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) { + resp.redirectCount++; + willRetry = true; + } + } + + if (willRetry) { + resp.error = null; + setTimeout(done, delay); + } else { + done(); + } + }); + }), + + CorePost: new SequentialExecutor().addNamedListeners(function(add) { + add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId); + add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId); + + add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) { + if (err.code === 'NetworkingError' && err.errno === 'ENOTFOUND') { + var message = 'Inaccessible host: `' + err.hostname + + '\'. This service may not be available in the `' + err.region + + '\' region.'; + this.response.error = AWS.util.error(new Error(message), { + code: 'UnknownEndpoint', + region: err.region, + hostname: err.hostname, + retryable: true, + originalError: err + }); + } + }); + }), + + Logger: new SequentialExecutor().addNamedListeners(function(add) { + add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) { + var req = resp.request; + var logger = req.service.config.logger; + if (!logger) return; + function filterSensitiveLog(inputShape, shape) { + if (!shape) { + return shape; + } + switch (inputShape.type) { + case 'structure': + var struct = {}; + AWS.util.each(shape, function(subShapeName, subShape) { + if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) { + struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape); + } else { + struct[subShapeName] = subShape; + } + }) + return struct + case 'list': + var list = []; + AWS.util.arrayEach(shape, function(subShape, index) { + list.push(filterSensitiveLog(inputShape.member, subShape)); + }) + return list; + case 'map': + var map = {}; + AWS.util.each(shape, function(key, value) { + map[key] = filterSensitiveLog(inputShape.value, value); + }) + return map; + default: + if (inputShape.isSensitive) { + return '***SensitiveInformation***' } else { - right = this._parseProjectionRHS(bindingPower.Star); + return shape; } - return {type: "ValueProjection", children: [left, right]}; - case TOK_FILTER: + } + } + + function buildMessage() { + var time = resp.request.service.getSkewCorrectedDate().getTime(); + var delta = (time - req.startTime.getTime()) / 1000; + var ansi = logger.isTTY ? true : false; + var status = resp.httpResponse.statusCode; + var censoredParams = req.params; + if ( + req.service.api.operations && + req.service.api.operations[req.operation] && + req.service.api.operations[req.operation].input + ) { + var inputShape = req.service.api.operations[req.operation].input; + censoredParams = filterSensitiveLog(inputShape, req.params); + } + var params = __webpack_require__(196).inspect(censoredParams, true, null); + var message = ''; + if (ansi) message += '\x1B[33m'; + message += '[AWS ' + req.service.serviceIdentifier + ' ' + status; + message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]'; + if (ansi) message += '\x1B[0;1m'; + message += ' ' + AWS.util.string.lowerFirst(req.operation); + message += '(' + params + ')'; + if (ansi) message += '\x1B[0m'; + return message; + } + + var line = buildMessage(); + if (typeof logger.log === 'function') { + logger.log(line); + } else if (typeof logger.write === 'function') { + logger.write(line + '\n'); + } + }); + }), + + Json: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(13); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Rest: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(20); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestJson: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(21); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + RestXml: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(22); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }), + + Query: new SequentialExecutor().addNamedListeners(function(add) { + var svc = __webpack_require__(16); + add('BUILD', 'build', svc.buildRequest); + add('EXTRACT_DATA', 'extractData', svc.extractData); + add('EXTRACT_ERROR', 'extractError', svc.extractError); + }) + }; + + + /***/ }), + /* 196 */ + /***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. + // + // Permission is hereby granted, free of charge, to any person obtaining a + // copy of this software and associated documentation files (the + // "Software"), to deal in the Software without restriction, including + // without limitation the rights to use, copy, modify, merge, publish, + // distribute, sublicense, and/or sell copies of the Software, and to permit + // persons to whom the Software is furnished to do so, subject to the + // following conditions: + // + // The above copyright notice and this permission notice shall be included + // in all copies or substantial portions of the Software. + // + // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + // USE OR OTHER DEALINGS IN THE SOFTWARE. + + var formatRegExp = /%[sdj%]/g; + exports.format = function(f) { + if (!isString(f)) { + var objects = []; + for (var i = 0; i < arguments.length; i++) { + objects.push(inspect(arguments[i])); + } + return objects.join(' '); + } + + var i = 1; + var args = arguments; + var len = args.length; + var str = String(f).replace(formatRegExp, function(x) { + if (x === '%%') return '%'; + if (i >= len) return x; + switch (x) { + case '%s': return String(args[i++]); + case '%d': return Number(args[i++]); + case '%j': + try { + return JSON.stringify(args[i++]); + } catch (_) { + return '[Circular]'; + } + default: + return x; + } + }); + for (var x = args[i]; i < len; x = args[++i]) { + if (isNull(x) || !isObject(x)) { + str += ' ' + x; + } else { + str += ' ' + inspect(x); + } + } + return str; + }; + + + // Mark that a method should not be used. + // Returns a modified function which warns once by default. + // If --no-deprecation is set, then it is a no-op. + exports.deprecate = function(fn, msg) { + // Allow for deprecating things in the process of starting up. + if (isUndefined(global.process)) { + return function() { + return exports.deprecate(fn, msg).apply(this, arguments); + }; + } + + if (process.noDeprecation === true) { + return fn; + } + + var warned = false; + function deprecated() { + if (!warned) { + if (process.throwDeprecation) { + throw new Error(msg); + } else if (process.traceDeprecation) { + console.trace(msg); + } else { + console.error(msg); + } + warned = true; + } + return fn.apply(this, arguments); + } + + return deprecated; + }; + + + var debugs = {}; + var debugEnviron; + exports.debuglog = function(set) { + if (isUndefined(debugEnviron)) + debugEnviron = process.env.NODE_DEBUG || ''; + set = set.toUpperCase(); + if (!debugs[set]) { + if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { + var pid = process.pid; + debugs[set] = function() { + var msg = exports.format.apply(exports, arguments); + console.error('%s %d: %s', set, pid, msg); + }; + } else { + debugs[set] = function() {}; + } + } + return debugs[set]; + }; + + + /** + * Echos the value of a value. Trys to print the value out + * in the best way possible given the different types. + * + * @param {Object} obj The object to print out. + * @param {Object} opts Optional options object that alters the output. + */ + /* legacy: obj, showHidden, depth, colors*/ + function inspect(obj, opts) { + // default options + var ctx = { + seen: [], + stylize: stylizeNoColor + }; + // legacy... + if (arguments.length >= 3) ctx.depth = arguments[2]; + if (arguments.length >= 4) ctx.colors = arguments[3]; + if (isBoolean(opts)) { + // legacy... + ctx.showHidden = opts; + } else if (opts) { + // got an "options" object + exports._extend(ctx, opts); + } + // set default options + if (isUndefined(ctx.showHidden)) ctx.showHidden = false; + if (isUndefined(ctx.depth)) ctx.depth = 2; + if (isUndefined(ctx.colors)) ctx.colors = false; + if (isUndefined(ctx.customInspect)) ctx.customInspect = true; + if (ctx.colors) ctx.stylize = stylizeWithColor; + return formatValue(ctx, obj, ctx.depth); + } + exports.inspect = inspect; + + + // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics + inspect.colors = { + 'bold' : [1, 22], + 'italic' : [3, 23], + 'underline' : [4, 24], + 'inverse' : [7, 27], + 'white' : [37, 39], + 'grey' : [90, 39], + 'black' : [30, 39], + 'blue' : [34, 39], + 'cyan' : [36, 39], + 'green' : [32, 39], + 'magenta' : [35, 39], + 'red' : [31, 39], + 'yellow' : [33, 39] + }; + + // Don't use 'blue' not visible on cmd.exe + inspect.styles = { + 'special': 'cyan', + 'number': 'yellow', + 'boolean': 'yellow', + 'undefined': 'grey', + 'null': 'bold', + 'string': 'green', + 'date': 'magenta', + // "name": intentionally not styling + 'regexp': 'red' + }; + + + function stylizeWithColor(str, styleType) { + var style = inspect.styles[styleType]; + + if (style) { + return '\u001b[' + inspect.colors[style][0] + 'm' + str + + '\u001b[' + inspect.colors[style][1] + 'm'; + } else { + return str; + } + } + + + function stylizeNoColor(str, styleType) { + return str; + } + + + function arrayToHash(array) { + var hash = {}; + + array.forEach(function(val, idx) { + hash[val] = true; + }); + + return hash; + } + + + function formatValue(ctx, value, recurseTimes) { + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it + if (ctx.customInspect && + value && + isFunction(value.inspect) && + // Filter out the util module, it's inspect function is special + value.inspect !== exports.inspect && + // Also filter out any prototype objects using the circular check. + !(value.constructor && value.constructor.prototype === value)) { + var ret = value.inspect(recurseTimes, ctx); + if (!isString(ret)) { + ret = formatValue(ctx, ret, recurseTimes); + } + return ret; + } + + // Primitive types cannot have properties + var primitive = formatPrimitive(ctx, value); + if (primitive) { + return primitive; + } + + // Look up the keys of the object. + var keys = Object.keys(value); + var visibleKeys = arrayToHash(keys); + + if (ctx.showHidden) { + keys = Object.getOwnPropertyNames(value); + } + + // IE doesn't make error fields non-enumerable + // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx + if (isError(value) + && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { + return formatError(value); + } + + // Some type of object without properties can be shortcutted. + if (keys.length === 0) { + if (isFunction(value)) { + var name = value.name ? ': ' + value.name : ''; + return ctx.stylize('[Function' + name + ']', 'special'); + } + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } + if (isDate(value)) { + return ctx.stylize(Date.prototype.toString.call(value), 'date'); + } + if (isError(value)) { + return formatError(value); + } + } + + var base = '', array = false, braces = ['{', '}']; + + // Make Array say that they are Array + if (isArray(value)) { + array = true; + braces = ['[', ']']; + } + + // Make functions say that they are functions + if (isFunction(value)) { + var n = value.name ? ': ' + value.name : ''; + base = ' [Function' + n + ']'; + } + + // Make RegExps say that they are RegExps + if (isRegExp(value)) { + base = ' ' + RegExp.prototype.toString.call(value); + } + + // Make dates with properties first say the date + if (isDate(value)) { + base = ' ' + Date.prototype.toUTCString.call(value); + } + + // Make error with message first say the error + if (isError(value)) { + base = ' ' + formatError(value); + } + + if (keys.length === 0 && (!array || value.length == 0)) { + return braces[0] + base + braces[1]; + } + + if (recurseTimes < 0) { + if (isRegExp(value)) { + return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); + } else { + return ctx.stylize('[Object]', 'special'); + } + } + + ctx.seen.push(value); + + var output; + if (array) { + output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); + } else { + output = keys.map(function(key) { + return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); + }); + } + + ctx.seen.pop(); + + return reduceToSingleString(output, base, braces); + } + + + function formatPrimitive(ctx, value) { + if (isUndefined(value)) + return ctx.stylize('undefined', 'undefined'); + if (isString(value)) { + var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') + .replace(/'/g, "\\'") + .replace(/\\"/g, '"') + '\''; + return ctx.stylize(simple, 'string'); + } + if (isNumber(value)) + return ctx.stylize('' + value, 'number'); + if (isBoolean(value)) + return ctx.stylize('' + value, 'boolean'); + // For some reason typeof null is "object", so special case here. + if (isNull(value)) + return ctx.stylize('null', 'null'); + } + + + function formatError(value) { + return '[' + Error.prototype.toString.call(value) + ']'; + } + + + function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { + var output = []; + for (var i = 0, l = value.length; i < l; ++i) { + if (hasOwnProperty(value, String(i))) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + String(i), true)); + } else { + output.push(''); + } + } + keys.forEach(function(key) { + if (!key.match(/^\d+$/)) { + output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, + key, true)); + } + }); + return output; + } + + + function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { + var name, str, desc; + desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; + if (desc.get) { + if (desc.set) { + str = ctx.stylize('[Getter/Setter]', 'special'); + } else { + str = ctx.stylize('[Getter]', 'special'); + } + } else { + if (desc.set) { + str = ctx.stylize('[Setter]', 'special'); + } + } + if (!hasOwnProperty(visibleKeys, key)) { + name = '[' + key + ']'; + } + if (!str) { + if (ctx.seen.indexOf(desc.value) < 0) { + if (isNull(recurseTimes)) { + str = formatValue(ctx, desc.value, null); + } else { + str = formatValue(ctx, desc.value, recurseTimes - 1); + } + if (str.indexOf('\n') > -1) { + if (array) { + str = str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n').substr(2); + } else { + str = '\n' + str.split('\n').map(function(line) { + return ' ' + line; + }).join('\n'); + } + } + } else { + str = ctx.stylize('[Circular]', 'special'); + } + } + if (isUndefined(name)) { + if (array && key.match(/^\d+$/)) { + return str; + } + name = JSON.stringify('' + key); + if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { + name = name.substr(1, name.length - 2); + name = ctx.stylize(name, 'name'); + } else { + name = name.replace(/'/g, "\\'") + .replace(/\\"/g, '"') + .replace(/(^"|"$)/g, "'"); + name = ctx.stylize(name, 'string'); + } + } + + return name + ': ' + str; + } + + + function reduceToSingleString(output, base, braces) { + var numLinesEst = 0; + var length = output.reduce(function(prev, cur) { + numLinesEst++; + if (cur.indexOf('\n') >= 0) numLinesEst++; + return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; + }, 0); + + if (length > 60) { + return braces[0] + + (base === '' ? '' : base + '\n ') + + ' ' + + output.join(',\n ') + + ' ' + + braces[1]; + } + + return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; + } + + + // NOTE: These type checking functions intentionally don't use `instanceof` + // because it is fragile and can be easily faked with `Object.create()`. + function isArray(ar) { + return Array.isArray(ar); + } + exports.isArray = isArray; + + function isBoolean(arg) { + return typeof arg === 'boolean'; + } + exports.isBoolean = isBoolean; + + function isNull(arg) { + return arg === null; + } + exports.isNull = isNull; + + function isNullOrUndefined(arg) { + return arg == null; + } + exports.isNullOrUndefined = isNullOrUndefined; + + function isNumber(arg) { + return typeof arg === 'number'; + } + exports.isNumber = isNumber; + + function isString(arg) { + return typeof arg === 'string'; + } + exports.isString = isString; + + function isSymbol(arg) { + return typeof arg === 'symbol'; + } + exports.isSymbol = isSymbol; + + function isUndefined(arg) { + return arg === void 0; + } + exports.isUndefined = isUndefined; + + function isRegExp(re) { + return isObject(re) && objectToString(re) === '[object RegExp]'; + } + exports.isRegExp = isRegExp; + + function isObject(arg) { + return typeof arg === 'object' && arg !== null; + } + exports.isObject = isObject; + + function isDate(d) { + return isObject(d) && objectToString(d) === '[object Date]'; + } + exports.isDate = isDate; + + function isError(e) { + return isObject(e) && + (objectToString(e) === '[object Error]' || e instanceof Error); + } + exports.isError = isError; + + function isFunction(arg) { + return typeof arg === 'function'; + } + exports.isFunction = isFunction; + + function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; + } + exports.isPrimitive = isPrimitive; + + exports.isBuffer = __webpack_require__(197); + + function objectToString(o) { + return Object.prototype.toString.call(o); + } + + + function pad(n) { + return n < 10 ? '0' + n.toString(10) : n.toString(10); + } + + + var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', + 'Oct', 'Nov', 'Dec']; + + // 26 Feb 16:19:34 + function timestamp() { + var d = new Date(); + var time = [pad(d.getHours()), + pad(d.getMinutes()), + pad(d.getSeconds())].join(':'); + return [d.getDate(), months[d.getMonth()], time].join(' '); + } + + + // log is just a thin wrapper to console.log that prepends a timestamp + exports.log = function() { + console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); + }; + + + /** + * Inherit the prototype methods from one constructor into another. + * + * The Function.prototype.inherits from lang.js rewritten as a standalone + * function (not on Function.prototype). NOTE: If this file is to be loaded + * during bootstrapping this function needs to be rewritten using some native + * functions as prototype setup using normal JavaScript does not work as + * expected during bootstrapping (see mirror.js in r114903). + * + * @param {function} ctor Constructor function which needs to inherit the + * prototype. + * @param {function} superCtor Constructor function to inherit prototype from. + */ + exports.inherits = __webpack_require__(198); + + exports._extend = function(origin, add) { + // Don't do anything if add isn't an object + if (!add || !isObject(add)) return origin; + + var keys = Object.keys(add); + var i = keys.length; + while (i--) { + origin[keys[i]] = add[keys[i]]; + } + return origin; + }; + + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + + /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(3))) + + /***/ }), + /* 197 */ + /***/ (function(module, exports) { + + module.exports = function isBuffer(arg) { + return arg && typeof arg === 'object' + && typeof arg.copy === 'function' + && typeof arg.fill === 'function' + && typeof arg.readUInt8 === 'function'; + } + + /***/ }), + /* 198 */ + /***/ (function(module, exports) { + + if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + }; + } else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor + } + } + + + /***/ }), + /* 199 */ + /***/ (function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(process) {var AWS = __webpack_require__(1); + var AcceptorStateMachine = __webpack_require__(200); + var inherit = AWS.util.inherit; + var domain = AWS.util.domain; + var jmespath = __webpack_require__(201); + + /** + * @api private + */ + var hardErrorStates = {success: 1, error: 1, complete: 1}; + + function isTerminalState(machine) { + return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState); + } + + var fsm = new AcceptorStateMachine(); + fsm.setupStates = function() { + var transition = function(_, done) { + var self = this; + self._haltHandlersOnError = false; + + self.emit(self._asm.currentState, function(err) { + if (err) { + if (isTerminalState(self)) { + if (domain && self.domain instanceof domain.Domain) { + err.domainEmitter = self; + err.domain = self.domain; + err.domainThrown = false; + self.domain.emit('error', err); + } else { + throw err; + } + } else { + self.response.error = err; + done(err); + } + } else { + done(self.response.error); + } + }); + + }; + + this.addState('validate', 'build', 'error', transition); + this.addState('build', 'afterBuild', 'restart', transition); + this.addState('afterBuild', 'sign', 'restart', transition); + this.addState('sign', 'send', 'retry', transition); + this.addState('retry', 'afterRetry', 'afterRetry', transition); + this.addState('afterRetry', 'sign', 'error', transition); + this.addState('send', 'validateResponse', 'retry', transition); + this.addState('validateResponse', 'extractData', 'extractError', transition); + this.addState('extractError', 'extractData', 'retry', transition); + this.addState('extractData', 'success', 'retry', transition); + this.addState('restart', 'build', 'error', transition); + this.addState('success', 'complete', 'complete', transition); + this.addState('error', 'complete', 'complete', transition); + this.addState('complete', null, null, transition); + }; + fsm.setupStates(); + + /** + * ## Asynchronous Requests + * + * All requests made through the SDK are asynchronous and use a + * callback interface. Each service method that kicks off a request + * returns an `AWS.Request` object that you can use to register + * callbacks. + * + * For example, the following service method returns the request + * object as "request", which can be used to register callbacks: + * + * ```javascript + * // request is an AWS.Request object + * var request = ec2.describeInstances(); + * + * // register callbacks on request to retrieve response data + * request.on('success', function(response) { + * console.log(response.data); + * }); + * ``` + * + * When a request is ready to be sent, the {send} method should + * be called: + * + * ```javascript + * request.send(); + * ``` + * + * Since registered callbacks may or may not be idempotent, requests should only + * be sent once. To perform the same operation multiple times, you will need to + * create multiple request objects, each with its own registered callbacks. + * + * ## Removing Default Listeners for Events + * + * Request objects are built with default listeners for the various events, + * depending on the service type. In some cases, you may want to remove + * some built-in listeners to customize behaviour. Doing this requires + * access to the built-in listener functions, which are exposed through + * the {AWS.EventListeners.Core} namespace. For instance, you may + * want to customize the HTTP handler used when sending a request. In this + * case, you can remove the built-in listener associated with the 'send' + * event, the {AWS.EventListeners.Core.SEND} listener and add your own. + * + * ## Multiple Callbacks and Chaining + * + * You can register multiple callbacks on any request object. The + * callbacks can be registered for different events, or all for the + * same event. In addition, you can chain callback registration, for + * example: + * + * ```javascript + * request. + * on('success', function(response) { + * console.log("Success!"); + * }). + * on('error', function(response) { + * console.log("Error!"); + * }). + * on('complete', function(response) { + * console.log("Always!"); + * }). + * send(); + * ``` + * + * The above example will print either "Success! Always!", or "Error! Always!", + * depending on whether the request succeeded or not. + * + * @!attribute httpRequest + * @readonly + * @!group HTTP Properties + * @return [AWS.HttpRequest] the raw HTTP request object + * containing request headers and body information + * sent by the service. + * + * @!attribute startTime + * @readonly + * @!group Operation Properties + * @return [Date] the time that the request started + * + * @!group Request Building Events + * + * @!event validate(request) + * Triggered when a request is being validated. Listeners + * should throw an error if the request should not be sent. + * @param request [Request] the request object being sent + * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS + * @see AWS.EventListeners.Core.VALIDATE_REGION + * @example Ensuring that a certain parameter is set before sending a request + * var req = s3.putObject(params); + * req.on('validate', function() { + * if (!req.params.Body.match(/^Hello\s/)) { + * throw new Error('Body must start with "Hello "'); + * } + * }); + * req.send(function(err, data) { ... }); + * + * @!event build(request) + * Triggered when the request payload is being built. Listeners + * should fill the necessary information to send the request + * over HTTP. + * @param (see AWS.Request~validate) + * @example Add a custom HTTP header to a request + * var req = s3.putObject(params); + * req.on('build', function() { + * req.httpRequest.headers['Custom-Header'] = 'value'; + * }); + * req.send(function(err, data) { ... }); + * + * @!event sign(request) + * Triggered when the request is being signed. Listeners should + * add the correct authentication headers and/or adjust the body, + * depending on the authentication mechanism being used. + * @param (see AWS.Request~validate) + * + * @!group Request Sending Events + * + * @!event send(response) + * Triggered when the request is ready to be sent. Listeners + * should call the underlying transport layer to initiate + * the sending of the request. + * @param response [Response] the response object + * @context [Request] the request object that was sent + * @see AWS.EventListeners.Core.SEND + * + * @!event retry(response) + * Triggered when a request failed and might need to be retried or redirected. + * If the response is retryable, the listener should set the + * `response.error.retryable` property to `true`, and optionally set + * `response.error.retryDelay` to the millisecond delay for the next attempt. + * In the case of a redirect, `response.error.redirect` should be set to + * `true` with `retryDelay` set to an optional delay on the next request. + * + * If a listener decides that a request should not be retried, + * it should set both `retryable` and `redirect` to false. + * + * Note that a retryable error will be retried at most + * {AWS.Config.maxRetries} times (based on the service object's config). + * Similarly, a request that is redirected will only redirect at most + * {AWS.Config.maxRedirects} times. + * + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @example Adding a custom retry for a 404 response + * request.on('retry', function(response) { + * // this resource is not yet available, wait 10 seconds to get it again + * if (response.httpResponse.statusCode === 404 && response.error) { + * response.error.retryable = true; // retry this error + * response.error.retryDelay = 10000; // wait 10 seconds + * } + * }); + * + * @!group Data Parsing Events + * + * @!event extractError(response) + * Triggered on all non-2xx requests so that listeners can extract + * error details from the response body. Listeners to this event + * should set the `response.error` property. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event extractData(response) + * Triggered in successful requests to allow listeners to + * de-serialize the response body into `response.data`. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group Completion Events + * + * @!event success(response) + * Triggered when the request completed successfully. + * `response.data` will contain the response data and + * `response.error` will be null. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event error(error, response) + * Triggered when an error occurs at any point during the + * request. `response.error` will contain details about the error + * that occurred. `response.data` will be null. + * @param error [Error] the error object containing details about + * the error that occurred. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event complete(response) + * Triggered whenever a request cycle completes. `response.error` + * should be checked, since the request may have failed. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!group HTTP Events + * + * @!event httpHeaders(statusCode, headers, response, statusMessage) + * Triggered when headers are sent by the remote server + * @param statusCode [Integer] the HTTP response code + * @param headers [map] the response headers + * @param (see AWS.Request~send) + * @param statusMessage [String] A status message corresponding to the HTTP + * response code + * @context (see AWS.Request~send) + * + * @!event httpData(chunk, response) + * Triggered when data is sent by the remote server + * @param chunk [Buffer] the buffer data containing the next data chunk + * from the server + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @see AWS.EventListeners.Core.HTTP_DATA + * + * @!event httpUploadProgress(progress, response) + * Triggered when the HTTP request has uploaded more data + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @note This event will not be emitted in Node.js 0.8.x. + * + * @!event httpDownloadProgress(progress, response) + * Triggered when the HTTP request has downloaded more data + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request. + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * @note This event will not be emitted in Node.js 0.8.x. + * + * @!event httpError(error, response) + * Triggered when the HTTP request failed + * @param error [Error] the error object that was thrown + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @!event httpDone(response) + * Triggered when the server is finished sending data + * @param (see AWS.Request~send) + * @context (see AWS.Request~send) + * + * @see AWS.Response + */ + AWS.Request = inherit({ + + /** + * Creates a request for an operation on a given service with + * a set of input parameters. + * + * @param service [AWS.Service] the service to perform the operation on + * @param operation [String] the operation to perform on the service + * @param params [Object] parameters to send to the operation. + * See the operation's documentation for the format of the + * parameters. + */ + constructor: function Request(service, operation, params) { + var endpoint = service.endpoint; + var region = service.config.region; + var customUserAgent = service.config.customUserAgent; + + // global endpoints sign as us-east-1 + if (service.isGlobalEndpoint) region = 'us-east-1'; + + this.domain = domain && domain.active; + this.service = service; + this.operation = operation; + this.params = params || {}; + this.httpRequest = new AWS.HttpRequest(endpoint, region); + this.httpRequest.appendToUserAgent(customUserAgent); + this.startTime = service.getSkewCorrectedDate(); + + this.response = new AWS.Response(this); + this._asm = new AcceptorStateMachine(fsm.states, 'validate'); + this._haltHandlersOnError = false; + + AWS.SequentialExecutor.call(this); + this.emit = this.emitEvent; + }, + + /** + * @!group Sending a Request + */ + + /** + * @overload send(callback = null) + * Sends the request object. + * + * @callback callback function(err, data) + * If a callback is supplied, it is called when a response is returned + * from the service. + * @context [AWS.Request] the request object being sent. + * @param err [Error] the error object returned from the request. + * Set to `null` if the request is successful. + * @param data [Object] the de-serialized data returned from + * the request. Set to `null` if a request error occurs. + * @example Sending a request with a callback + * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * request.send(function(err, data) { console.log(err, data); }); + * @example Sending a request with no callback (using event handlers) + * request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * request.on('complete', function(response) { ... }); // register a callback + * request.send(); + */ + send: function send(callback) { + if (callback) { + // append to user agent + this.httpRequest.appendToUserAgent('callback'); + this.on('complete', function (resp) { + callback.call(resp, resp.error, resp.data); + }); + } + this.runTo(); + + return this.response; + }, + + /** + * @!method promise() + * Sends the request and returns a 'thenable' promise. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(data) + * Called if the promise is fulfilled. + * @param data [Object] the de-serialized data returned from the request. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param error [Error] the error object returned from the request. + * @return [Promise] A promise that represents the state of the request. + * @example Sending a request using promises. + * var request = s3.putObject({Bucket: 'bucket', Key: 'key'}); + * var result = request.promise(); + * result.then(function(data) { ... }, function(error) { ... }); + */ + + /** + * @api private + */ + build: function build(callback) { + return this.runTo('send', callback); + }, + + /** + * @api private + */ + runTo: function runTo(state, done) { + this._asm.runTo(state, done, this); + return this; + }, + + /** + * Aborts a request, emitting the error and complete events. + * + * @!macro nobrowser + * @example Aborting a request after sending + * var params = { + * Bucket: 'bucket', Key: 'key', + * Body: new Buffer(1024 * 1024 * 5) // 5MB payload + * }; + * var request = s3.putObject(params); + * request.send(function (err, data) { + * if (err) console.log("Error:", err.code, err.message); + * else console.log(data); + * }); + * + * // abort request in 1 second + * setTimeout(request.abort.bind(request), 1000); + * + * // prints "Error: RequestAbortedError Request aborted by user" + * @return [AWS.Request] the same request object, for chaining. + * @since v1.4.0 + */ + abort: function abort() { + this.removeAllListeners('validateResponse'); + this.removeAllListeners('extractError'); + this.on('validateResponse', function addAbortedError(resp) { + resp.error = AWS.util.error(new Error('Request aborted by user'), { + code: 'RequestAbortedError', retryable: false + }); + }); + + if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream + this.httpRequest.stream.abort(); + if (this.httpRequest._abortCallback) { + this.httpRequest._abortCallback(); + } else { + this.removeAllListeners('send'); // haven't sent yet, so let's not + } + } + + return this; + }, + + /** + * Iterates over each page of results given a pageable request, calling + * the provided callback with each page of data. After all pages have been + * retrieved, the callback is called with `null` data. + * + * @note This operation can generate multiple requests to a service. + * @example Iterating over multiple pages of objects in an S3 bucket + * var pages = 1; + * s3.listObjects().eachPage(function(err, data) { + * if (err) return; + * console.log("Page", pages++); + * console.log(data); + * }); + * @example Iterating over multiple pages with an asynchronous callback + * s3.listObjects(params).eachPage(function(err, data, done) { + * doSomethingAsyncAndOrExpensive(function() { + * // The next page of results isn't fetched until done is called + * done(); + * }); + * }); + * @callback callback function(err, data, [doneCallback]) + * Called with each page of resulting data from the request. If the + * optional `doneCallback` is provided in the function, it must be called + * when the callback is complete. + * + * @param err [Error] an error object, if an error occurred. + * @param data [Object] a single page of response data. If there is no + * more data, this object will be `null`. + * @param doneCallback [Function] an optional done callback. If this + * argument is defined in the function declaration, it should be called + * when the next page is ready to be retrieved. This is useful for + * controlling serial pagination across asynchronous operations. + * @return [Boolean] if the callback returns `false`, pagination will + * stop. + * + * @see AWS.Request.eachItem + * @see AWS.Response.nextPage + * @since v1.4.0 + */ + eachPage: function eachPage(callback) { + // Make all callbacks async-ish + callback = AWS.util.fn.makeAsync(callback, 3); + + function wrappedCallback(response) { + callback.call(response, response.error, response.data, function (result) { + if (result === false) return; + + if (response.hasNextPage()) { + response.nextPage().on('complete', wrappedCallback).send(); + } else { + callback.call(response, null, null, AWS.util.fn.noop); + } + }); + } + + this.on('complete', wrappedCallback).send(); + }, + + /** + * Enumerates over individual items of a request, paging the responses if + * necessary. + * + * @api experimental + * @since v1.4.0 + */ + eachItem: function eachItem(callback) { + var self = this; + function wrappedCallback(err, data) { + if (err) return callback(err, null); + if (data === null) return callback(null, null); + + var config = self.service.paginationConfig(self.operation); + var resultKey = config.resultKey; + if (Array.isArray(resultKey)) resultKey = resultKey[0]; + var items = jmespath.search(data, resultKey); + var continueIteration = true; + AWS.util.arrayEach(items, function(item) { + continueIteration = callback(null, item); + if (continueIteration === false) { + return AWS.util.abort; + } + }); + return continueIteration; + } + + this.eachPage(wrappedCallback); + }, + + /** + * @return [Boolean] whether the operation can return multiple pages of + * response data. + * @see AWS.Response.eachPage + * @since v1.4.0 + */ + isPageable: function isPageable() { + return this.service.paginationConfig(this.operation) ? true : false; + }, + + /** + * Sends the request and converts the request object into a readable stream + * that can be read from or piped into a writable stream. + * + * @note The data read from a readable stream contains only + * the raw HTTP body contents. + * @example Manually reading from a stream + * request.createReadStream().on('data', function(data) { + * console.log("Got data:", data.toString()); + * }); + * @example Piping a request body into a file + * var out = fs.createWriteStream('/path/to/outfile.jpg'); + * s3.service.getObject(params).createReadStream().pipe(out); + * @return [Stream] the readable stream object that can be piped + * or read from (by registering 'data' event listeners). + * @!macro nobrowser + */ + createReadStream: function createReadStream() { + var streams = AWS.util.stream; + var req = this; + var stream = null; + + if (AWS.HttpClient.streamsApiVersion === 2) { + stream = new streams.PassThrough(); + process.nextTick(function() { req.send(); }); + } else { + stream = new streams.Stream(); + stream.readable = true; + + stream.sent = false; + stream.on('newListener', function(event) { + if (!stream.sent && event === 'data') { + stream.sent = true; + process.nextTick(function() { req.send(); }); + } + }); + } + + this.on('error', function(err) { + stream.emit('error', err); + }); + + this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) { + if (statusCode < 300) { + req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA); + req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR); + req.on('httpError', function streamHttpError(error) { + resp.error = error; + resp.error.retryable = false; + }); + + var shouldCheckContentLength = false; + var expectedLen; + if (req.httpRequest.method !== 'HEAD') { + expectedLen = parseInt(headers['content-length'], 10); + } + if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) { + shouldCheckContentLength = true; + var receivedLen = 0; + } + + var checkContentLengthAndEmit = function checkContentLengthAndEmit() { + if (shouldCheckContentLength && receivedLen !== expectedLen) { + stream.emit('error', AWS.util.error( + new Error('Stream content length mismatch. Received ' + + receivedLen + ' of ' + expectedLen + ' bytes.'), + { code: 'StreamContentLengthMismatch' } + )); + } else if (AWS.HttpClient.streamsApiVersion === 2) { + stream.end(); + } else { + stream.emit('end'); + } + }; + + var httpStream = resp.httpResponse.createUnbufferedStream(); + + if (AWS.HttpClient.streamsApiVersion === 2) { + if (shouldCheckContentLength) { + var lengthAccumulator = new streams.PassThrough(); + lengthAccumulator._write = function(chunk) { + if (chunk && chunk.length) { + receivedLen += chunk.length; + } + return streams.PassThrough.prototype._write.apply(this, arguments); + }; + + lengthAccumulator.on('end', checkContentLengthAndEmit); + stream.on('error', function(err) { + shouldCheckContentLength = false; + httpStream.unpipe(lengthAccumulator); + lengthAccumulator.emit('end'); + lengthAccumulator.end(); + }); + httpStream.pipe(lengthAccumulator).pipe(stream, { end: false }); + } else { + httpStream.pipe(stream); + } + } else { + + if (shouldCheckContentLength) { + httpStream.on('data', function(arg) { + if (arg && arg.length) { + receivedLen += arg.length; + } + }); + } + + httpStream.on('data', function(arg) { + stream.emit('data', arg); + }); + httpStream.on('end', checkContentLengthAndEmit); + } + + httpStream.on('error', function(err) { + shouldCheckContentLength = false; + stream.emit('error', err); + }); + } + }); + + return stream; + }, + + /** + * @param [Array,Response] args This should be the response object, + * or an array of args to send to the event. + * @api private + */ + emitEvent: function emit(eventName, args, done) { + if (typeof args === 'function') { done = args; args = null; } + if (!done) done = function() { }; + if (!args) args = this.eventParameters(eventName, this.response); + + var origEmit = AWS.SequentialExecutor.prototype.emit; + origEmit.call(this, eventName, args, function (err) { + if (err) this.response.error = err; + done.call(this, err); + }); + }, + + /** + * @api private + */ + eventParameters: function eventParameters(eventName) { + switch (eventName) { + case 'restart': + case 'validate': + case 'sign': + case 'build': + case 'afterValidate': + case 'afterBuild': + return [this]; + case 'error': + return [this.response.error, this.response]; + default: + return [this.response]; + } + }, + + /** + * @api private + */ + presign: function presign(expires, callback) { + if (!callback && typeof expires === 'function') { + callback = expires; + expires = null; + } + return new AWS.Signers.Presign().sign(this.toGet(), expires, callback); + }, + + /** + * @api private + */ + isPresigned: function isPresigned() { + return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires'); + }, + + /** + * @api private + */ + toUnauthenticated: function toUnauthenticated() { + this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS); + this.removeListener('sign', AWS.EventListeners.Core.SIGN); + return this; + }, + + /** + * @api private + */ + toGet: function toGet() { + if (this.service.api.protocol === 'query' || + this.service.api.protocol === 'ec2') { + this.removeListener('build', this.buildAsGet); + this.addListener('build', this.buildAsGet); + } + return this; + }, + + /** + * @api private + */ + buildAsGet: function buildAsGet(request) { + request.httpRequest.method = 'GET'; + request.httpRequest.path = request.service.endpoint.path + + '?' + request.httpRequest.body; + request.httpRequest.body = ''; + + // don't need these headers on a GET request + delete request.httpRequest.headers['Content-Length']; + delete request.httpRequest.headers['Content-Type']; + }, + + /** + * @api private + */ + haltHandlersOnError: function haltHandlersOnError() { + this._haltHandlersOnError = true; + } + }); + + /** + * @api private + */ + AWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.promise = function promise() { + var self = this; + // append to user agent + this.httpRequest.appendToUserAgent('promise'); + return new PromiseDependency(function(resolve, reject) { + self.on('complete', function(resp) { + if (resp.error) { + reject(resp.error); + } else { + // define $response property so that it is not enumberable + // this prevents circular reference errors when stringifying the JSON object + resolve(Object.defineProperty( + resp.data || {}, + '$response', + {value: resp} + )); + } + }); + self.runTo(); + }); + }; + }; + + /** + * @api private + */ + AWS.Request.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.promise; + }; + + AWS.util.addPromises(AWS.Request); + + AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); + + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3))) + + /***/ }), + /* 200 */ + /***/ (function(module, exports) { + + function AcceptorStateMachine(states, state) { + this.currentState = state || null; + this.states = states || {}; + } + + AcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) { + if (typeof finalState === 'function') { + inputError = bindObject; bindObject = done; + done = finalState; finalState = null; + } + + var self = this; + var state = self.states[self.currentState]; + state.fn.call(bindObject || self, inputError, function(err) { + if (err) { + if (state.fail) self.currentState = state.fail; + else return done ? done.call(bindObject, err) : null; + } else { + if (state.accept) self.currentState = state.accept; + else return done ? done.call(bindObject) : null; + } + if (self.currentState === finalState) { + return done ? done.call(bindObject, err) : null; + } + + self.runTo(finalState, done, bindObject, err); + }); + }; + + AcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) { + if (typeof acceptState === 'function') { + fn = acceptState; acceptState = null; failState = null; + } else if (typeof failState === 'function') { + fn = failState; failState = null; + } + + if (!this.currentState) this.currentState = name; + this.states[name] = { accept: acceptState, fail: failState, fn: fn }; + return this; + }; + + module.exports = AcceptorStateMachine; + + + /***/ }), + /* 201 */ + /***/ (function(module, exports, __webpack_require__) { + + (function(exports) { + "use strict"; + + function isArray(obj) { + if (obj !== null) { + return Object.prototype.toString.call(obj) === "[object Array]"; + } else { + return false; + } + } + + function isObject(obj) { + if (obj !== null) { + return Object.prototype.toString.call(obj) === "[object Object]"; + } else { + return false; + } + } + + function strictDeepEqual(first, second) { + // Check the scalar case first. + if (first === second) { + return true; + } + + // Check if they are the same type. + var firstType = Object.prototype.toString.call(first); + if (firstType !== Object.prototype.toString.call(second)) { + return false; + } + // We know that first and second have the same type so we can just check the + // first type from now on. + if (isArray(first) === true) { + // Short circuit if they're not the same length; + if (first.length !== second.length) { + return false; + } + for (var i = 0; i < first.length; i++) { + if (strictDeepEqual(first[i], second[i]) === false) { + return false; + } + } + return true; + } + if (isObject(first) === true) { + // An object is equal if it has the same key/value pairs. + var keysSeen = {}; + for (var key in first) { + if (hasOwnProperty.call(first, key)) { + if (strictDeepEqual(first[key], second[key]) === false) { + return false; + } + keysSeen[key] = true; + } + } + // Now check that there aren't any keys in second that weren't + // in first. + for (var key2 in second) { + if (hasOwnProperty.call(second, key2)) { + if (keysSeen[key2] !== true) { + return false; + } + } + } + return true; + } + return false; + } + + function isFalse(obj) { + // From the spec: + // A false value corresponds to the following values: + // Empty list + // Empty object + // Empty string + // False boolean + // null value + + // First check the scalar values. + if (obj === "" || obj === false || obj === null) { + return true; + } else if (isArray(obj) && obj.length === 0) { + // Check for an empty array. + return true; + } else if (isObject(obj)) { + // Check for an empty object. + for (var key in obj) { + // If there are any keys, then + // the object is not empty so the object + // is not false. + if (obj.hasOwnProperty(key)) { + return false; + } + } + return true; + } else { + return false; + } + } + + function objValues(obj) { + var keys = Object.keys(obj); + var values = []; + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + } + + function merge(a, b) { + var merged = {}; + for (var key in a) { + merged[key] = a[key]; + } + for (var key2 in b) { + merged[key2] = b[key2]; + } + return merged; + } + + var trimLeft; + if (typeof String.prototype.trimLeft === "function") { + trimLeft = function(str) { + return str.trimLeft(); + }; + } else { + trimLeft = function(str) { + return str.match(/^\s*(.*)/)[1]; + }; + } + + // Type constants used to define functions. + var TYPE_NUMBER = 0; + var TYPE_ANY = 1; + var TYPE_STRING = 2; + var TYPE_ARRAY = 3; + var TYPE_OBJECT = 4; + var TYPE_BOOLEAN = 5; + var TYPE_EXPREF = 6; + var TYPE_NULL = 7; + var TYPE_ARRAY_NUMBER = 8; + var TYPE_ARRAY_STRING = 9; + + var TOK_EOF = "EOF"; + var TOK_UNQUOTEDIDENTIFIER = "UnquotedIdentifier"; + var TOK_QUOTEDIDENTIFIER = "QuotedIdentifier"; + var TOK_RBRACKET = "Rbracket"; + var TOK_RPAREN = "Rparen"; + var TOK_COMMA = "Comma"; + var TOK_COLON = "Colon"; + var TOK_RBRACE = "Rbrace"; + var TOK_NUMBER = "Number"; + var TOK_CURRENT = "Current"; + var TOK_EXPREF = "Expref"; + var TOK_PIPE = "Pipe"; + var TOK_OR = "Or"; + var TOK_AND = "And"; + var TOK_EQ = "EQ"; + var TOK_GT = "GT"; + var TOK_LT = "LT"; + var TOK_GTE = "GTE"; + var TOK_LTE = "LTE"; + var TOK_NE = "NE"; + var TOK_FLATTEN = "Flatten"; + var TOK_STAR = "Star"; + var TOK_FILTER = "Filter"; + var TOK_DOT = "Dot"; + var TOK_NOT = "Not"; + var TOK_LBRACE = "Lbrace"; + var TOK_LBRACKET = "Lbracket"; + var TOK_LPAREN= "Lparen"; + var TOK_LITERAL= "Literal"; + + // The "&", "[", "<", ">" tokens + // are not in basicToken because + // there are two token variants + // ("&&", "[?", "<=", ">="). This is specially handled + // below. + + var basicTokens = { + ".": TOK_DOT, + "*": TOK_STAR, + ",": TOK_COMMA, + ":": TOK_COLON, + "{": TOK_LBRACE, + "}": TOK_RBRACE, + "]": TOK_RBRACKET, + "(": TOK_LPAREN, + ")": TOK_RPAREN, + "@": TOK_CURRENT + }; + + var operatorStartToken = { + "<": true, + ">": true, + "=": true, + "!": true + }; + + var skipChars = { + " ": true, + "\t": true, + "\n": true + }; + + + function isAlpha(ch) { + return (ch >= "a" && ch <= "z") || + (ch >= "A" && ch <= "Z") || + ch === "_"; + } + + function isNum(ch) { + return (ch >= "0" && ch <= "9") || + ch === "-"; + } + function isAlphaNum(ch) { + return (ch >= "a" && ch <= "z") || + (ch >= "A" && ch <= "Z") || + (ch >= "0" && ch <= "9") || + ch === "_"; + } + + function Lexer() { + } + Lexer.prototype = { + tokenize: function(stream) { + var tokens = []; + this._current = 0; + var start; + var identifier; + var token; + while (this._current < stream.length) { + if (isAlpha(stream[this._current])) { + start = this._current; + identifier = this._consumeUnquotedIdentifier(stream); + tokens.push({type: TOK_UNQUOTEDIDENTIFIER, + value: identifier, + start: start}); + } else if (basicTokens[stream[this._current]] !== undefined) { + tokens.push({type: basicTokens[stream[this._current]], + value: stream[this._current], + start: this._current}); + this._current++; + } else if (isNum(stream[this._current])) { + token = this._consumeNumber(stream); + tokens.push(token); + } else if (stream[this._current] === "[") { + // No need to increment this._current. This happens + // in _consumeLBracket + token = this._consumeLBracket(stream); + tokens.push(token); + } else if (stream[this._current] === "\"") { + start = this._current; + identifier = this._consumeQuotedIdentifier(stream); + tokens.push({type: TOK_QUOTEDIDENTIFIER, + value: identifier, + start: start}); + } else if (stream[this._current] === "'") { + start = this._current; + identifier = this._consumeRawStringLiteral(stream); + tokens.push({type: TOK_LITERAL, + value: identifier, + start: start}); + } else if (stream[this._current] === "`") { + start = this._current; + var literal = this._consumeLiteral(stream); + tokens.push({type: TOK_LITERAL, + value: literal, + start: start}); + } else if (operatorStartToken[stream[this._current]] !== undefined) { + tokens.push(this._consumeOperator(stream)); + } else if (skipChars[stream[this._current]] !== undefined) { + // Ignore whitespace. + this._current++; + } else if (stream[this._current] === "&") { + start = this._current; + this._current++; + if (stream[this._current] === "&") { + this._current++; + tokens.push({type: TOK_AND, value: "&&", start: start}); + } else { + tokens.push({type: TOK_EXPREF, value: "&", start: start}); + } + } else if (stream[this._current] === "|") { + start = this._current; + this._current++; + if (stream[this._current] === "|") { + this._current++; + tokens.push({type: TOK_OR, value: "||", start: start}); + } else { + tokens.push({type: TOK_PIPE, value: "|", start: start}); + } + } else { + var error = new Error("Unknown character:" + stream[this._current]); + error.name = "LexerError"; + throw error; + } + } + return tokens; + }, + + _consumeUnquotedIdentifier: function(stream) { + var start = this._current; + this._current++; + while (this._current < stream.length && isAlphaNum(stream[this._current])) { + this._current++; + } + return stream.slice(start, this._current); + }, + + _consumeQuotedIdentifier: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (stream[this._current] !== "\"" && this._current < maxLength) { + // You can escape a double quote and you can escape an escape. + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "\"")) { + current += 2; + } else { + current++; + } + this._current = current; + } + this._current++; + return JSON.parse(stream.slice(start, this._current)); + }, + + _consumeRawStringLiteral: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (stream[this._current] !== "'" && this._current < maxLength) { + // You can escape a single quote and you can escape an escape. + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "'")) { + current += 2; + } else { + current++; + } + this._current = current; + } + this._current++; + var literal = stream.slice(start + 1, this._current - 1); + return literal.replace("\\'", "'"); + }, + + _consumeNumber: function(stream) { + var start = this._current; + this._current++; + var maxLength = stream.length; + while (isNum(stream[this._current]) && this._current < maxLength) { + this._current++; + } + var value = parseInt(stream.slice(start, this._current)); + return {type: TOK_NUMBER, value: value, start: start}; + }, + + _consumeLBracket: function(stream) { + var start = this._current; + this._current++; + if (stream[this._current] === "?") { + this._current++; + return {type: TOK_FILTER, value: "[?", start: start}; + } else if (stream[this._current] === "]") { + this._current++; + return {type: TOK_FLATTEN, value: "[]", start: start}; + } else { + return {type: TOK_LBRACKET, value: "[", start: start}; + } + }, + + _consumeOperator: function(stream) { + var start = this._current; + var startingChar = stream[start]; + this._current++; + if (startingChar === "!") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_NE, value: "!=", start: start}; + } else { + return {type: TOK_NOT, value: "!", start: start}; + } + } else if (startingChar === "<") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_LTE, value: "<=", start: start}; + } else { + return {type: TOK_LT, value: "<", start: start}; + } + } else if (startingChar === ">") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_GTE, value: ">=", start: start}; + } else { + return {type: TOK_GT, value: ">", start: start}; + } + } else if (startingChar === "=") { + if (stream[this._current] === "=") { + this._current++; + return {type: TOK_EQ, value: "==", start: start}; + } + } + }, + + _consumeLiteral: function(stream) { + this._current++; + var start = this._current; + var maxLength = stream.length; + var literal; + while(stream[this._current] !== "`" && this._current < maxLength) { + // You can escape a literal char or you can escape the escape. + var current = this._current; + if (stream[current] === "\\" && (stream[current + 1] === "\\" || + stream[current + 1] === "`")) { + current += 2; + } else { + current++; + } + this._current = current; + } + var literalString = trimLeft(stream.slice(start, this._current)); + literalString = literalString.replace("\\`", "`"); + if (this._looksLikeJSON(literalString)) { + literal = JSON.parse(literalString); + } else { + // Try to JSON parse it as "" + literal = JSON.parse("\"" + literalString + "\""); + } + // +1 gets us to the ending "`", +1 to move on to the next char. + this._current++; + return literal; + }, + + _looksLikeJSON: function(literalString) { + var startingChars = "[{\""; + var jsonLiterals = ["true", "false", "null"]; + var numberLooking = "-0123456789"; + + if (literalString === "") { + return false; + } else if (startingChars.indexOf(literalString[0]) >= 0) { + return true; + } else if (jsonLiterals.indexOf(literalString) >= 0) { + return true; + } else if (numberLooking.indexOf(literalString[0]) >= 0) { + try { + JSON.parse(literalString); + return true; + } catch (ex) { + return false; + } + } else { + return false; + } + } + }; + + var bindingPower = {}; + bindingPower[TOK_EOF] = 0; + bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0; + bindingPower[TOK_QUOTEDIDENTIFIER] = 0; + bindingPower[TOK_RBRACKET] = 0; + bindingPower[TOK_RPAREN] = 0; + bindingPower[TOK_COMMA] = 0; + bindingPower[TOK_RBRACE] = 0; + bindingPower[TOK_NUMBER] = 0; + bindingPower[TOK_CURRENT] = 0; + bindingPower[TOK_EXPREF] = 0; + bindingPower[TOK_PIPE] = 1; + bindingPower[TOK_OR] = 2; + bindingPower[TOK_AND] = 3; + bindingPower[TOK_EQ] = 5; + bindingPower[TOK_GT] = 5; + bindingPower[TOK_LT] = 5; + bindingPower[TOK_GTE] = 5; + bindingPower[TOK_LTE] = 5; + bindingPower[TOK_NE] = 5; + bindingPower[TOK_FLATTEN] = 9; + bindingPower[TOK_STAR] = 20; + bindingPower[TOK_FILTER] = 21; + bindingPower[TOK_DOT] = 40; + bindingPower[TOK_NOT] = 45; + bindingPower[TOK_LBRACE] = 50; + bindingPower[TOK_LBRACKET] = 55; + bindingPower[TOK_LPAREN] = 60; + + function Parser() { + } + + Parser.prototype = { + parse: function(expression) { + this._loadTokens(expression); + this.index = 0; + var ast = this.expression(0); + if (this._lookahead(0) !== TOK_EOF) { + var t = this._lookaheadToken(0); + var error = new Error( + "Unexpected token type: " + t.type + ", value: " + t.value); + error.name = "ParserError"; + throw error; + } + return ast; + }, + + _loadTokens: function(expression) { + var lexer = new Lexer(); + var tokens = lexer.tokenize(expression); + tokens.push({type: TOK_EOF, value: "", start: expression.length}); + this.tokens = tokens; + }, + + expression: function(rbp) { + var leftToken = this._lookaheadToken(0); + this._advance(); + var left = this.nud(leftToken); + var currentToken = this._lookahead(0); + while (rbp < bindingPower[currentToken]) { + this._advance(); + left = this.led(currentToken, left); + currentToken = this._lookahead(0); + } + return left; + }, + + _lookahead: function(number) { + return this.tokens[this.index + number].type; + }, + + _lookaheadToken: function(number) { + return this.tokens[this.index + number]; + }, + + _advance: function() { + this.index++; + }, + + nud: function(token) { + var left; + var right; + var expression; + switch (token.type) { + case TOK_LITERAL: + return {type: "Literal", value: token.value}; + case TOK_UNQUOTEDIDENTIFIER: + return {type: "Field", name: token.value}; + case TOK_QUOTEDIDENTIFIER: + var node = {type: "Field", name: token.value}; + if (this._lookahead(0) === TOK_LPAREN) { + throw new Error("Quoted identifier not allowed for function names."); + } else { + return node; + } + break; + case TOK_NOT: + right = this.expression(bindingPower.Not); + return {type: "NotExpression", children: [right]}; + case TOK_STAR: + left = {type: "Identity"}; + right = null; + if (this._lookahead(0) === TOK_RBRACKET) { + // This can happen in a multiselect, + // [a, b, *] + right = {type: "Identity"}; + } else { + right = this._parseProjectionRHS(bindingPower.Star); + } + return {type: "ValueProjection", children: [left, right]}; + case TOK_FILTER: return this.led(token.type, {type: "Identity"}); case TOK_LBRACE: return this._parseMultiselectHash(); @@ -15226,1970 +15228,1970 @@ return /******/ (function(modules) { // webpackBootstrap }; } - Runtime.prototype = { - callFunction: function(name, resolvedArgs) { - var functionEntry = this.functionTable[name]; - if (functionEntry === undefined) { - throw new Error("Unknown function: " + name + "()"); + Runtime.prototype = { + callFunction: function(name, resolvedArgs) { + var functionEntry = this.functionTable[name]; + if (functionEntry === undefined) { + throw new Error("Unknown function: " + name + "()"); + } + this._validateArgs(name, resolvedArgs, functionEntry._signature); + return functionEntry._func.call(this, resolvedArgs); + }, + + _validateArgs: function(name, args, signature) { + // Validating the args requires validating + // the correct arity and the correct type of each arg. + // If the last argument is declared as variadic, then we need + // a minimum number of args to be required. Otherwise it has to + // be an exact amount. + var pluralized; + if (signature[signature.length - 1].variadic) { + if (args.length < signature.length) { + pluralized = signature.length === 1 ? " argument" : " arguments"; + throw new Error("ArgumentError: " + name + "() " + + "takes at least" + signature.length + pluralized + + " but received " + args.length); + } + } else if (args.length !== signature.length) { + pluralized = signature.length === 1 ? " argument" : " arguments"; + throw new Error("ArgumentError: " + name + "() " + + "takes " + signature.length + pluralized + + " but received " + args.length); + } + var currentSpec; + var actualType; + var typeMatched; + for (var i = 0; i < signature.length; i++) { + typeMatched = false; + currentSpec = signature[i].types; + actualType = this._getTypeName(args[i]); + for (var j = 0; j < currentSpec.length; j++) { + if (this._typeMatches(actualType, currentSpec[j], args[i])) { + typeMatched = true; + break; + } + } + if (!typeMatched) { + throw new Error("TypeError: " + name + "() " + + "expected argument " + (i + 1) + + " to be type " + currentSpec + + " but received type " + actualType + + " instead."); + } + } + }, + + _typeMatches: function(actual, expected, argValue) { + if (expected === TYPE_ANY) { + return true; + } + if (expected === TYPE_ARRAY_STRING || + expected === TYPE_ARRAY_NUMBER || + expected === TYPE_ARRAY) { + // The expected type can either just be array, + // or it can require a specific subtype (array of numbers). + // + // The simplest case is if "array" with no subtype is specified. + if (expected === TYPE_ARRAY) { + return actual === TYPE_ARRAY; + } else if (actual === TYPE_ARRAY) { + // Otherwise we need to check subtypes. + // I think this has potential to be improved. + var subtype; + if (expected === TYPE_ARRAY_NUMBER) { + subtype = TYPE_NUMBER; + } else if (expected === TYPE_ARRAY_STRING) { + subtype = TYPE_STRING; + } + for (var i = 0; i < argValue.length; i++) { + if (!this._typeMatches( + this._getTypeName(argValue[i]), subtype, + argValue[i])) { + return false; + } + } + return true; + } + } else { + return actual === expected; + } + }, + _getTypeName: function(obj) { + switch (Object.prototype.toString.call(obj)) { + case "[object String]": + return TYPE_STRING; + case "[object Number]": + return TYPE_NUMBER; + case "[object Array]": + return TYPE_ARRAY; + case "[object Boolean]": + return TYPE_BOOLEAN; + case "[object Null]": + return TYPE_NULL; + case "[object Object]": + // Check if it's an expref. If it has, it's been + // tagged with a jmespathType attr of 'Expref'; + if (obj.jmespathType === TOK_EXPREF) { + return TYPE_EXPREF; + } else { + return TYPE_OBJECT; + } + } + }, + + _functionStartsWith: function(resolvedArgs) { + return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0; + }, + + _functionEndsWith: function(resolvedArgs) { + var searchStr = resolvedArgs[0]; + var suffix = resolvedArgs[1]; + return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1; + }, + + _functionReverse: function(resolvedArgs) { + var typeName = this._getTypeName(resolvedArgs[0]); + if (typeName === TYPE_STRING) { + var originalStr = resolvedArgs[0]; + var reversedStr = ""; + for (var i = originalStr.length - 1; i >= 0; i--) { + reversedStr += originalStr[i]; + } + return reversedStr; + } else { + var reversedArray = resolvedArgs[0].slice(0); + reversedArray.reverse(); + return reversedArray; + } + }, + + _functionAbs: function(resolvedArgs) { + return Math.abs(resolvedArgs[0]); + }, + + _functionCeil: function(resolvedArgs) { + return Math.ceil(resolvedArgs[0]); + }, + + _functionAvg: function(resolvedArgs) { + var sum = 0; + var inputArray = resolvedArgs[0]; + for (var i = 0; i < inputArray.length; i++) { + sum += inputArray[i]; + } + return sum / inputArray.length; + }, + + _functionContains: function(resolvedArgs) { + return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0; + }, + + _functionFloor: function(resolvedArgs) { + return Math.floor(resolvedArgs[0]); + }, + + _functionLength: function(resolvedArgs) { + if (!isObject(resolvedArgs[0])) { + return resolvedArgs[0].length; + } else { + // As far as I can tell, there's no way to get the length + // of an object without O(n) iteration through the object. + return Object.keys(resolvedArgs[0]).length; + } + }, + + _functionMap: function(resolvedArgs) { + var mapped = []; + var interpreter = this._interpreter; + var exprefNode = resolvedArgs[0]; + var elements = resolvedArgs[1]; + for (var i = 0; i < elements.length; i++) { + mapped.push(interpreter.visit(exprefNode, elements[i])); + } + return mapped; + }, + + _functionMerge: function(resolvedArgs) { + var merged = {}; + for (var i = 0; i < resolvedArgs.length; i++) { + var current = resolvedArgs[i]; + for (var key in current) { + merged[key] = current[key]; + } + } + return merged; + }, + + _functionMax: function(resolvedArgs) { + if (resolvedArgs[0].length > 0) { + var typeName = this._getTypeName(resolvedArgs[0][0]); + if (typeName === TYPE_NUMBER) { + return Math.max.apply(Math, resolvedArgs[0]); + } else { + var elements = resolvedArgs[0]; + var maxElement = elements[0]; + for (var i = 1; i < elements.length; i++) { + if (maxElement.localeCompare(elements[i]) < 0) { + maxElement = elements[i]; + } + } + return maxElement; + } + } else { + return null; + } + }, + + _functionMin: function(resolvedArgs) { + if (resolvedArgs[0].length > 0) { + var typeName = this._getTypeName(resolvedArgs[0][0]); + if (typeName === TYPE_NUMBER) { + return Math.min.apply(Math, resolvedArgs[0]); + } else { + var elements = resolvedArgs[0]; + var minElement = elements[0]; + for (var i = 1; i < elements.length; i++) { + if (elements[i].localeCompare(minElement) < 0) { + minElement = elements[i]; + } + } + return minElement; + } + } else { + return null; + } + }, + + _functionSum: function(resolvedArgs) { + var sum = 0; + var listToSum = resolvedArgs[0]; + for (var i = 0; i < listToSum.length; i++) { + sum += listToSum[i]; + } + return sum; + }, + + _functionType: function(resolvedArgs) { + switch (this._getTypeName(resolvedArgs[0])) { + case TYPE_NUMBER: + return "number"; + case TYPE_STRING: + return "string"; + case TYPE_ARRAY: + return "array"; + case TYPE_OBJECT: + return "object"; + case TYPE_BOOLEAN: + return "boolean"; + case TYPE_EXPREF: + return "expref"; + case TYPE_NULL: + return "null"; + } + }, + + _functionKeys: function(resolvedArgs) { + return Object.keys(resolvedArgs[0]); + }, + + _functionValues: function(resolvedArgs) { + var obj = resolvedArgs[0]; + var keys = Object.keys(obj); + var values = []; + for (var i = 0; i < keys.length; i++) { + values.push(obj[keys[i]]); + } + return values; + }, + + _functionJoin: function(resolvedArgs) { + var joinChar = resolvedArgs[0]; + var listJoin = resolvedArgs[1]; + return listJoin.join(joinChar); + }, + + _functionToArray: function(resolvedArgs) { + if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) { + return resolvedArgs[0]; + } else { + return [resolvedArgs[0]]; + } + }, + + _functionToString: function(resolvedArgs) { + if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) { + return resolvedArgs[0]; + } else { + return JSON.stringify(resolvedArgs[0]); + } + }, + + _functionToNumber: function(resolvedArgs) { + var typeName = this._getTypeName(resolvedArgs[0]); + var convertedValue; + if (typeName === TYPE_NUMBER) { + return resolvedArgs[0]; + } else if (typeName === TYPE_STRING) { + convertedValue = +resolvedArgs[0]; + if (!isNaN(convertedValue)) { + return convertedValue; + } + } + return null; + }, + + _functionNotNull: function(resolvedArgs) { + for (var i = 0; i < resolvedArgs.length; i++) { + if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) { + return resolvedArgs[i]; + } + } + return null; + }, + + _functionSort: function(resolvedArgs) { + var sortedArray = resolvedArgs[0].slice(0); + sortedArray.sort(); + return sortedArray; + }, + + _functionSortBy: function(resolvedArgs) { + var sortedArray = resolvedArgs[0].slice(0); + if (sortedArray.length === 0) { + return sortedArray; + } + var interpreter = this._interpreter; + var exprefNode = resolvedArgs[1]; + var requiredType = this._getTypeName( + interpreter.visit(exprefNode, sortedArray[0])); + if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) { + throw new Error("TypeError"); + } + var that = this; + // In order to get a stable sort out of an unstable + // sort algorithm, we decorate/sort/undecorate (DSU) + // by creating a new list of [index, element] pairs. + // In the cmp function, if the evaluated elements are + // equal, then the index will be used as the tiebreaker. + // After the decorated list has been sorted, it will be + // undecorated to extract the original elements. + var decorated = []; + for (var i = 0; i < sortedArray.length; i++) { + decorated.push([i, sortedArray[i]]); + } + decorated.sort(function(a, b) { + var exprA = interpreter.visit(exprefNode, a[1]); + var exprB = interpreter.visit(exprefNode, b[1]); + if (that._getTypeName(exprA) !== requiredType) { + throw new Error( + "TypeError: expected " + requiredType + ", received " + + that._getTypeName(exprA)); + } else if (that._getTypeName(exprB) !== requiredType) { + throw new Error( + "TypeError: expected " + requiredType + ", received " + + that._getTypeName(exprB)); + } + if (exprA > exprB) { + return 1; + } else if (exprA < exprB) { + return -1; + } else { + // If they're equal compare the items by their + // order to maintain relative order of equal keys + // (i.e. to get a stable sort). + return a[0] - b[0]; + } + }); + // Undecorate: extract out the original list elements. + for (var j = 0; j < decorated.length; j++) { + sortedArray[j] = decorated[j][1]; + } + return sortedArray; + }, + + _functionMaxBy: function(resolvedArgs) { + var exprefNode = resolvedArgs[1]; + var resolvedArray = resolvedArgs[0]; + var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); + var maxNumber = -Infinity; + var maxRecord; + var current; + for (var i = 0; i < resolvedArray.length; i++) { + current = keyFunction(resolvedArray[i]); + if (current > maxNumber) { + maxNumber = current; + maxRecord = resolvedArray[i]; + } + } + return maxRecord; + }, + + _functionMinBy: function(resolvedArgs) { + var exprefNode = resolvedArgs[1]; + var resolvedArray = resolvedArgs[0]; + var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); + var minNumber = Infinity; + var minRecord; + var current; + for (var i = 0; i < resolvedArray.length; i++) { + current = keyFunction(resolvedArray[i]); + if (current < minNumber) { + minNumber = current; + minRecord = resolvedArray[i]; + } + } + return minRecord; + }, + + createKeyFunction: function(exprefNode, allowedTypes) { + var that = this; + var interpreter = this._interpreter; + var keyFunc = function(x) { + var current = interpreter.visit(exprefNode, x); + if (allowedTypes.indexOf(that._getTypeName(current)) < 0) { + var msg = "TypeError: expected one of " + allowedTypes + + ", received " + that._getTypeName(current); + throw new Error(msg); + } + return current; + }; + return keyFunc; + } + + }; + + function compile(stream) { + var parser = new Parser(); + var ast = parser.parse(stream); + return ast; + } + + function tokenize(stream) { + var lexer = new Lexer(); + return lexer.tokenize(stream); + } + + function search(data, expression) { + var parser = new Parser(); + // This needs to be improved. Both the interpreter and runtime depend on + // each other. The runtime needs the interpreter to support exprefs. + // There's likely a clean way to avoid the cyclic dependency. + var runtime = new Runtime(); + var interpreter = new TreeInterpreter(runtime); + runtime._interpreter = interpreter; + var node = parser.parse(expression); + return interpreter.search(node, data); + } + + exports.tokenize = tokenize; + exports.compile = compile; + exports.search = search; + exports.strictDeepEqual = strictDeepEqual; + })( false ? this.jmespath = {} : exports); + + + /***/ }), + /* 202 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + var jmespath = __webpack_require__(201); + + /** + * This class encapsulates the response information + * from a service request operation sent through {AWS.Request}. + * The response object has two main properties for getting information + * back from a request: + * + * ## The `data` property + * + * The `response.data` property contains the serialized object data + * retrieved from the service request. For instance, for an + * Amazon DynamoDB `listTables` method call, the response data might + * look like: + * + * ``` + * > resp.data + * { TableNames: + * [ 'table1', 'table2', ... ] } + * ``` + * + * The `data` property can be null if an error occurs (see below). + * + * ## The `error` property + * + * In the event of a service error (or transfer error), the + * `response.error` property will be filled with the given + * error data in the form: + * + * ``` + * { code: 'SHORT_UNIQUE_ERROR_CODE', + * message: 'Some human readable error message' } + * ``` + * + * In the case of an error, the `data` property will be `null`. + * Note that if you handle events that can be in a failure state, + * you should always check whether `response.error` is set + * before attempting to access the `response.data` property. + * + * @!attribute data + * @readonly + * @!group Data Properties + * @note Inside of a {AWS.Request~httpData} event, this + * property contains a single raw packet instead of the + * full de-serialized service response. + * @return [Object] the de-serialized response data + * from the service. + * + * @!attribute error + * An structure containing information about a service + * or networking error. + * @readonly + * @!group Data Properties + * @note This attribute is only filled if a service or + * networking error occurs. + * @return [Error] + * * code [String] a unique short code representing the + * error that was emitted. + * * message [String] a longer human readable error message + * * retryable [Boolean] whether the error message is + * retryable. + * * statusCode [Numeric] in the case of a request that reached the service, + * this value contains the response status code. + * * time [Date] the date time object when the error occurred. + * * hostname [String] set when a networking error occurs to easily + * identify the endpoint of the request. + * * region [String] set when a networking error occurs to easily + * identify the region of the request. + * + * @!attribute requestId + * @readonly + * @!group Data Properties + * @return [String] the unique request ID associated with the response. + * Log this value when debugging requests for AWS support. + * + * @!attribute retryCount + * @readonly + * @!group Operation Properties + * @return [Integer] the number of retries that were + * attempted before the request was completed. + * + * @!attribute redirectCount + * @readonly + * @!group Operation Properties + * @return [Integer] the number of redirects that were + * followed before the request was completed. + * + * @!attribute httpResponse + * @readonly + * @!group HTTP Properties + * @return [AWS.HttpResponse] the raw HTTP response object + * containing the response headers and body information + * from the server. + * + * @see AWS.Request + */ + AWS.Response = inherit({ + + /** + * @api private + */ + constructor: function Response(request) { + this.request = request; + this.data = null; + this.error = null; + this.retryCount = 0; + this.redirectCount = 0; + this.httpResponse = new AWS.HttpResponse(); + if (request) { + this.maxRetries = request.service.numRetries(); + this.maxRedirects = request.service.config.maxRedirects; + } + }, + + /** + * Creates a new request for the next page of response data, calling the + * callback with the page data if a callback is provided. + * + * @callback callback function(err, data) + * Called when a page of data is returned from the next request. + * + * @param err [Error] an error object, if an error occurred in the request + * @param data [Object] the next page of data, or null, if there are no + * more pages left. + * @return [AWS.Request] the request object for the next page of data + * @return [null] if no callback is provided and there are no pages left + * to retrieve. + * @since v1.4.0 + */ + nextPage: function nextPage(callback) { + var config; + var service = this.request.service; + var operation = this.request.operation; + try { + config = service.paginationConfig(operation, true); + } catch (e) { this.error = e; } + + if (!this.hasNextPage()) { + if (callback) callback(this.error, null); + else if (this.error) throw this.error; + return null; + } + + var params = AWS.util.copy(this.request.params); + if (!this.nextPageTokens) { + return callback ? callback(null, null) : null; + } else { + var inputTokens = config.inputToken; + if (typeof inputTokens === 'string') inputTokens = [inputTokens]; + for (var i = 0; i < inputTokens.length; i++) { + params[inputTokens[i]] = this.nextPageTokens[i]; + } + return service.makeRequest(this.request.operation, params, callback); + } + }, + + /** + * @return [Boolean] whether more pages of data can be returned by further + * requests + * @since v1.4.0 + */ + hasNextPage: function hasNextPage() { + this.cacheNextPageTokens(); + if (this.nextPageTokens) return true; + if (this.nextPageTokens === undefined) return undefined; + else return false; + }, + + /** + * @api private + */ + cacheNextPageTokens: function cacheNextPageTokens() { + if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens; + this.nextPageTokens = undefined; + + var config = this.request.service.paginationConfig(this.request.operation); + if (!config) return this.nextPageTokens; + + this.nextPageTokens = null; + if (config.moreResults) { + if (!jmespath.search(this.data, config.moreResults)) { + return this.nextPageTokens; + } + } + + var exprs = config.outputToken; + if (typeof exprs === 'string') exprs = [exprs]; + AWS.util.arrayEach.call(this, exprs, function (expr) { + var output = jmespath.search(this.data, expr); + if (output) { + this.nextPageTokens = this.nextPageTokens || []; + this.nextPageTokens.push(output); + } + }); + + return this.nextPageTokens; + } + + }); + + + /***/ }), + /* 203 */ + /***/ (function(module, exports, __webpack_require__) { + + /** + * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You + * may not use this file except in compliance with the License. A copy of + * the License is located at + * + * http://aws.amazon.com/apache2.0/ + * + * or in the "license" file accompanying this file. This file is + * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF + * ANY KIND, either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + */ + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + var jmespath = __webpack_require__(201); + + /** + * @api private + */ + function CHECK_ACCEPTORS(resp) { + var waiter = resp.request._waiter; + var acceptors = waiter.config.acceptors; + var acceptorMatched = false; + var state = 'retry'; + + acceptors.forEach(function(acceptor) { + if (!acceptorMatched) { + var matcher = waiter.matchers[acceptor.matcher]; + if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { + acceptorMatched = true; + state = acceptor.state; + } + } + }); + + if (!acceptorMatched && resp.error) state = 'failure'; + + if (state === 'success') { + waiter.setSuccess(resp); + } else { + waiter.setError(resp, state === 'retry'); + } + } + + /** + * @api private + */ + AWS.ResourceWaiter = inherit({ + /** + * Waits for a given state on a service object + * @param service [Service] the service object to wait on + * @param state [String] the state (defined in waiter configuration) to wait + * for. + * @example Create a waiter for running EC2 instances + * var ec2 = new AWS.EC2; + * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning'); + */ + constructor: function constructor(service, state) { + this.service = service; + this.state = state; + this.loadWaiterConfig(this.state); + }, + + service: null, + + state: null, + + config: null, + + matchers: { + path: function(resp, expected, argument) { + try { + var result = jmespath.search(resp.data, argument); + } catch (err) { + return false; } - this._validateArgs(name, resolvedArgs, functionEntry._signature); - return functionEntry._func.call(this, resolvedArgs); - }, - _validateArgs: function(name, args, signature) { - // Validating the args requires validating - // the correct arity and the correct type of each arg. - // If the last argument is declared as variadic, then we need - // a minimum number of args to be required. Otherwise it has to - // be an exact amount. - var pluralized; - if (signature[signature.length - 1].variadic) { - if (args.length < signature.length) { - pluralized = signature.length === 1 ? " argument" : " arguments"; - throw new Error("ArgumentError: " + name + "() " + - "takes at least" + signature.length + pluralized + - " but received " + args.length); - } - } else if (args.length !== signature.length) { - pluralized = signature.length === 1 ? " argument" : " arguments"; - throw new Error("ArgumentError: " + name + "() " + - "takes " + signature.length + pluralized + - " but received " + args.length); - } - var currentSpec; - var actualType; - var typeMatched; - for (var i = 0; i < signature.length; i++) { - typeMatched = false; - currentSpec = signature[i].types; - actualType = this._getTypeName(args[i]); - for (var j = 0; j < currentSpec.length; j++) { - if (this._typeMatches(actualType, currentSpec[j], args[i])) { - typeMatched = true; - break; - } - } - if (!typeMatched) { - throw new Error("TypeError: " + name + "() " + - "expected argument " + (i + 1) + - " to be type " + currentSpec + - " but received type " + actualType + - " instead."); - } - } + return jmespath.strictDeepEqual(result,expected); }, - _typeMatches: function(actual, expected, argValue) { - if (expected === TYPE_ANY) { - return true; - } - if (expected === TYPE_ARRAY_STRING || - expected === TYPE_ARRAY_NUMBER || - expected === TYPE_ARRAY) { - // The expected type can either just be array, - // or it can require a specific subtype (array of numbers). - // - // The simplest case is if "array" with no subtype is specified. - if (expected === TYPE_ARRAY) { - return actual === TYPE_ARRAY; - } else if (actual === TYPE_ARRAY) { - // Otherwise we need to check subtypes. - // I think this has potential to be improved. - var subtype; - if (expected === TYPE_ARRAY_NUMBER) { - subtype = TYPE_NUMBER; - } else if (expected === TYPE_ARRAY_STRING) { - subtype = TYPE_STRING; - } - for (var i = 0; i < argValue.length; i++) { - if (!this._typeMatches( - this._getTypeName(argValue[i]), subtype, - argValue[i])) { - return false; - } - } - return true; - } - } else { - return actual === expected; - } - }, - _getTypeName: function(obj) { - switch (Object.prototype.toString.call(obj)) { - case "[object String]": - return TYPE_STRING; - case "[object Number]": - return TYPE_NUMBER; - case "[object Array]": - return TYPE_ARRAY; - case "[object Boolean]": - return TYPE_BOOLEAN; - case "[object Null]": - return TYPE_NULL; - case "[object Object]": - // Check if it's an expref. If it has, it's been - // tagged with a jmespathType attr of 'Expref'; - if (obj.jmespathType === TOK_EXPREF) { - return TYPE_EXPREF; - } else { - return TYPE_OBJECT; - } - } - }, + pathAll: function(resp, expected, argument) { + try { + var results = jmespath.search(resp.data, argument); + } catch (err) { + return false; + } - _functionStartsWith: function(resolvedArgs) { - return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0; + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + if (!numResults) return false; + for (var ind = 0 ; ind < numResults; ind++) { + if (!jmespath.strictDeepEqual(results[ind], expected)) { + return false; + } + } + return true; }, - _functionEndsWith: function(resolvedArgs) { - var searchStr = resolvedArgs[0]; - var suffix = resolvedArgs[1]; - return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1; - }, + pathAny: function(resp, expected, argument) { + try { + var results = jmespath.search(resp.data, argument); + } catch (err) { + return false; + } - _functionReverse: function(resolvedArgs) { - var typeName = this._getTypeName(resolvedArgs[0]); - if (typeName === TYPE_STRING) { - var originalStr = resolvedArgs[0]; - var reversedStr = ""; - for (var i = originalStr.length - 1; i >= 0; i--) { - reversedStr += originalStr[i]; - } - return reversedStr; - } else { - var reversedArray = resolvedArgs[0].slice(0); - reversedArray.reverse(); - return reversedArray; + if (!Array.isArray(results)) results = [results]; + var numResults = results.length; + for (var ind = 0 ; ind < numResults; ind++) { + if (jmespath.strictDeepEqual(results[ind], expected)) { + return true; } + } + return false; }, - _functionAbs: function(resolvedArgs) { - return Math.abs(resolvedArgs[0]); + status: function(resp, expected) { + var statusCode = resp.httpResponse.statusCode; + return (typeof statusCode === 'number') && (statusCode === expected); }, - _functionCeil: function(resolvedArgs) { - return Math.ceil(resolvedArgs[0]); - }, + error: function(resp, expected) { + if (typeof expected === 'string' && resp.error) { + return expected === resp.error.code; + } + // if expected is not string, can be boolean indicating presence of error + return expected === !!resp.error; + } + }, - _functionAvg: function(resolvedArgs) { - var sum = 0; - var inputArray = resolvedArgs[0]; - for (var i = 0; i < inputArray.length; i++) { - sum += inputArray[i]; - } - return sum / inputArray.length; - }, + listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) { + add('RETRY_CHECK', 'retry', function(resp) { + var waiter = resp.request._waiter; + if (resp.error && resp.error.code === 'ResourceNotReady') { + resp.error.retryDelay = (waiter.config.delay || 0) * 1000; + } + }); - _functionContains: function(resolvedArgs) { - return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0; - }, + add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); - _functionFloor: function(resolvedArgs) { - return Math.floor(resolvedArgs[0]); - }, + add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); + }), - _functionLength: function(resolvedArgs) { - if (!isObject(resolvedArgs[0])) { - return resolvedArgs[0].length; - } else { - // As far as I can tell, there's no way to get the length - // of an object without O(n) iteration through the object. - return Object.keys(resolvedArgs[0]).length; - } - }, + /** + * @return [AWS.Request] + */ + wait: function wait(params, callback) { + if (typeof params === 'function') { + callback = params; params = undefined; + } - _functionMap: function(resolvedArgs) { - var mapped = []; - var interpreter = this._interpreter; - var exprefNode = resolvedArgs[0]; - var elements = resolvedArgs[1]; - for (var i = 0; i < elements.length; i++) { - mapped.push(interpreter.visit(exprefNode, elements[i])); + if (params && params.$waiter) { + params = AWS.util.copy(params); + if (typeof params.$waiter.delay === 'number') { + this.config.delay = params.$waiter.delay; } - return mapped; - }, + if (typeof params.$waiter.maxAttempts === 'number') { + this.config.maxAttempts = params.$waiter.maxAttempts; + } + delete params.$waiter; + } - _functionMerge: function(resolvedArgs) { - var merged = {}; - for (var i = 0; i < resolvedArgs.length; i++) { - var current = resolvedArgs[i]; - for (var key in current) { - merged[key] = current[key]; - } + var request = this.service.makeRequest(this.config.operation, params); + request._waiter = this; + request.response.maxRetries = this.config.maxAttempts; + request.addListeners(this.listeners); + + if (callback) request.send(callback); + return request; + }, + + setSuccess: function setSuccess(resp) { + resp.error = null; + resp.data = resp.data || {}; + resp.request.removeAllListeners('extractData'); + }, + + setError: function setError(resp, retryable) { + resp.data = null; + resp.error = AWS.util.error(resp.error || new Error(), { + code: 'ResourceNotReady', + message: 'Resource is not in the state ' + this.state, + retryable: retryable + }); + }, + + /** + * Loads waiter configuration from API configuration + * + * @api private + */ + loadWaiterConfig: function loadWaiterConfig(state) { + if (!this.service.api.waiters[state]) { + throw new AWS.util.error(new Error(), { + code: 'StateNotFoundError', + message: 'State ' + state + ' not found.' + }); + } + + this.config = AWS.util.copy(this.service.api.waiters[state]); + } + }); + + + /***/ }), + /* 204 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.RequestSigner = inherit({ + constructor: function RequestSigner(request) { + this.request = request; + }, + + setServiceClientId: function setServiceClientId(id) { + this.serviceClientId = id; + }, + + getServiceClientId: function getServiceClientId() { + return this.serviceClientId; + } + }); + + AWS.Signers.RequestSigner.getVersion = function getVersion(version) { + switch (version) { + case 'v2': return AWS.Signers.V2; + case 'v3': return AWS.Signers.V3; + case 'v4': return AWS.Signers.V4; + case 's3': return AWS.Signers.S3; + case 'v3https': return AWS.Signers.V3Https; + } + throw new Error('Unknown signing version ' + version); + }; + + __webpack_require__(205); + __webpack_require__(206); + __webpack_require__(207); + __webpack_require__(208); + __webpack_require__(210); + __webpack_require__(211); + + + /***/ }), + /* 205 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { + addAuthorization: function addAuthorization(credentials, date) { + + if (!date) date = AWS.util.date.getDate(); + + var r = this.request; + + r.params.Timestamp = AWS.util.date.iso8601(date); + r.params.SignatureVersion = '2'; + r.params.SignatureMethod = 'HmacSHA256'; + r.params.AWSAccessKeyId = credentials.accessKeyId; + + if (credentials.sessionToken) { + r.params.SecurityToken = credentials.sessionToken; + } + + delete r.params.Signature; // delete old Signature for re-signing + r.params.Signature = this.signature(credentials); + + r.body = AWS.util.queryParamsToString(r.params); + r.headers['Content-Length'] = r.body.length; + }, + + signature: function signature(credentials) { + return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); + }, + + stringToSign: function stringToSign() { + var parts = []; + parts.push(this.request.method); + parts.push(this.request.endpoint.host.toLowerCase()); + parts.push(this.request.pathname()); + parts.push(AWS.util.queryParamsToString(this.request.params)); + return parts.join('\n'); + } + + }); + + module.exports = AWS.Signers.V2; + + + /***/ }), + /* 206 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { + addAuthorization: function addAuthorization(credentials, date) { + + var datetime = AWS.util.date.rfc822(date); + + this.request.headers['X-Amz-Date'] = datetime; + + if (credentials.sessionToken) { + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + + this.request.headers['X-Amzn-Authorization'] = + this.authorization(credentials, datetime); + + }, + + authorization: function authorization(credentials) { + return 'AWS3 ' + + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + + 'Algorithm=HmacSHA256,' + + 'SignedHeaders=' + this.signedHeaders() + ',' + + 'Signature=' + this.signature(credentials); + }, + + signedHeaders: function signedHeaders() { + var headers = []; + AWS.util.arrayEach(this.headersToSign(), function iterator(h) { + headers.push(h.toLowerCase()); + }); + return headers.sort().join(';'); + }, + + canonicalHeaders: function canonicalHeaders() { + var headers = this.request.headers; + var parts = []; + AWS.util.arrayEach(this.headersToSign(), function iterator(h) { + parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); + }); + return parts.sort().join('\n') + '\n'; + }, + + headersToSign: function headersToSign() { + var headers = []; + AWS.util.each(this.request.headers, function iterator(k) { + if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { + headers.push(k); } - return merged; - }, + }); + return headers; + }, - _functionMax: function(resolvedArgs) { - if (resolvedArgs[0].length > 0) { - var typeName = this._getTypeName(resolvedArgs[0][0]); - if (typeName === TYPE_NUMBER) { - return Math.max.apply(Math, resolvedArgs[0]); - } else { - var elements = resolvedArgs[0]; - var maxElement = elements[0]; - for (var i = 1; i < elements.length; i++) { - if (maxElement.localeCompare(elements[i]) < 0) { - maxElement = elements[i]; - } - } - return maxElement; + signature: function signature(credentials) { + return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); + }, + + stringToSign: function stringToSign() { + var parts = []; + parts.push(this.request.method); + parts.push('/'); + parts.push(''); + parts.push(this.canonicalHeaders()); + parts.push(this.request.body); + return AWS.util.crypto.sha256(parts.join('\n')); + } + + }); + + module.exports = AWS.Signers.V3; + + + /***/ }), + /* 207 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + __webpack_require__(206); + + /** + * @api private + */ + AWS.Signers.V3Https = inherit(AWS.Signers.V3, { + authorization: function authorization(credentials) { + return 'AWS3-HTTPS ' + + 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + + 'Algorithm=HmacSHA256,' + + 'Signature=' + this.signature(credentials); + }, + + stringToSign: function stringToSign() { + return this.request.headers['X-Amz-Date']; + } + }); + + module.exports = AWS.Signers.V3Https; + + + /***/ }), + /* 208 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var v4Credentials = __webpack_require__(209); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + var expiresHeader = 'presigned-expires'; + + /** + * @api private + */ + AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { + constructor: function V4(request, serviceName, options) { + AWS.Signers.RequestSigner.call(this, request); + this.serviceName = serviceName; + options = options || {}; + this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true; + this.operation = options.operation; + }, + + algorithm: 'AWS4-HMAC-SHA256', + + addAuthorization: function addAuthorization(credentials, date) { + var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); + + if (this.isPresigned()) { + this.updateForPresigned(credentials, datetime); + } else { + this.addHeaders(credentials, datetime); + } + + this.request.headers['Authorization'] = + this.authorization(credentials, datetime); + }, + + addHeaders: function addHeaders(credentials, datetime) { + this.request.headers['X-Amz-Date'] = datetime; + if (credentials.sessionToken) { + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + }, + + updateForPresigned: function updateForPresigned(credentials, datetime) { + var credString = this.credentialString(datetime); + var qs = { + 'X-Amz-Date': datetime, + 'X-Amz-Algorithm': this.algorithm, + 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, + 'X-Amz-Expires': this.request.headers[expiresHeader], + 'X-Amz-SignedHeaders': this.signedHeaders() + }; + + if (credentials.sessionToken) { + qs['X-Amz-Security-Token'] = credentials.sessionToken; + } + + if (this.request.headers['Content-Type']) { + qs['Content-Type'] = this.request.headers['Content-Type']; + } + if (this.request.headers['Content-MD5']) { + qs['Content-MD5'] = this.request.headers['Content-MD5']; + } + if (this.request.headers['Cache-Control']) { + qs['Cache-Control'] = this.request.headers['Cache-Control']; + } + + // need to pull in any other X-Amz-* headers + AWS.util.each.call(this, this.request.headers, function(key, value) { + if (key === expiresHeader) return; + if (this.isSignableHeader(key)) { + var lowerKey = key.toLowerCase(); + // Metadata should be normalized + if (lowerKey.indexOf('x-amz-meta-') === 0) { + qs[lowerKey] = value; + } else if (lowerKey.indexOf('x-amz-') === 0) { + qs[key] = value; } - } else { - return null; } - }, + }); - _functionMin: function(resolvedArgs) { - if (resolvedArgs[0].length > 0) { - var typeName = this._getTypeName(resolvedArgs[0][0]); - if (typeName === TYPE_NUMBER) { - return Math.min.apply(Math, resolvedArgs[0]); - } else { - var elements = resolvedArgs[0]; - var minElement = elements[0]; - for (var i = 1; i < elements.length; i++) { - if (elements[i].localeCompare(minElement) < 0) { - minElement = elements[i]; - } - } - return minElement; + var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; + this.request.path += sep + AWS.util.queryParamsToString(qs); + }, + + authorization: function authorization(credentials, datetime) { + var parts = []; + var credString = this.credentialString(datetime); + parts.push(this.algorithm + ' Credential=' + + credentials.accessKeyId + '/' + credString); + parts.push('SignedHeaders=' + this.signedHeaders()); + parts.push('Signature=' + this.signature(credentials, datetime)); + return parts.join(', '); + }, + + signature: function signature(credentials, datetime) { + var signingKey = v4Credentials.getSigningKey( + credentials, + datetime.substr(0, 8), + this.request.region, + this.serviceName, + this.signatureCache + ); + return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex'); + }, + + stringToSign: function stringToSign(datetime) { + var parts = []; + parts.push('AWS4-HMAC-SHA256'); + parts.push(datetime); + parts.push(this.credentialString(datetime)); + parts.push(this.hexEncodedHash(this.canonicalString())); + return parts.join('\n'); + }, + + canonicalString: function canonicalString() { + var parts = [], pathname = this.request.pathname(); + if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname); + + parts.push(this.request.method); + parts.push(pathname); + parts.push(this.request.search()); + parts.push(this.canonicalHeaders() + '\n'); + parts.push(this.signedHeaders()); + parts.push(this.hexEncodedBodyHash()); + return parts.join('\n'); + }, + + canonicalHeaders: function canonicalHeaders() { + var headers = []; + AWS.util.each.call(this, this.request.headers, function (key, item) { + headers.push([key, item]); + }); + headers.sort(function (a, b) { + return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1; + }); + var parts = []; + AWS.util.arrayEach.call(this, headers, function (item) { + var key = item[0].toLowerCase(); + if (this.isSignableHeader(key)) { + var value = item[1]; + if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') { + throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), { + code: 'InvalidHeader' + }); } - } else { - return null; + parts.push(key + ':' + + this.canonicalHeaderValues(value.toString())); } - }, + }); + return parts.join('\n'); + }, - _functionSum: function(resolvedArgs) { - var sum = 0; - var listToSum = resolvedArgs[0]; - for (var i = 0; i < listToSum.length; i++) { - sum += listToSum[i]; - } - return sum; - }, + canonicalHeaderValues: function canonicalHeaderValues(values) { + return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); + }, + + signedHeaders: function signedHeaders() { + var keys = []; + AWS.util.each.call(this, this.request.headers, function (key) { + key = key.toLowerCase(); + if (this.isSignableHeader(key)) keys.push(key); + }); + return keys.sort().join(';'); + }, + + credentialString: function credentialString(datetime) { + return v4Credentials.createScope( + datetime.substr(0, 8), + this.request.region, + this.serviceName + ); + }, + + hexEncodedHash: function hash(string) { + return AWS.util.crypto.sha256(string, 'hex'); + }, + + hexEncodedBodyHash: function hexEncodedBodyHash() { + var request = this.request; + if (this.isPresigned() && this.serviceName === 's3' && !request.body) { + return 'UNSIGNED-PAYLOAD'; + } else if (request.headers['X-Amz-Content-Sha256']) { + return request.headers['X-Amz-Content-Sha256']; + } else { + return this.hexEncodedHash(this.request.body || ''); + } + }, + + unsignableHeaders: [ + 'authorization', + 'content-type', + 'content-length', + 'user-agent', + expiresHeader, + 'expect', + 'x-amzn-trace-id' + ], + + isSignableHeader: function isSignableHeader(key) { + if (key.toLowerCase().indexOf('x-amz-') === 0) return true; + return this.unsignableHeaders.indexOf(key) < 0; + }, + + isPresigned: function isPresigned() { + return this.request.headers[expiresHeader] ? true : false; + } + + }); + + module.exports = AWS.Signers.V4; + + + /***/ }), + /* 209 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + + /** + * @api private + */ + var cachedSecret = {}; + + /** + * @api private + */ + var cacheQueue = []; + + /** + * @api private + */ + var maxCacheEntries = 50; + + /** + * @api private + */ + var v4Identifier = 'aws4_request'; + + module.exports = { + /** + * @api private + * + * @param date [String] + * @param region [String] + * @param serviceName [String] + * @return [String] + */ + createScope: function createScope(date, region, serviceName) { + return [ + date.substr(0, 8), + region, + serviceName, + v4Identifier + ].join('/'); + }, + + /** + * @api private + * + * @param credentials [Credentials] + * @param date [String] + * @param region [String] + * @param service [String] + * @param shouldCache [Boolean] + * @return [String] + */ + getSigningKey: function getSigningKey( + credentials, + date, + region, + service, + shouldCache + ) { + var credsIdentifier = AWS.util.crypto + .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); + var cacheKey = [credsIdentifier, date, region, service].join('_'); + shouldCache = shouldCache !== false; + if (shouldCache && (cacheKey in cachedSecret)) { + return cachedSecret[cacheKey]; + } + + var kDate = AWS.util.crypto.hmac( + 'AWS4' + credentials.secretAccessKey, + date, + 'buffer' + ); + var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); + var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); + + var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); + if (shouldCache) { + cachedSecret[cacheKey] = signingKey; + cacheQueue.push(cacheKey); + if (cacheQueue.length > maxCacheEntries) { + // remove the oldest entry (not the least recently used) + delete cachedSecret[cacheQueue.shift()]; + } + } + + return signingKey; + }, + + /** + * @api private + * + * Empties the derived signing key cache. Made available for testing purposes + * only. + */ + emptyCache: function emptyCache() { + cachedSecret = {}; + cacheQueue = []; + } + }; + + + /***/ }), + /* 210 */ + /***/ (function(module, exports, __webpack_require__) { + + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + + /** + * @api private + */ + AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { + /** + * When building the stringToSign, these sub resource params should be + * part of the canonical resource string with their NON-decoded values + */ + subResources: { + 'acl': 1, + 'accelerate': 1, + '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 + }, + + // when building the stringToSign, these querystring params should be + // part of the canonical resource string with their NON-encoded values + responseHeaders: { + 'response-content-type': 1, + 'response-content-language': 1, + 'response-expires': 1, + 'response-cache-control': 1, + 'response-content-disposition': 1, + 'response-content-encoding': 1 + }, + + addAuthorization: function addAuthorization(credentials, date) { + if (!this.request.headers['presigned-expires']) { + this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date); + } + + if (credentials.sessionToken) { + // presigned URLs require this header to be lowercased + this.request.headers['x-amz-security-token'] = credentials.sessionToken; + } + + var signature = this.sign(credentials.secretAccessKey, this.stringToSign()); + var auth = 'AWS ' + credentials.accessKeyId + ':' + signature; + + this.request.headers['Authorization'] = auth; + }, + + stringToSign: function stringToSign() { + var r = this.request; + + var parts = []; + parts.push(r.method); + parts.push(r.headers['Content-MD5'] || ''); + parts.push(r.headers['Content-Type'] || ''); + + // This is the "Date" header, but we use X-Amz-Date. + // The S3 signing mechanism requires us to pass an empty + // string for this Date header regardless. + parts.push(r.headers['presigned-expires'] || ''); + + var headers = this.canonicalizedAmzHeaders(); + if (headers) parts.push(headers); + parts.push(this.canonicalizedResource()); + + return parts.join('\n'); + + }, + + canonicalizedAmzHeaders: function canonicalizedAmzHeaders() { + + var amzHeaders = []; + + AWS.util.each(this.request.headers, function (name) { + if (name.match(/^x-amz-/i)) + amzHeaders.push(name); + }); + + amzHeaders.sort(function (a, b) { + return a.toLowerCase() < b.toLowerCase() ? -1 : 1; + }); + + var parts = []; + AWS.util.arrayEach.call(this, amzHeaders, function (name) { + parts.push(name.toLowerCase() + ':' + String(this.request.headers[name])); + }); + + return parts.join('\n'); + + }, - _functionType: function(resolvedArgs) { - switch (this._getTypeName(resolvedArgs[0])) { - case TYPE_NUMBER: - return "number"; - case TYPE_STRING: - return "string"; - case TYPE_ARRAY: - return "array"; - case TYPE_OBJECT: - return "object"; - case TYPE_BOOLEAN: - return "boolean"; - case TYPE_EXPREF: - return "expref"; - case TYPE_NULL: - return "null"; - } - }, + canonicalizedResource: function canonicalizedResource() { - _functionKeys: function(resolvedArgs) { - return Object.keys(resolvedArgs[0]); - }, + var r = this.request; - _functionValues: function(resolvedArgs) { - var obj = resolvedArgs[0]; - var keys = Object.keys(obj); - var values = []; - for (var i = 0; i < keys.length; i++) { - values.push(obj[keys[i]]); - } - return values; - }, + var parts = r.path.split('?'); + var path = parts[0]; + var querystring = parts[1]; - _functionJoin: function(resolvedArgs) { - var joinChar = resolvedArgs[0]; - var listJoin = resolvedArgs[1]; - return listJoin.join(joinChar); - }, + var resource = ''; - _functionToArray: function(resolvedArgs) { - if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) { - return resolvedArgs[0]; - } else { - return [resolvedArgs[0]]; - } - }, + if (r.virtualHostedBucket) + resource += '/' + r.virtualHostedBucket; - _functionToString: function(resolvedArgs) { - if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) { - return resolvedArgs[0]; - } else { - return JSON.stringify(resolvedArgs[0]); - } - }, + resource += path; - _functionToNumber: function(resolvedArgs) { - var typeName = this._getTypeName(resolvedArgs[0]); - var convertedValue; - if (typeName === TYPE_NUMBER) { - return resolvedArgs[0]; - } else if (typeName === TYPE_STRING) { - convertedValue = +resolvedArgs[0]; - if (!isNaN(convertedValue)) { - return convertedValue; - } - } - return null; - }, + if (querystring) { - _functionNotNull: function(resolvedArgs) { - for (var i = 0; i < resolvedArgs.length; i++) { - if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) { - return resolvedArgs[i]; + // collect a list of sub resources and query params that need to be signed + var resources = []; + + AWS.util.arrayEach.call(this, querystring.split('&'), function (param) { + var name = param.split('=')[0]; + var value = param.split('=')[1]; + if (this.subResources[name] || this.responseHeaders[name]) { + var subresource = { name: name }; + if (value !== undefined) { + if (this.subResources[name]) { + subresource.value = value; + } else { + subresource.value = decodeURIComponent(value); } + } + resources.push(subresource); } - return null; - }, + }); - _functionSort: function(resolvedArgs) { - var sortedArray = resolvedArgs[0].slice(0); - sortedArray.sort(); - return sortedArray; - }, + resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; }); - _functionSortBy: function(resolvedArgs) { - var sortedArray = resolvedArgs[0].slice(0); - if (sortedArray.length === 0) { - return sortedArray; - } - var interpreter = this._interpreter; - var exprefNode = resolvedArgs[1]; - var requiredType = this._getTypeName( - interpreter.visit(exprefNode, sortedArray[0])); - if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) { - throw new Error("TypeError"); - } - var that = this; - // In order to get a stable sort out of an unstable - // sort algorithm, we decorate/sort/undecorate (DSU) - // by creating a new list of [index, element] pairs. - // In the cmp function, if the evaluated elements are - // equal, then the index will be used as the tiebreaker. - // After the decorated list has been sorted, it will be - // undecorated to extract the original elements. - var decorated = []; - for (var i = 0; i < sortedArray.length; i++) { - decorated.push([i, sortedArray[i]]); - } - decorated.sort(function(a, b) { - var exprA = interpreter.visit(exprefNode, a[1]); - var exprB = interpreter.visit(exprefNode, b[1]); - if (that._getTypeName(exprA) !== requiredType) { - throw new Error( - "TypeError: expected " + requiredType + ", received " + - that._getTypeName(exprA)); - } else if (that._getTypeName(exprB) !== requiredType) { - throw new Error( - "TypeError: expected " + requiredType + ", received " + - that._getTypeName(exprB)); - } - if (exprA > exprB) { - return 1; - } else if (exprA < exprB) { - return -1; + if (resources.length) { + + querystring = []; + AWS.util.arrayEach(resources, function (res) { + if (res.value === undefined) { + querystring.push(res.name); } else { - // If they're equal compare the items by their - // order to maintain relative order of equal keys - // (i.e. to get a stable sort). - return a[0] - b[0]; + querystring.push(res.name + '=' + res.value); } }); - // Undecorate: extract out the original list elements. - for (var j = 0; j < decorated.length; j++) { - sortedArray[j] = decorated[j][1]; - } - return sortedArray; - }, - _functionMaxBy: function(resolvedArgs) { - var exprefNode = resolvedArgs[1]; - var resolvedArray = resolvedArgs[0]; - var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); - var maxNumber = -Infinity; - var maxRecord; - var current; - for (var i = 0; i < resolvedArray.length; i++) { - current = keyFunction(resolvedArray[i]); - if (current > maxNumber) { - maxNumber = current; - maxRecord = resolvedArray[i]; - } - } - return maxRecord; - }, - - _functionMinBy: function(resolvedArgs) { - var exprefNode = resolvedArgs[1]; - var resolvedArray = resolvedArgs[0]; - var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]); - var minNumber = Infinity; - var minRecord; - var current; - for (var i = 0; i < resolvedArray.length; i++) { - current = keyFunction(resolvedArray[i]); - if (current < minNumber) { - minNumber = current; - minRecord = resolvedArray[i]; - } + resource += '?' + querystring.join('&'); } - return minRecord; - }, - createKeyFunction: function(exprefNode, allowedTypes) { - var that = this; - var interpreter = this._interpreter; - var keyFunc = function(x) { - var current = interpreter.visit(exprefNode, x); - if (allowedTypes.indexOf(that._getTypeName(current)) < 0) { - var msg = "TypeError: expected one of " + allowedTypes + - ", received " + that._getTypeName(current); - throw new Error(msg); - } - return current; - }; - return keyFunc; } - }; - - function compile(stream) { - var parser = new Parser(); - var ast = parser.parse(stream); - return ast; - } + return resource; - function tokenize(stream) { - var lexer = new Lexer(); - return lexer.tokenize(stream); - } + }, - function search(data, expression) { - var parser = new Parser(); - // This needs to be improved. Both the interpreter and runtime depend on - // each other. The runtime needs the interpreter to support exprefs. - // There's likely a clean way to avoid the cyclic dependency. - var runtime = new Runtime(); - var interpreter = new TreeInterpreter(runtime); - runtime._interpreter = interpreter; - var node = parser.parse(expression); - return interpreter.search(node, data); + sign: function sign(secret, string) { + return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1'); } + }); - exports.tokenize = tokenize; - exports.compile = compile; - exports.search = search; - exports.strictDeepEqual = strictDeepEqual; - })( false ? this.jmespath = {} : exports); + module.exports = AWS.Signers.S3; /***/ }), - /* 202 */ + /* 211 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - var jmespath = __webpack_require__(201); - - /** - * This class encapsulates the response information - * from a service request operation sent through {AWS.Request}. - * The response object has two main properties for getting information - * back from a request: - * - * ## The `data` property - * - * The `response.data` property contains the serialized object data - * retrieved from the service request. For instance, for an - * Amazon DynamoDB `listTables` method call, the response data might - * look like: - * - * ``` - * > resp.data - * { TableNames: - * [ 'table1', 'table2', ... ] } - * ``` - * - * The `data` property can be null if an error occurs (see below). - * - * ## The `error` property - * - * In the event of a service error (or transfer error), the - * `response.error` property will be filled with the given - * error data in the form: - * - * ``` - * { code: 'SHORT_UNIQUE_ERROR_CODE', - * message: 'Some human readable error message' } - * ``` - * - * In the case of an error, the `data` property will be `null`. - * Note that if you handle events that can be in a failure state, - * you should always check whether `response.error` is set - * before attempting to access the `response.data` property. - * - * @!attribute data - * @readonly - * @!group Data Properties - * @note Inside of a {AWS.Request~httpData} event, this - * property contains a single raw packet instead of the - * full de-serialized service response. - * @return [Object] the de-serialized response data - * from the service. - * - * @!attribute error - * An structure containing information about a service - * or networking error. - * @readonly - * @!group Data Properties - * @note This attribute is only filled if a service or - * networking error occurs. - * @return [Error] - * * code [String] a unique short code representing the - * error that was emitted. - * * message [String] a longer human readable error message - * * retryable [Boolean] whether the error message is - * retryable. - * * statusCode [Numeric] in the case of a request that reached the service, - * this value contains the response status code. - * * time [Date] the date time object when the error occurred. - * * hostname [String] set when a networking error occurs to easily - * identify the endpoint of the request. - * * region [String] set when a networking error occurs to easily - * identify the region of the request. - * - * @!attribute requestId - * @readonly - * @!group Data Properties - * @return [String] the unique request ID associated with the response. - * Log this value when debugging requests for AWS support. - * - * @!attribute retryCount - * @readonly - * @!group Operation Properties - * @return [Integer] the number of retries that were - * attempted before the request was completed. - * - * @!attribute redirectCount - * @readonly - * @!group Operation Properties - * @return [Integer] the number of redirects that were - * followed before the request was completed. - * - * @!attribute httpResponse - * @readonly - * @!group HTTP Properties - * @return [AWS.HttpResponse] the raw HTTP response object - * containing the response headers and body information - * from the server. - * - * @see AWS.Request - */ - AWS.Response = inherit({ - - /** - * @api private - */ - constructor: function Response(request) { - this.request = request; - this.data = null; - this.error = null; - this.retryCount = 0; - this.redirectCount = 0; - this.httpResponse = new AWS.HttpResponse(); - if (request) { - this.maxRetries = request.service.numRetries(); - this.maxRedirects = request.service.config.maxRedirects; - } - }, - - /** - * Creates a new request for the next page of response data, calling the - * callback with the page data if a callback is provided. - * - * @callback callback function(err, data) - * Called when a page of data is returned from the next request. - * - * @param err [Error] an error object, if an error occurred in the request - * @param data [Object] the next page of data, or null, if there are no - * more pages left. - * @return [AWS.Request] the request object for the next page of data - * @return [null] if no callback is provided and there are no pages left - * to retrieve. - * @since v1.4.0 - */ - nextPage: function nextPage(callback) { - var config; - var service = this.request.service; - var operation = this.request.operation; - try { - config = service.paginationConfig(operation, true); - } catch (e) { this.error = e; } - - if (!this.hasNextPage()) { - if (callback) callback(this.error, null); - else if (this.error) throw this.error; - return null; - } - - var params = AWS.util.copy(this.request.params); - if (!this.nextPageTokens) { - return callback ? callback(null, null) : null; - } else { - var inputTokens = config.inputToken; - if (typeof inputTokens === 'string') inputTokens = [inputTokens]; - for (var i = 0; i < inputTokens.length; i++) { - params[inputTokens[i]] = this.nextPageTokens[i]; - } - return service.makeRequest(this.request.operation, params, callback); - } - }, - - /** - * @return [Boolean] whether more pages of data can be returned by further - * requests - * @since v1.4.0 - */ - hasNextPage: function hasNextPage() { - this.cacheNextPageTokens(); - if (this.nextPageTokens) return true; - if (this.nextPageTokens === undefined) return undefined; - else return false; - }, - - /** - * @api private - */ - cacheNextPageTokens: function cacheNextPageTokens() { - if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens; - this.nextPageTokens = undefined; - - var config = this.request.service.paginationConfig(this.request.operation); - if (!config) return this.nextPageTokens; - - this.nextPageTokens = null; - if (config.moreResults) { - if (!jmespath.search(this.data, config.moreResults)) { - return this.nextPageTokens; - } - } - - var exprs = config.outputToken; - if (typeof exprs === 'string') exprs = [exprs]; - AWS.util.arrayEach.call(this, exprs, function (expr) { - var output = jmespath.search(this.data, expr); - if (output) { - this.nextPageTokens = this.nextPageTokens || []; - this.nextPageTokens.push(output); - } - }); - - return this.nextPageTokens; - } - - }); + var AWS = __webpack_require__(1); + var inherit = AWS.util.inherit; + /** + * @api private + */ + var expiresHeader = 'presigned-expires'; - /***/ }), - /* 203 */ - /***/ (function(module, exports, __webpack_require__) { + /** + * @api private + */ + function signedUrlBuilder(request) { + var expires = request.httpRequest.headers[expiresHeader]; + var signerClass = request.service.getSignerClass(request); - /** - * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). You - * may not use this file except in compliance with the License. A copy of - * the License is located at - * - * http://aws.amazon.com/apache2.0/ - * - * or in the "license" file accompanying this file. This file is - * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF - * ANY KIND, either express or implied. See the License for the specific - * language governing permissions and limitations under the License. - */ - - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - var jmespath = __webpack_require__(201); - - /** - * @api private - */ - function CHECK_ACCEPTORS(resp) { - var waiter = resp.request._waiter; - var acceptors = waiter.config.acceptors; - var acceptorMatched = false; - var state = 'retry'; - - acceptors.forEach(function(acceptor) { - if (!acceptorMatched) { - var matcher = waiter.matchers[acceptor.matcher]; - if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) { - acceptorMatched = true; - state = acceptor.state; - } - } - }); - - if (!acceptorMatched && resp.error) state = 'failure'; - - if (state === 'success') { - waiter.setSuccess(resp); - } else { - waiter.setError(resp, state === 'retry'); - } - } - - /** - * @api private - */ - AWS.ResourceWaiter = inherit({ - /** - * Waits for a given state on a service object - * @param service [Service] the service object to wait on - * @param state [String] the state (defined in waiter configuration) to wait - * for. - * @example Create a waiter for running EC2 instances - * var ec2 = new AWS.EC2; - * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning'); - */ - constructor: function constructor(service, state) { - this.service = service; - this.state = state; - this.loadWaiterConfig(this.state); - }, - - service: null, - - state: null, - - config: null, - - matchers: { - path: function(resp, expected, argument) { - try { - var result = jmespath.search(resp.data, argument); - } catch (err) { - return false; - } - - return jmespath.strictDeepEqual(result,expected); - }, - - pathAll: function(resp, expected, argument) { - try { - var results = jmespath.search(resp.data, argument); - } catch (err) { - return false; - } - - if (!Array.isArray(results)) results = [results]; - var numResults = results.length; - if (!numResults) return false; - for (var ind = 0 ; ind < numResults; ind++) { - if (!jmespath.strictDeepEqual(results[ind], expected)) { - return false; - } - } - return true; - }, - - pathAny: function(resp, expected, argument) { - try { - var results = jmespath.search(resp.data, argument); - } catch (err) { - return false; - } - - if (!Array.isArray(results)) results = [results]; - var numResults = results.length; - for (var ind = 0 ; ind < numResults; ind++) { - if (jmespath.strictDeepEqual(results[ind], expected)) { - return true; - } - } - return false; - }, - - status: function(resp, expected) { - var statusCode = resp.httpResponse.statusCode; - return (typeof statusCode === 'number') && (statusCode === expected); - }, - - error: function(resp, expected) { - if (typeof expected === 'string' && resp.error) { - return expected === resp.error.code; - } - // if expected is not string, can be boolean indicating presence of error - return expected === !!resp.error; - } - }, - - listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) { - add('RETRY_CHECK', 'retry', function(resp) { - var waiter = resp.request._waiter; - if (resp.error && resp.error.code === 'ResourceNotReady') { - resp.error.retryDelay = (waiter.config.delay || 0) * 1000; - } - }); - - add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS); - - add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS); - }), - - /** - * @return [AWS.Request] - */ - wait: function wait(params, callback) { - if (typeof params === 'function') { - callback = params; params = undefined; - } - - if (params && params.$waiter) { - params = AWS.util.copy(params); - if (typeof params.$waiter.delay === 'number') { - this.config.delay = params.$waiter.delay; - } - if (typeof params.$waiter.maxAttempts === 'number') { - this.config.maxAttempts = params.$waiter.maxAttempts; - } - delete params.$waiter; - } - - var request = this.service.makeRequest(this.config.operation, params); - request._waiter = this; - request.response.maxRetries = this.config.maxAttempts; - request.addListeners(this.listeners); - - if (callback) request.send(callback); - return request; - }, - - setSuccess: function setSuccess(resp) { - resp.error = null; - resp.data = resp.data || {}; - resp.request.removeAllListeners('extractData'); - }, - - setError: function setError(resp, retryable) { - resp.data = null; - resp.error = AWS.util.error(resp.error || new Error(), { - code: 'ResourceNotReady', - message: 'Resource is not in the state ' + this.state, - retryable: retryable - }); - }, - - /** - * Loads waiter configuration from API configuration - * - * @api private - */ - loadWaiterConfig: function loadWaiterConfig(state) { - if (!this.service.api.waiters[state]) { - throw new AWS.util.error(new Error(), { - code: 'StateNotFoundError', - message: 'State ' + state + ' not found.' - }); - } - - this.config = AWS.util.copy(this.service.api.waiters[state]); - } - }); + delete request.httpRequest.headers['User-Agent']; + delete request.httpRequest.headers['X-Amz-User-Agent']; + if (signerClass === AWS.Signers.V4) { + if (expires > 604800) { // one week expiry is invalid + var message = 'Presigning does not support expiry time greater ' + + 'than a week with SigV4 signing.'; + throw AWS.util.error(new Error(), { + code: 'InvalidExpiryTime', message: message, retryable: false + }); + } + request.httpRequest.headers[expiresHeader] = expires; + } else if (signerClass === AWS.Signers.S3) { + var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate(); + request.httpRequest.headers[expiresHeader] = parseInt( + AWS.util.date.unixTimestamp(now) + expires, 10).toString(); + } else { + throw AWS.util.error(new Error(), { + message: 'Presigning only supports S3 or SigV4 signing.', + code: 'UnsupportedSigner', retryable: false + }); + } + } - /***/ }), - /* 204 */ - /***/ (function(module, exports, __webpack_require__) { + /** + * @api private + */ + function signedUrlSigner(request) { + var endpoint = request.httpRequest.endpoint; + var parsedUrl = AWS.util.urlParse(request.httpRequest.path); + var queryParams = {}; - var AWS = __webpack_require__(1); - - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.RequestSigner = inherit({ - constructor: function RequestSigner(request) { - this.request = request; - }, - - setServiceClientId: function setServiceClientId(id) { - this.serviceClientId = id; - }, - - getServiceClientId: function getServiceClientId() { - return this.serviceClientId; - } - }); - - AWS.Signers.RequestSigner.getVersion = function getVersion(version) { - switch (version) { - case 'v2': return AWS.Signers.V2; - case 'v3': return AWS.Signers.V3; - case 'v4': return AWS.Signers.V4; - case 's3': return AWS.Signers.S3; - case 'v3https': return AWS.Signers.V3Https; - } - throw new Error('Unknown signing version ' + version); - }; - - __webpack_require__(205); - __webpack_require__(206); - __webpack_require__(207); - __webpack_require__(208); - __webpack_require__(210); - __webpack_require__(211); + if (parsedUrl.search) { + queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); + } + var auth = request.httpRequest.headers['Authorization'].split(' '); + if (auth[0] === 'AWS') { + auth = auth[1].split(':'); + queryParams['AWSAccessKeyId'] = auth[0]; + queryParams['Signature'] = auth[1]; - /***/ }), - /* 205 */ - /***/ (function(module, exports, __webpack_require__) { + AWS.util.each(request.httpRequest.headers, function (key, value) { + if (key === expiresHeader) key = 'Expires'; + if (key.indexOf('x-amz-meta-') === 0) { + // Delete existing, potentially not normalized key + delete queryParams[key]; + key = key.toLowerCase(); + } + queryParams[key] = value; + }); + delete request.httpRequest.headers[expiresHeader]; + delete queryParams['Authorization']; + delete queryParams['Host']; + } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing + auth.shift(); + var rest = auth.join(' '); + var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; + queryParams['X-Amz-Signature'] = signature; + delete queryParams['Expires']; + } + + // build URL + endpoint.pathname = parsedUrl.pathname; + endpoint.search = AWS.util.queryParamsToString(queryParams); + } + + /** + * @api private + */ + AWS.Signers.Presign = inherit({ + /** + * @api private + */ + sign: function sign(request, expireTime, callback) { + request.httpRequest.headers[expiresHeader] = expireTime || 3600; + request.on('build', signedUrlBuilder); + request.on('sign', signedUrlSigner); + request.removeListener('afterBuild', + AWS.EventListeners.Core.SET_CONTENT_LENGTH); + request.removeListener('afterBuild', + AWS.EventListeners.Core.COMPUTE_SHA256); + + request.emit('beforePresign', [request]); + + if (callback) { + request.build(function() { + if (this.response.error) callback(this.response.error); + else { + callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); + } + }); + } else { + request.build(); + if (request.response.error) throw request.response.error; + return AWS.util.urlFormat(request.httpRequest.endpoint); + } + } + }); - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { - addAuthorization: function addAuthorization(credentials, date) { - - if (!date) date = AWS.util.date.getDate(); - - var r = this.request; - - r.params.Timestamp = AWS.util.date.iso8601(date); - r.params.SignatureVersion = '2'; - r.params.SignatureMethod = 'HmacSHA256'; - r.params.AWSAccessKeyId = credentials.accessKeyId; - - if (credentials.sessionToken) { - r.params.SecurityToken = credentials.sessionToken; - } - - delete r.params.Signature; // delete old Signature for re-signing - r.params.Signature = this.signature(credentials); - - r.body = AWS.util.queryParamsToString(r.params); - r.headers['Content-Length'] = r.body.length; - }, - - signature: function signature(credentials) { - return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); - }, - - stringToSign: function stringToSign() { - var parts = []; - parts.push(this.request.method); - parts.push(this.request.endpoint.host.toLowerCase()); - parts.push(this.request.pathname()); - parts.push(AWS.util.queryParamsToString(this.request.params)); - return parts.join('\n'); - } - - }); - - module.exports = AWS.Signers.V2; + module.exports = AWS.Signers.Presign; /***/ }), - /* 206 */ + /* 212 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { - addAuthorization: function addAuthorization(credentials, date) { - - var datetime = AWS.util.date.rfc822(date); - - this.request.headers['X-Amz-Date'] = datetime; - - if (credentials.sessionToken) { - this.request.headers['x-amz-security-token'] = credentials.sessionToken; - } - - this.request.headers['X-Amzn-Authorization'] = - this.authorization(credentials, datetime); - - }, - - authorization: function authorization(credentials) { - return 'AWS3 ' + - 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + - 'Algorithm=HmacSHA256,' + - 'SignedHeaders=' + this.signedHeaders() + ',' + - 'Signature=' + this.signature(credentials); - }, - - signedHeaders: function signedHeaders() { - var headers = []; - AWS.util.arrayEach(this.headersToSign(), function iterator(h) { - headers.push(h.toLowerCase()); - }); - return headers.sort().join(';'); - }, - - canonicalHeaders: function canonicalHeaders() { - var headers = this.request.headers; - var parts = []; - AWS.util.arrayEach(this.headersToSign(), function iterator(h) { - parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim()); - }); - return parts.sort().join('\n') + '\n'; - }, - - headersToSign: function headersToSign() { - var headers = []; - AWS.util.each(this.request.headers, function iterator(k) { - if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) { - headers.push(k); - } - }); - return headers; - }, - - signature: function signature(credentials) { - return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64'); - }, - - stringToSign: function stringToSign() { - var parts = []; - parts.push(this.request.method); - parts.push('/'); - parts.push(''); - parts.push(this.canonicalHeaders()); - parts.push(this.request.body); - return AWS.util.crypto.sha256(parts.join('\n')); - } - - }); - - module.exports = AWS.Signers.V3; + var AWS = __webpack_require__(1); + /** + * @api private + */ + AWS.ParamValidator = AWS.util.inherit({ + /** + * Create a new validator object. + * + * @param validation [Boolean|map] whether input parameters should be + * validated against the operation description before sending the + * request. Pass a map to enable any of the following specific + * validation features: + * + * * **min** [Boolean] — Validates that a value meets the min + * constraint. This is enabled by default when paramValidation is set + * to `true`. + * * **max** [Boolean] — Validates that a value meets the max + * constraint. + * * **pattern** [Boolean] — Validates that a string value matches a + * regular expression. + * * **enum** [Boolean] — Validates that a string value matches one + * of the allowable enum values. + */ + constructor: function ParamValidator(validation) { + if (validation === true || validation === undefined) { + validation = {'min': true}; + } + this.validation = validation; + }, - /***/ }), - /* 207 */ - /***/ (function(module, exports, __webpack_require__) { + validate: function validate(shape, params, context) { + this.errors = []; + this.validateMember(shape, params || {}, context || 'params'); + + if (this.errors.length > 1) { + var msg = this.errors.join('\n* '); + msg = 'There were ' + this.errors.length + + ' validation errors:\n* ' + msg; + throw AWS.util.error(new Error(msg), + {code: 'MultipleValidationErrors', errors: this.errors}); + } else if (this.errors.length === 1) { + throw this.errors[0]; + } else { + return true; + } + }, - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - __webpack_require__(206); - - /** - * @api private - */ - AWS.Signers.V3Https = inherit(AWS.Signers.V3, { - authorization: function authorization(credentials) { - return 'AWS3-HTTPS ' + - 'AWSAccessKeyId=' + credentials.accessKeyId + ',' + - 'Algorithm=HmacSHA256,' + - 'Signature=' + this.signature(credentials); - }, - - stringToSign: function stringToSign() { - return this.request.headers['X-Amz-Date']; - } - }); - - module.exports = AWS.Signers.V3Https; + fail: function fail(code, message) { + this.errors.push(AWS.util.error(new Error(message), {code: code})); + }, + validateStructure: function validateStructure(shape, params, context) { + this.validateType(params, context, ['object'], 'structure'); - /***/ }), - /* 208 */ - /***/ (function(module, exports, __webpack_require__) { + var paramName; + for (var i = 0; shape.required && i < shape.required.length; i++) { + paramName = shape.required[i]; + var value = params[paramName]; + if (value === undefined || value === null) { + this.fail('MissingRequiredParameter', + 'Missing required key \'' + paramName + '\' in ' + context); + } + } - var AWS = __webpack_require__(1); - var v4Credentials = __webpack_require__(209); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - var expiresHeader = 'presigned-expires'; - - /** - * @api private - */ - AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { - constructor: function V4(request, serviceName, options) { - AWS.Signers.RequestSigner.call(this, request); - this.serviceName = serviceName; - options = options || {}; - this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true; - this.operation = options.operation; - }, - - algorithm: 'AWS4-HMAC-SHA256', - - addAuthorization: function addAuthorization(credentials, date) { - var datetime = AWS.util.date.iso8601(date).replace(/[:\-]|\.\d{3}/g, ''); - - if (this.isPresigned()) { - this.updateForPresigned(credentials, datetime); - } else { - this.addHeaders(credentials, datetime); - } - - this.request.headers['Authorization'] = - this.authorization(credentials, datetime); - }, - - addHeaders: function addHeaders(credentials, datetime) { - this.request.headers['X-Amz-Date'] = datetime; - if (credentials.sessionToken) { - this.request.headers['x-amz-security-token'] = credentials.sessionToken; - } - }, - - updateForPresigned: function updateForPresigned(credentials, datetime) { - var credString = this.credentialString(datetime); - var qs = { - 'X-Amz-Date': datetime, - 'X-Amz-Algorithm': this.algorithm, - 'X-Amz-Credential': credentials.accessKeyId + '/' + credString, - 'X-Amz-Expires': this.request.headers[expiresHeader], - 'X-Amz-SignedHeaders': this.signedHeaders() - }; - - if (credentials.sessionToken) { - qs['X-Amz-Security-Token'] = credentials.sessionToken; - } - - if (this.request.headers['Content-Type']) { - qs['Content-Type'] = this.request.headers['Content-Type']; - } - if (this.request.headers['Content-MD5']) { - qs['Content-MD5'] = this.request.headers['Content-MD5']; - } - if (this.request.headers['Cache-Control']) { - qs['Cache-Control'] = this.request.headers['Cache-Control']; - } - - // need to pull in any other X-Amz-* headers - AWS.util.each.call(this, this.request.headers, function(key, value) { - if (key === expiresHeader) return; - if (this.isSignableHeader(key)) { - var lowerKey = key.toLowerCase(); - // Metadata should be normalized - if (lowerKey.indexOf('x-amz-meta-') === 0) { - qs[lowerKey] = value; - } else if (lowerKey.indexOf('x-amz-') === 0) { - qs[key] = value; - } - } - }); - - var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?'; - this.request.path += sep + AWS.util.queryParamsToString(qs); - }, - - authorization: function authorization(credentials, datetime) { - var parts = []; - var credString = this.credentialString(datetime); - parts.push(this.algorithm + ' Credential=' + - credentials.accessKeyId + '/' + credString); - parts.push('SignedHeaders=' + this.signedHeaders()); - parts.push('Signature=' + this.signature(credentials, datetime)); - return parts.join(', '); - }, - - signature: function signature(credentials, datetime) { - var signingKey = v4Credentials.getSigningKey( - credentials, - datetime.substr(0, 8), - this.request.region, - this.serviceName, - this.signatureCache - ); - return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex'); - }, - - stringToSign: function stringToSign(datetime) { - var parts = []; - parts.push('AWS4-HMAC-SHA256'); - parts.push(datetime); - parts.push(this.credentialString(datetime)); - parts.push(this.hexEncodedHash(this.canonicalString())); - return parts.join('\n'); - }, - - canonicalString: function canonicalString() { - var parts = [], pathname = this.request.pathname(); - if (this.serviceName !== 's3') pathname = AWS.util.uriEscapePath(pathname); - - parts.push(this.request.method); - parts.push(pathname); - parts.push(this.request.search()); - parts.push(this.canonicalHeaders() + '\n'); - parts.push(this.signedHeaders()); - parts.push(this.hexEncodedBodyHash()); - return parts.join('\n'); - }, - - canonicalHeaders: function canonicalHeaders() { - var headers = []; - AWS.util.each.call(this, this.request.headers, function (key, item) { - headers.push([key, item]); - }); - headers.sort(function (a, b) { - return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1; - }); - var parts = []; - AWS.util.arrayEach.call(this, headers, function (item) { - var key = item[0].toLowerCase(); - if (this.isSignableHeader(key)) { - var value = item[1]; - if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') { - throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), { - code: 'InvalidHeader' - }); - } - parts.push(key + ':' + - this.canonicalHeaderValues(value.toString())); - } - }); - return parts.join('\n'); - }, - - canonicalHeaderValues: function canonicalHeaderValues(values) { - return values.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, ''); - }, - - signedHeaders: function signedHeaders() { - var keys = []; - AWS.util.each.call(this, this.request.headers, function (key) { - key = key.toLowerCase(); - if (this.isSignableHeader(key)) keys.push(key); - }); - return keys.sort().join(';'); - }, - - credentialString: function credentialString(datetime) { - return v4Credentials.createScope( - datetime.substr(0, 8), - this.request.region, - this.serviceName - ); - }, - - hexEncodedHash: function hash(string) { - return AWS.util.crypto.sha256(string, 'hex'); - }, - - hexEncodedBodyHash: function hexEncodedBodyHash() { - var request = this.request; - if (this.isPresigned() && this.serviceName === 's3' && !request.body) { - return 'UNSIGNED-PAYLOAD'; - } else if (request.headers['X-Amz-Content-Sha256']) { - return request.headers['X-Amz-Content-Sha256']; - } else { - return this.hexEncodedHash(this.request.body || ''); - } - }, - - unsignableHeaders: [ - 'authorization', - 'content-type', - 'content-length', - 'user-agent', - expiresHeader, - 'expect', - 'x-amzn-trace-id' - ], - - isSignableHeader: function isSignableHeader(key) { - if (key.toLowerCase().indexOf('x-amz-') === 0) return true; - return this.unsignableHeaders.indexOf(key) < 0; - }, - - isPresigned: function isPresigned() { - return this.request.headers[expiresHeader] ? true : false; - } - - }); - - module.exports = AWS.Signers.V4; + // validate hash members + for (paramName in params) { + if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue; + var paramValue = params[paramName], + memberShape = shape.members[paramName]; - /***/ }), - /* 209 */ - /***/ (function(module, exports, __webpack_require__) { + if (memberShape !== undefined) { + var memberContext = [context, paramName].join('.'); + this.validateMember(memberShape, paramValue, memberContext); + } else { + this.fail('UnexpectedParameter', + 'Unexpected key \'' + paramName + '\' found in ' + context); + } + } + + return true; + }, - var AWS = __webpack_require__(1); - - /** - * @api private - */ - var cachedSecret = {}; - - /** - * @api private - */ - var cacheQueue = []; - - /** - * @api private - */ - var maxCacheEntries = 50; - - /** - * @api private - */ - var v4Identifier = 'aws4_request'; - - module.exports = { - /** - * @api private - * - * @param date [String] - * @param region [String] - * @param serviceName [String] - * @return [String] - */ - createScope: function createScope(date, region, serviceName) { - return [ - date.substr(0, 8), - region, - serviceName, - v4Identifier - ].join('/'); - }, - - /** - * @api private - * - * @param credentials [Credentials] - * @param date [String] - * @param region [String] - * @param service [String] - * @param shouldCache [Boolean] - * @return [String] - */ - getSigningKey: function getSigningKey( - credentials, - date, - region, - service, - shouldCache - ) { - var credsIdentifier = AWS.util.crypto - .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); - var cacheKey = [credsIdentifier, date, region, service].join('_'); - shouldCache = shouldCache !== false; - if (shouldCache && (cacheKey in cachedSecret)) { - return cachedSecret[cacheKey]; - } - - var kDate = AWS.util.crypto.hmac( - 'AWS4' + credentials.secretAccessKey, - date, - 'buffer' - ); - var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); - var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); - - var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); - if (shouldCache) { - cachedSecret[cacheKey] = signingKey; - cacheQueue.push(cacheKey); - if (cacheQueue.length > maxCacheEntries) { - // remove the oldest entry (not the least recently used) - delete cachedSecret[cacheQueue.shift()]; - } - } - - return signingKey; - }, - - /** - * @api private - * - * Empties the derived signing key cache. Made available for testing purposes - * only. - */ - emptyCache: function emptyCache() { - cachedSecret = {}; - cacheQueue = []; - } - }; + validateMember: function validateMember(shape, param, context) { + switch (shape.type) { + case 'structure': + return this.validateStructure(shape, param, context); + case 'list': + return this.validateList(shape, param, context); + case 'map': + return this.validateMap(shape, param, context); + default: + return this.validateScalar(shape, param, context); + } + }, + validateList: function validateList(shape, params, context) { + if (this.validateType(params, context, [Array])) { + this.validateRange(shape, params.length, context, 'list member count'); + // validate array members + for (var i = 0; i < params.length; i++) { + this.validateMember(shape.member, params[i], context + '[' + i + ']'); + } + } + }, - /***/ }), - /* 210 */ - /***/ (function(module, exports, __webpack_require__) { + validateMap: function validateMap(shape, params, context) { + if (this.validateType(params, context, ['object'], 'map')) { + // Build up a count of map members to validate range traits. + var mapCount = 0; + for (var param in params) { + if (!Object.prototype.hasOwnProperty.call(params, param)) continue; + // Validate any map key trait constraints + this.validateMember(shape.key, param, + context + '[key=\'' + param + '\']') + this.validateMember(shape.value, params[param], + context + '[\'' + param + '\']'); + mapCount++; + } + this.validateRange(shape, mapCount, context, 'map member count'); + } + }, + + validateScalar: function validateScalar(shape, value, context) { + switch (shape.type) { + case null: + case undefined: + case 'string': + return this.validateString(shape, value, context); + case 'base64': + case 'binary': + return this.validatePayload(value, context); + case 'integer': + case 'float': + return this.validateNumber(shape, value, context); + case 'boolean': + return this.validateType(value, context, ['boolean']); + case 'timestamp': + return this.validateType(value, context, [Date, + /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'], + 'Date object, ISO-8601 string, or a UNIX timestamp'); + default: + return this.fail('UnkownType', 'Unhandled type ' + + shape.type + ' for ' + context); + } + }, - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { - /** - * When building the stringToSign, these sub resource params should be - * part of the canonical resource string with their NON-decoded values - */ - subResources: { - 'acl': 1, - 'accelerate': 1, - '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 - }, - - // when building the stringToSign, these querystring params should be - // part of the canonical resource string with their NON-encoded values - responseHeaders: { - 'response-content-type': 1, - 'response-content-language': 1, - 'response-expires': 1, - 'response-cache-control': 1, - 'response-content-disposition': 1, - 'response-content-encoding': 1 - }, - - addAuthorization: function addAuthorization(credentials, date) { - if (!this.request.headers['presigned-expires']) { - this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date); - } - - if (credentials.sessionToken) { - // presigned URLs require this header to be lowercased - this.request.headers['x-amz-security-token'] = credentials.sessionToken; - } - - var signature = this.sign(credentials.secretAccessKey, this.stringToSign()); - var auth = 'AWS ' + credentials.accessKeyId + ':' + signature; - - this.request.headers['Authorization'] = auth; - }, - - stringToSign: function stringToSign() { - var r = this.request; - - var parts = []; - parts.push(r.method); - parts.push(r.headers['Content-MD5'] || ''); - parts.push(r.headers['Content-Type'] || ''); - - // This is the "Date" header, but we use X-Amz-Date. - // The S3 signing mechanism requires us to pass an empty - // string for this Date header regardless. - parts.push(r.headers['presigned-expires'] || ''); - - var headers = this.canonicalizedAmzHeaders(); - if (headers) parts.push(headers); - parts.push(this.canonicalizedResource()); - - return parts.join('\n'); - - }, - - canonicalizedAmzHeaders: function canonicalizedAmzHeaders() { - - var amzHeaders = []; - - AWS.util.each(this.request.headers, function (name) { - if (name.match(/^x-amz-/i)) - amzHeaders.push(name); - }); - - amzHeaders.sort(function (a, b) { - return a.toLowerCase() < b.toLowerCase() ? -1 : 1; - }); - - var parts = []; - AWS.util.arrayEach.call(this, amzHeaders, function (name) { - parts.push(name.toLowerCase() + ':' + String(this.request.headers[name])); - }); - - return parts.join('\n'); - - }, - - canonicalizedResource: function canonicalizedResource() { - - var r = this.request; - - var parts = r.path.split('?'); - var path = parts[0]; - var querystring = parts[1]; - - var resource = ''; - - if (r.virtualHostedBucket) - resource += '/' + r.virtualHostedBucket; - - resource += path; - - if (querystring) { - - // collect a list of sub resources and query params that need to be signed - var resources = []; - - AWS.util.arrayEach.call(this, querystring.split('&'), function (param) { - var name = param.split('=')[0]; - var value = param.split('=')[1]; - if (this.subResources[name] || this.responseHeaders[name]) { - var subresource = { name: name }; - if (value !== undefined) { - if (this.subResources[name]) { - subresource.value = value; - } else { - subresource.value = decodeURIComponent(value); - } - } - resources.push(subresource); - } - }); - - resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; }); - - if (resources.length) { - - querystring = []; - AWS.util.arrayEach(resources, function (res) { - if (res.value === undefined) { - querystring.push(res.name); - } else { - querystring.push(res.name + '=' + res.value); - } - }); - - resource += '?' + querystring.join('&'); - } - - } - - return resource; - - }, - - sign: function sign(secret, string) { - return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1'); - } - }); - - module.exports = AWS.Signers.S3; + validateString: function validateString(shape, value, context) { + var validTypes = ['string']; + if (shape.isJsonValue) { + validTypes = validTypes.concat(['number', 'object', 'boolean']); + } + if (value !== null && this.validateType(value, context, validTypes)) { + this.validateEnum(shape, value, context); + this.validateRange(shape, value.length, context, 'string length'); + this.validatePattern(shape, value, context); + } + }, + validatePattern: function validatePattern(shape, value, context) { + if (this.validation['pattern'] && shape['pattern'] !== undefined) { + if (!(new RegExp(shape['pattern'])).test(value)) { + this.fail('PatternMatchError', 'Provided value "' + value + '" ' + + 'does not match regex pattern /' + shape['pattern'] + '/ for ' + + context); + } + } + }, - /***/ }), - /* 211 */ - /***/ (function(module, exports, __webpack_require__) { + validateRange: function validateRange(shape, value, context, descriptor) { + if (this.validation['min']) { + if (shape['min'] !== undefined && value < shape['min']) { + this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' + + shape['min'] + ', but found ' + value + ' for ' + context); + } + } + if (this.validation['max']) { + if (shape['max'] !== undefined && value > shape['max']) { + this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' + + shape['max'] + ', but found ' + value + ' for ' + context); + } + } + }, - var AWS = __webpack_require__(1); - var inherit = AWS.util.inherit; - - /** - * @api private - */ - var expiresHeader = 'presigned-expires'; - - /** - * @api private - */ - function signedUrlBuilder(request) { - var expires = request.httpRequest.headers[expiresHeader]; - var signerClass = request.service.getSignerClass(request); - - delete request.httpRequest.headers['User-Agent']; - delete request.httpRequest.headers['X-Amz-User-Agent']; - - if (signerClass === AWS.Signers.V4) { - if (expires > 604800) { // one week expiry is invalid - var message = 'Presigning does not support expiry time greater ' + - 'than a week with SigV4 signing.'; - throw AWS.util.error(new Error(), { - code: 'InvalidExpiryTime', message: message, retryable: false - }); - } - request.httpRequest.headers[expiresHeader] = expires; - } else if (signerClass === AWS.Signers.S3) { - var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate(); - request.httpRequest.headers[expiresHeader] = parseInt( - AWS.util.date.unixTimestamp(now) + expires, 10).toString(); - } else { - throw AWS.util.error(new Error(), { - message: 'Presigning only supports S3 or SigV4 signing.', - code: 'UnsupportedSigner', retryable: false - }); - } - } - - /** - * @api private - */ - function signedUrlSigner(request) { - var endpoint = request.httpRequest.endpoint; - var parsedUrl = AWS.util.urlParse(request.httpRequest.path); - var queryParams = {}; - - if (parsedUrl.search) { - queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1)); - } - - var auth = request.httpRequest.headers['Authorization'].split(' '); - if (auth[0] === 'AWS') { - auth = auth[1].split(':'); - queryParams['AWSAccessKeyId'] = auth[0]; - queryParams['Signature'] = auth[1]; - - AWS.util.each(request.httpRequest.headers, function (key, value) { - if (key === expiresHeader) key = 'Expires'; - if (key.indexOf('x-amz-meta-') === 0) { - // Delete existing, potentially not normalized key - delete queryParams[key]; - key = key.toLowerCase(); - } - queryParams[key] = value; - }); - delete request.httpRequest.headers[expiresHeader]; - delete queryParams['Authorization']; - delete queryParams['Host']; - } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing - auth.shift(); - var rest = auth.join(' '); - var signature = rest.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1]; - queryParams['X-Amz-Signature'] = signature; - delete queryParams['Expires']; - } - - // build URL - endpoint.pathname = parsedUrl.pathname; - endpoint.search = AWS.util.queryParamsToString(queryParams); - } - - /** - * @api private - */ - AWS.Signers.Presign = inherit({ - /** - * @api private - */ - sign: function sign(request, expireTime, callback) { - request.httpRequest.headers[expiresHeader] = expireTime || 3600; - request.on('build', signedUrlBuilder); - request.on('sign', signedUrlSigner); - request.removeListener('afterBuild', - AWS.EventListeners.Core.SET_CONTENT_LENGTH); - request.removeListener('afterBuild', - AWS.EventListeners.Core.COMPUTE_SHA256); - - request.emit('beforePresign', [request]); - - if (callback) { - request.build(function() { - if (this.response.error) callback(this.response.error); - else { - callback(null, AWS.util.urlFormat(request.httpRequest.endpoint)); - } - }); - } else { - request.build(); - if (request.response.error) throw request.response.error; - return AWS.util.urlFormat(request.httpRequest.endpoint); - } - } - }); - - module.exports = AWS.Signers.Presign; + validateEnum: function validateRange(shape, value, context) { + if (this.validation['enum'] && shape['enum'] !== undefined) { + // Fail if the string value is not present in the enum list + if (shape['enum'].indexOf(value) === -1) { + this.fail('EnumError', 'Found string value of ' + value + ', but ' + + 'expected ' + shape['enum'].join('|') + ' for ' + context); + } + } + }, + + validateType: function validateType(value, context, acceptedTypes, type) { + // We will not log an error for null or undefined, but we will return + // false so that callers know that the expected type was not strictly met. + if (value === null || value === undefined) return false; + + var foundInvalidType = false; + for (var i = 0; i < acceptedTypes.length; i++) { + if (typeof acceptedTypes[i] === 'string') { + if (typeof value === acceptedTypes[i]) return true; + } else if (acceptedTypes[i] instanceof RegExp) { + if ((value || '').toString().match(acceptedTypes[i])) return true; + } else { + if (value instanceof acceptedTypes[i]) return true; + if (AWS.util.isType(value, acceptedTypes[i])) return true; + if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice(); + acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]); + } + foundInvalidType = true; + } + var acceptedType = type; + if (!acceptedType) { + acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1'); + } - /***/ }), - /* 212 */ - /***/ (function(module, exports, __webpack_require__) { + var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : ''; + this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' + + vowel + ' ' + acceptedType); + return false; + }, + + validateNumber: function validateNumber(shape, value, context) { + if (value === null || value === undefined) return; + if (typeof value === 'string') { + var castedValue = parseFloat(value); + if (castedValue.toString() === value) value = castedValue; + } + if (this.validateType(value, context, ['number'])) { + this.validateRange(shape, value, context, 'numeric value'); + } + }, + + validatePayload: function validatePayload(value, context) { + if (value === null || value === undefined) return; + if (typeof value === 'string') return; + if (value && typeof value.byteLength === 'number') return; // typed arrays + if (AWS.util.isNode()) { // special check for buffer/stream in Node.js + var Stream = AWS.util.stream.Stream; + if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return; + } + + var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView']; + if (value) { + for (var i = 0; i < types.length; i++) { + if (AWS.util.isType(value, types[i])) return; + if (AWS.util.typeName(value.constructor) === types[i]) return; + } + } - var AWS = __webpack_require__(1); - - /** - * @api private - */ - AWS.ParamValidator = AWS.util.inherit({ - /** - * Create a new validator object. - * - * @param validation [Boolean|map] whether input parameters should be - * validated against the operation description before sending the - * request. Pass a map to enable any of the following specific - * validation features: - * - * * **min** [Boolean] — Validates that a value meets the min - * constraint. This is enabled by default when paramValidation is set - * to `true`. - * * **max** [Boolean] — Validates that a value meets the max - * constraint. - * * **pattern** [Boolean] — Validates that a string value matches a - * regular expression. - * * **enum** [Boolean] — Validates that a string value matches one - * of the allowable enum values. - */ - constructor: function ParamValidator(validation) { - if (validation === true || validation === undefined) { - validation = {'min': true}; - } - this.validation = validation; - }, - - validate: function validate(shape, params, context) { - this.errors = []; - this.validateMember(shape, params || {}, context || 'params'); - - if (this.errors.length > 1) { - var msg = this.errors.join('\n* '); - msg = 'There were ' + this.errors.length + - ' validation errors:\n* ' + msg; - throw AWS.util.error(new Error(msg), - {code: 'MultipleValidationErrors', errors: this.errors}); - } else if (this.errors.length === 1) { - throw this.errors[0]; - } else { - return true; - } - }, - - fail: function fail(code, message) { - this.errors.push(AWS.util.error(new Error(message), {code: code})); - }, - - validateStructure: function validateStructure(shape, params, context) { - this.validateType(params, context, ['object'], 'structure'); - - var paramName; - for (var i = 0; shape.required && i < shape.required.length; i++) { - paramName = shape.required[i]; - var value = params[paramName]; - if (value === undefined || value === null) { - this.fail('MissingRequiredParameter', - 'Missing required key \'' + paramName + '\' in ' + context); - } - } - - // validate hash members - for (paramName in params) { - if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue; - - var paramValue = params[paramName], - memberShape = shape.members[paramName]; - - if (memberShape !== undefined) { - var memberContext = [context, paramName].join('.'); - this.validateMember(memberShape, paramValue, memberContext); - } else { - this.fail('UnexpectedParameter', - 'Unexpected key \'' + paramName + '\' found in ' + context); - } - } - - return true; - }, - - validateMember: function validateMember(shape, param, context) { - switch (shape.type) { - case 'structure': - return this.validateStructure(shape, param, context); - case 'list': - return this.validateList(shape, param, context); - case 'map': - return this.validateMap(shape, param, context); - default: - return this.validateScalar(shape, param, context); - } - }, - - validateList: function validateList(shape, params, context) { - if (this.validateType(params, context, [Array])) { - this.validateRange(shape, params.length, context, 'list member count'); - // validate array members - for (var i = 0; i < params.length; i++) { - this.validateMember(shape.member, params[i], context + '[' + i + ']'); - } - } - }, - - validateMap: function validateMap(shape, params, context) { - if (this.validateType(params, context, ['object'], 'map')) { - // Build up a count of map members to validate range traits. - var mapCount = 0; - for (var param in params) { - if (!Object.prototype.hasOwnProperty.call(params, param)) continue; - // Validate any map key trait constraints - this.validateMember(shape.key, param, - context + '[key=\'' + param + '\']') - this.validateMember(shape.value, params[param], - context + '[\'' + param + '\']'); - mapCount++; - } - this.validateRange(shape, mapCount, context, 'map member count'); - } - }, - - validateScalar: function validateScalar(shape, value, context) { - switch (shape.type) { - case null: - case undefined: - case 'string': - return this.validateString(shape, value, context); - case 'base64': - case 'binary': - return this.validatePayload(value, context); - case 'integer': - case 'float': - return this.validateNumber(shape, value, context); - case 'boolean': - return this.validateType(value, context, ['boolean']); - case 'timestamp': - return this.validateType(value, context, [Date, - /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/, 'number'], - 'Date object, ISO-8601 string, or a UNIX timestamp'); - default: - return this.fail('UnkownType', 'Unhandled type ' + - shape.type + ' for ' + context); - } - }, - - validateString: function validateString(shape, value, context) { - var validTypes = ['string']; - if (shape.isJsonValue) { - validTypes = validTypes.concat(['number', 'object', 'boolean']); - } - if (value !== null && this.validateType(value, context, validTypes)) { - this.validateEnum(shape, value, context); - this.validateRange(shape, value.length, context, 'string length'); - this.validatePattern(shape, value, context); - } - }, - - validatePattern: function validatePattern(shape, value, context) { - if (this.validation['pattern'] && shape['pattern'] !== undefined) { - if (!(new RegExp(shape['pattern'])).test(value)) { - this.fail('PatternMatchError', 'Provided value "' + value + '" ' - + 'does not match regex pattern /' + shape['pattern'] + '/ for ' - + context); - } - } - }, - - validateRange: function validateRange(shape, value, context, descriptor) { - if (this.validation['min']) { - if (shape['min'] !== undefined && value < shape['min']) { - this.fail('MinRangeError', 'Expected ' + descriptor + ' >= ' - + shape['min'] + ', but found ' + value + ' for ' + context); - } - } - if (this.validation['max']) { - if (shape['max'] !== undefined && value > shape['max']) { - this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= ' - + shape['max'] + ', but found ' + value + ' for ' + context); - } - } - }, - - validateEnum: function validateRange(shape, value, context) { - if (this.validation['enum'] && shape['enum'] !== undefined) { - // Fail if the string value is not present in the enum list - if (shape['enum'].indexOf(value) === -1) { - this.fail('EnumError', 'Found string value of ' + value + ', but ' - + 'expected ' + shape['enum'].join('|') + ' for ' + context); - } - } - }, - - validateType: function validateType(value, context, acceptedTypes, type) { - // We will not log an error for null or undefined, but we will return - // false so that callers know that the expected type was not strictly met. - if (value === null || value === undefined) return false; - - var foundInvalidType = false; - for (var i = 0; i < acceptedTypes.length; i++) { - if (typeof acceptedTypes[i] === 'string') { - if (typeof value === acceptedTypes[i]) return true; - } else if (acceptedTypes[i] instanceof RegExp) { - if ((value || '').toString().match(acceptedTypes[i])) return true; - } else { - if (value instanceof acceptedTypes[i]) return true; - if (AWS.util.isType(value, acceptedTypes[i])) return true; - if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice(); - acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]); - } - foundInvalidType = true; - } - - var acceptedType = type; - if (!acceptedType) { - acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1'); - } - - var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : ''; - this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' + - vowel + ' ' + acceptedType); - return false; - }, - - validateNumber: function validateNumber(shape, value, context) { - if (value === null || value === undefined) return; - if (typeof value === 'string') { - var castedValue = parseFloat(value); - if (castedValue.toString() === value) value = castedValue; - } - if (this.validateType(value, context, ['number'])) { - this.validateRange(shape, value, context, 'numeric value'); - } - }, - - validatePayload: function validatePayload(value, context) { - if (value === null || value === undefined) return; - if (typeof value === 'string') return; - if (value && typeof value.byteLength === 'number') return; // typed arrays - if (AWS.util.isNode()) { // special check for buffer/stream in Node.js - var Stream = AWS.util.stream.Stream; - if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return; - } - - var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView']; - if (value) { - for (var i = 0; i < types.length; i++) { - if (AWS.util.isType(value, types[i])) return; - if (AWS.util.typeName(value.constructor) === types[i]) return; - } - } - - this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' + - 'string, Buffer, Stream, Blob, or typed array object'); - } - }); + this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' + + 'string, Buffer, Stream, Blob, or typed array object'); + } + }); /***/ }) @@ -17454,176 +17456,176 @@ return /******/ (function(modules) { // webpackBootstrap /* 7 */ /***/ (function(module, exports, __webpack_require__) { - var Hmac = __webpack_require__(8); - var Md5 = __webpack_require__(14); - var Sha1 = __webpack_require__(15); - var Sha256 = __webpack_require__(16); - - module.exports = exports = { - createHash: function createHash(alg) { - alg = alg.toLowerCase(); - if (alg === 'md5') { - return new Md5(); - } else if (alg === 'sha256') { - return new Sha256(); - } else if (alg === 'sha1') { - return new Sha1(); - } - - throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK'); - }, - createHmac: function createHmac(alg, key) { - alg = alg.toLowerCase(); - if (alg === 'md5') { - return new Hmac(Md5, key); - } else if (alg === 'sha256') { - return new Hmac(Sha256, key); - } else if (alg === 'sha1') { - return new Hmac(Sha1, key); - } - - throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK'); - }, - createSign: function() { - throw new Error('createSign is not implemented in the browser'); - } - } + var Hmac = __webpack_require__(8); + var Md5 = __webpack_require__(14); + var Sha1 = __webpack_require__(15); + var Sha256 = __webpack_require__(16); + + module.exports = exports = { + createHash: function createHash(alg) { + alg = alg.toLowerCase(); + if (alg === 'md5') { + return new Md5(); + } else if (alg === 'sha256') { + return new Sha256(); + } else if (alg === 'sha1') { + return new Sha1(); + } + + throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK'); + }, + createHmac: function createHmac(alg, key) { + alg = alg.toLowerCase(); + if (alg === 'md5') { + return new Hmac(Md5, key); + } else if (alg === 'sha256') { + return new Hmac(Sha256, key); + } else if (alg === 'sha1') { + return new Hmac(Sha1, key); + } + + throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK'); + }, + createSign: function() { + throw new Error('createSign is not implemented in the browser'); + } + } /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { - var hashUtils = __webpack_require__(9); - - /** - * @api private - */ - function Hmac(hashCtor, secret) { - this.hash = new hashCtor(); - this.outer = new hashCtor(); - - var inner = bufferFromSecret(hashCtor, secret); - var outer = new Uint8Array(hashCtor.BLOCK_SIZE); - outer.set(inner); - - for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) { - inner[i] ^= 0x36; - outer[i] ^= 0x5c; - } - - this.hash.update(inner); - this.outer.update(outer); - - // Zero out the copied key buffer. - for (var i = 0; i < inner.byteLength; i++) { - inner[i] = 0; - } - } - - module.exports = exports = Hmac; - - Hmac.prototype.update = function (toHash) { - if (hashUtils.isEmptyData(toHash) || this.error) { - return this; - } - - try { - this.hash.update(hashUtils.convertToBuffer(toHash)); - } catch (e) { - this.error = e; - } - - return this; - }; - - Hmac.prototype.digest = function (encoding) { - if (!this.outer.finished) { - this.outer.update(this.hash.digest()); - } - - return this.outer.digest(encoding); - } - - function bufferFromSecret(hashCtor, secret) { - var input = hashUtils.convertToBuffer(secret); - if (input.byteLength > hashCtor.BLOCK_SIZE) { - var bufferHash = new hashCtor; - bufferHash.update(input); - input = bufferHash.digest(); - } - var buffer = new Uint8Array(hashCtor.BLOCK_SIZE); - buffer.set(input); - return buffer; - } + var hashUtils = __webpack_require__(9); + + /** + * @api private + */ + function Hmac(hashCtor, secret) { + this.hash = new hashCtor(); + this.outer = new hashCtor(); + + var inner = bufferFromSecret(hashCtor, secret); + var outer = new Uint8Array(hashCtor.BLOCK_SIZE); + outer.set(inner); + + for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) { + inner[i] ^= 0x36; + outer[i] ^= 0x5c; + } + + this.hash.update(inner); + this.outer.update(outer); + + // Zero out the copied key buffer. + for (var i = 0; i < inner.byteLength; i++) { + inner[i] = 0; + } + } + + module.exports = exports = Hmac; + + Hmac.prototype.update = function (toHash) { + if (hashUtils.isEmptyData(toHash) || this.error) { + return this; + } + + try { + this.hash.update(hashUtils.convertToBuffer(toHash)); + } catch (e) { + this.error = e; + } + + return this; + }; + + Hmac.prototype.digest = function (encoding) { + if (!this.outer.finished) { + this.outer.update(this.hash.digest()); + } + + return this.outer.digest(encoding); + } + + function bufferFromSecret(hashCtor, secret) { + var input = hashUtils.convertToBuffer(secret); + if (input.byteLength > hashCtor.BLOCK_SIZE) { + var bufferHash = new hashCtor; + bufferHash.update(input); + input = bufferHash.digest(); + } + var buffer = new Uint8Array(hashCtor.BLOCK_SIZE); + buffer.set(input); + return buffer; + } /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(10).Buffer; - - /** - * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is - * e.g. missing in IE 10. - * - * @api private - */ - if ( - typeof ArrayBuffer !== 'undefined' && - typeof ArrayBuffer.isView === 'undefined' - ) { - ArrayBuffer.isView = function(arg) { - return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1; - }; - } - - /** - * @api private - */ - var viewStrings = [ - '[object Int8Array]', - '[object Uint8Array]', - '[object Uint8ClampedArray]', - '[object Int16Array]', - '[object Uint16Array]', - '[object Int32Array]', - '[object Uint32Array]', - '[object Float32Array]', - '[object Float64Array]', - '[object DataView]', - ]; - - /** - * @api private - */ - function isEmptyData(data) { - if (typeof data === 'string') { - return data.length === 0; - } - return data.byteLength === 0; - } - - /** - * @api private - */ - function convertToBuffer(data) { - if (typeof data === 'string') { - data = new Buffer(data, 'utf8'); - } - - if (ArrayBuffer.isView(data)) { - return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); - } - - return new Uint8Array(data); - } - - module.exports = exports = { - isEmptyData: isEmptyData, - convertToBuffer: convertToBuffer, - } + var Buffer = __webpack_require__(10).Buffer; + + /** + * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is + * e.g. missing in IE 10. + * + * @api private + */ + if ( + typeof ArrayBuffer !== 'undefined' && + typeof ArrayBuffer.isView === 'undefined' + ) { + ArrayBuffer.isView = function(arg) { + return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1; + }; + } + + /** + * @api private + */ + var viewStrings = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]', + '[object DataView]', + ]; + + /** + * @api private + */ + function isEmptyData(data) { + if (typeof data === 'string') { + return data.length === 0; + } + return data.byteLength === 0; + } + + /** + * @api private + */ + function convertToBuffer(data) { + if (typeof data === 'string') { + data = new Buffer(data, 'utf8'); + } + + if (ArrayBuffer.isView(data)) { + return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); + } + + return new Uint8Array(data); + } + + module.exports = exports = { + isEmptyData: isEmptyData, + convertToBuffer: convertToBuffer, + } /***/ }), @@ -19647,596 +19649,596 @@ return /******/ (function(modules) { // webpackBootstrap /* 14 */ /***/ (function(module, exports, __webpack_require__) { - var hashUtils = __webpack_require__(9); - var Buffer = __webpack_require__(10).Buffer; - - var BLOCK_SIZE = 64; - - var DIGEST_LENGTH = 16; - - var INIT = [ - 0x67452301, - 0xefcdab89, - 0x98badcfe, - 0x10325476, - ]; - - /** - * @api private - */ - function Md5() { - this.state = [ - 0x67452301, - 0xefcdab89, - 0x98badcfe, - 0x10325476, - ]; - this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE)); - this.bufferLength = 0; - this.bytesHashed = 0; - this.finished = false; - } - - module.exports = exports = Md5; - - Md5.BLOCK_SIZE = BLOCK_SIZE; - - Md5.prototype.update = function (sourceData) { - if (hashUtils.isEmptyData(sourceData)) { - return this; - } else if (this.finished) { - throw new Error('Attempted to update an already finished hash.'); - } - - var data = hashUtils.convertToBuffer(sourceData); - var position = 0; - var byteLength = data.byteLength; - this.bytesHashed += byteLength; - while (byteLength > 0) { - this.buffer.setUint8(this.bufferLength++, data[position++]); - byteLength--; - if (this.bufferLength === BLOCK_SIZE) { - this.hashBuffer(); - this.bufferLength = 0; - } - } - - return this; - }; - - Md5.prototype.digest = function (encoding) { - if (!this.finished) { - var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed; - var bitsHashed = bytesHashed * 8; - buffer.setUint8(this.bufferLength++, 128); - // Ensure the final block has enough room for the hashed length - if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { - for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { - buffer.setUint8(i, 0); - } - this.hashBuffer(); - this.bufferLength = 0; - } - for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { - buffer.setUint8(i, 0); - } - buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true); - buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true); - this.hashBuffer(); - this.finished = true; - } - var out = new DataView(new ArrayBuffer(DIGEST_LENGTH)); - for (var i = 0; i < 4; i++) { - out.setUint32(i * 4, this.state[i], true); - } - var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength); - return encoding ? buff.toString(encoding) : buff; - }; - - Md5.prototype.hashBuffer = function () { - var _a = this, buffer = _a.buffer, state = _a.state; - var a = state[0], b = state[1], c = state[2], d = state[3]; - a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478); - d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756); - c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db); - b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee); - a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf); - d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a); - c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613); - b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501); - a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8); - d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af); - c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1); - b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be); - a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122); - d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193); - c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e); - b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821); - a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562); - d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340); - c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51); - b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa); - a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d); - d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453); - c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681); - b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8); - a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6); - d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6); - c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87); - b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed); - a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905); - d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8); - c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9); - b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a); - a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942); - d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681); - c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122); - b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c); - a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44); - d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9); - c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60); - b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70); - a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6); - d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa); - c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085); - b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05); - a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039); - d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5); - c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8); - b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665); - a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244); - d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97); - c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7); - b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039); - a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3); - d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92); - c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d); - b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1); - a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f); - d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0); - c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314); - b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1); - a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82); - d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235); - c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb); - b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391); - state[0] = (a + state[0]) & 0xFFFFFFFF; - state[1] = (b + state[1]) & 0xFFFFFFFF; - state[2] = (c + state[2]) & 0xFFFFFFFF; - state[3] = (d + state[3]) & 0xFFFFFFFF; - }; - - function cmn(q, a, b, x, s, t) { - a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF; - return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF; - } - - function ff(a, b, c, d, x, s, t) { - return cmn((b & c) | ((~b) & d), a, b, x, s, t); - } - - function gg(a, b, c, d, x, s, t) { - return cmn((b & d) | (c & (~d)), a, b, x, s, t); - } - - function hh(a, b, c, d, x, s, t) { - return cmn(b ^ c ^ d, a, b, x, s, t); - } - - function ii(a, b, c, d, x, s, t) { - return cmn(c ^ (b | (~d)), a, b, x, s, t); - } + var hashUtils = __webpack_require__(9); + var Buffer = __webpack_require__(10).Buffer; + + var BLOCK_SIZE = 64; + + var DIGEST_LENGTH = 16; + + var INIT = [ + 0x67452301, + 0xefcdab89, + 0x98badcfe, + 0x10325476, + ]; + + /** + * @api private + */ + function Md5() { + this.state = [ + 0x67452301, + 0xefcdab89, + 0x98badcfe, + 0x10325476, + ]; + this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE)); + this.bufferLength = 0; + this.bytesHashed = 0; + this.finished = false; + } + + module.exports = exports = Md5; + + Md5.BLOCK_SIZE = BLOCK_SIZE; + + Md5.prototype.update = function (sourceData) { + if (hashUtils.isEmptyData(sourceData)) { + return this; + } else if (this.finished) { + throw new Error('Attempted to update an already finished hash.'); + } + + var data = hashUtils.convertToBuffer(sourceData); + var position = 0; + var byteLength = data.byteLength; + this.bytesHashed += byteLength; + while (byteLength > 0) { + this.buffer.setUint8(this.bufferLength++, data[position++]); + byteLength--; + if (this.bufferLength === BLOCK_SIZE) { + this.hashBuffer(); + this.bufferLength = 0; + } + } + + return this; + }; + + Md5.prototype.digest = function (encoding) { + if (!this.finished) { + var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed; + var bitsHashed = bytesHashed * 8; + buffer.setUint8(this.bufferLength++, 128); + // Ensure the final block has enough room for the hashed length + if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { + for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { + buffer.setUint8(i, 0); + } + this.hashBuffer(); + this.bufferLength = 0; + } + for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { + buffer.setUint8(i, 0); + } + buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true); + buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true); + this.hashBuffer(); + this.finished = true; + } + var out = new DataView(new ArrayBuffer(DIGEST_LENGTH)); + for (var i = 0; i < 4; i++) { + out.setUint32(i * 4, this.state[i], true); + } + var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength); + return encoding ? buff.toString(encoding) : buff; + }; + + Md5.prototype.hashBuffer = function () { + var _a = this, buffer = _a.buffer, state = _a.state; + var a = state[0], b = state[1], c = state[2], d = state[3]; + a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478); + d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756); + c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db); + b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee); + a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf); + d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a); + c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613); + b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501); + a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8); + d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af); + c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1); + b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be); + a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122); + d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193); + c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e); + b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821); + a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562); + d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340); + c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51); + b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa); + a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d); + d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453); + c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681); + b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8); + a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6); + d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6); + c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87); + b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed); + a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905); + d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8); + c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9); + b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a); + a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942); + d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681); + c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122); + b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c); + a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44); + d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9); + c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60); + b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70); + a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6); + d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa); + c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085); + b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05); + a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039); + d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5); + c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8); + b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665); + a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244); + d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97); + c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7); + b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039); + a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3); + d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92); + c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d); + b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1); + a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f); + d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0); + c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314); + b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1); + a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82); + d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235); + c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb); + b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391); + state[0] = (a + state[0]) & 0xFFFFFFFF; + state[1] = (b + state[1]) & 0xFFFFFFFF; + state[2] = (c + state[2]) & 0xFFFFFFFF; + state[3] = (d + state[3]) & 0xFFFFFFFF; + }; + + function cmn(q, a, b, x, s, t) { + a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF; + return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF; + } + + function ff(a, b, c, d, x, s, t) { + return cmn((b & c) | ((~b) & d), a, b, x, s, t); + } + + function gg(a, b, c, d, x, s, t) { + return cmn((b & d) | (c & (~d)), a, b, x, s, t); + } + + function hh(a, b, c, d, x, s, t) { + return cmn(b ^ c ^ d, a, b, x, s, t); + } + + function ii(a, b, c, d, x, s, t) { + return cmn(c ^ (b | (~d)), a, b, x, s, t); + } /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(10).Buffer; - var hashUtils = __webpack_require__(9); - - var BLOCK_SIZE = 64; - - var DIGEST_LENGTH = 20; - - var KEY = new Uint32Array([ - 0x5a827999, - 0x6ed9eba1, - 0x8f1bbcdc | 0, - 0xca62c1d6 | 0 - ]); - - var INIT = [ - 0x6a09e667, - 0xbb67ae85, - 0x3c6ef372, - 0xa54ff53a, - 0x510e527f, - 0x9b05688c, - 0x1f83d9ab, - 0x5be0cd19, - ]; - - var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; - - /** - * @api private - */ - function Sha1() { - this.h0 = 0x67452301; - this.h1 = 0xEFCDAB89; - this.h2 = 0x98BADCFE; - this.h3 = 0x10325476; - this.h4 = 0xC3D2E1F0; - // The first 64 bytes (16 words) is the data chunk - this.block = new Uint32Array(80); - this.offset = 0; - this.shift = 24; - this.totalLength = 0; - } - - module.exports = exports = Sha1; - - Sha1.BLOCK_SIZE = BLOCK_SIZE; - - Sha1.prototype.update = function (data) { - if (this.finished) { - throw new Error('Attempted to update an already finished hash.'); - } - - if (hashUtils.isEmptyData(data)) { - return this; - } - - data = hashUtils.convertToBuffer(data); - - var length = data.length; - this.totalLength += length * 8; - for (var i = 0; i < length; i++) { - this.write(data[i]); - } - - return this; - }; - - Sha1.prototype.write = function write(byte) { - this.block[this.offset] |= (byte & 0xff) << this.shift; - if (this.shift) { - this.shift -= 8; - } else { - this.offset++; - this.shift = 24; - } - - if (this.offset === 16) this.processBlock(); - }; - - Sha1.prototype.digest = function (encoding) { - // Pad - this.write(0x80); - if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) { - this.processBlock(); - } - this.offset = 14; - this.shift = 24; - - // 64-bit length big-endian - this.write(0x00); // numbers this big aren't accurate in javascript anyway - this.write(0x00); // ..So just hard-code to zero. - this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00); - this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00); - for (var s = 24; s >= 0; s -= 8) { - this.write(this.totalLength >> s); - } - // The value in state is little-endian rather than big-endian, so flip - // each word into a new Uint8Array - var out = new Buffer(DIGEST_LENGTH); - var outView = new DataView(out.buffer); - outView.setUint32(0, this.h0, false); - outView.setUint32(4, this.h1, false); - outView.setUint32(8, this.h2, false); - outView.setUint32(12, this.h3, false); - outView.setUint32(16, this.h4, false); - - return encoding ? out.toString(encoding) : out; - }; - - Sha1.prototype.processBlock = function processBlock() { - // Extend the sixteen 32-bit words into eighty 32-bit words: - for (var i = 16; i < 80; i++) { - var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16]; - this.block[i] = (w << 1) | (w >>> 31); - } - - // Initialize hash value for this chunk: - var a = this.h0; - var b = this.h1; - var c = this.h2; - var d = this.h3; - var e = this.h4; - var f, k; - - // Main loop: - for (i = 0; i < 80; i++) { - if (i < 20) { - f = d ^ (b & (c ^ d)); - k = 0x5A827999; - } - else if (i < 40) { - f = b ^ c ^ d; - k = 0x6ED9EBA1; - } - else if (i < 60) { - f = (b & c) | (d & (b | c)); - k = 0x8F1BBCDC; - } - else { - f = b ^ c ^ d; - k = 0xCA62C1D6; - } - var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0); - e = d; - d = c; - c = (b << 30 | b >>> 2); - b = a; - a = temp; - } - - // Add this chunk's hash to result so far: - this.h0 = (this.h0 + a) | 0; - this.h1 = (this.h1 + b) | 0; - this.h2 = (this.h2 + c) | 0; - this.h3 = (this.h3 + d) | 0; - this.h4 = (this.h4 + e) | 0; - - // The block is now reusable. - this.offset = 0; - for (i = 0; i < 16; i++) { - this.block[i] = 0; - } - } + var Buffer = __webpack_require__(10).Buffer; + var hashUtils = __webpack_require__(9); + + var BLOCK_SIZE = 64; + + var DIGEST_LENGTH = 20; + + var KEY = new Uint32Array([ + 0x5a827999, + 0x6ed9eba1, + 0x8f1bbcdc | 0, + 0xca62c1d6 | 0 + ]); + + var INIT = [ + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19, + ]; + + var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; + + /** + * @api private + */ + function Sha1() { + this.h0 = 0x67452301; + this.h1 = 0xEFCDAB89; + this.h2 = 0x98BADCFE; + this.h3 = 0x10325476; + this.h4 = 0xC3D2E1F0; + // The first 64 bytes (16 words) is the data chunk + this.block = new Uint32Array(80); + this.offset = 0; + this.shift = 24; + this.totalLength = 0; + } + + module.exports = exports = Sha1; + + Sha1.BLOCK_SIZE = BLOCK_SIZE; + + Sha1.prototype.update = function (data) { + if (this.finished) { + throw new Error('Attempted to update an already finished hash.'); + } + + if (hashUtils.isEmptyData(data)) { + return this; + } + + data = hashUtils.convertToBuffer(data); + + var length = data.length; + this.totalLength += length * 8; + for (var i = 0; i < length; i++) { + this.write(data[i]); + } + + return this; + }; + + Sha1.prototype.write = function write(byte) { + this.block[this.offset] |= (byte & 0xff) << this.shift; + if (this.shift) { + this.shift -= 8; + } else { + this.offset++; + this.shift = 24; + } + + if (this.offset === 16) this.processBlock(); + }; + + Sha1.prototype.digest = function (encoding) { + // Pad + this.write(0x80); + if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) { + this.processBlock(); + } + this.offset = 14; + this.shift = 24; + + // 64-bit length big-endian + this.write(0x00); // numbers this big aren't accurate in javascript anyway + this.write(0x00); // ..So just hard-code to zero. + this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00); + this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00); + for (var s = 24; s >= 0; s -= 8) { + this.write(this.totalLength >> s); + } + // The value in state is little-endian rather than big-endian, so flip + // each word into a new Uint8Array + var out = new Buffer(DIGEST_LENGTH); + var outView = new DataView(out.buffer); + outView.setUint32(0, this.h0, false); + outView.setUint32(4, this.h1, false); + outView.setUint32(8, this.h2, false); + outView.setUint32(12, this.h3, false); + outView.setUint32(16, this.h4, false); + + return encoding ? out.toString(encoding) : out; + }; + + Sha1.prototype.processBlock = function processBlock() { + // Extend the sixteen 32-bit words into eighty 32-bit words: + for (var i = 16; i < 80; i++) { + var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16]; + this.block[i] = (w << 1) | (w >>> 31); + } + + // Initialize hash value for this chunk: + var a = this.h0; + var b = this.h1; + var c = this.h2; + var d = this.h3; + var e = this.h4; + var f, k; + + // Main loop: + for (i = 0; i < 80; i++) { + if (i < 20) { + f = d ^ (b & (c ^ d)); + k = 0x5A827999; + } + else if (i < 40) { + f = b ^ c ^ d; + k = 0x6ED9EBA1; + } + else if (i < 60) { + f = (b & c) | (d & (b | c)); + k = 0x8F1BBCDC; + } + else { + f = b ^ c ^ d; + k = 0xCA62C1D6; + } + var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0); + e = d; + d = c; + c = (b << 30 | b >>> 2); + b = a; + a = temp; + } + + // Add this chunk's hash to result so far: + this.h0 = (this.h0 + a) | 0; + this.h1 = (this.h1 + b) | 0; + this.h2 = (this.h2 + c) | 0; + this.h3 = (this.h3 + d) | 0; + this.h4 = (this.h4 + e) | 0; + + // The block is now reusable. + this.offset = 0; + for (i = 0; i < 16; i++) { + this.block[i] = 0; + } + } /***/ }), /* 16 */ /***/ (function(module, exports, __webpack_require__) { - var Buffer = __webpack_require__(10).Buffer; - var hashUtils = __webpack_require__(9); - - var BLOCK_SIZE = 64; - - var DIGEST_LENGTH = 32; - - var KEY = new Uint32Array([ - 0x428a2f98, - 0x71374491, - 0xb5c0fbcf, - 0xe9b5dba5, - 0x3956c25b, - 0x59f111f1, - 0x923f82a4, - 0xab1c5ed5, - 0xd807aa98, - 0x12835b01, - 0x243185be, - 0x550c7dc3, - 0x72be5d74, - 0x80deb1fe, - 0x9bdc06a7, - 0xc19bf174, - 0xe49b69c1, - 0xefbe4786, - 0x0fc19dc6, - 0x240ca1cc, - 0x2de92c6f, - 0x4a7484aa, - 0x5cb0a9dc, - 0x76f988da, - 0x983e5152, - 0xa831c66d, - 0xb00327c8, - 0xbf597fc7, - 0xc6e00bf3, - 0xd5a79147, - 0x06ca6351, - 0x14292967, - 0x27b70a85, - 0x2e1b2138, - 0x4d2c6dfc, - 0x53380d13, - 0x650a7354, - 0x766a0abb, - 0x81c2c92e, - 0x92722c85, - 0xa2bfe8a1, - 0xa81a664b, - 0xc24b8b70, - 0xc76c51a3, - 0xd192e819, - 0xd6990624, - 0xf40e3585, - 0x106aa070, - 0x19a4c116, - 0x1e376c08, - 0x2748774c, - 0x34b0bcb5, - 0x391c0cb3, - 0x4ed8aa4a, - 0x5b9cca4f, - 0x682e6ff3, - 0x748f82ee, - 0x78a5636f, - 0x84c87814, - 0x8cc70208, - 0x90befffa, - 0xa4506ceb, - 0xbef9a3f7, - 0xc67178f2 - ]); - - var INIT = [ - 0x6a09e667, - 0xbb67ae85, - 0x3c6ef372, - 0xa54ff53a, - 0x510e527f, - 0x9b05688c, - 0x1f83d9ab, - 0x5be0cd19, - ]; - - var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; - - /** - * @private - */ - function Sha256() { - this.state = [ - 0x6a09e667, - 0xbb67ae85, - 0x3c6ef372, - 0xa54ff53a, - 0x510e527f, - 0x9b05688c, - 0x1f83d9ab, - 0x5be0cd19, - ]; - this.temp = new Int32Array(64); - this.buffer = new Uint8Array(64); - this.bufferLength = 0; - this.bytesHashed = 0; - /** - * @private - */ - this.finished = false; - } - - module.exports = exports = Sha256; - - Sha256.BLOCK_SIZE = BLOCK_SIZE; - - Sha256.prototype.update = function (data) { - if (this.finished) { - throw new Error('Attempted to update an already finished hash.'); - } - - if (hashUtils.isEmptyData(data)) { - return this; - } - - data = hashUtils.convertToBuffer(data); - - var position = 0; - var byteLength = data.byteLength; - this.bytesHashed += byteLength; - if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) { - throw new Error('Cannot hash more than 2^53 - 1 bits'); - } - - while (byteLength > 0) { - this.buffer[this.bufferLength++] = data[position++]; - byteLength--; - if (this.bufferLength === BLOCK_SIZE) { - this.hashBuffer(); - this.bufferLength = 0; - } - } - - return this; - }; - - Sha256.prototype.digest = function (encoding) { - if (!this.finished) { - var bitsHashed = this.bytesHashed * 8; - var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength); - var undecoratedLength = this.bufferLength; - bufferView.setUint8(this.bufferLength++, 0x80); - // Ensure the final block has enough room for the hashed length - if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { - for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { - bufferView.setUint8(i, 0); - } - this.hashBuffer(); - this.bufferLength = 0; - } - for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { - bufferView.setUint8(i, 0); - } - bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true); - bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed); - this.hashBuffer(); - this.finished = true; - } - // The value in state is little-endian rather than big-endian, so flip - // each word into a new Uint8Array - var out = new Buffer(DIGEST_LENGTH); - for (var i = 0; i < 8; i++) { - out[i * 4] = (this.state[i] >>> 24) & 0xff; - out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff; - out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff; - out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff; - } - return encoding ? out.toString(encoding) : out; - }; - - Sha256.prototype.hashBuffer = function () { - var _a = this, - buffer = _a.buffer, - state = _a.state; - var state0 = state[0], - state1 = state[1], - state2 = state[2], - state3 = state[3], - state4 = state[4], - state5 = state[5], - state6 = state[6], - state7 = state[7]; - for (var i = 0; i < BLOCK_SIZE; i++) { - if (i < 16) { - this.temp[i] = (((buffer[i * 4] & 0xff) << 24) | - ((buffer[(i * 4) + 1] & 0xff) << 16) | - ((buffer[(i * 4) + 2] & 0xff) << 8) | - (buffer[(i * 4) + 3] & 0xff)); - } - else { - var u = this.temp[i - 2]; - var t1_1 = (u >>> 17 | u << 15) ^ - (u >>> 19 | u << 13) ^ - (u >>> 10); - u = this.temp[i - 15]; - var t2_1 = (u >>> 7 | u << 25) ^ - (u >>> 18 | u << 14) ^ - (u >>> 3); - this.temp[i] = (t1_1 + this.temp[i - 7] | 0) + - (t2_1 + this.temp[i - 16] | 0); - } - var t1 = (((((state4 >>> 6 | state4 << 26) ^ - (state4 >>> 11 | state4 << 21) ^ - (state4 >>> 25 | state4 << 7)) - + ((state4 & state5) ^ (~state4 & state6))) | 0) - + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0; - var t2 = (((state0 >>> 2 | state0 << 30) ^ - (state0 >>> 13 | state0 << 19) ^ - (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0; - state7 = state6; - state6 = state5; - state5 = state4; - state4 = (state3 + t1) | 0; - state3 = state2; - state2 = state1; - state1 = state0; - state0 = (t1 + t2) | 0; - } - state[0] += state0; - state[1] += state1; - state[2] += state2; - state[3] += state3; - state[4] += state4; - state[5] += state5; - state[6] += state6; - state[7] += state7; - }; + var Buffer = __webpack_require__(10).Buffer; + var hashUtils = __webpack_require__(9); + + var BLOCK_SIZE = 64; + + var DIGEST_LENGTH = 32; + + var KEY = new Uint32Array([ + 0x428a2f98, + 0x71374491, + 0xb5c0fbcf, + 0xe9b5dba5, + 0x3956c25b, + 0x59f111f1, + 0x923f82a4, + 0xab1c5ed5, + 0xd807aa98, + 0x12835b01, + 0x243185be, + 0x550c7dc3, + 0x72be5d74, + 0x80deb1fe, + 0x9bdc06a7, + 0xc19bf174, + 0xe49b69c1, + 0xefbe4786, + 0x0fc19dc6, + 0x240ca1cc, + 0x2de92c6f, + 0x4a7484aa, + 0x5cb0a9dc, + 0x76f988da, + 0x983e5152, + 0xa831c66d, + 0xb00327c8, + 0xbf597fc7, + 0xc6e00bf3, + 0xd5a79147, + 0x06ca6351, + 0x14292967, + 0x27b70a85, + 0x2e1b2138, + 0x4d2c6dfc, + 0x53380d13, + 0x650a7354, + 0x766a0abb, + 0x81c2c92e, + 0x92722c85, + 0xa2bfe8a1, + 0xa81a664b, + 0xc24b8b70, + 0xc76c51a3, + 0xd192e819, + 0xd6990624, + 0xf40e3585, + 0x106aa070, + 0x19a4c116, + 0x1e376c08, + 0x2748774c, + 0x34b0bcb5, + 0x391c0cb3, + 0x4ed8aa4a, + 0x5b9cca4f, + 0x682e6ff3, + 0x748f82ee, + 0x78a5636f, + 0x84c87814, + 0x8cc70208, + 0x90befffa, + 0xa4506ceb, + 0xbef9a3f7, + 0xc67178f2 + ]); + + var INIT = [ + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19, + ]; + + var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; + + /** + * @private + */ + function Sha256() { + this.state = [ + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19, + ]; + this.temp = new Int32Array(64); + this.buffer = new Uint8Array(64); + this.bufferLength = 0; + this.bytesHashed = 0; + /** + * @private + */ + this.finished = false; + } + + module.exports = exports = Sha256; + + Sha256.BLOCK_SIZE = BLOCK_SIZE; + + Sha256.prototype.update = function (data) { + if (this.finished) { + throw new Error('Attempted to update an already finished hash.'); + } + + if (hashUtils.isEmptyData(data)) { + return this; + } + + data = hashUtils.convertToBuffer(data); + + var position = 0; + var byteLength = data.byteLength; + this.bytesHashed += byteLength; + if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) { + throw new Error('Cannot hash more than 2^53 - 1 bits'); + } + + while (byteLength > 0) { + this.buffer[this.bufferLength++] = data[position++]; + byteLength--; + if (this.bufferLength === BLOCK_SIZE) { + this.hashBuffer(); + this.bufferLength = 0; + } + } + + return this; + }; + + Sha256.prototype.digest = function (encoding) { + if (!this.finished) { + var bitsHashed = this.bytesHashed * 8; + var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength); + var undecoratedLength = this.bufferLength; + bufferView.setUint8(this.bufferLength++, 0x80); + // Ensure the final block has enough room for the hashed length + if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { + for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { + bufferView.setUint8(i, 0); + } + this.hashBuffer(); + this.bufferLength = 0; + } + for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { + bufferView.setUint8(i, 0); + } + bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true); + bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed); + this.hashBuffer(); + this.finished = true; + } + // The value in state is little-endian rather than big-endian, so flip + // each word into a new Uint8Array + var out = new Buffer(DIGEST_LENGTH); + for (var i = 0; i < 8; i++) { + out[i * 4] = (this.state[i] >>> 24) & 0xff; + out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff; + out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff; + out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff; + } + return encoding ? out.toString(encoding) : out; + }; + + Sha256.prototype.hashBuffer = function () { + var _a = this, + buffer = _a.buffer, + state = _a.state; + var state0 = state[0], + state1 = state[1], + state2 = state[2], + state3 = state[3], + state4 = state[4], + state5 = state[5], + state6 = state[6], + state7 = state[7]; + for (var i = 0; i < BLOCK_SIZE; i++) { + if (i < 16) { + this.temp[i] = (((buffer[i * 4] & 0xff) << 24) | + ((buffer[(i * 4) + 1] & 0xff) << 16) | + ((buffer[(i * 4) + 2] & 0xff) << 8) | + (buffer[(i * 4) + 3] & 0xff)); + } + else { + var u = this.temp[i - 2]; + var t1_1 = (u >>> 17 | u << 15) ^ + (u >>> 19 | u << 13) ^ + (u >>> 10); + u = this.temp[i - 15]; + var t2_1 = (u >>> 7 | u << 25) ^ + (u >>> 18 | u << 14) ^ + (u >>> 3); + this.temp[i] = (t1_1 + this.temp[i - 7] | 0) + + (t2_1 + this.temp[i - 16] | 0); + } + var t1 = (((((state4 >>> 6 | state4 << 26) ^ + (state4 >>> 11 | state4 << 21) ^ + (state4 >>> 25 | state4 << 7)) + + ((state4 & state5) ^ (~state4 & state6))) | 0) + + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0; + var t2 = (((state0 >>> 2 | state0 << 30) ^ + (state0 >>> 13 | state0 << 19) ^ + (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0; + state7 = state6; + state6 = state5; + state5 = state4; + state4 = (state3 + t1) | 0; + state3 = state2; + state2 = state1; + state1 = state0; + state0 = (t1 + t2) | 0; + } + state[0] += state0; + state[1] += state1; + state[2] += state2; + state[3] += state3; + state[4] += state4; + state[5] += state5; + state[6] += state6; + state[7] += state7; + }; /***/ }), @@ -21673,603 +21675,603 @@ return /******/ (function(modules) { // webpackBootstrap /* 23 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - /** - * Represents your AWS security credentials, specifically the - * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. - * Creating a `Credentials` object allows you to pass around your - * security information to configuration and service objects. - * - * Note that this class typically does not need to be constructed manually, - * as the {AWS.Config} and {AWS.Service} classes both accept simple - * options hashes with the three keys. These structures will be converted - * into Credentials objects automatically. - * - * ## Expiring and Refreshing Credentials - * - * Occasionally credentials can expire in the middle of a long-running - * application. In this case, the SDK will automatically attempt to - * refresh the credentials from the storage location if the Credentials - * class implements the {refresh} method. - * - * If you are implementing a credential storage location, you - * will want to create a subclass of the `Credentials` class and - * override the {refresh} method. This method allows credentials to be - * retrieved from the backing store, be it a file system, database, or - * some network storage. The method should reset the credential attributes - * on the object. - * - * @!attribute expired - * @return [Boolean] whether the credentials have been expired and - * require a refresh. Used in conjunction with {expireTime}. - * @!attribute expireTime - * @return [Date] a time when credentials should be considered expired. Used - * in conjunction with {expired}. - * @!attribute accessKeyId - * @return [String] the AWS access key ID - * @!attribute secretAccessKey - * @return [String] the AWS secret access key - * @!attribute sessionToken - * @return [String] an optional AWS session token - */ - AWS.Credentials = AWS.util.inherit({ - /** - * A credentials object can be created using positional arguments or an options - * hash. - * - * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) - * Creates a Credentials object with a given set of credential information - * as positional arguments. - * @param accessKeyId [String] the AWS access key ID - * @param secretAccessKey [String] the AWS secret access key - * @param sessionToken [String] the optional AWS session token - * @example Create a credentials object with AWS credentials - * var creds = new AWS.Credentials('akid', 'secret', 'session'); - * @overload AWS.Credentials(options) - * Creates a Credentials object with a given set of credential information - * as an options hash. - * @option options accessKeyId [String] the AWS access key ID - * @option options secretAccessKey [String] the AWS secret access key - * @option options sessionToken [String] the optional AWS session token - * @example Create a credentials object with AWS credentials - * var creds = new AWS.Credentials({ - * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' - * }); - */ - constructor: function Credentials() { - // hide secretAccessKey from being displayed with util.inspect - AWS.util.hideProperties(this, ['secretAccessKey']); - - this.expired = false; - this.expireTime = null; - if (arguments.length === 1 && typeof arguments[0] === 'object') { - var creds = arguments[0].credentials || arguments[0]; - this.accessKeyId = creds.accessKeyId; - this.secretAccessKey = creds.secretAccessKey; - this.sessionToken = creds.sessionToken; - } else { - this.accessKeyId = arguments[0]; - this.secretAccessKey = arguments[1]; - this.sessionToken = arguments[2]; - } - }, - - /** - * @return [Integer] the number of seconds before {expireTime} during which - * the credentials will be considered expired. - */ - expiryWindow: 15, - - /** - * @return [Boolean] whether the credentials object should call {refresh} - * @note Subclasses should override this method to provide custom refresh - * logic. - */ - needsRefresh: function needsRefresh() { - var currentTime = AWS.util.date.getDate().getTime(); - var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); - - if (this.expireTime && adjustedTime > this.expireTime) { - return true; - } else { - return this.expired || !this.accessKeyId || !this.secretAccessKey; - } - }, - - /** - * Gets the existing credentials, refreshing them if they are not yet loaded - * or have expired. Users should call this method before using {refresh}, - * as this will not attempt to reload credentials when they are already - * loaded into the object. - * - * @callback callback function(err) - * When this callback is called with no error, it means either credentials - * do not need to be refreshed or refreshed credentials information has - * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, - * and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - */ - get: function get(callback) { - var self = this; - if (this.needsRefresh()) { - this.refresh(function(err) { - if (!err) self.expired = false; // reset expired flag - if (callback) callback(err); - }); - } else if (callback) { - callback(); - } - }, - - /** - * @!method getPromise() - * Returns a 'thenable' promise. - * Gets the existing credentials, refreshing them if they are not yet loaded - * or have expired. Users should call this method before using {refresh}, - * as this will not attempt to reload credentials when they are already - * loaded into the object. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function() - * Called if the promise is fulfilled. When this callback is called, it - * means either credentials do not need to be refreshed or refreshed - * credentials information has been loaded into the object (as the - * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] if an error occurred, this value will be filled - * @return [Promise] A promise that represents the state of the `get` call. - * @example Calling the `getPromise` method. - * var promise = credProvider.getPromise(); - * promise.then(function() { ... }, function(err) { ... }); - */ - - /** - * @!method refreshPromise() - * Returns a 'thenable' promise. - * Refreshes the credentials. Users should call {get} before attempting - * to forcibly refresh credentials. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function() - * Called if the promise is fulfilled. When this callback is called, it - * means refreshed credentials information has been loaded into the object - * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] if an error occurred, this value will be filled - * @return [Promise] A promise that represents the state of the `refresh` call. - * @example Calling the `refreshPromise` method. - * var promise = credProvider.refreshPromise(); - * promise.then(function() { ... }, function(err) { ... }); - */ - - /** - * Refreshes the credentials. Users should call {get} before attempting - * to forcibly refresh credentials. - * - * @callback callback function(err) - * When this callback is called with no error, it means refreshed - * credentials information has been loaded into the object (as the - * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @note Subclasses should override this class to reset the - * {accessKeyId}, {secretAccessKey} and optional {sessionToken} - * on the credentials object and then call the callback with - * any error information. - * @see get - */ - refresh: function refresh(callback) { - this.expired = false; - callback(); - } - }); - - /** - * @api private - */ - AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); - this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); - }; - - /** - * @api private - */ - AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.getPromise; - delete this.prototype.refreshPromise; - }; - - AWS.util.addPromises(AWS.Credentials); + var AWS = __webpack_require__(4); + + /** + * Represents your AWS security credentials, specifically the + * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}. + * Creating a `Credentials` object allows you to pass around your + * security information to configuration and service objects. + * + * Note that this class typically does not need to be constructed manually, + * as the {AWS.Config} and {AWS.Service} classes both accept simple + * options hashes with the three keys. These structures will be converted + * into Credentials objects automatically. + * + * ## Expiring and Refreshing Credentials + * + * Occasionally credentials can expire in the middle of a long-running + * application. In this case, the SDK will automatically attempt to + * refresh the credentials from the storage location if the Credentials + * class implements the {refresh} method. + * + * If you are implementing a credential storage location, you + * will want to create a subclass of the `Credentials` class and + * override the {refresh} method. This method allows credentials to be + * retrieved from the backing store, be it a file system, database, or + * some network storage. The method should reset the credential attributes + * on the object. + * + * @!attribute expired + * @return [Boolean] whether the credentials have been expired and + * require a refresh. Used in conjunction with {expireTime}. + * @!attribute expireTime + * @return [Date] a time when credentials should be considered expired. Used + * in conjunction with {expired}. + * @!attribute accessKeyId + * @return [String] the AWS access key ID + * @!attribute secretAccessKey + * @return [String] the AWS secret access key + * @!attribute sessionToken + * @return [String] an optional AWS session token + */ + AWS.Credentials = AWS.util.inherit({ + /** + * A credentials object can be created using positional arguments or an options + * hash. + * + * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null) + * Creates a Credentials object with a given set of credential information + * as positional arguments. + * @param accessKeyId [String] the AWS access key ID + * @param secretAccessKey [String] the AWS secret access key + * @param sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials('akid', 'secret', 'session'); + * @overload AWS.Credentials(options) + * Creates a Credentials object with a given set of credential information + * as an options hash. + * @option options accessKeyId [String] the AWS access key ID + * @option options secretAccessKey [String] the AWS secret access key + * @option options sessionToken [String] the optional AWS session token + * @example Create a credentials object with AWS credentials + * var creds = new AWS.Credentials({ + * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session' + * }); + */ + constructor: function Credentials() { + // hide secretAccessKey from being displayed with util.inspect + AWS.util.hideProperties(this, ['secretAccessKey']); + + this.expired = false; + this.expireTime = null; + if (arguments.length === 1 && typeof arguments[0] === 'object') { + var creds = arguments[0].credentials || arguments[0]; + this.accessKeyId = creds.accessKeyId; + this.secretAccessKey = creds.secretAccessKey; + this.sessionToken = creds.sessionToken; + } else { + this.accessKeyId = arguments[0]; + this.secretAccessKey = arguments[1]; + this.sessionToken = arguments[2]; + } + }, + + /** + * @return [Integer] the number of seconds before {expireTime} during which + * the credentials will be considered expired. + */ + expiryWindow: 15, + + /** + * @return [Boolean] whether the credentials object should call {refresh} + * @note Subclasses should override this method to provide custom refresh + * logic. + */ + needsRefresh: function needsRefresh() { + var currentTime = AWS.util.date.getDate().getTime(); + var adjustedTime = new Date(currentTime + this.expiryWindow * 1000); + + if (this.expireTime && adjustedTime > this.expireTime) { + return true; + } else { + return this.expired || !this.accessKeyId || !this.secretAccessKey; + } + }, + + /** + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * @callback callback function(err) + * When this callback is called with no error, it means either credentials + * do not need to be refreshed or refreshed credentials information has + * been loaded into the object (as the `accessKeyId`, `secretAccessKey`, + * and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + */ + get: function get(callback) { + var self = this; + if (this.needsRefresh()) { + this.refresh(function(err) { + if (!err) self.expired = false; // reset expired flag + if (callback) callback(err); + }); + } else if (callback) { + callback(); + } + }, + + /** + * @!method getPromise() + * Returns a 'thenable' promise. + * Gets the existing credentials, refreshing them if they are not yet loaded + * or have expired. Users should call this method before using {refresh}, + * as this will not attempt to reload credentials when they are already + * loaded into the object. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means either credentials do not need to be refreshed or refreshed + * credentials information has been loaded into the object (as the + * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled + * @return [Promise] A promise that represents the state of the `get` call. + * @example Calling the `getPromise` method. + * var promise = credProvider.getPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * @!method refreshPromise() + * Returns a 'thenable' promise. + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function() + * Called if the promise is fulfilled. When this callback is called, it + * means refreshed credentials information has been loaded into the object + * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] if an error occurred, this value will be filled + * @return [Promise] A promise that represents the state of the `refresh` call. + * @example Calling the `refreshPromise` method. + * var promise = credProvider.refreshPromise(); + * promise.then(function() { ... }, function(err) { ... }); + */ + + /** + * Refreshes the credentials. Users should call {get} before attempting + * to forcibly refresh credentials. + * + * @callback callback function(err) + * When this callback is called with no error, it means refreshed + * credentials information has been loaded into the object (as the + * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @note Subclasses should override this class to reset the + * {accessKeyId}, {secretAccessKey} and optional {sessionToken} + * on the credentials object and then call the callback with + * any error information. + * @see get + */ + refresh: function refresh(callback) { + this.expired = false; + callback(); + } + }); + + /** + * @api private + */ + AWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency); + this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency); + }; + + /** + * @api private + */ + AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.getPromise; + delete this.prototype.refreshPromise; + }; + + AWS.util.addPromises(AWS.Credentials); /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - /** - * Creates a credential provider chain that searches for AWS credentials - * in a list of credential providers specified by the {providers} property. - * - * By default, the chain will use the {defaultProviders} to resolve credentials. - * These providers will look in the environment using the - * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. - * - * ## Setting Providers - * - * Each provider in the {providers} list should be a function that returns - * a {AWS.Credentials} object, or a hardcoded credentials object. The function - * form allows for delayed execution of the credential construction. - * - * ## Resolving Credentials from a Chain - * - * Call {resolve} to return the first valid credential object that can be - * loaded by the provider chain. - * - * For example, to resolve a chain with a custom provider that checks a file - * on disk after the set of {defaultProviders}: - * - * ```javascript - * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); - * var chain = new AWS.CredentialProviderChain(); - * chain.providers.push(diskProvider); - * chain.resolve(); - * ``` - * - * The above code will return the `diskProvider` object if the - * file contains credentials and the `defaultProviders` do not contain - * any credential settings. - * - * @!attribute providers - * @return [Array] - * a list of credentials objects or functions that return credentials - * objects. If the provider is a function, the function will be - * executed lazily when the provider needs to be checked for valid - * credentials. By default, this object will be set to the - * {defaultProviders}. - * @see defaultProviders - */ - AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { - - /** - * Creates a new CredentialProviderChain with a default set of providers - * specified by {defaultProviders}. - */ - constructor: function CredentialProviderChain(providers) { - if (providers) { - this.providers = providers; - } else { - this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); - } - }, - - /** - * @!method resolvePromise() - * Returns a 'thenable' promise. - * Resolves the provider chain by searching for the first set of - * credentials in {providers}. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function(credentials) - * Called if the promise is fulfilled and the provider resolves the chain - * to a credentials object - * @param credentials [AWS.Credentials] the credentials object resolved - * by the provider chain. - * @callback rejectedCallback function(error) - * Called if the promise is rejected. - * @param err [Error] the error object returned if no credentials are found. - * @return [Promise] A promise that represents the state of the `resolve` method call. - * @example Calling the `resolvePromise` method. - * var promise = chain.resolvePromise(); - * promise.then(function(credentials) { ... }, function(err) { ... }); - */ - - /** - * Resolves the provider chain by searching for the first set of - * credentials in {providers}. - * - * @callback callback function(err, credentials) - * Called when the provider resolves the chain to a credentials object - * or null if no credentials can be found. - * - * @param err [Error] the error object returned if no credentials are - * found. - * @param credentials [AWS.Credentials] the credentials object resolved - * by the provider chain. - * @return [AWS.CredentialProviderChain] the provider, for chaining. - */ - resolve: function resolve(callback) { - if (this.providers.length === 0) { - callback(new Error('No providers')); - return this; - } - - var index = 0; - var providers = this.providers.slice(0); - - function resolveNext(err, creds) { - if ((!err && creds) || index === providers.length) { - callback(err, creds); - return; - } - - var provider = providers[index++]; - if (typeof provider === 'function') { - creds = provider.call(); - } else { - creds = provider; - } - - if (creds.get) { - creds.get(function(getErr) { - resolveNext(getErr, getErr ? null : creds); - }); - } else { - resolveNext(null, creds); - } - } - - resolveNext(); - return this; - } - }); - - /** - * The default set of providers used by a vanilla CredentialProviderChain. - * - * In the browser: - * - * ```javascript - * AWS.CredentialProviderChain.defaultProviders = [] - * ``` - * - * In Node.js: - * - * ```javascript - * AWS.CredentialProviderChain.defaultProviders = [ - * function () { return new AWS.EnvironmentCredentials('AWS'); }, - * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, - * function () { return new AWS.SharedIniFileCredentials(); }, - * function () { - * // if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set - * return new AWS.ECSCredentials(); - * // else - * return new AWS.EC2MetadataCredentials(); - * } - * ] - * ``` - */ - AWS.CredentialProviderChain.defaultProviders = []; - - /** - * @api private - */ - AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); - }; - - /** - * @api private - */ - AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.resolvePromise; - }; - - AWS.util.addPromises(AWS.CredentialProviderChain); + var AWS = __webpack_require__(4); + + /** + * Creates a credential provider chain that searches for AWS credentials + * in a list of credential providers specified by the {providers} property. + * + * By default, the chain will use the {defaultProviders} to resolve credentials. + * These providers will look in the environment using the + * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes. + * + * ## Setting Providers + * + * Each provider in the {providers} list should be a function that returns + * a {AWS.Credentials} object, or a hardcoded credentials object. The function + * form allows for delayed execution of the credential construction. + * + * ## Resolving Credentials from a Chain + * + * Call {resolve} to return the first valid credential object that can be + * loaded by the provider chain. + * + * For example, to resolve a chain with a custom provider that checks a file + * on disk after the set of {defaultProviders}: + * + * ```javascript + * var diskProvider = new AWS.FileSystemCredentials('./creds.json'); + * var chain = new AWS.CredentialProviderChain(); + * chain.providers.push(diskProvider); + * chain.resolve(); + * ``` + * + * The above code will return the `diskProvider` object if the + * file contains credentials and the `defaultProviders` do not contain + * any credential settings. + * + * @!attribute providers + * @return [Array] + * a list of credentials objects or functions that return credentials + * objects. If the provider is a function, the function will be + * executed lazily when the provider needs to be checked for valid + * credentials. By default, this object will be set to the + * {defaultProviders}. + * @see defaultProviders + */ + AWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, { + + /** + * Creates a new CredentialProviderChain with a default set of providers + * specified by {defaultProviders}. + */ + constructor: function CredentialProviderChain(providers) { + if (providers) { + this.providers = providers; + } else { + this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0); + } + }, + + /** + * @!method resolvePromise() + * Returns a 'thenable' promise. + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(credentials) + * Called if the promise is fulfilled and the provider resolves the chain + * to a credentials object + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @callback rejectedCallback function(error) + * Called if the promise is rejected. + * @param err [Error] the error object returned if no credentials are found. + * @return [Promise] A promise that represents the state of the `resolve` method call. + * @example Calling the `resolvePromise` method. + * var promise = chain.resolvePromise(); + * promise.then(function(credentials) { ... }, function(err) { ... }); + */ + + /** + * Resolves the provider chain by searching for the first set of + * credentials in {providers}. + * + * @callback callback function(err, credentials) + * Called when the provider resolves the chain to a credentials object + * or null if no credentials can be found. + * + * @param err [Error] the error object returned if no credentials are + * found. + * @param credentials [AWS.Credentials] the credentials object resolved + * by the provider chain. + * @return [AWS.CredentialProviderChain] the provider, for chaining. + */ + resolve: function resolve(callback) { + if (this.providers.length === 0) { + callback(new Error('No providers')); + return this; + } + + var index = 0; + var providers = this.providers.slice(0); + + function resolveNext(err, creds) { + if ((!err && creds) || index === providers.length) { + callback(err, creds); + return; + } + + var provider = providers[index++]; + if (typeof provider === 'function') { + creds = provider.call(); + } else { + creds = provider; + } + + if (creds.get) { + creds.get(function(getErr) { + resolveNext(getErr, getErr ? null : creds); + }); + } else { + resolveNext(null, creds); + } + } + + resolveNext(); + return this; + } + }); + + /** + * The default set of providers used by a vanilla CredentialProviderChain. + * + * In the browser: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [] + * ``` + * + * In Node.js: + * + * ```javascript + * AWS.CredentialProviderChain.defaultProviders = [ + * function () { return new AWS.EnvironmentCredentials('AWS'); }, + * function () { return new AWS.EnvironmentCredentials('AMAZON'); }, + * function () { return new AWS.SharedIniFileCredentials(); }, + * function () { + * // if AWS_CONTAINER_CREDENTIALS_RELATIVE_URI is set + * return new AWS.ECSCredentials(); + * // else + * return new AWS.EC2MetadataCredentials(); + * } + * ] + * ``` + */ + AWS.CredentialProviderChain.defaultProviders = []; + + /** + * @api private + */ + AWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency); + }; + + /** + * @api private + */ + AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.resolvePromise; + }; + + AWS.util.addPromises(AWS.CredentialProviderChain); /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var STS = __webpack_require__(26); - - /** - * Represents temporary credentials retrieved from {AWS.STS}. Without any - * extra parameters, credentials will be fetched from the - * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the - * {AWS.STS.assumeRole} operation will be used to fetch credentials for the - * role instead. - * - * To setup temporary credentials, configure a set of master credentials - * using the standard credentials providers (environment, EC2 instance metadata, - * or from the filesystem), then set the global credentials to a new - * temporary credentials object: - * - * ```javascript - * // Note that environment credentials are loaded by default, - * // the following line is shown for clarity: - * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS'); - * - * // Now set temporary credentials seeded from the master credentials - * AWS.config.credentials = new AWS.TemporaryCredentials(); - * - * // subsequent requests will now use temporary credentials from AWS STS. - * new AWS.S3().listBucket(function(err, data) { ... }); - * ``` - * - * @!attribute masterCredentials - * @return [AWS.Credentials] the master (non-temporary) credentials used to - * get and refresh temporary credentials from AWS STS. - * @note (see constructor) - */ - AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { - /** - * Creates a new temporary credentials object. - * - * @note In order to create temporary credentials, you first need to have - * "master" credentials configured in {AWS.Config.credentials}. These - * master credentials are necessary to retrieve the temporary credentials, - * as well as refresh the credentials when they expire. - * @param params [map] a map of options that are passed to the - * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations. - * If a `RoleArn` parameter is passed in, credentials will be based on the - * IAM role. - * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials - * used to get and refresh temporary credentials from AWS STS. - * @example Creating a new credentials object for generic temporary credentials - * AWS.config.credentials = new AWS.TemporaryCredentials(); - * @example Creating a new credentials object for an IAM role - * AWS.config.credentials = new AWS.TemporaryCredentials({ - * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials', - * }); - * @see AWS.STS.assumeRole - * @see AWS.STS.getSessionToken - */ - constructor: function TemporaryCredentials(params, masterCredentials) { - AWS.Credentials.call(this); - this.loadMasterCredentials(masterCredentials); - this.expired = true; - - this.params = params || {}; - if (this.params.RoleArn) { - this.params.RoleSessionName = - this.params.RoleSessionName || 'temporary-credentials'; - } - }, - - /** - * Refreshes credentials using {AWS.STS.assumeRole} or - * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed - * to the credentials {constructor}. - * - * @callback callback function(err) - * Called when the STS service responds (or fails). When - * this callback is called with no error, it means that the credentials - * information has been loaded into the object (as the `accessKeyId`, - * `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @see get - */ - refresh: function refresh(callback) { - var self = this; - self.createClients(); - if (!callback) callback = function(err) { if (err) throw err; }; - - self.masterCredentials.get(function() { - self.service.config.credentials = self.masterCredentials; - var operation = self.params.RoleArn ? - self.service.assumeRole : self.service.getSessionToken; - operation.call(self.service, function (err, data) { - if (!err) { - self.service.credentialsFrom(data, self); - } - callback(err); - }); - }); - }, - - /** - * @api private - */ - loadMasterCredentials: function loadMasterCredentials(masterCredentials) { - this.masterCredentials = masterCredentials || AWS.config.credentials; - while (this.masterCredentials.masterCredentials) { - this.masterCredentials = this.masterCredentials.masterCredentials; - } - - if (typeof this.masterCredentials.get !== 'function') { - this.masterCredentials = new AWS.Credentials(this.masterCredentials); - } - }, - - /** - * @api private - */ - createClients: function() { - this.service = this.service || new STS({params: this.params}); - } - - }); + var AWS = __webpack_require__(4); + var STS = __webpack_require__(26); + + /** + * Represents temporary credentials retrieved from {AWS.STS}. Without any + * extra parameters, credentials will be fetched from the + * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the + * {AWS.STS.assumeRole} operation will be used to fetch credentials for the + * role instead. + * + * To setup temporary credentials, configure a set of master credentials + * using the standard credentials providers (environment, EC2 instance metadata, + * or from the filesystem), then set the global credentials to a new + * temporary credentials object: + * + * ```javascript + * // Note that environment credentials are loaded by default, + * // the following line is shown for clarity: + * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS'); + * + * // Now set temporary credentials seeded from the master credentials + * AWS.config.credentials = new AWS.TemporaryCredentials(); + * + * // subsequent requests will now use temporary credentials from AWS STS. + * new AWS.S3().listBucket(function(err, data) { ... }); + * ``` + * + * @!attribute masterCredentials + * @return [AWS.Credentials] the master (non-temporary) credentials used to + * get and refresh temporary credentials from AWS STS. + * @note (see constructor) + */ + AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new temporary credentials object. + * + * @note In order to create temporary credentials, you first need to have + * "master" credentials configured in {AWS.Config.credentials}. These + * master credentials are necessary to retrieve the temporary credentials, + * as well as refresh the credentials when they expire. + * @param params [map] a map of options that are passed to the + * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations. + * If a `RoleArn` parameter is passed in, credentials will be based on the + * IAM role. + * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials + * used to get and refresh temporary credentials from AWS STS. + * @example Creating a new credentials object for generic temporary credentials + * AWS.config.credentials = new AWS.TemporaryCredentials(); + * @example Creating a new credentials object for an IAM role + * AWS.config.credentials = new AWS.TemporaryCredentials({ + * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials', + * }); + * @see AWS.STS.assumeRole + * @see AWS.STS.getSessionToken + */ + constructor: function TemporaryCredentials(params, masterCredentials) { + AWS.Credentials.call(this); + this.loadMasterCredentials(masterCredentials); + this.expired = true; + + this.params = params || {}; + if (this.params.RoleArn) { + this.params.RoleSessionName = + this.params.RoleSessionName || 'temporary-credentials'; + } + }, + + /** + * Refreshes credentials using {AWS.STS.assumeRole} or + * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed + * to the credentials {constructor}. + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.masterCredentials.get(function() { + self.service.config.credentials = self.masterCredentials; + var operation = self.params.RoleArn ? + self.service.assumeRole : self.service.getSessionToken; + operation.call(self.service, function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }); + }, + + /** + * @api private + */ + loadMasterCredentials: function loadMasterCredentials(masterCredentials) { + this.masterCredentials = masterCredentials || AWS.config.credentials; + while (this.masterCredentials.masterCredentials) { + this.masterCredentials = this.masterCredentials.masterCredentials; + } + + if (typeof this.masterCredentials.get !== 'function') { + this.masterCredentials = new AWS.Credentials(this.masterCredentials); + } + }, + + /** + * @api private + */ + createClients: function() { + this.service = this.service || new STS({params: this.params}); + } + + }); /***/ }), /* 26 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['sts'] = {}; - AWS.STS = Service.defineService('sts', ['2011-06-15']); - __webpack_require__(27); - Object.defineProperty(apiLoader.services['sts'], '2011-06-15', { - get: function get() { - var model = __webpack_require__(28); - model.paginators = __webpack_require__(29).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.STS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['sts'] = {}; + AWS.STS = Service.defineService('sts', ['2011-06-15']); + __webpack_require__(27); + Object.defineProperty(apiLoader.services['sts'], '2011-06-15', { + get: function get() { + var model = __webpack_require__(28); + model.paginators = __webpack_require__(29).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.STS; /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.STS.prototype, { - /** - * @overload credentialsFrom(data, credentials = null) - * Creates a credentials object from STS response data containing - * credentials information. Useful for quickly setting AWS credentials. - * - * @note This is a low-level utility function. If you want to load temporary - * credentials into your process for subsequent requests to AWS resources, - * you should use {AWS.TemporaryCredentials} instead. - * @param data [map] data retrieved from a call to {getFederatedToken}, - * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}. - * @param credentials [AWS.Credentials] an optional credentials object to - * fill instead of creating a new object. Useful when modifying an - * existing credentials object from a refresh call. - * @return [AWS.TemporaryCredentials] the set of temporary credentials - * loaded from a raw STS operation response. - * @example Using credentialsFrom to load global AWS credentials - * var sts = new AWS.STS(); - * sts.getSessionToken(function (err, data) { - * if (err) console.log("Error getting credentials"); - * else { - * AWS.config.credentials = sts.credentialsFrom(data); - * } - * }); - * @see AWS.TemporaryCredentials - */ - credentialsFrom: function credentialsFrom(data, credentials) { - if (!data) return null; - if (!credentials) credentials = new AWS.TemporaryCredentials(); - credentials.expired = false; - credentials.accessKeyId = data.Credentials.AccessKeyId; - credentials.secretAccessKey = data.Credentials.SecretAccessKey; - credentials.sessionToken = data.Credentials.SessionToken; - credentials.expireTime = data.Credentials.Expiration; - return credentials; - }, - - assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) { - return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback); - }, - - assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) { - return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback); - } - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.STS.prototype, { + /** + * @overload credentialsFrom(data, credentials = null) + * Creates a credentials object from STS response data containing + * credentials information. Useful for quickly setting AWS credentials. + * + * @note This is a low-level utility function. If you want to load temporary + * credentials into your process for subsequent requests to AWS resources, + * you should use {AWS.TemporaryCredentials} instead. + * @param data [map] data retrieved from a call to {getFederatedToken}, + * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}. + * @param credentials [AWS.Credentials] an optional credentials object to + * fill instead of creating a new object. Useful when modifying an + * existing credentials object from a refresh call. + * @return [AWS.TemporaryCredentials] the set of temporary credentials + * loaded from a raw STS operation response. + * @example Using credentialsFrom to load global AWS credentials + * var sts = new AWS.STS(); + * sts.getSessionToken(function (err, data) { + * if (err) console.log("Error getting credentials"); + * else { + * AWS.config.credentials = sts.credentialsFrom(data); + * } + * }); + * @see AWS.TemporaryCredentials + */ + credentialsFrom: function credentialsFrom(data, credentials) { + if (!data) return null; + if (!credentials) credentials = new AWS.TemporaryCredentials(); + credentials.expired = false; + credentials.accessKeyId = data.Credentials.AccessKeyId; + credentials.secretAccessKey = data.Credentials.SecretAccessKey; + credentials.sessionToken = data.Credentials.SessionToken; + credentials.expireTime = data.Credentials.Expiration; + return credentials; + }, + + assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) { + return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback); + }, + + assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) { + return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback); + } + }); /***/ }), @@ -22288,545 +22290,545 @@ return /******/ (function(modules) { // webpackBootstrap /* 30 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var STS = __webpack_require__(26); - - /** - * Represents credentials retrieved from STS Web Identity Federation support. - * - * By default this provider gets credentials using the - * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation - * requires a `RoleArn` containing the ARN of the IAM trust policy for the - * application for which credentials will be given. In addition, the - * `WebIdentityToken` must be set to the token provided by the identity - * provider. See {constructor} for an example on creating a credentials - * object with proper `RoleArn` and `WebIdentityToken` values. - * - * ## Refreshing Credentials from Identity Service - * - * In addition to AWS credentials expiring after a given amount of time, the - * login token from the identity provider will also expire. Once this token - * expires, it will not be usable to refresh AWS credentials, and another - * token will be needed. The SDK does not manage refreshing of the token value, - * but this can be done through a "refresh token" supported by most identity - * providers. Consult the documentation for the identity provider for refreshing - * tokens. Once the refreshed token is acquired, you should make sure to update - * this new token in the credentials object's {params} property. The following - * code will update the WebIdentityToken, assuming you have retrieved an updated - * token from the identity provider: - * - * ```javascript - * AWS.config.credentials.params.WebIdentityToken = updatedToken; - * ``` - * - * Future calls to `credentials.refresh()` will now use the new token. - * - * @!attribute params - * @return [map] the map of params passed to - * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the - * `params.WebIdentityToken` property. - * @!attribute data - * @return [map] the raw data response from the call to - * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get - * access to other properties from the response. - */ - AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { - /** - * Creates a new credentials object. - * @param (see AWS.STS.assumeRoleWithWebIdentity) - * @example Creating a new credentials object - * AWS.config.credentials = new AWS.WebIdentityCredentials({ - * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity', - * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service - * RoleSessionName: 'web' // optional name, defaults to web-identity - * }, { - * // optionally provide configuration to apply to the underlying AWS.STS service client - * // if configuration is not provided, then configuration will be pulled from AWS.config - * - * // specify timeout options - * httpOptions: { - * timeout: 100 - * } - * }); - * @see AWS.STS.assumeRoleWithWebIdentity - * @see AWS.Config - */ - constructor: function WebIdentityCredentials(params, clientConfig) { - AWS.Credentials.call(this); - this.expired = true; - this.params = params; - this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; - this.data = null; - this._clientConfig = AWS.util.copy(clientConfig || {}); - }, - - /** - * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity} - * - * @callback callback function(err) - * Called when the STS service responds (or fails). When - * this callback is called with no error, it means that the credentials - * information has been loaded into the object (as the `accessKeyId`, - * `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @see get - */ - refresh: function refresh(callback) { - var self = this; - self.createClients(); - if (!callback) callback = function(err) { if (err) throw err; }; - - self.service.assumeRoleWithWebIdentity(function (err, data) { - self.data = null; - if (!err) { - self.data = data; - self.service.credentialsFrom(data, self); - } - callback(err); - }); - }, - - /** - * @api private - */ - createClients: function() { - if (!this.service) { - var stsConfig = AWS.util.merge({}, this._clientConfig); - stsConfig.params = this.params; - this.service = new STS(stsConfig); - } - } - - }); + var AWS = __webpack_require__(4); + var STS = __webpack_require__(26); + + /** + * Represents credentials retrieved from STS Web Identity Federation support. + * + * By default this provider gets credentials using the + * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation + * requires a `RoleArn` containing the ARN of the IAM trust policy for the + * application for which credentials will be given. In addition, the + * `WebIdentityToken` must be set to the token provided by the identity + * provider. See {constructor} for an example on creating a credentials + * object with proper `RoleArn` and `WebIdentityToken` values. + * + * ## Refreshing Credentials from Identity Service + * + * In addition to AWS credentials expiring after a given amount of time, the + * login token from the identity provider will also expire. Once this token + * expires, it will not be usable to refresh AWS credentials, and another + * token will be needed. The SDK does not manage refreshing of the token value, + * but this can be done through a "refresh token" supported by most identity + * providers. Consult the documentation for the identity provider for refreshing + * tokens. Once the refreshed token is acquired, you should make sure to update + * this new token in the credentials object's {params} property. The following + * code will update the WebIdentityToken, assuming you have retrieved an updated + * token from the identity provider: + * + * ```javascript + * AWS.config.credentials.params.WebIdentityToken = updatedToken; + * ``` + * + * Future calls to `credentials.refresh()` will now use the new token. + * + * @!attribute params + * @return [map] the map of params passed to + * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the + * `params.WebIdentityToken` property. + * @!attribute data + * @return [map] the raw data response from the call to + * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get + * access to other properties from the response. + */ + AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new credentials object. + * @param (see AWS.STS.assumeRoleWithWebIdentity) + * @example Creating a new credentials object + * AWS.config.credentials = new AWS.WebIdentityCredentials({ + * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity', + * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service + * RoleSessionName: 'web' // optional name, defaults to web-identity + * }, { + * // optionally provide configuration to apply to the underlying AWS.STS service client + * // if configuration is not provided, then configuration will be pulled from AWS.config + * + * // specify timeout options + * httpOptions: { + * timeout: 100 + * } + * }); + * @see AWS.STS.assumeRoleWithWebIdentity + * @see AWS.Config + */ + constructor: function WebIdentityCredentials(params, clientConfig) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity'; + this.data = null; + this._clientConfig = AWS.util.copy(clientConfig || {}); + }, + + /** + * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity} + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithWebIdentity(function (err, data) { + self.data = null; + if (!err) { + self.data = data; + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + /** + * @api private + */ + createClients: function() { + if (!this.service) { + var stsConfig = AWS.util.merge({}, this._clientConfig); + stsConfig.params = this.params; + this.service = new STS(stsConfig); + } + } + + }); /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var CognitoIdentity = __webpack_require__(32); - var STS = __webpack_require__(26); - - /** - * Represents credentials retrieved from STS Web Identity Federation using - * the Amazon Cognito Identity service. - * - * By default this provider gets credentials using the - * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which - * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito - * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to - * obtain an `IdentityId`. If the identity or identity pool is not configured in - * the Amazon Cognito Console to use IAM roles with the appropriate permissions, - * then additionally a `RoleArn` is required containing the ARN of the IAM trust - * policy for the Amazon Cognito role that the user will log into. If a `RoleArn` - * is provided, then this provider gets credentials using the - * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an - * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}. - * - * In addition, if this credential provider is used to provide authenticated - * login, the `Logins` map may be set to the tokens provided by the respective - * identity providers. See {constructor} for an example on creating a credentials - * object with proper property values. - * - * ## Refreshing Credentials from Identity Service - * - * In addition to AWS credentials expiring after a given amount of time, the - * login token from the identity provider will also expire. Once this token - * expires, it will not be usable to refresh AWS credentials, and another - * token will be needed. The SDK does not manage refreshing of the token value, - * but this can be done through a "refresh token" supported by most identity - * providers. Consult the documentation for the identity provider for refreshing - * tokens. Once the refreshed token is acquired, you should make sure to update - * this new token in the credentials object's {params} property. The following - * code will update the WebIdentityToken, assuming you have retrieved an updated - * token from the identity provider: - * - * ```javascript - * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken; - * ``` - * - * Future calls to `credentials.refresh()` will now use the new token. - * - * @!attribute params - * @return [map] the map of params passed to - * {AWS.CognitoIdentity.getId}, - * {AWS.CognitoIdentity.getOpenIdToken}, and - * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the - * `params.WebIdentityToken` property. - * @!attribute data - * @return [map] the raw data response from the call to - * {AWS.CognitoIdentity.getCredentialsForIdentity}, or - * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get - * access to other properties from the response. - * @!attribute identityId - * @return [String] the Cognito ID returned by the last call to - * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual - * final resolved identity ID from Amazon Cognito. - */ - AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { - /** - * @api private - */ - localStorageKey: { - id: 'aws.cognito.identity-id.', - providers: 'aws.cognito.identity-providers.' - }, - - /** - * Creates a new credentials object. - * @example Creating a new credentials object - * AWS.config.credentials = new AWS.CognitoIdentityCredentials({ - * - * // either IdentityPoolId or IdentityId is required - * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below) - * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity - * // or AWS.CognitoIdentity.getOpenIdToken (linked below) - * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030', - * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f' - * - * // optional, only necessary when the identity pool is not configured - * // to use IAM roles in the Amazon Cognito Console - * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below) - * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity', - * - * // optional tokens, used for authenticated login - * // See the Logins param for AWS.CognitoIdentity.getID (linked below) - * Logins: { - * 'graph.facebook.com': 'FBTOKEN', - * 'www.amazon.com': 'AMAZONTOKEN', - * 'accounts.google.com': 'GOOGLETOKEN', - * 'api.twitter.com': 'TWITTERTOKEN', - * 'www.digits.com': 'DIGITSTOKEN' - * }, - * - * // optional name, defaults to web-identity - * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below) - * RoleSessionName: 'web', - * - * // optional, only necessary when application runs in a browser - * // and multiple users are signed in at once, used for caching - * LoginId: 'example@gmail.com' - * - * }, { - * // optionally provide configuration to apply to the underlying service clients - * // if configuration is not provided, then configuration will be pulled from AWS.config - * - * // region should match the region your identity pool is located in - * region: 'us-east-1', - * - * // specify timeout options - * httpOptions: { - * timeout: 100 - * } - * }); - * @see AWS.CognitoIdentity.getId - * @see AWS.CognitoIdentity.getCredentialsForIdentity - * @see AWS.STS.assumeRoleWithWebIdentity - * @see AWS.CognitoIdentity.getOpenIdToken - * @see AWS.Config - * @note If a region is not provided in the global AWS.config, or - * specified in the `clientConfig` to the CognitoIdentityCredentials - * constructor, you may encounter a 'Missing credentials in config' error - * when calling making a service call. - */ - constructor: function CognitoIdentityCredentials(params, clientConfig) { - AWS.Credentials.call(this); - this.expired = true; - this.params = params; - this.data = null; - this._identityId = null; - this._clientConfig = AWS.util.copy(clientConfig || {}); - this.loadCachedId(); - var self = this; - Object.defineProperty(this, 'identityId', { - get: function() { - self.loadCachedId(); - return self._identityId || self.params.IdentityId; - }, - set: function(identityId) { - self._identityId = identityId; - } - }); - }, - - /** - * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity}, - * or {AWS.STS.assumeRoleWithWebIdentity}. - * - * @callback callback function(err) - * Called when the STS service responds (or fails). When - * this callback is called with no error, it means that the credentials - * information has been loaded into the object (as the `accessKeyId`, - * `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @see AWS.Credentials.get - */ - refresh: function refresh(callback) { - var self = this; - self.createClients(); - self.data = null; - self._identityId = null; - self.getId(function(err) { - if (!err) { - if (!self.params.RoleArn) { - self.getCredentialsForIdentity(callback); - } else { - self.getCredentialsFromSTS(callback); - } - } else { - self.clearIdOnNotAuthorized(err); - callback(err); - } - }); - }, - - /** - * Clears the cached Cognito ID associated with the currently configured - * identity pool ID. Use this to manually invalidate your cache if - * the identity pool ID was deleted. - */ - clearCachedId: function clearCache() { - this._identityId = null; - delete this.params.IdentityId; - - var poolId = this.params.IdentityPoolId; - var loginId = this.params.LoginId || ''; - delete this.storage[this.localStorageKey.id + poolId + loginId]; - delete this.storage[this.localStorageKey.providers + poolId + loginId]; - }, - - /** - * @api private - */ - clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) { - var self = this; - if (err.code == 'NotAuthorizedException') { - self.clearCachedId(); - } - }, - - /** - * Retrieves a Cognito ID, loading from cache if it was already retrieved - * on this device. - * - * @callback callback function(err, identityId) - * @param err [Error, null] an error object if the call failed or null if - * it succeeded. - * @param identityId [String, null] if successful, the callback will return - * the Cognito ID. - * @note If not loaded explicitly, the Cognito ID is loaded and stored in - * localStorage in the browser environment of a device. - * @api private - */ - getId: function getId(callback) { - var self = this; - if (typeof self.params.IdentityId === 'string') { - return callback(null, self.params.IdentityId); - } - - self.cognito.getId(function(err, data) { - if (!err && data.IdentityId) { - self.params.IdentityId = data.IdentityId; - callback(null, data.IdentityId); - } else { - callback(err); - } - }); - }, - - - /** - * @api private - */ - loadCredentials: function loadCredentials(data, credentials) { - if (!data || !credentials) return; - credentials.expired = false; - credentials.accessKeyId = data.Credentials.AccessKeyId; - credentials.secretAccessKey = data.Credentials.SecretKey; - credentials.sessionToken = data.Credentials.SessionToken; - credentials.expireTime = data.Credentials.Expiration; - }, - - /** - * @api private - */ - getCredentialsForIdentity: function getCredentialsForIdentity(callback) { - var self = this; - self.cognito.getCredentialsForIdentity(function(err, data) { - if (!err) { - self.cacheId(data); - self.data = data; - self.loadCredentials(self.data, self); - } else { - self.clearIdOnNotAuthorized(err); - } - callback(err); - }); - }, - - /** - * @api private - */ - getCredentialsFromSTS: function getCredentialsFromSTS(callback) { - var self = this; - self.cognito.getOpenIdToken(function(err, data) { - if (!err) { - self.cacheId(data); - self.params.WebIdentityToken = data.Token; - self.webIdentityCredentials.refresh(function(webErr) { - if (!webErr) { - self.data = self.webIdentityCredentials.data; - self.sts.credentialsFrom(self.data, self); - } - callback(webErr); - }); - } else { - self.clearIdOnNotAuthorized(err); - callback(err); - } - }); - }, - - /** - * @api private - */ - loadCachedId: function loadCachedId() { - var self = this; - - // in the browser we source default IdentityId from localStorage - if (AWS.util.isBrowser() && !self.params.IdentityId) { - var id = self.getStorage('id'); - if (id && self.params.Logins) { - var actualProviders = Object.keys(self.params.Logins); - var cachedProviders = - (self.getStorage('providers') || '').split(','); - - // only load ID if at least one provider used this ID before - var intersect = cachedProviders.filter(function(n) { - return actualProviders.indexOf(n) !== -1; - }); - if (intersect.length !== 0) { - self.params.IdentityId = id; - } - } else if (id) { - self.params.IdentityId = id; - } - } - }, - - /** - * @api private - */ - createClients: function() { - var clientConfig = this._clientConfig; - this.webIdentityCredentials = this.webIdentityCredentials || - new AWS.WebIdentityCredentials(this.params, clientConfig); - if (!this.cognito) { - var cognitoConfig = AWS.util.merge({}, clientConfig); - cognitoConfig.params = this.params; - this.cognito = new CognitoIdentity(cognitoConfig); - } - this.sts = this.sts || new STS(clientConfig); - }, - - /** - * @api private - */ - cacheId: function cacheId(data) { - this._identityId = data.IdentityId; - this.params.IdentityId = this._identityId; - - // cache this IdentityId in browser localStorage if possible - if (AWS.util.isBrowser()) { - this.setStorage('id', data.IdentityId); - - if (this.params.Logins) { - this.setStorage('providers', Object.keys(this.params.Logins).join(',')); - } - } - }, - - /** - * @api private - */ - getStorage: function getStorage(key) { - return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')]; - }, - - /** - * @api private - */ - setStorage: function setStorage(key, val) { - try { - this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val; - } catch (_) {} - }, - - /** - * @api private - */ - storage: (function() { - try { - var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ? - window.localStorage : {}; - - // Test set/remove which would throw an error in Safari's private browsing - storage['aws.test-storage'] = 'foobar'; - delete storage['aws.test-storage']; - - return storage; - } catch (_) { - return {}; - } - })() - }); + var AWS = __webpack_require__(4); + var CognitoIdentity = __webpack_require__(32); + var STS = __webpack_require__(26); + + /** + * Represents credentials retrieved from STS Web Identity Federation using + * the Amazon Cognito Identity service. + * + * By default this provider gets credentials using the + * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which + * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito + * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to + * obtain an `IdentityId`. If the identity or identity pool is not configured in + * the Amazon Cognito Console to use IAM roles with the appropriate permissions, + * then additionally a `RoleArn` is required containing the ARN of the IAM trust + * policy for the Amazon Cognito role that the user will log into. If a `RoleArn` + * is provided, then this provider gets credentials using the + * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an + * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}. + * + * In addition, if this credential provider is used to provide authenticated + * login, the `Logins` map may be set to the tokens provided by the respective + * identity providers. See {constructor} for an example on creating a credentials + * object with proper property values. + * + * ## Refreshing Credentials from Identity Service + * + * In addition to AWS credentials expiring after a given amount of time, the + * login token from the identity provider will also expire. Once this token + * expires, it will not be usable to refresh AWS credentials, and another + * token will be needed. The SDK does not manage refreshing of the token value, + * but this can be done through a "refresh token" supported by most identity + * providers. Consult the documentation for the identity provider for refreshing + * tokens. Once the refreshed token is acquired, you should make sure to update + * this new token in the credentials object's {params} property. The following + * code will update the WebIdentityToken, assuming you have retrieved an updated + * token from the identity provider: + * + * ```javascript + * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken; + * ``` + * + * Future calls to `credentials.refresh()` will now use the new token. + * + * @!attribute params + * @return [map] the map of params passed to + * {AWS.CognitoIdentity.getId}, + * {AWS.CognitoIdentity.getOpenIdToken}, and + * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the + * `params.WebIdentityToken` property. + * @!attribute data + * @return [map] the raw data response from the call to + * {AWS.CognitoIdentity.getCredentialsForIdentity}, or + * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get + * access to other properties from the response. + * @!attribute identityId + * @return [String] the Cognito ID returned by the last call to + * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual + * final resolved identity ID from Amazon Cognito. + */ + AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * @api private + */ + localStorageKey: { + id: 'aws.cognito.identity-id.', + providers: 'aws.cognito.identity-providers.' + }, + + /** + * Creates a new credentials object. + * @example Creating a new credentials object + * AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + * + * // either IdentityPoolId or IdentityId is required + * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below) + * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity + * // or AWS.CognitoIdentity.getOpenIdToken (linked below) + * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030', + * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f' + * + * // optional, only necessary when the identity pool is not configured + * // to use IAM roles in the Amazon Cognito Console + * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below) + * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity', + * + * // optional tokens, used for authenticated login + * // See the Logins param for AWS.CognitoIdentity.getID (linked below) + * Logins: { + * 'graph.facebook.com': 'FBTOKEN', + * 'www.amazon.com': 'AMAZONTOKEN', + * 'accounts.google.com': 'GOOGLETOKEN', + * 'api.twitter.com': 'TWITTERTOKEN', + * 'www.digits.com': 'DIGITSTOKEN' + * }, + * + * // optional name, defaults to web-identity + * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below) + * RoleSessionName: 'web', + * + * // optional, only necessary when application runs in a browser + * // and multiple users are signed in at once, used for caching + * LoginId: 'example@gmail.com' + * + * }, { + * // optionally provide configuration to apply to the underlying service clients + * // if configuration is not provided, then configuration will be pulled from AWS.config + * + * // region should match the region your identity pool is located in + * region: 'us-east-1', + * + * // specify timeout options + * httpOptions: { + * timeout: 100 + * } + * }); + * @see AWS.CognitoIdentity.getId + * @see AWS.CognitoIdentity.getCredentialsForIdentity + * @see AWS.STS.assumeRoleWithWebIdentity + * @see AWS.CognitoIdentity.getOpenIdToken + * @see AWS.Config + * @note If a region is not provided in the global AWS.config, or + * specified in the `clientConfig` to the CognitoIdentityCredentials + * constructor, you may encounter a 'Missing credentials in config' error + * when calling making a service call. + */ + constructor: function CognitoIdentityCredentials(params, clientConfig) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + this.data = null; + this._identityId = null; + this._clientConfig = AWS.util.copy(clientConfig || {}); + this.loadCachedId(); + var self = this; + Object.defineProperty(this, 'identityId', { + get: function() { + self.loadCachedId(); + return self._identityId || self.params.IdentityId; + }, + set: function(identityId) { + self._identityId = identityId; + } + }); + }, + + /** + * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity}, + * or {AWS.STS.assumeRoleWithWebIdentity}. + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see AWS.Credentials.get + */ + refresh: function refresh(callback) { + var self = this; + self.createClients(); + self.data = null; + self._identityId = null; + self.getId(function(err) { + if (!err) { + if (!self.params.RoleArn) { + self.getCredentialsForIdentity(callback); + } else { + self.getCredentialsFromSTS(callback); + } + } else { + self.clearIdOnNotAuthorized(err); + callback(err); + } + }); + }, + + /** + * Clears the cached Cognito ID associated with the currently configured + * identity pool ID. Use this to manually invalidate your cache if + * the identity pool ID was deleted. + */ + clearCachedId: function clearCache() { + this._identityId = null; + delete this.params.IdentityId; + + var poolId = this.params.IdentityPoolId; + var loginId = this.params.LoginId || ''; + delete this.storage[this.localStorageKey.id + poolId + loginId]; + delete this.storage[this.localStorageKey.providers + poolId + loginId]; + }, + + /** + * @api private + */ + clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) { + var self = this; + if (err.code == 'NotAuthorizedException') { + self.clearCachedId(); + } + }, + + /** + * Retrieves a Cognito ID, loading from cache if it was already retrieved + * on this device. + * + * @callback callback function(err, identityId) + * @param err [Error, null] an error object if the call failed or null if + * it succeeded. + * @param identityId [String, null] if successful, the callback will return + * the Cognito ID. + * @note If not loaded explicitly, the Cognito ID is loaded and stored in + * localStorage in the browser environment of a device. + * @api private + */ + getId: function getId(callback) { + var self = this; + if (typeof self.params.IdentityId === 'string') { + return callback(null, self.params.IdentityId); + } + + self.cognito.getId(function(err, data) { + if (!err && data.IdentityId) { + self.params.IdentityId = data.IdentityId; + callback(null, data.IdentityId); + } else { + callback(err); + } + }); + }, + + + /** + * @api private + */ + loadCredentials: function loadCredentials(data, credentials) { + if (!data || !credentials) return; + credentials.expired = false; + credentials.accessKeyId = data.Credentials.AccessKeyId; + credentials.secretAccessKey = data.Credentials.SecretKey; + credentials.sessionToken = data.Credentials.SessionToken; + credentials.expireTime = data.Credentials.Expiration; + }, + + /** + * @api private + */ + getCredentialsForIdentity: function getCredentialsForIdentity(callback) { + var self = this; + self.cognito.getCredentialsForIdentity(function(err, data) { + if (!err) { + self.cacheId(data); + self.data = data; + self.loadCredentials(self.data, self); + } else { + self.clearIdOnNotAuthorized(err); + } + callback(err); + }); + }, + + /** + * @api private + */ + getCredentialsFromSTS: function getCredentialsFromSTS(callback) { + var self = this; + self.cognito.getOpenIdToken(function(err, data) { + if (!err) { + self.cacheId(data); + self.params.WebIdentityToken = data.Token; + self.webIdentityCredentials.refresh(function(webErr) { + if (!webErr) { + self.data = self.webIdentityCredentials.data; + self.sts.credentialsFrom(self.data, self); + } + callback(webErr); + }); + } else { + self.clearIdOnNotAuthorized(err); + callback(err); + } + }); + }, + + /** + * @api private + */ + loadCachedId: function loadCachedId() { + var self = this; + + // in the browser we source default IdentityId from localStorage + if (AWS.util.isBrowser() && !self.params.IdentityId) { + var id = self.getStorage('id'); + if (id && self.params.Logins) { + var actualProviders = Object.keys(self.params.Logins); + var cachedProviders = + (self.getStorage('providers') || '').split(','); + + // only load ID if at least one provider used this ID before + var intersect = cachedProviders.filter(function(n) { + return actualProviders.indexOf(n) !== -1; + }); + if (intersect.length !== 0) { + self.params.IdentityId = id; + } + } else if (id) { + self.params.IdentityId = id; + } + } + }, + + /** + * @api private + */ + createClients: function() { + var clientConfig = this._clientConfig; + this.webIdentityCredentials = this.webIdentityCredentials || + new AWS.WebIdentityCredentials(this.params, clientConfig); + if (!this.cognito) { + var cognitoConfig = AWS.util.merge({}, clientConfig); + cognitoConfig.params = this.params; + this.cognito = new CognitoIdentity(cognitoConfig); + } + this.sts = this.sts || new STS(clientConfig); + }, + + /** + * @api private + */ + cacheId: function cacheId(data) { + this._identityId = data.IdentityId; + this.params.IdentityId = this._identityId; + + // cache this IdentityId in browser localStorage if possible + if (AWS.util.isBrowser()) { + this.setStorage('id', data.IdentityId); + + if (this.params.Logins) { + this.setStorage('providers', Object.keys(this.params.Logins).join(',')); + } + } + }, + + /** + * @api private + */ + getStorage: function getStorage(key) { + return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')]; + }, + + /** + * @api private + */ + setStorage: function setStorage(key, val) { + try { + this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val; + } catch (_) {} + }, + + /** + * @api private + */ + storage: (function() { + try { + var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ? + window.localStorage : {}; + + // Test set/remove which would throw an error in Safari's private browsing + storage['aws.test-storage'] = 'foobar'; + delete storage['aws.test-storage']; + + return storage; + } catch (_) { + return {}; + } + })() + }); /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cognitoidentity'] = {}; - AWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']); - __webpack_require__(33); - Object.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', { - get: function get() { - var model = __webpack_require__(34); - model.paginators = __webpack_require__(35).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CognitoIdentity; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cognitoidentity'] = {}; + AWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']); + __webpack_require__(33); + Object.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', { + get: function get() { + var model = __webpack_require__(34); + model.paginators = __webpack_require__(35).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CognitoIdentity; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.CognitoIdentity.prototype, { - getOpenIdToken: function getOpenIdToken(params, callback) { - return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); - }, - - getId: function getId(params, callback) { - return this.makeUnauthenticatedRequest('getId', params, callback); - }, - - getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { - return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); - } - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.CognitoIdentity.prototype, { + getOpenIdToken: function getOpenIdToken(params, callback) { + return this.makeUnauthenticatedRequest('getOpenIdToken', params, callback); + }, + + getId: function getId(params, callback) { + return this.makeUnauthenticatedRequest('getId', params, callback); + }, + + getCredentialsForIdentity: function getCredentialsForIdentity(params, callback) { + return this.makeUnauthenticatedRequest('getCredentialsForIdentity', params, callback); + } + }); /***/ }), @@ -22845,261 +22847,261 @@ return /******/ (function(modules) { // webpackBootstrap /* 36 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var STS = __webpack_require__(26); - - /** - * Represents credentials retrieved from STS SAML support. - * - * By default this provider gets credentials using the - * {AWS.STS.assumeRoleWithSAML} service operation. This operation - * requires a `RoleArn` containing the ARN of the IAM trust policy for the - * application for which credentials will be given, as well as a `PrincipalArn` - * representing the ARN for the SAML identity provider. In addition, the - * `SAMLAssertion` must be set to the token provided by the identity - * provider. See {constructor} for an example on creating a credentials - * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values. - * - * ## Refreshing Credentials from Identity Service - * - * In addition to AWS credentials expiring after a given amount of time, the - * login token from the identity provider will also expire. Once this token - * expires, it will not be usable to refresh AWS credentials, and another - * token will be needed. The SDK does not manage refreshing of the token value, - * but this can be done through a "refresh token" supported by most identity - * providers. Consult the documentation for the identity provider for refreshing - * tokens. Once the refreshed token is acquired, you should make sure to update - * this new token in the credentials object's {params} property. The following - * code will update the SAMLAssertion, assuming you have retrieved an updated - * token from the identity provider: - * - * ```javascript - * AWS.config.credentials.params.SAMLAssertion = updatedToken; - * ``` - * - * Future calls to `credentials.refresh()` will now use the new token. - * - * @!attribute params - * @return [map] the map of params passed to - * {AWS.STS.assumeRoleWithSAML}. To update the token, set the - * `params.SAMLAssertion` property. - */ - AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { - /** - * Creates a new credentials object. - * @param (see AWS.STS.assumeRoleWithSAML) - * @example Creating a new credentials object - * AWS.config.credentials = new AWS.SAMLCredentials({ - * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole', - * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal', - * SAMLAssertion: 'base64-token', // base64-encoded token from IdP - * }); - * @see AWS.STS.assumeRoleWithSAML - */ - constructor: function SAMLCredentials(params) { - AWS.Credentials.call(this); - this.expired = true; - this.params = params; - }, - - /** - * Refreshes credentials using {AWS.STS.assumeRoleWithSAML} - * - * @callback callback function(err) - * Called when the STS service responds (or fails). When - * this callback is called with no error, it means that the credentials - * information has been loaded into the object (as the `accessKeyId`, - * `secretAccessKey`, and `sessionToken` properties). - * @param err [Error] if an error occurred, this value will be filled - * @see get - */ - refresh: function refresh(callback) { - var self = this; - self.createClients(); - if (!callback) callback = function(err) { if (err) throw err; }; - - self.service.assumeRoleWithSAML(function (err, data) { - if (!err) { - self.service.credentialsFrom(data, self); - } - callback(err); - }); - }, - - /** - * @api private - */ - createClients: function() { - this.service = this.service || new STS({params: this.params}); - } - - }); + var AWS = __webpack_require__(4); + var STS = __webpack_require__(26); + + /** + * Represents credentials retrieved from STS SAML support. + * + * By default this provider gets credentials using the + * {AWS.STS.assumeRoleWithSAML} service operation. This operation + * requires a `RoleArn` containing the ARN of the IAM trust policy for the + * application for which credentials will be given, as well as a `PrincipalArn` + * representing the ARN for the SAML identity provider. In addition, the + * `SAMLAssertion` must be set to the token provided by the identity + * provider. See {constructor} for an example on creating a credentials + * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values. + * + * ## Refreshing Credentials from Identity Service + * + * In addition to AWS credentials expiring after a given amount of time, the + * login token from the identity provider will also expire. Once this token + * expires, it will not be usable to refresh AWS credentials, and another + * token will be needed. The SDK does not manage refreshing of the token value, + * but this can be done through a "refresh token" supported by most identity + * providers. Consult the documentation for the identity provider for refreshing + * tokens. Once the refreshed token is acquired, you should make sure to update + * this new token in the credentials object's {params} property. The following + * code will update the SAMLAssertion, assuming you have retrieved an updated + * token from the identity provider: + * + * ```javascript + * AWS.config.credentials.params.SAMLAssertion = updatedToken; + * ``` + * + * Future calls to `credentials.refresh()` will now use the new token. + * + * @!attribute params + * @return [map] the map of params passed to + * {AWS.STS.assumeRoleWithSAML}. To update the token, set the + * `params.SAMLAssertion` property. + */ + AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { + /** + * Creates a new credentials object. + * @param (see AWS.STS.assumeRoleWithSAML) + * @example Creating a new credentials object + * AWS.config.credentials = new AWS.SAMLCredentials({ + * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole', + * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal', + * SAMLAssertion: 'base64-token', // base64-encoded token from IdP + * }); + * @see AWS.STS.assumeRoleWithSAML + */ + constructor: function SAMLCredentials(params) { + AWS.Credentials.call(this); + this.expired = true; + this.params = params; + }, + + /** + * Refreshes credentials using {AWS.STS.assumeRoleWithSAML} + * + * @callback callback function(err) + * Called when the STS service responds (or fails). When + * this callback is called with no error, it means that the credentials + * information has been loaded into the object (as the `accessKeyId`, + * `secretAccessKey`, and `sessionToken` properties). + * @param err [Error] if an error occurred, this value will be filled + * @see get + */ + refresh: function refresh(callback) { + var self = this; + self.createClients(); + if (!callback) callback = function(err) { if (err) throw err; }; + + self.service.assumeRoleWithSAML(function (err, data) { + if (!err) { + self.service.credentialsFrom(data, self); + } + callback(err); + }); + }, + + /** + * @api private + */ + createClients: function() { + this.service = this.service || new STS({params: this.params}); + } + + }); /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var util = AWS.util; - var Shape = AWS.Model.Shape; - - var xml2js = __webpack_require__(38); - - /** - * @api private - */ - var options = { // options passed to xml2js parser - explicitCharkey: false, // undocumented - trim: false, // trim the leading/trailing whitespace from text nodes - normalize: false, // trim interior whitespace inside text nodes - explicitRoot: false, // return the root node in the resulting object? - emptyTag: null, // the default value for empty nodes - explicitArray: true, // always put child nodes in an array - ignoreAttrs: false, // ignore attributes, only create text nodes - mergeAttrs: false, // merge attributes and child elements - validator: null // a callable validator - }; - - function NodeXmlParser() { } - - NodeXmlParser.prototype.parse = function(xml, shape) { - shape = shape || {}; - - var result = null; - var error = null; - - var parser = new xml2js.Parser(options); - parser.parseString(xml, function (e, r) { - error = e; - result = r; - }); - - if (result) { - var data = parseXml(result, shape); - if (result.ResponseMetadata) { - data.ResponseMetadata = parseXml(result.ResponseMetadata[0], {}); - } - return data; - } else if (error) { - throw util.error(error, {code: 'XMLParserError', retryable: true}); - } else { // empty xml document - return parseXml({}, shape); - } - }; - - function parseXml(xml, shape) { - switch (shape.type) { - case 'structure': return parseStructure(xml, shape); - case 'map': return parseMap(xml, shape); - case 'list': return parseList(xml, shape); - case undefined: case null: return parseUnknown(xml); - default: return parseScalar(xml, shape); - } - } - - function parseStructure(xml, shape) { - var data = {}; - if (xml === null) return data; - - util.each(shape.members, function(memberName, memberShape) { - var xmlName = memberShape.name; - if (Object.prototype.hasOwnProperty.call(xml, xmlName) && Array.isArray(xml[xmlName])) { - var xmlChild = xml[xmlName]; - if (!memberShape.flattened) xmlChild = xmlChild[0]; - - data[memberName] = parseXml(xmlChild, memberShape); - } else if (memberShape.isXmlAttribute && - xml.$ && Object.prototype.hasOwnProperty.call(xml.$, xmlName)) { - data[memberName] = parseScalar(xml.$[xmlName], memberShape); - } else if (memberShape.type === 'list') { - data[memberName] = memberShape.defaultValue; - } - }); - - return data; - } - - function parseMap(xml, shape) { - var data = {}; - if (xml === null) return data; - - var xmlKey = shape.key.name || 'key'; - var xmlValue = shape.value.name || 'value'; - var iterable = shape.flattened ? xml : xml.entry; - - if (Array.isArray(iterable)) { - util.arrayEach(iterable, function(child) { - data[child[xmlKey][0]] = parseXml(child[xmlValue][0], shape.value); - }); - } - - return data; - } - - function parseList(xml, shape) { - var data = []; - var name = shape.member.name || 'member'; - if (shape.flattened) { - util.arrayEach(xml, function(xmlChild) { - data.push(parseXml(xmlChild, shape.member)); - }); - } else if (xml && Array.isArray(xml[name])) { - util.arrayEach(xml[name], function(child) { - data.push(parseXml(child, shape.member)); - }); - } - - return data; - } - - function parseScalar(text, shape) { - if (text && text.$ && text.$.encoding === 'base64') { - shape = new Shape.create({type: text.$.encoding}); - } - if (text && text._) text = text._; - - if (typeof shape.toType === 'function') { - return shape.toType(text); - } else { - return text; - } - } - - function parseUnknown(xml) { - if (xml === undefined || xml === null) return ''; - if (typeof xml === 'string') return xml; - - // parse a list - if (Array.isArray(xml)) { - var arr = []; - for (i = 0; i < xml.length; i++) { - arr.push(parseXml(xml[i], {})); - } - return arr; - } - - // empty object - var keys = Object.keys(xml), i; - if (keys.length === 0 || keys === ['$']) { - return {}; - } - - // object, parse as structure - var data = {}; - for (i = 0; i < keys.length; i++) { - var key = keys[i], value = xml[key]; - if (key === '$') continue; - if (value.length > 1) { // this member is a list - data[key] = parseList(value, {member: {}}); - } else { // this member is a single item - data[key] = parseXml(value[0], {}); - } - } - return data; - } - - module.exports = NodeXmlParser; + var AWS = __webpack_require__(4); + var util = AWS.util; + var Shape = AWS.Model.Shape; + + var xml2js = __webpack_require__(38); + + /** + * @api private + */ + var options = { // options passed to xml2js parser + explicitCharkey: false, // undocumented + trim: false, // trim the leading/trailing whitespace from text nodes + normalize: false, // trim interior whitespace inside text nodes + explicitRoot: false, // return the root node in the resulting object? + emptyTag: null, // the default value for empty nodes + explicitArray: true, // always put child nodes in an array + ignoreAttrs: false, // ignore attributes, only create text nodes + mergeAttrs: false, // merge attributes and child elements + validator: null // a callable validator + }; + + function NodeXmlParser() { } + + NodeXmlParser.prototype.parse = function(xml, shape) { + shape = shape || {}; + + var result = null; + var error = null; + + var parser = new xml2js.Parser(options); + parser.parseString(xml, function (e, r) { + error = e; + result = r; + }); + + if (result) { + var data = parseXml(result, shape); + if (result.ResponseMetadata) { + data.ResponseMetadata = parseXml(result.ResponseMetadata[0], {}); + } + return data; + } else if (error) { + throw util.error(error, {code: 'XMLParserError', retryable: true}); + } else { // empty xml document + return parseXml({}, shape); + } + }; + + function parseXml(xml, shape) { + switch (shape.type) { + case 'structure': return parseStructure(xml, shape); + case 'map': return parseMap(xml, shape); + case 'list': return parseList(xml, shape); + case undefined: case null: return parseUnknown(xml); + default: return parseScalar(xml, shape); + } + } + + function parseStructure(xml, shape) { + var data = {}; + if (xml === null) return data; + + util.each(shape.members, function(memberName, memberShape) { + var xmlName = memberShape.name; + if (Object.prototype.hasOwnProperty.call(xml, xmlName) && Array.isArray(xml[xmlName])) { + var xmlChild = xml[xmlName]; + if (!memberShape.flattened) xmlChild = xmlChild[0]; + + data[memberName] = parseXml(xmlChild, memberShape); + } else if (memberShape.isXmlAttribute && + xml.$ && Object.prototype.hasOwnProperty.call(xml.$, xmlName)) { + data[memberName] = parseScalar(xml.$[xmlName], memberShape); + } else if (memberShape.type === 'list') { + data[memberName] = memberShape.defaultValue; + } + }); + + return data; + } + + function parseMap(xml, shape) { + var data = {}; + if (xml === null) return data; + + var xmlKey = shape.key.name || 'key'; + var xmlValue = shape.value.name || 'value'; + var iterable = shape.flattened ? xml : xml.entry; + + if (Array.isArray(iterable)) { + util.arrayEach(iterable, function(child) { + data[child[xmlKey][0]] = parseXml(child[xmlValue][0], shape.value); + }); + } + + return data; + } + + function parseList(xml, shape) { + var data = []; + var name = shape.member.name || 'member'; + if (shape.flattened) { + util.arrayEach(xml, function(xmlChild) { + data.push(parseXml(xmlChild, shape.member)); + }); + } else if (xml && Array.isArray(xml[name])) { + util.arrayEach(xml[name], function(child) { + data.push(parseXml(child, shape.member)); + }); + } + + return data; + } + + function parseScalar(text, shape) { + if (text && text.$ && text.$.encoding === 'base64') { + shape = new Shape.create({type: text.$.encoding}); + } + if (text && text._) text = text._; + + if (typeof shape.toType === 'function') { + return shape.toType(text); + } else { + return text; + } + } + + function parseUnknown(xml) { + if (xml === undefined || xml === null) return ''; + if (typeof xml === 'string') return xml; + + // parse a list + if (Array.isArray(xml)) { + var arr = []; + for (i = 0; i < xml.length; i++) { + arr.push(parseXml(xml[i], {})); + } + return arr; + } + + // empty object + var keys = Object.keys(xml), i; + if (keys.length === 0 || keys === ['$']) { + return {}; + } + + // object, parse as structure + var data = {}; + for (i = 0; i < keys.length; i++) { + var key = keys[i], value = xml[key]; + if (key === '$') continue; + if (value.length > 1) { // this member is a list + data[key] = parseList(value, {member: {}}); + } else { // this member is a single item + data[key] = parseXml(value[0], {}); + } + } + return data; + } + + module.exports = NodeXmlParser; /***/ }), @@ -37697,142 +37699,142 @@ return /******/ (function(modules) { // webpackBootstrap /* 39 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var EventEmitter = __webpack_require__(40).EventEmitter; - __webpack_require__(41); - - /** - * @api private - */ - AWS.XHRClient = AWS.util.inherit({ - handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { - var self = this; - var endpoint = httpRequest.endpoint; - var emitter = new EventEmitter(); - var href = endpoint.protocol + '//' + endpoint.hostname; - if (endpoint.port !== 80 && endpoint.port !== 443) { - href += ':' + endpoint.port; - } - href += httpRequest.path; - - var xhr = new XMLHttpRequest(), headersEmitted = false; - httpRequest.stream = xhr; - - xhr.addEventListener('readystatechange', function() { - try { - if (xhr.status === 0) return; // 0 code is invalid - } catch (e) { return; } - - if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) { - emitter.statusCode = xhr.status; - emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders()); - emitter.emit( - 'headers', - emitter.statusCode, - emitter.headers, - xhr.statusText - ); - headersEmitted = true; - } - if (this.readyState === this.DONE) { - self.finishRequest(xhr, emitter); - } - }, false); - xhr.upload.addEventListener('progress', function (evt) { - emitter.emit('sendProgress', evt); - }); - xhr.addEventListener('progress', function (evt) { - emitter.emit('receiveProgress', evt); - }, false); - xhr.addEventListener('timeout', function () { - errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'})); - }, false); - xhr.addEventListener('error', function () { - errCallback(AWS.util.error(new Error('Network Failure'), { - code: 'NetworkingError' - })); - }, false); - xhr.addEventListener('abort', function () { - errCallback(AWS.util.error(new Error('Request aborted'), { - code: 'RequestAbortedError' - })); - }, false); - - callback(emitter); - xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false); - AWS.util.each(httpRequest.headers, function (key, value) { - if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { - xhr.setRequestHeader(key, value); - } - }); - - if (httpOptions.timeout && httpOptions.xhrAsync !== false) { - xhr.timeout = httpOptions.timeout; - } - - if (httpOptions.xhrWithCredentials) { - xhr.withCredentials = true; - } - try { xhr.responseType = 'arraybuffer'; } catch (e) {} - - try { - if (httpRequest.body) { - xhr.send(httpRequest.body); - } else { - xhr.send(); - } - } catch (err) { - if (httpRequest.body && typeof httpRequest.body.buffer === 'object') { - xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly - } else { - throw err; - } - } - - return emitter; - }, - - parseHeaders: function parseHeaders(rawHeaders) { - var headers = {}; - AWS.util.arrayEach(rawHeaders.split(/\r?\n/), function (line) { - var key = line.split(':', 1)[0]; - var value = line.substring(key.length + 2); - if (key.length > 0) headers[key.toLowerCase()] = value; - }); - return headers; - }, - - finishRequest: function finishRequest(xhr, emitter) { - var buffer; - if (xhr.responseType === 'arraybuffer' && xhr.response) { - var ab = xhr.response; - buffer = new AWS.util.Buffer(ab.byteLength); - var view = new Uint8Array(ab); - for (var i = 0; i < buffer.length; ++i) { - buffer[i] = view[i]; - } - } - - try { - if (!buffer && typeof xhr.responseText === 'string') { - buffer = new AWS.util.Buffer(xhr.responseText); - } - } catch (e) {} - - if (buffer) emitter.emit('data', buffer); - emitter.emit('end'); - } - }); - - /** - * @api private - */ - AWS.HttpClient.prototype = AWS.XHRClient.prototype; - - /** - * @api private - */ - AWS.HttpClient.streamsApiVersion = 1; + var AWS = __webpack_require__(4); + var EventEmitter = __webpack_require__(40).EventEmitter; + __webpack_require__(41); + + /** + * @api private + */ + AWS.XHRClient = AWS.util.inherit({ + handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) { + var self = this; + var endpoint = httpRequest.endpoint; + var emitter = new EventEmitter(); + var href = endpoint.protocol + '//' + endpoint.hostname; + if (endpoint.port !== 80 && endpoint.port !== 443) { + href += ':' + endpoint.port; + } + href += httpRequest.path; + + var xhr = new XMLHttpRequest(), headersEmitted = false; + httpRequest.stream = xhr; + + xhr.addEventListener('readystatechange', function() { + try { + if (xhr.status === 0) return; // 0 code is invalid + } catch (e) { return; } + + if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) { + emitter.statusCode = xhr.status; + emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders()); + emitter.emit( + 'headers', + emitter.statusCode, + emitter.headers, + xhr.statusText + ); + headersEmitted = true; + } + if (this.readyState === this.DONE) { + self.finishRequest(xhr, emitter); + } + }, false); + xhr.upload.addEventListener('progress', function (evt) { + emitter.emit('sendProgress', evt); + }); + xhr.addEventListener('progress', function (evt) { + emitter.emit('receiveProgress', evt); + }, false); + xhr.addEventListener('timeout', function () { + errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'})); + }, false); + xhr.addEventListener('error', function () { + errCallback(AWS.util.error(new Error('Network Failure'), { + code: 'NetworkingError' + })); + }, false); + xhr.addEventListener('abort', function () { + errCallback(AWS.util.error(new Error('Request aborted'), { + code: 'RequestAbortedError' + })); + }, false); + + callback(emitter); + xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false); + AWS.util.each(httpRequest.headers, function (key, value) { + if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') { + xhr.setRequestHeader(key, value); + } + }); + + if (httpOptions.timeout && httpOptions.xhrAsync !== false) { + xhr.timeout = httpOptions.timeout; + } + + if (httpOptions.xhrWithCredentials) { + xhr.withCredentials = true; + } + try { xhr.responseType = 'arraybuffer'; } catch (e) {} + + try { + if (httpRequest.body) { + xhr.send(httpRequest.body); + } else { + xhr.send(); + } + } catch (err) { + if (httpRequest.body && typeof httpRequest.body.buffer === 'object') { + xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly + } else { + throw err; + } + } + + return emitter; + }, + + parseHeaders: function parseHeaders(rawHeaders) { + var headers = {}; + AWS.util.arrayEach(rawHeaders.split(/\r?\n/), function (line) { + var key = line.split(':', 1)[0]; + var value = line.substring(key.length + 2); + if (key.length > 0) headers[key.toLowerCase()] = value; + }); + return headers; + }, + + finishRequest: function finishRequest(xhr, emitter) { + var buffer; + if (xhr.responseType === 'arraybuffer' && xhr.response) { + var ab = xhr.response; + buffer = new AWS.util.Buffer(ab.byteLength); + var view = new Uint8Array(ab); + for (var i = 0; i < buffer.length; ++i) { + buffer[i] = view[i]; + } + } + + try { + if (!buffer && typeof xhr.responseText === 'string') { + buffer = new AWS.util.Buffer(xhr.responseText); + } + } catch (e) {} + + if (buffer) emitter.emit('data', buffer); + emitter.emit('end'); + } + }); + + /** + * @api private + */ + AWS.HttpClient.prototype = AWS.XHRClient.prototype; + + /** + * @api private + */ + AWS.HttpClient.streamsApiVersion = 1; /***/ }), @@ -38147,414 +38149,415 @@ return /******/ (function(modules) { // webpackBootstrap /* 41 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var inherit = AWS.util.inherit; - - /** - * The endpoint that a service will talk to, for example, - * `'https://ec2.ap-southeast-1.amazonaws.com'`. If - * you need to override an endpoint for a service, you can - * set the endpoint on a service by passing the endpoint - * object with the `endpoint` option key: - * - * ```javascript - * var ep = new AWS.Endpoint('awsproxy.example.com'); - * var s3 = new AWS.S3({endpoint: ep}); - * s3.service.endpoint.hostname == 'awsproxy.example.com' - * ``` - * - * Note that if you do not specify a protocol, the protocol will - * be selected based on your current {AWS.config} configuration. - * - * @!attribute protocol - * @return [String] the protocol (http or https) of the endpoint - * URL - * @!attribute hostname - * @return [String] the host portion of the endpoint, e.g., - * example.com - * @!attribute host - * @return [String] the host portion of the endpoint including - * the port, e.g., example.com:80 - * @!attribute port - * @return [Integer] the port of the endpoint - * @!attribute href - * @return [String] the full URL of the endpoint - */ - AWS.Endpoint = inherit({ - - /** - * @overload Endpoint(endpoint) - * Constructs a new endpoint given an endpoint URL. If the - * URL omits a protocol (http or https), the default protocol - * set in the global {AWS.config} will be used. - * @param endpoint [String] the URL to construct an endpoint from - */ - constructor: function Endpoint(endpoint, config) { - AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); - - if (typeof endpoint === 'undefined' || endpoint === null) { - throw new Error('Invalid endpoint: ' + endpoint); - } else if (typeof endpoint !== 'string') { - return AWS.util.copy(endpoint); - } - - if (!endpoint.match(/^http/)) { - var useSSL = config && config.sslEnabled !== undefined ? - config.sslEnabled : AWS.config.sslEnabled; - endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; - } - - AWS.util.update(this, AWS.util.urlParse(endpoint)); - - // Ensure the port property is set as an integer - if (this.port) { - this.port = parseInt(this.port, 10); - } else { - this.port = this.protocol === 'https:' ? 443 : 80; - } - } - - }); - - /** - * The low level HTTP request object, encapsulating all HTTP header - * and body data sent by a service request. - * - * @!attribute method - * @return [String] the HTTP method of the request - * @!attribute path - * @return [String] the path portion of the URI, e.g., - * "/list/?start=5&num=10" - * @!attribute headers - * @return [map] - * a map of header keys and their respective values - * @!attribute body - * @return [String] the request body payload - * @!attribute endpoint - * @return [AWS.Endpoint] the endpoint for the request - * @!attribute region - * @api private - * @return [String] the region, for signing purposes only. - */ - AWS.HttpRequest = inherit({ - - /** - * @api private - */ - constructor: function HttpRequest(endpoint, region) { - endpoint = new AWS.Endpoint(endpoint); - this.method = 'POST'; - this.path = endpoint.path || '/'; - this.headers = {}; - this.body = ''; - this.endpoint = endpoint; - this.region = region; - this._userAgent = ''; - this.setUserAgent(); - }, - - /** - * @api private - */ - setUserAgent: function setUserAgent() { - this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); - }, - - getUserAgentHeaderName: function getUserAgentHeaderName() { - var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; - return prefix + 'User-Agent'; - }, - - /** - * @api private - */ - appendToUserAgent: function appendToUserAgent(agentPartial) { - if (typeof agentPartial === 'string' && agentPartial) { - this._userAgent += ' ' + agentPartial; - } - this.headers[this.getUserAgentHeaderName()] = this._userAgent; - }, - - /** - * @api private - */ - getUserAgent: function getUserAgent() { - return this._userAgent; - }, - - /** - * @return [String] the part of the {path} excluding the - * query string - */ - pathname: function pathname() { - return this.path.split('?', 1)[0]; - }, - - /** - * @return [String] the query string portion of the {path} - */ - search: function search() { - var query = this.path.split('?', 2)[1]; - if (query) { - query = AWS.util.queryStringParse(query); - return AWS.util.queryParamsToString(query); - } - return ''; - } - - }); - - /** - * The low level HTTP response object, encapsulating all HTTP header - * and body data returned from the request. - * - * @!attribute statusCode - * @return [Integer] the HTTP status code of the response (e.g., 200, 404) - * @!attribute headers - * @return [map] - * a map of response header keys and their respective values - * @!attribute body - * @return [String] the response body payload - * @!attribute [r] streaming - * @return [Boolean] whether this response is being streamed at a low-level. - * Defaults to `false` (buffered reads). Do not modify this manually, use - * {createUnbufferedStream} to convert the stream to unbuffered mode - * instead. - */ - AWS.HttpResponse = inherit({ - - /** - * @api private - */ - constructor: function HttpResponse() { - this.statusCode = undefined; - this.headers = {}; - this.body = undefined; - this.streaming = false; - this.stream = null; - }, - - /** - * Disables buffering on the HTTP response and returns the stream for reading. - * @return [Stream, XMLHttpRequest, null] the underlying stream object. - * Use this object to directly read data off of the stream. - * @note This object is only available after the {AWS.Request~httpHeaders} - * event has fired. This method must be called prior to - * {AWS.Request~httpData}. - * @example Taking control of a stream - * request.on('httpHeaders', function(statusCode, headers) { - * if (statusCode < 300) { - * if (headers.etag === 'xyz') { - * // pipe the stream, disabling buffering - * var stream = this.response.httpResponse.createUnbufferedStream(); - * stream.pipe(process.stdout); - * } else { // abort this request and set a better error message - * this.abort(); - * this.response.error = new Error('Invalid ETag'); - * } - * } - * }).send(console.log); - */ - createUnbufferedStream: function createUnbufferedStream() { - this.streaming = true; - return this.stream; - } - }); - - - AWS.HttpClient = inherit({}); - - /** - * @api private - */ - AWS.HttpClient.getInstance = function getInstance() { - if (this.singleton === undefined) { - this.singleton = new this(); - } - return this.singleton; - }; + var AWS = __webpack_require__(4); + var inherit = AWS.util.inherit; + + /** + * The endpoint that a service will talk to, for example, + * `'https://ec2.ap-southeast-1.amazonaws.com'`. If + * you need to override an endpoint for a service, you can + * set the endpoint on a service by passing the endpoint + * object with the `endpoint` option key: + * + * ```javascript + * var ep = new AWS.Endpoint('awsproxy.example.com'); + * var s3 = new AWS.S3({endpoint: ep}); + * s3.service.endpoint.hostname == 'awsproxy.example.com' + * ``` + * + * Note that if you do not specify a protocol, the protocol will + * be selected based on your current {AWS.config} configuration. + * + * @!attribute protocol + * @return [String] the protocol (http or https) of the endpoint + * URL + * @!attribute hostname + * @return [String] the host portion of the endpoint, e.g., + * example.com + * @!attribute host + * @return [String] the host portion of the endpoint including + * the port, e.g., example.com:80 + * @!attribute port + * @return [Integer] the port of the endpoint + * @!attribute href + * @return [String] the full URL of the endpoint + */ + AWS.Endpoint = inherit({ + + /** + * @overload Endpoint(endpoint) + * Constructs a new endpoint given an endpoint URL. If the + * URL omits a protocol (http or https), the default protocol + * set in the global {AWS.config} will be used. + * @param endpoint [String] the URL to construct an endpoint from + */ + constructor: function Endpoint(endpoint, config) { + AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']); + + if (typeof endpoint === 'undefined' || endpoint === null) { + throw new Error('Invalid endpoint: ' + endpoint); + } else if (typeof endpoint !== 'string') { + return AWS.util.copy(endpoint); + } + + if (!endpoint.match(/^http/)) { + var useSSL = config && config.sslEnabled !== undefined ? + config.sslEnabled : AWS.config.sslEnabled; + endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint; + } + + AWS.util.update(this, AWS.util.urlParse(endpoint)); + + // Ensure the port property is set as an integer + if (this.port) { + this.port = parseInt(this.port, 10); + } else { + this.port = this.protocol === 'https:' ? 443 : 80; + } + } + + }); + + /** + * The low level HTTP request object, encapsulating all HTTP header + * and body data sent by a service request. + * + * @!attribute method + * @return [String] the HTTP method of the request + * @!attribute path + * @return [String] the path portion of the URI, e.g., + * "/list/?start=5&num=10" + * @!attribute headers + * @return [map] + * a map of header keys and their respective values + * @!attribute body + * @return [String] the request body payload + * @!attribute endpoint + * @return [AWS.Endpoint] the endpoint for the request + * @!attribute region + * @api private + * @return [String] the region, for signing purposes only. + */ + AWS.HttpRequest = inherit({ + + /** + * @api private + */ + constructor: function HttpRequest(endpoint, region) { + endpoint = new AWS.Endpoint(endpoint); + this.method = 'POST'; + this.path = endpoint.path || '/'; + this.headers = {}; + this.body = ''; + this.endpoint = endpoint; + this.region = region; + this._userAgent = ''; + this.setUserAgent(); + }, + + /** + * @api private + */ + setUserAgent: function setUserAgent() { + this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent(); + }, + + getUserAgentHeaderName: function getUserAgentHeaderName() { + var prefix = AWS.util.isBrowser() ? 'X-Amz-' : ''; + return prefix + 'User-Agent'; + }, + + /** + * @api private + */ + appendToUserAgent: function appendToUserAgent(agentPartial) { + if (typeof agentPartial === 'string' && agentPartial) { + this._userAgent += ' ' + agentPartial; + } + this.headers[this.getUserAgentHeaderName()] = this._userAgent; + }, + + /** + * @api private + */ + getUserAgent: function getUserAgent() { + return this._userAgent; + }, + + /** + * @return [String] the part of the {path} excluding the + * query string + */ + pathname: function pathname() { + return this.path.split('?', 1)[0]; + }, + + /** + * @return [String] the query string portion of the {path} + */ + search: function search() { + var query = this.path.split('?', 2)[1]; + if (query) { + query = AWS.util.queryStringParse(query); + return AWS.util.queryParamsToString(query); + } + return ''; + } + + }); + + /** + * The low level HTTP response object, encapsulating all HTTP header + * and body data returned from the request. + * + * @!attribute statusCode + * @return [Integer] the HTTP status code of the response (e.g., 200, 404) + * @!attribute headers + * @return [map] + * a map of response header keys and their respective values + * @!attribute body + * @return [String] the response body payload + * @!attribute [r] streaming + * @return [Boolean] whether this response is being streamed at a low-level. + * Defaults to `false` (buffered reads). Do not modify this manually, use + * {createUnbufferedStream} to convert the stream to unbuffered mode + * instead. + */ + AWS.HttpResponse = inherit({ + + /** + * @api private + */ + constructor: function HttpResponse() { + this.statusCode = undefined; + this.headers = {}; + this.body = undefined; + this.streaming = false; + this.stream = null; + }, + + /** + * Disables buffering on the HTTP response and returns the stream for reading. + * @return [Stream, XMLHttpRequest, null] the underlying stream object. + * Use this object to directly read data off of the stream. + * @note This object is only available after the {AWS.Request~httpHeaders} + * event has fired. This method must be called prior to + * {AWS.Request~httpData}. + * @example Taking control of a stream + * request.on('httpHeaders', function(statusCode, headers) { + * if (statusCode < 300) { + * if (headers.etag === 'xyz') { + * // pipe the stream, disabling buffering + * var stream = this.response.httpResponse.createUnbufferedStream(); + * stream.pipe(process.stdout); + * } else { // abort this request and set a better error message + * this.abort(); + * this.response.error = new Error('Invalid ETag'); + * } + * } + * }).send(console.log); + */ + createUnbufferedStream: function createUnbufferedStream() { + this.streaming = true; + return this.stream; + } + }); + + + AWS.HttpClient = inherit({}); + + /** + * @api private + */ + AWS.HttpClient.getInstance = function getInstance() { + if (this.singleton === undefined) { + this.singleton = new this(); + } + return this.singleton; + }; /***/ }), /* 42 */ /***/ (function(module, exports) { - function addContentType(req) { - var httpRequest = req.httpRequest || {}; - var headers = httpRequest.headers; - // We don't want to force a content type on presigned urls - if (headers && !req.isPresigned()) { - if (httpRequest.body && !headers['Content-Type']) { - // React Native's android XHR requires Content-Type to be defined if there is a body - headers['Content-Type'] = ''; - } - } - } - - module.exports = { - addContentType: addContentType + function addContentType(req) { + var httpRequest = req.httpRequest || {}; + var headers = httpRequest.headers; + // We don't want to force a content type on presigned urls + if (headers && !req.isPresigned()) { + if (httpRequest.body && !headers['Content-Type']) { + // React Native's android XHR requires Content-Type to be defined if there is a body + headers['Content-Type'] = ''; + } + } + } + + module.exports = { + addContentType: addContentType }; /***/ }), /* 43 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - module.exports = { - ACM: __webpack_require__(44), - APIGateway: __webpack_require__(47), - ApplicationAutoScaling: __webpack_require__(51), - AppStream: __webpack_require__(54), - AutoScaling: __webpack_require__(58), - Batch: __webpack_require__(61), - Budgets: __webpack_require__(64), - CloudDirectory: __webpack_require__(67), - CloudFormation: __webpack_require__(70), - CloudFront: __webpack_require__(74), - CloudHSM: __webpack_require__(83), - CloudSearch: __webpack_require__(86), - CloudSearchDomain: __webpack_require__(91), - CloudTrail: __webpack_require__(94), - CloudWatch: __webpack_require__(97), - CloudWatchEvents: __webpack_require__(101), - CloudWatchLogs: __webpack_require__(104), - CodeBuild: __webpack_require__(107), - CodeCommit: __webpack_require__(110), - CodeDeploy: __webpack_require__(113), - CodePipeline: __webpack_require__(117), - CognitoIdentity: __webpack_require__(32), - CognitoIdentityServiceProvider: __webpack_require__(120), - CognitoSync: __webpack_require__(123), - ConfigService: __webpack_require__(125), - CUR: __webpack_require__(128), - DataPipeline: __webpack_require__(131), - DeviceFarm: __webpack_require__(134), - DirectConnect: __webpack_require__(137), - DirectoryService: __webpack_require__(140), - Discovery: __webpack_require__(143), - DMS: __webpack_require__(146), - DynamoDB: __webpack_require__(149), - DynamoDBStreams: __webpack_require__(163), - EC2: __webpack_require__(166), - ECR: __webpack_require__(171), - ECS: __webpack_require__(174), - EFS: __webpack_require__(178), - ElastiCache: __webpack_require__(181), - ElasticBeanstalk: __webpack_require__(185), - ELB: __webpack_require__(188), - ELBv2: __webpack_require__(192), - EMR: __webpack_require__(196), - ES: __webpack_require__(200), - ElasticTranscoder: __webpack_require__(203), - Firehose: __webpack_require__(207), - GameLift: __webpack_require__(210), - Glacier: __webpack_require__(213), - Health: __webpack_require__(218), - IAM: __webpack_require__(221), - ImportExport: __webpack_require__(225), - Inspector: __webpack_require__(228), - Iot: __webpack_require__(231), - IotData: __webpack_require__(234), - Kinesis: __webpack_require__(237), - KinesisAnalytics: __webpack_require__(241), - KMS: __webpack_require__(244), - Lambda: __webpack_require__(247), - LexRuntime: __webpack_require__(253), - Lightsail: __webpack_require__(256), - MachineLearning: __webpack_require__(259), - MarketplaceCommerceAnalytics: __webpack_require__(264), - MarketplaceMetering: __webpack_require__(267), - MTurk: __webpack_require__(269), - MobileAnalytics: __webpack_require__(272), - OpsWorks: __webpack_require__(274), - OpsWorksCM: __webpack_require__(278), - Organizations: __webpack_require__(282), - Pinpoint: __webpack_require__(285), - Polly: __webpack_require__(287), - RDS: __webpack_require__(292), - Redshift: __webpack_require__(307), - Rekognition: __webpack_require__(311), - ResourceGroupsTaggingAPI: __webpack_require__(314), - Route53: __webpack_require__(317), - Route53Domains: __webpack_require__(322), - S3: __webpack_require__(325), - ServiceCatalog: __webpack_require__(332), - SES: __webpack_require__(335), - Shield: __webpack_require__(339), - SimpleDB: __webpack_require__(342), - SMS: __webpack_require__(345), - Snowball: __webpack_require__(348), - SNS: __webpack_require__(351), - SQS: __webpack_require__(354), - SSM: __webpack_require__(358), - StorageGateway: __webpack_require__(361), - StepFunctions: __webpack_require__(364), - STS: __webpack_require__(26), - Support: __webpack_require__(367), - SWF: __webpack_require__(370), - XRay: __webpack_require__(374), - WAF: __webpack_require__(377), - WAFRegional: __webpack_require__(380), - WorkDocs: __webpack_require__(383), - WorkSpaces: __webpack_require__(386), - CodeStar: __webpack_require__(389), - LexModelBuildingService: __webpack_require__(392), - MarketplaceEntitlementService: __webpack_require__(395), - Athena: __webpack_require__(398), - Greengrass: __webpack_require__(401), - DAX: __webpack_require__(403), - MigrationHub: __webpack_require__(406), - CloudHSMV2: __webpack_require__(409), - Glue: __webpack_require__(412), - Mobile: __webpack_require__(415), - Pricing: __webpack_require__(418), - CostExplorer: __webpack_require__(421), - MediaConvert: __webpack_require__(424), - MediaLive: __webpack_require__(426), - MediaPackage: __webpack_require__(429), - MediaStore: __webpack_require__(432), - MediaStoreData: __webpack_require__(435), - AppSync: __webpack_require__(438), - GuardDuty: __webpack_require__(441), - MQ: __webpack_require__(444), - Comprehend: __webpack_require__(446), - IoTJobsDataPlane: __webpack_require__(449), - KinesisVideoArchivedMedia: __webpack_require__(452), - KinesisVideoMedia: __webpack_require__(455), - KinesisVideo: __webpack_require__(458), - SageMakerRuntime: __webpack_require__(461), - SageMaker: __webpack_require__(464), - Translate: __webpack_require__(468), - ResourceGroups: __webpack_require__(471), - AlexaForBusiness: __webpack_require__(474), - Cloud9: __webpack_require__(477), - ServerlessApplicationRepository: __webpack_require__(480), - ServiceDiscovery: __webpack_require__(482), - WorkMail: __webpack_require__(485) + __webpack_require__(2); + module.exports = { + ACM: __webpack_require__(44), + APIGateway: __webpack_require__(47), + ApplicationAutoScaling: __webpack_require__(51), + AppStream: __webpack_require__(54), + AutoScaling: __webpack_require__(58), + Batch: __webpack_require__(61), + Budgets: __webpack_require__(64), + CloudDirectory: __webpack_require__(67), + CloudFormation: __webpack_require__(70), + CloudFront: __webpack_require__(74), + CloudHSM: __webpack_require__(83), + CloudSearch: __webpack_require__(86), + CloudSearchDomain: __webpack_require__(91), + CloudTrail: __webpack_require__(94), + CloudWatch: __webpack_require__(97), + CloudWatchEvents: __webpack_require__(101), + CloudWatchLogs: __webpack_require__(104), + CodeBuild: __webpack_require__(107), + CodeCommit: __webpack_require__(110), + CodeDeploy: __webpack_require__(113), + CodePipeline: __webpack_require__(117), + CognitoIdentity: __webpack_require__(32), + CognitoIdentityServiceProvider: __webpack_require__(120), + CognitoSync: __webpack_require__(123), + ConfigService: __webpack_require__(125), + CUR: __webpack_require__(128), + DataPipeline: __webpack_require__(131), + DeviceFarm: __webpack_require__(134), + DirectConnect: __webpack_require__(137), + DirectoryService: __webpack_require__(140), + Discovery: __webpack_require__(143), + DMS: __webpack_require__(146), + DynamoDB: __webpack_require__(149), + DynamoDBStreams: __webpack_require__(163), + EC2: __webpack_require__(166), + ECR: __webpack_require__(171), + ECS: __webpack_require__(174), + EFS: __webpack_require__(178), + ElastiCache: __webpack_require__(181), + ElasticBeanstalk: __webpack_require__(185), + ELB: __webpack_require__(188), + ELBv2: __webpack_require__(192), + EMR: __webpack_require__(196), + ES: __webpack_require__(200), + ElasticTranscoder: __webpack_require__(203), + Firehose: __webpack_require__(207), + GameLift: __webpack_require__(210), + Glacier: __webpack_require__(213), + Health: __webpack_require__(218), + IAM: __webpack_require__(221), + ImportExport: __webpack_require__(225), + Inspector: __webpack_require__(228), + Iot: __webpack_require__(231), + IotData: __webpack_require__(234), + Kinesis: __webpack_require__(237), + KinesisAnalytics: __webpack_require__(241), + KMS: __webpack_require__(244), + Lambda: __webpack_require__(247), + LexRuntime: __webpack_require__(253), + Lightsail: __webpack_require__(256), + MachineLearning: __webpack_require__(259), + MarketplaceCommerceAnalytics: __webpack_require__(264), + MarketplaceMetering: __webpack_require__(267), + MTurk: __webpack_require__(269), + MobileAnalytics: __webpack_require__(272), + OpsWorks: __webpack_require__(274), + OpsWorksCM: __webpack_require__(278), + Organizations: __webpack_require__(282), + Pinpoint: __webpack_require__(285), + Polly: __webpack_require__(287), + RDS: __webpack_require__(292), + Redshift: __webpack_require__(307), + Rekognition: __webpack_require__(311), + ResourceGroupsTaggingAPI: __webpack_require__(314), + Route53: __webpack_require__(317), + Route53Domains: __webpack_require__(322), + S3: __webpack_require__(325), + ServiceCatalog: __webpack_require__(332), + SES: __webpack_require__(335), + Shield: __webpack_require__(339), + SimpleDB: __webpack_require__(342), + SMS: __webpack_require__(345), + Snowball: __webpack_require__(348), + SNS: __webpack_require__(351), + SQS: __webpack_require__(354), + SSM: __webpack_require__(358), + StorageGateway: __webpack_require__(361), + StepFunctions: __webpack_require__(364), + STS: __webpack_require__(26), + Support: __webpack_require__(367), + SWF: __webpack_require__(370), + XRay: __webpack_require__(374), + WAF: __webpack_require__(377), + WAFRegional: __webpack_require__(380), + WorkDocs: __webpack_require__(383), + WorkSpaces: __webpack_require__(386), + CodeStar: __webpack_require__(389), + LexModelBuildingService: __webpack_require__(392), + MarketplaceEntitlementService: __webpack_require__(395), + Athena: __webpack_require__(398), + Greengrass: __webpack_require__(401), + DAX: __webpack_require__(403), + MigrationHub: __webpack_require__(406), + CloudHSMV2: __webpack_require__(409), + Glue: __webpack_require__(412), + Mobile: __webpack_require__(415), + Pricing: __webpack_require__(418), + CostExplorer: __webpack_require__(421), + MediaConvert: __webpack_require__(424), + MediaLive: __webpack_require__(426), + MediaPackage: __webpack_require__(429), + MediaStore: __webpack_require__(432), + MediaStoreData: __webpack_require__(435), + AppSync: __webpack_require__(438), + GuardDuty: __webpack_require__(441), + MQ: __webpack_require__(444), + Comprehend: __webpack_require__(446), + IoTJobsDataPlane: __webpack_require__(449), + KinesisVideoArchivedMedia: __webpack_require__(452), + KinesisVideoMedia: __webpack_require__(455), + KinesisVideo: __webpack_require__(458), + SageMakerRuntime: __webpack_require__(461), + SageMaker: __webpack_require__(464), + Translate: __webpack_require__(468), + ResourceGroups: __webpack_require__(471), + AlexaForBusiness: __webpack_require__(474), + Cloud9: __webpack_require__(477), + ServerlessApplicationRepository: __webpack_require__(480), + ServiceDiscovery: __webpack_require__(482), + WorkMail: __webpack_require__(485), + AutoScalingPlans: __webpack_require__(488) }; /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['acm'] = {}; - AWS.ACM = Service.defineService('acm', ['2015-12-08']); - Object.defineProperty(apiLoader.services['acm'], '2015-12-08', { - get: function get() { - var model = __webpack_require__(45); - model.paginators = __webpack_require__(46).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ACM; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['acm'] = {}; + AWS.ACM = Service.defineService('acm', ['2015-12-08']); + Object.defineProperty(apiLoader.services['acm'], '2015-12-08', { + get: function get() { + var model = __webpack_require__(45); + model.paginators = __webpack_require__(46).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ACM; /***/ }), @@ -38573,60 +38576,60 @@ return /******/ (function(modules) { // webpackBootstrap /* 47 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['apigateway'] = {}; - AWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']); - __webpack_require__(48); - Object.defineProperty(apiLoader.services['apigateway'], '2015-07-09', { - get: function get() { - var model = __webpack_require__(49); - model.paginators = __webpack_require__(50).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.APIGateway; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['apigateway'] = {}; + AWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']); + __webpack_require__(48); + Object.defineProperty(apiLoader.services['apigateway'], '2015-07-09', { + get: function get() { + var model = __webpack_require__(49); + model.paginators = __webpack_require__(50).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.APIGateway; /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.APIGateway.prototype, { - /** - * Sets the Accept header to application/json. - * - * @api private - */ - setAcceptHeader: function setAcceptHeader(req) { - var httpRequest = req.httpRequest; - if (!httpRequest.headers.Accept) { - httpRequest.headers['Accept'] = 'application/json'; - } - }, - - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.addListener('build', this.setAcceptHeader); - if (request.operation === 'getExport') { - var params = request.params || {}; - if (params.exportType === 'swagger') { - request.addListener('extractData', AWS.util.convertPayloadToString); - } - } - } - }); - + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.APIGateway.prototype, { + /** + * Sets the Accept header to application/json. + * + * @api private + */ + setAcceptHeader: function setAcceptHeader(req) { + var httpRequest = req.httpRequest; + if (!httpRequest.headers.Accept) { + httpRequest.headers['Accept'] = 'application/json'; + } + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('build', this.setAcceptHeader); + if (request.operation === 'getExport') { + var params = request.params || {}; + if (params.exportType === 'swagger') { + request.addListener('extractData', AWS.util.convertPayloadToString); + } + } + } + }); + /***/ }), @@ -38645,24 +38648,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 51 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['applicationautoscaling'] = {}; - AWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']); - Object.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', { - get: function get() { - var model = __webpack_require__(52); - model.paginators = __webpack_require__(53).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ApplicationAutoScaling; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['applicationautoscaling'] = {}; + AWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']); + Object.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', { + get: function get() { + var model = __webpack_require__(52); + model.paginators = __webpack_require__(53).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ApplicationAutoScaling; /***/ }), @@ -38681,25 +38684,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 54 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['appstream'] = {}; - AWS.AppStream = Service.defineService('appstream', ['2016-12-01']); - Object.defineProperty(apiLoader.services['appstream'], '2016-12-01', { - get: function get() { - var model = __webpack_require__(55); - model.paginators = __webpack_require__(56).pagination; - model.waiters = __webpack_require__(57).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.AppStream; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['appstream'] = {}; + AWS.AppStream = Service.defineService('appstream', ['2016-12-01']); + Object.defineProperty(apiLoader.services['appstream'], '2016-12-01', { + get: function get() { + var model = __webpack_require__(55); + model.paginators = __webpack_require__(56).pagination; + model.waiters = __webpack_require__(57).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.AppStream; /***/ }), @@ -38724,24 +38727,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 58 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['autoscaling'] = {}; - AWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']); - Object.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', { - get: function get() { - var model = __webpack_require__(59); - model.paginators = __webpack_require__(60).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.AutoScaling; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['autoscaling'] = {}; + AWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']); + Object.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', { + get: function get() { + var model = __webpack_require__(59); + model.paginators = __webpack_require__(60).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.AutoScaling; /***/ }), @@ -38760,24 +38763,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 61 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['batch'] = {}; - AWS.Batch = Service.defineService('batch', ['2016-08-10']); - Object.defineProperty(apiLoader.services['batch'], '2016-08-10', { - get: function get() { - var model = __webpack_require__(62); - model.paginators = __webpack_require__(63).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Batch; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['batch'] = {}; + AWS.Batch = Service.defineService('batch', ['2016-08-10']); + Object.defineProperty(apiLoader.services['batch'], '2016-08-10', { + get: function get() { + var model = __webpack_require__(62); + model.paginators = __webpack_require__(63).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Batch; /***/ }), @@ -38796,24 +38799,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 64 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['budgets'] = {}; - AWS.Budgets = Service.defineService('budgets', ['2016-10-20']); - Object.defineProperty(apiLoader.services['budgets'], '2016-10-20', { - get: function get() { - var model = __webpack_require__(65); - model.paginators = __webpack_require__(66).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Budgets; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['budgets'] = {}; + AWS.Budgets = Service.defineService('budgets', ['2016-10-20']); + Object.defineProperty(apiLoader.services['budgets'], '2016-10-20', { + get: function get() { + var model = __webpack_require__(65); + model.paginators = __webpack_require__(66).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Budgets; /***/ }), @@ -38832,24 +38835,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 67 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['clouddirectory'] = {}; - AWS.CloudDirectory = Service.defineService('clouddirectory', ['2016-05-10']); - Object.defineProperty(apiLoader.services['clouddirectory'], '2016-05-10', { - get: function get() { - var model = __webpack_require__(68); - model.paginators = __webpack_require__(69).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudDirectory; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['clouddirectory'] = {}; + AWS.CloudDirectory = Service.defineService('clouddirectory', ['2016-05-10']); + Object.defineProperty(apiLoader.services['clouddirectory'], '2016-05-10', { + get: function get() { + var model = __webpack_require__(68); + model.paginators = __webpack_require__(69).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudDirectory; /***/ }), @@ -38868,25 +38871,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 70 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudformation'] = {}; - AWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']); - Object.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', { - get: function get() { - var model = __webpack_require__(71); - model.paginators = __webpack_require__(72).pagination; - model.waiters = __webpack_require__(73).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudFormation; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudformation'] = {}; + AWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']); + Object.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', { + get: function get() { + var model = __webpack_require__(71); + model.paginators = __webpack_require__(72).pagination; + model.waiters = __webpack_require__(73).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudFormation; /***/ }), @@ -38911,266 +38914,266 @@ return /******/ (function(modules) { // webpackBootstrap /* 74 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudfront'] = {}; - AWS.CloudFront = Service.defineService('cloudfront', ['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', '2016-11-25*', '2017-03-25']); - __webpack_require__(75); - Object.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', { - get: function get() { - var model = __webpack_require__(77); - model.paginators = __webpack_require__(78).pagination; - model.waiters = __webpack_require__(79).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', { - get: function get() { - var model = __webpack_require__(80); - model.paginators = __webpack_require__(81).pagination; - model.waiters = __webpack_require__(82).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudFront; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudfront'] = {}; + AWS.CloudFront = Service.defineService('cloudfront', ['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', '2016-11-25*', '2017-03-25']); + __webpack_require__(75); + Object.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', { + get: function get() { + var model = __webpack_require__(77); + model.paginators = __webpack_require__(78).pagination; + model.waiters = __webpack_require__(79).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', { + get: function get() { + var model = __webpack_require__(80); + model.paginators = __webpack_require__(81).pagination; + model.waiters = __webpack_require__(82).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudFront; /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - // pull in CloudFront signer - __webpack_require__(76); - - AWS.util.update(AWS.CloudFront.prototype, { - - setupRequestListeners: function setupRequestListeners(request) { - request.addListener('extractData', AWS.util.hoistPayloadMember); - } - - }); + var AWS = __webpack_require__(4); + + // pull in CloudFront signer + __webpack_require__(76); + + AWS.util.update(AWS.CloudFront.prototype, { + + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('extractData', AWS.util.hoistPayloadMember); + } + + }); /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4), - url = AWS.util.url, - crypto = AWS.util.crypto.lib, - base64Encode = AWS.util.base64.encode, - inherit = AWS.util.inherit; - - var queryEncode = function (string) { - var replacements = { - '+': '-', - '=': '_', - '/': '~' - }; - return string.replace(/[\+=\/]/g, function (match) { - return replacements[match]; - }); - }; - - var signPolicy = function (policy, privateKey) { - var sign = crypto.createSign('RSA-SHA1'); - sign.write(policy); - return queryEncode(sign.sign(privateKey, 'base64')) - }; - - var signWithCannedPolicy = function (url, expires, keyPairId, privateKey) { - var policy = JSON.stringify({ - Statement: [ - { - Resource: url, - Condition: { DateLessThan: { 'AWS:EpochTime': expires } } - } - ] - }); - - return { - Expires: expires, - 'Key-Pair-Id': keyPairId, - Signature: signPolicy(policy.toString(), privateKey) - }; - }; - - var signWithCustomPolicy = function (policy, keyPairId, privateKey) { - policy = policy.replace(/\s/mg, policy); - - return { - Policy: queryEncode(base64Encode(policy)), - 'Key-Pair-Id': keyPairId, - Signature: signPolicy(policy, privateKey) - } - }; - - var determineScheme = function (url) { - var parts = url.split('://'); - if (parts.length < 2) { - throw new Error('Invalid URL.'); - } - - return parts[0].replace('*', ''); - }; - - var getRtmpUrl = function (rtmpUrl) { - var parsed = url.parse(rtmpUrl); - return parsed.path.replace(/^\//, '') + (parsed.hash || ''); - }; - - var getResource = function (url) { - switch (determineScheme(url)) { - case 'http': - case 'https': - return url; - case 'rtmp': - return getRtmpUrl(url); - default: - throw new Error('Invalid URI scheme. Scheme must be one of' - + ' http, https, or rtmp'); - } - }; - - var handleError = function (err, callback) { - if (!callback || typeof callback !== 'function') { - throw err; - } - - callback(err); - }; - - var handleSuccess = function (result, callback) { - if (!callback || typeof callback !== 'function') { - return result; - } - - callback(null, result); - }; - - AWS.CloudFront.Signer = inherit({ - /** - * A signer object can be used to generate signed URLs and cookies for granting - * access to content on restricted CloudFront distributions. - * - * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html - * - * @param keyPairId [String] (Required) The ID of the CloudFront key pair - * being used. - * @param privateKey [String] (Required) A private key in RSA format. - */ - constructor: function Signer(keyPairId, privateKey) { - if (keyPairId === void 0 || privateKey === void 0) { - throw new Error('A key pair ID and private key are required'); - } - - this.keyPairId = keyPairId; - this.privateKey = privateKey; - }, - - /** - * Create a signed Amazon CloudFront Cookie. - * - * @param options [Object] The options to create a signed cookie. - * @option options url [String] The URL to which the signature will grant - * access. Required unless you pass in a full - * policy. - * @option options expires [Number] A Unix UTC timestamp indicating when the - * signature should expire. Required unless you - * pass in a full policy. - * @option options policy [String] A CloudFront JSON policy. Required unless - * you pass in a url and an expiry time. - * - * @param cb [Function] if a callback is provided, this function will - * pass the hash as the second parameter (after the error parameter) to - * the callback function. - * - * @return [Object] if called synchronously (with no callback), returns the - * signed cookie parameters. - * @return [null] nothing is returned if a callback is provided. - */ - getSignedCookie: function (options, cb) { - var signatureHash = 'policy' in options - ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) - : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey); - - var cookieHash = {}; - for (var key in signatureHash) { - if (Object.prototype.hasOwnProperty.call(signatureHash, key)) { - cookieHash['CloudFront-' + key] = signatureHash[key]; - } - } - - return handleSuccess(cookieHash, cb); - }, - - /** - * Create a signed Amazon CloudFront URL. - * - * Keep in mind that URLs meant for use in media/flash players may have - * different requirements for URL formats (e.g. some require that the - * extension be removed, some require the file name to be prefixed - * - mp4:, some require you to add "/cfx/st" into your URL). - * - * @param options [Object] The options to create a signed URL. - * @option options url [String] The URL to which the signature will grant - * access. Required. - * @option options expires [Number] A Unix UTC timestamp indicating when the - * signature should expire. Required unless you - * pass in a full policy. - * @option options policy [String] A CloudFront JSON policy. Required unless - * you pass in a url and an expiry time. - * - * @param cb [Function] if a callback is provided, this function will - * pass the URL as the second parameter (after the error parameter) to - * the callback function. - * - * @return [String] if called synchronously (with no callback), returns the - * signed URL. - * @return [null] nothing is returned if a callback is provided. - */ - getSignedUrl: function (options, cb) { - try { - var resource = getResource(options.url); - } catch (err) { - return handleError(err, cb); - } - - var parsedUrl = url.parse(options.url, true), - signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy') - ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) - : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey); - - parsedUrl.search = null; - for (var key in signatureHash) { - if (Object.prototype.hasOwnProperty.call(signatureHash, key)) { - parsedUrl.query[key] = signatureHash[key]; - } - } - - try { - var signedUrl = determineScheme(options.url) === 'rtmp' - ? getRtmpUrl(url.format(parsedUrl)) - : url.format(parsedUrl); - } catch (err) { - return handleError(err, cb); - } - - return handleSuccess(signedUrl, cb); - } - }); - - module.exports = AWS.CloudFront.Signer; + var AWS = __webpack_require__(4), + url = AWS.util.url, + crypto = AWS.util.crypto.lib, + base64Encode = AWS.util.base64.encode, + inherit = AWS.util.inherit; + + var queryEncode = function (string) { + var replacements = { + '+': '-', + '=': '_', + '/': '~' + }; + return string.replace(/[\+=\/]/g, function (match) { + return replacements[match]; + }); + }; + + var signPolicy = function (policy, privateKey) { + var sign = crypto.createSign('RSA-SHA1'); + sign.write(policy); + return queryEncode(sign.sign(privateKey, 'base64')) + }; + + var signWithCannedPolicy = function (url, expires, keyPairId, privateKey) { + var policy = JSON.stringify({ + Statement: [ + { + Resource: url, + Condition: { DateLessThan: { 'AWS:EpochTime': expires } } + } + ] + }); + + return { + Expires: expires, + 'Key-Pair-Id': keyPairId, + Signature: signPolicy(policy.toString(), privateKey) + }; + }; + + var signWithCustomPolicy = function (policy, keyPairId, privateKey) { + policy = policy.replace(/\s/mg, policy); + + return { + Policy: queryEncode(base64Encode(policy)), + 'Key-Pair-Id': keyPairId, + Signature: signPolicy(policy, privateKey) + } + }; + + var determineScheme = function (url) { + var parts = url.split('://'); + if (parts.length < 2) { + throw new Error('Invalid URL.'); + } + + return parts[0].replace('*', ''); + }; + + var getRtmpUrl = function (rtmpUrl) { + var parsed = url.parse(rtmpUrl); + return parsed.path.replace(/^\//, '') + (parsed.hash || ''); + }; + + var getResource = function (url) { + switch (determineScheme(url)) { + case 'http': + case 'https': + return url; + case 'rtmp': + return getRtmpUrl(url); + default: + throw new Error('Invalid URI scheme. Scheme must be one of' + + ' http, https, or rtmp'); + } + }; + + var handleError = function (err, callback) { + if (!callback || typeof callback !== 'function') { + throw err; + } + + callback(err); + }; + + var handleSuccess = function (result, callback) { + if (!callback || typeof callback !== 'function') { + return result; + } + + callback(null, result); + }; + + AWS.CloudFront.Signer = inherit({ + /** + * A signer object can be used to generate signed URLs and cookies for granting + * access to content on restricted CloudFront distributions. + * + * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html + * + * @param keyPairId [String] (Required) The ID of the CloudFront key pair + * being used. + * @param privateKey [String] (Required) A private key in RSA format. + */ + constructor: function Signer(keyPairId, privateKey) { + if (keyPairId === void 0 || privateKey === void 0) { + throw new Error('A key pair ID and private key are required'); + } + + this.keyPairId = keyPairId; + this.privateKey = privateKey; + }, + + /** + * Create a signed Amazon CloudFront Cookie. + * + * @param options [Object] The options to create a signed cookie. + * @option options url [String] The URL to which the signature will grant + * access. Required unless you pass in a full + * policy. + * @option options expires [Number] A Unix UTC timestamp indicating when the + * signature should expire. Required unless you + * pass in a full policy. + * @option options policy [String] A CloudFront JSON policy. Required unless + * you pass in a url and an expiry time. + * + * @param cb [Function] if a callback is provided, this function will + * pass the hash as the second parameter (after the error parameter) to + * the callback function. + * + * @return [Object] if called synchronously (with no callback), returns the + * signed cookie parameters. + * @return [null] nothing is returned if a callback is provided. + */ + getSignedCookie: function (options, cb) { + var signatureHash = 'policy' in options + ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) + : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey); + + var cookieHash = {}; + for (var key in signatureHash) { + if (Object.prototype.hasOwnProperty.call(signatureHash, key)) { + cookieHash['CloudFront-' + key] = signatureHash[key]; + } + } + + return handleSuccess(cookieHash, cb); + }, + + /** + * Create a signed Amazon CloudFront URL. + * + * Keep in mind that URLs meant for use in media/flash players may have + * different requirements for URL formats (e.g. some require that the + * extension be removed, some require the file name to be prefixed + * - mp4:, some require you to add "/cfx/st" into your URL). + * + * @param options [Object] The options to create a signed URL. + * @option options url [String] The URL to which the signature will grant + * access. Required. + * @option options expires [Number] A Unix UTC timestamp indicating when the + * signature should expire. Required unless you + * pass in a full policy. + * @option options policy [String] A CloudFront JSON policy. Required unless + * you pass in a url and an expiry time. + * + * @param cb [Function] if a callback is provided, this function will + * pass the URL as the second parameter (after the error parameter) to + * the callback function. + * + * @return [String] if called synchronously (with no callback), returns the + * signed URL. + * @return [null] nothing is returned if a callback is provided. + */ + getSignedUrl: function (options, cb) { + try { + var resource = getResource(options.url); + } catch (err) { + return handleError(err, cb); + } + + var parsedUrl = url.parse(options.url, true), + signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy') + ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey) + : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey); + + parsedUrl.search = null; + for (var key in signatureHash) { + if (Object.prototype.hasOwnProperty.call(signatureHash, key)) { + parsedUrl.query[key] = signatureHash[key]; + } + } + + try { + var signedUrl = determineScheme(options.url) === 'rtmp' + ? getRtmpUrl(url.format(parsedUrl)) + : url.format(parsedUrl); + } catch (err) { + return handleError(err, cb); + } + + return handleSuccess(signedUrl, cb); + } + }); + + module.exports = AWS.CloudFront.Signer; /***/ }), @@ -39213,24 +39216,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 83 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudhsm'] = {}; - AWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']); - Object.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', { - get: function get() { - var model = __webpack_require__(84); - model.paginators = __webpack_require__(85).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudHSM; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudhsm'] = {}; + AWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']); + Object.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', { + get: function get() { + var model = __webpack_require__(84); + model.paginators = __webpack_require__(85).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudHSM; /***/ }), @@ -39249,33 +39252,33 @@ return /******/ (function(modules) { // webpackBootstrap /* 86 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudsearch'] = {}; - AWS.CloudSearch = Service.defineService('cloudsearch', ['2011-02-01', '2013-01-01']); - Object.defineProperty(apiLoader.services['cloudsearch'], '2011-02-01', { - get: function get() { - var model = __webpack_require__(87); - model.paginators = __webpack_require__(88).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['cloudsearch'], '2013-01-01', { - get: function get() { - var model = __webpack_require__(89); - model.paginators = __webpack_require__(90).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudSearch; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudsearch'] = {}; + AWS.CloudSearch = Service.defineService('cloudsearch', ['2011-02-01', '2013-01-01']); + Object.defineProperty(apiLoader.services['cloudsearch'], '2011-02-01', { + get: function get() { + var model = __webpack_require__(87); + model.paginators = __webpack_require__(88).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['cloudsearch'], '2013-01-01', { + get: function get() { + var model = __webpack_require__(89); + model.paginators = __webpack_require__(90).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudSearch; /***/ }), @@ -39306,150 +39309,150 @@ return /******/ (function(modules) { // webpackBootstrap /* 91 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudsearchdomain'] = {}; - AWS.CloudSearchDomain = Service.defineService('cloudsearchdomain', ['2013-01-01']); - __webpack_require__(92); - Object.defineProperty(apiLoader.services['cloudsearchdomain'], '2013-01-01', { - get: function get() { - var model = __webpack_require__(93); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudSearchDomain; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudsearchdomain'] = {}; + AWS.CloudSearchDomain = Service.defineService('cloudsearchdomain', ['2013-01-01']); + __webpack_require__(92); + Object.defineProperty(apiLoader.services['cloudsearchdomain'], '2013-01-01', { + get: function get() { + var model = __webpack_require__(93); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudSearchDomain; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - /** - * Constructs a service interface object. Each API operation is exposed as a - * function on service. - * - * ### Sending a Request Using CloudSearchDomain - * - * ```javascript - * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); - * csd.search(params, function (err, data) { - * if (err) console.log(err, err.stack); // an error occurred - * else console.log(data); // successful response - * }); - * ``` - * - * ### Locking the API Version - * - * In order to ensure that the CloudSearchDomain object uses this specific API, - * you can construct the object by passing the `apiVersion` option to the - * constructor: - * - * ```javascript - * var csd = new AWS.CloudSearchDomain({ - * endpoint: 'my.host.tld', - * apiVersion: '2013-01-01' - * }); - * ``` - * - * You can also set the API version globally in `AWS.config.apiVersions` using - * the **cloudsearchdomain** service identifier: - * - * ```javascript - * AWS.config.apiVersions = { - * cloudsearchdomain: '2013-01-01', - * // other service API versions - * }; - * - * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); - * ``` - * - * @note You *must* provide an `endpoint` configuration parameter when - * constructing this service. See {constructor} for more information. - * - * @!method constructor(options = {}) - * Constructs a service object. This object has one method for each - * API operation. - * - * @example Constructing a CloudSearchDomain object - * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); - * @note You *must* provide an `endpoint` when constructing this service. - * @option (see AWS.Config.constructor) - * - * @service cloudsearchdomain - * @version 2013-01-01 - */ - AWS.util.update(AWS.CloudSearchDomain.prototype, { - /** - * @api private - */ - validateService: function validateService() { - if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { - var msg = 'AWS.CloudSearchDomain requires an explicit ' + - '`endpoint\' configuration option.'; - throw AWS.util.error(new Error(), - {name: 'InvalidEndpoint', message: msg}); - } - }, - - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.removeListener('validate', - AWS.EventListeners.Core.VALIDATE_CREDENTIALS - ); - request.onAsync('validate', this.validateCredentials); - request.addListener('validate', this.updateRegion); - if (request.operation === 'search') { - request.addListener('build', this.convertGetToPost); - } - }, - - /** - * @api private - */ - validateCredentials: function(req, done) { - if (!req.service.api.signatureVersion) return done(); // none - req.service.config.getCredentials(function(err) { - if (err) { - req.removeListener('sign', AWS.EventListeners.Core.SIGN); - } - done(); - }); - }, - - /** - * @api private - */ - convertGetToPost: function(request) { - var httpRequest = request.httpRequest - // convert queries to POST to avoid length restrictions - var path = httpRequest.path.split('?') - httpRequest.method = 'POST' - httpRequest.path = path[0] - httpRequest.body = path[1] - httpRequest.headers['Content-Length'] = httpRequest.body.length - httpRequest.headers['Content-Type'] = 'application/x-www-form-urlencoded' - }, - - /** - * @api private - */ - updateRegion: function updateRegion(request) { - var endpoint = request.httpRequest.endpoint.hostname; - var zones = endpoint.split('.'); - request.httpRequest.region = zones[1] || request.httpRequest.region; - } - - }); + var AWS = __webpack_require__(4); + + /** + * Constructs a service interface object. Each API operation is exposed as a + * function on service. + * + * ### Sending a Request Using CloudSearchDomain + * + * ```javascript + * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); + * csd.search(params, function (err, data) { + * if (err) console.log(err, err.stack); // an error occurred + * else console.log(data); // successful response + * }); + * ``` + * + * ### Locking the API Version + * + * In order to ensure that the CloudSearchDomain object uses this specific API, + * you can construct the object by passing the `apiVersion` option to the + * constructor: + * + * ```javascript + * var csd = new AWS.CloudSearchDomain({ + * endpoint: 'my.host.tld', + * apiVersion: '2013-01-01' + * }); + * ``` + * + * You can also set the API version globally in `AWS.config.apiVersions` using + * the **cloudsearchdomain** service identifier: + * + * ```javascript + * AWS.config.apiVersions = { + * cloudsearchdomain: '2013-01-01', + * // other service API versions + * }; + * + * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); + * ``` + * + * @note You *must* provide an `endpoint` configuration parameter when + * constructing this service. See {constructor} for more information. + * + * @!method constructor(options = {}) + * Constructs a service object. This object has one method for each + * API operation. + * + * @example Constructing a CloudSearchDomain object + * var csd = new AWS.CloudSearchDomain({endpoint: 'my.host.tld'}); + * @note You *must* provide an `endpoint` when constructing this service. + * @option (see AWS.Config.constructor) + * + * @service cloudsearchdomain + * @version 2013-01-01 + */ + AWS.util.update(AWS.CloudSearchDomain.prototype, { + /** + * @api private + */ + validateService: function validateService() { + if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { + var msg = 'AWS.CloudSearchDomain requires an explicit ' + + '`endpoint\' configuration option.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_CREDENTIALS + ); + request.onAsync('validate', this.validateCredentials); + request.addListener('validate', this.updateRegion); + if (request.operation === 'search') { + request.addListener('build', this.convertGetToPost); + } + }, + + /** + * @api private + */ + validateCredentials: function(req, done) { + if (!req.service.api.signatureVersion) return done(); // none + req.service.config.getCredentials(function(err) { + if (err) { + req.removeListener('sign', AWS.EventListeners.Core.SIGN); + } + done(); + }); + }, + + /** + * @api private + */ + convertGetToPost: function(request) { + var httpRequest = request.httpRequest + // convert queries to POST to avoid length restrictions + var path = httpRequest.path.split('?') + httpRequest.method = 'POST' + httpRequest.path = path[0] + httpRequest.body = path[1] + httpRequest.headers['Content-Length'] = httpRequest.body.length + httpRequest.headers['Content-Type'] = 'application/x-www-form-urlencoded' + }, + + /** + * @api private + */ + updateRegion: function updateRegion(request) { + var endpoint = request.httpRequest.endpoint.hostname; + var zones = endpoint.split('.'); + request.httpRequest.region = zones[1] || request.httpRequest.region; + } + + }); /***/ }), @@ -39462,24 +39465,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 94 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudtrail'] = {}; - AWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']); - Object.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', { - get: function get() { - var model = __webpack_require__(95); - model.paginators = __webpack_require__(96).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudTrail; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudtrail'] = {}; + AWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']); + Object.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', { + get: function get() { + var model = __webpack_require__(95); + model.paginators = __webpack_require__(96).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudTrail; /***/ }), @@ -39498,25 +39501,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 97 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudwatch'] = {}; - AWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']); - Object.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', { - get: function get() { - var model = __webpack_require__(98); - model.paginators = __webpack_require__(99).pagination; - model.waiters = __webpack_require__(100).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudWatch; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudwatch'] = {}; + AWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']); + Object.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', { + get: function get() { + var model = __webpack_require__(98); + model.paginators = __webpack_require__(99).pagination; + model.waiters = __webpack_require__(100).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudWatch; /***/ }), @@ -39541,24 +39544,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 101 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudwatchevents'] = {}; - AWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']); - Object.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', { - get: function get() { - var model = __webpack_require__(102); - model.paginators = __webpack_require__(103).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudWatchEvents; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudwatchevents'] = {}; + AWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']); + Object.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', { + get: function get() { + var model = __webpack_require__(102); + model.paginators = __webpack_require__(103).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudWatchEvents; /***/ }), @@ -39577,24 +39580,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 104 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudwatchlogs'] = {}; - AWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']); - Object.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', { - get: function get() { - var model = __webpack_require__(105); - model.paginators = __webpack_require__(106).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudWatchLogs; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudwatchlogs'] = {}; + AWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']); + Object.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', { + get: function get() { + var model = __webpack_require__(105); + model.paginators = __webpack_require__(106).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudWatchLogs; /***/ }), @@ -39613,24 +39616,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 107 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['codebuild'] = {}; - AWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']); - Object.defineProperty(apiLoader.services['codebuild'], '2016-10-06', { - get: function get() { - var model = __webpack_require__(108); - model.paginators = __webpack_require__(109).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CodeBuild; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['codebuild'] = {}; + AWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']); + Object.defineProperty(apiLoader.services['codebuild'], '2016-10-06', { + get: function get() { + var model = __webpack_require__(108); + model.paginators = __webpack_require__(109).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CodeBuild; /***/ }), @@ -39649,24 +39652,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 110 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['codecommit'] = {}; - AWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']); - Object.defineProperty(apiLoader.services['codecommit'], '2015-04-13', { - get: function get() { - var model = __webpack_require__(111); - model.paginators = __webpack_require__(112).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CodeCommit; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['codecommit'] = {}; + AWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']); + Object.defineProperty(apiLoader.services['codecommit'], '2015-04-13', { + get: function get() { + var model = __webpack_require__(111); + model.paginators = __webpack_require__(112).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CodeCommit; /***/ }), @@ -39685,25 +39688,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 113 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['codedeploy'] = {}; - AWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']); - Object.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', { - get: function get() { - var model = __webpack_require__(114); - model.paginators = __webpack_require__(115).pagination; - model.waiters = __webpack_require__(116).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CodeDeploy; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['codedeploy'] = {}; + AWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']); + Object.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', { + get: function get() { + var model = __webpack_require__(114); + model.paginators = __webpack_require__(115).pagination; + model.waiters = __webpack_require__(116).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CodeDeploy; /***/ }), @@ -39728,24 +39731,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 117 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['codepipeline'] = {}; - AWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']); - Object.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', { - get: function get() { - var model = __webpack_require__(118); - model.paginators = __webpack_require__(119).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CodePipeline; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['codepipeline'] = {}; + AWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']); + Object.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', { + get: function get() { + var model = __webpack_require__(118); + model.paginators = __webpack_require__(119).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CodePipeline; /***/ }), @@ -39764,24 +39767,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 120 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cognitoidentityserviceprovider'] = {}; - AWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']); - Object.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', { - get: function get() { - var model = __webpack_require__(121); - model.paginators = __webpack_require__(122).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CognitoIdentityServiceProvider; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cognitoidentityserviceprovider'] = {}; + AWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']); + Object.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', { + get: function get() { + var model = __webpack_require__(121); + model.paginators = __webpack_require__(122).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CognitoIdentityServiceProvider; /***/ }), @@ -39800,23 +39803,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 123 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cognitosync'] = {}; - AWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']); - Object.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', { - get: function get() { - var model = __webpack_require__(124); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CognitoSync; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cognitosync'] = {}; + AWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']); + Object.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', { + get: function get() { + var model = __webpack_require__(124); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CognitoSync; /***/ }), @@ -39829,24 +39832,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 125 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['configservice'] = {}; - AWS.ConfigService = Service.defineService('configservice', ['2014-11-12']); - Object.defineProperty(apiLoader.services['configservice'], '2014-11-12', { - get: function get() { - var model = __webpack_require__(126); - model.paginators = __webpack_require__(127).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ConfigService; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['configservice'] = {}; + AWS.ConfigService = Service.defineService('configservice', ['2014-11-12']); + Object.defineProperty(apiLoader.services['configservice'], '2014-11-12', { + get: function get() { + var model = __webpack_require__(126); + model.paginators = __webpack_require__(127).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ConfigService; /***/ }), @@ -39865,24 +39868,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 128 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cur'] = {}; - AWS.CUR = Service.defineService('cur', ['2017-01-06']); - Object.defineProperty(apiLoader.services['cur'], '2017-01-06', { - get: function get() { - var model = __webpack_require__(129); - model.paginators = __webpack_require__(130).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CUR; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cur'] = {}; + AWS.CUR = Service.defineService('cur', ['2017-01-06']); + Object.defineProperty(apiLoader.services['cur'], '2017-01-06', { + get: function get() { + var model = __webpack_require__(129); + model.paginators = __webpack_require__(130).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CUR; /***/ }), @@ -39901,24 +39904,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 131 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['datapipeline'] = {}; - AWS.DataPipeline = Service.defineService('datapipeline', ['2012-10-29']); - Object.defineProperty(apiLoader.services['datapipeline'], '2012-10-29', { - get: function get() { - var model = __webpack_require__(132); - model.paginators = __webpack_require__(133).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DataPipeline; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['datapipeline'] = {}; + AWS.DataPipeline = Service.defineService('datapipeline', ['2012-10-29']); + Object.defineProperty(apiLoader.services['datapipeline'], '2012-10-29', { + get: function get() { + var model = __webpack_require__(132); + model.paginators = __webpack_require__(133).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DataPipeline; /***/ }), @@ -39937,24 +39940,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 134 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['devicefarm'] = {}; - AWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']); - Object.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', { - get: function get() { - var model = __webpack_require__(135); - model.paginators = __webpack_require__(136).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DeviceFarm; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['devicefarm'] = {}; + AWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']); + Object.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', { + get: function get() { + var model = __webpack_require__(135); + model.paginators = __webpack_require__(136).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DeviceFarm; /***/ }), @@ -39973,24 +39976,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 137 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['directconnect'] = {}; - AWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']); - Object.defineProperty(apiLoader.services['directconnect'], '2012-10-25', { - get: function get() { - var model = __webpack_require__(138); - model.paginators = __webpack_require__(139).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DirectConnect; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['directconnect'] = {}; + AWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']); + Object.defineProperty(apiLoader.services['directconnect'], '2012-10-25', { + get: function get() { + var model = __webpack_require__(138); + model.paginators = __webpack_require__(139).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DirectConnect; /***/ }), @@ -40009,24 +40012,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 140 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['directoryservice'] = {}; - AWS.DirectoryService = Service.defineService('directoryservice', ['2015-04-16']); - Object.defineProperty(apiLoader.services['directoryservice'], '2015-04-16', { - get: function get() { - var model = __webpack_require__(141); - model.paginators = __webpack_require__(142).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DirectoryService; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['directoryservice'] = {}; + AWS.DirectoryService = Service.defineService('directoryservice', ['2015-04-16']); + Object.defineProperty(apiLoader.services['directoryservice'], '2015-04-16', { + get: function get() { + var model = __webpack_require__(141); + model.paginators = __webpack_require__(142).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DirectoryService; /***/ }), @@ -40045,24 +40048,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 143 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['discovery'] = {}; - AWS.Discovery = Service.defineService('discovery', ['2015-11-01']); - Object.defineProperty(apiLoader.services['discovery'], '2015-11-01', { - get: function get() { - var model = __webpack_require__(144); - model.paginators = __webpack_require__(145).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Discovery; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['discovery'] = {}; + AWS.Discovery = Service.defineService('discovery', ['2015-11-01']); + Object.defineProperty(apiLoader.services['discovery'], '2015-11-01', { + get: function get() { + var model = __webpack_require__(144); + model.paginators = __webpack_require__(145).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Discovery; /***/ }), @@ -40081,24 +40084,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 146 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['dms'] = {}; - AWS.DMS = Service.defineService('dms', ['2016-01-01']); - Object.defineProperty(apiLoader.services['dms'], '2016-01-01', { - get: function get() { - var model = __webpack_require__(147); - model.paginators = __webpack_require__(148).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DMS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['dms'] = {}; + AWS.DMS = Service.defineService('dms', ['2016-01-01']); + Object.defineProperty(apiLoader.services['dms'], '2016-01-01', { + get: function get() { + var model = __webpack_require__(147); + model.paginators = __webpack_require__(148).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DMS; /***/ }), @@ -40117,1174 +40120,1177 @@ return /******/ (function(modules) { // webpackBootstrap /* 149 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['dynamodb'] = {}; - AWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']); - __webpack_require__(150); - Object.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', { - get: function get() { - var model = __webpack_require__(157); - model.paginators = __webpack_require__(158).pagination; - model.waiters = __webpack_require__(159).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', { - get: function get() { - var model = __webpack_require__(160); - model.paginators = __webpack_require__(161).pagination; - model.waiters = __webpack_require__(162).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DynamoDB; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['dynamodb'] = {}; + AWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']); + __webpack_require__(150); + Object.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', { + get: function get() { + var model = __webpack_require__(157); + model.paginators = __webpack_require__(158).pagination; + model.waiters = __webpack_require__(159).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', { + get: function get() { + var model = __webpack_require__(160); + model.paginators = __webpack_require__(161).pagination; + model.waiters = __webpack_require__(162).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DynamoDB; /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - __webpack_require__(151); - - AWS.util.update(AWS.DynamoDB.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - if (request.service.config.dynamoDbCrc32) { - request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); - request.addListener('extractData', this.checkCrc32); - request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); - } - }, - - /** - * @api private - */ - checkCrc32: function checkCrc32(resp) { - if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) { - resp.data = null; - resp.error = AWS.util.error(new Error(), { - code: 'CRC32CheckFailed', - message: 'CRC32 integrity check failed', - retryable: true - }); - resp.request.haltHandlersOnError(); - throw (resp.error); - } - }, - - /** - * @api private - */ - crc32IsValid: function crc32IsValid(resp) { - var crc = resp.httpResponse.headers['x-amz-crc32']; - if (!crc) return true; // no (valid) CRC32 header - return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body); - }, - - /** - * @api private - */ - defaultRetryCount: 10, - - /** - * @api private - */ - retryDelays: function retryDelays(retryCount) { - var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions); - - if (typeof retryDelayOptions.base !== 'number') { - retryDelayOptions.base = 50; // default for dynamodb - } - var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions); - return delay; - } - }); + var AWS = __webpack_require__(4); + __webpack_require__(151); + + AWS.util.update(AWS.DynamoDB.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (request.service.config.dynamoDbCrc32) { + request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); + request.addListener('extractData', this.checkCrc32); + request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA); + } + }, + + /** + * @api private + */ + checkCrc32: function checkCrc32(resp) { + if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) { + resp.data = null; + resp.error = AWS.util.error(new Error(), { + code: 'CRC32CheckFailed', + message: 'CRC32 integrity check failed', + retryable: true + }); + resp.request.haltHandlersOnError(); + throw (resp.error); + } + }, + + /** + * @api private + */ + crc32IsValid: function crc32IsValid(resp) { + var crc = resp.httpResponse.headers['x-amz-crc32']; + if (!crc) return true; // no (valid) CRC32 header + return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body); + }, + + /** + * @api private + */ + defaultRetryCount: 10, + + /** + * @api private + */ + retryDelays: function retryDelays(retryCount) { + var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions); + + if (typeof retryDelayOptions.base !== 'number') { + retryDelayOptions.base = 50; // default for dynamodb + } + var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions); + return delay; + } + }); /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var Translator = __webpack_require__(152); - var DynamoDBSet = __webpack_require__(155); - - /** - * The document client simplifies working with items in Amazon DynamoDB - * by abstracting away the notion of attribute values. This abstraction - * annotates native JavaScript types supplied as input parameters, as well - * as converts annotated response data to native JavaScript types. - * - * ## Marshalling Input and Unmarshalling Response Data - * - * The document client affords developers the use of native JavaScript types - * instead of `AttributeValue`s to simplify the JavaScript development - * experience with Amazon DynamoDB. JavaScript objects passed in as parameters - * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB. - * Responses from DynamoDB are unmarshalled into plain JavaScript objects - * by the `DocumentClient`. The `DocumentClient`, does not accept - * `AttributeValue`s in favor of native JavaScript types. - * - * | JavaScript Type | DynamoDB AttributeValue | - * |:----------------------------------------------------------------------:|-------------------------| - * | String | S | - * | Number | N | - * | Boolean | BOOL | - * | null | NULL | - * | Array | L | - * | Object | M | - * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B | - * - * ## Support for Sets - * - * The `DocumentClient` offers a convenient way to create sets from - * JavaScript Arrays. The type of set is inferred from the first element - * in the array. DynamoDB supports string, number, and binary sets. To - * learn more about supported types see the - * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html) - * For more information see {AWS.DynamoDB.DocumentClient.createSet} - * - */ - AWS.DynamoDB.DocumentClient = AWS.util.inherit({ - - /** - * @api private - */ - operations: { - batchGetItem: 'batchGet', - batchWriteItem: 'batchWrite', - putItem: 'put', - getItem: 'get', - deleteItem: 'delete', - updateItem: 'update', - scan: 'scan', - query: 'query' - }, - - /** - * Creates a DynamoDB document client with a set of configuration options. - * - * @option options params [map] An optional map of parameters to bind to every - * request sent by this service object. - * @option options service [AWS.DynamoDB] An optional pre-configured instance - * of the AWS.DynamoDB service object to use for requests. The object may - * bound parameters used by the document client. - * @option options convertEmptyValues [Boolean] set to true if you would like - * the document client to convert empty values (0-length strings, binary - * buffers, and sets) to be converted to NULL types when persisting to - * DynamoDB. - * @see AWS.DynamoDB.constructor - * - */ - constructor: function DocumentClient(options) { - var self = this; - self.options = options || {}; - self.configure(self.options); - }, - - /** - * @api private - */ - configure: function configure(options) { - var self = this; - self.service = options.service; - self.bindServiceObject(options); - self.attrValue = options.attrValue = - self.service.api.operations.putItem.input.members.Item.value.shape; - }, - - /** - * @api private - */ - bindServiceObject: function bindServiceObject(options) { - var self = this; - options = options || {}; - - if (!self.service) { - self.service = new AWS.DynamoDB(options); - } else { - var config = AWS.util.copy(self.service.config); - self.service = new self.service.constructor.__super__(config); - self.service.config.params = - AWS.util.merge(self.service.config.params || {}, options.params); - } - }, - - /** - * Returns the attributes of one or more items from one or more tables - * by delegating to `AWS.DynamoDB.batchGetItem()`. - * - * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.batchGetItem - * @example Get items from multiple tables - * var params = { - * RequestItems: { - * 'Table-1': { - * Keys: [ - * { - * HashKey: 'haskey', - * NumberRangeKey: 1 - * } - * ] - * }, - * 'Table-2': { - * Keys: [ - * { foo: 'bar' }, - * ] - * } - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.batchGet(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - batchGet: function(params, callback) { - var self = this; - var request = self.service.batchGetItem(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Puts or deletes multiple items in one or more tables by delegating - * to `AWS.DynamoDB.batchWriteItem()`. - * - * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.batchWriteItem - * @example Write to and delete from a table - * var params = { - * RequestItems: { - * 'Table-1': [ - * { - * DeleteRequest: { - * Key: { HashKey: 'someKey' } - * } - * }, - * { - * PutRequest: { - * Item: { - * HashKey: 'anotherKey', - * NumAttribute: 1, - * BoolAttribute: true, - * ListAttribute: [1, 'two', false], - * MapAttribute: { foo: 'bar' } - * } - * } - * } - * ] - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.batchWrite(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - batchWrite: function(params, callback) { - var self = this; - var request = self.service.batchWriteItem(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Deletes a single item in a table by primary key by delegating to - * `AWS.DynamoDB.deleteItem()` - * - * Supply the same parameters as {AWS.DynamoDB.deleteItem} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.deleteItem - * @example Delete an item from a table - * var params = { - * TableName : 'Table', - * Key: { - * HashKey: 'hashkey', - * NumberRangeKey: 1 - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.delete(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - delete: function(params, callback) { - var self = this; - var request = self.service.deleteItem(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Returns a set of attributes for the item with the given primary key - * by delegating to `AWS.DynamoDB.getItem()`. - * - * Supply the same parameters as {AWS.DynamoDB.getItem} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.getItem - * @example Get an item from a table - * var params = { - * TableName : 'Table', - * Key: { - * HashKey: 'hashkey' - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.get(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - get: function(params, callback) { - var self = this; - var request = self.service.getItem(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Creates a new item, or replaces an old item with a new item by - * delegating to `AWS.DynamoDB.putItem()`. - * - * Supply the same parameters as {AWS.DynamoDB.putItem} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.putItem - * @example Create a new item in a table - * var params = { - * TableName : 'Table', - * Item: { - * HashKey: 'haskey', - * NumAttribute: 1, - * BoolAttribute: true, - * ListAttribute: [1, 'two', false], - * MapAttribute: { foo: 'bar'}, - * NullAttribute: null - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.put(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - put: function put(params, callback) { - var self = this; - var request = self.service.putItem(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Edits an existing item's attributes, or adds a new item to the table if - * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`. - * - * Supply the same parameters as {AWS.DynamoDB.updateItem} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.updateItem - * @example Update an item with expressions - * var params = { - * TableName: 'Table', - * Key: { HashKey : 'hashkey' }, - * UpdateExpression: 'set #a = :x + :y', - * ConditionExpression: '#a < :MAX', - * ExpressionAttributeNames: {'#a' : 'Sum'}, - * ExpressionAttributeValues: { - * ':x' : 20, - * ':y' : 45, - * ':MAX' : 100, - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.update(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - update: function(params, callback) { - var self = this; - var request = self.service.updateItem(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Returns one or more items and item attributes by accessing every item - * in a table or a secondary index. - * - * Supply the same parameters as {AWS.DynamoDB.scan} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.scan - * @example Scan the table with a filter expression - * var params = { - * TableName : 'Table', - * FilterExpression : 'Year = :this_year', - * ExpressionAttributeValues : {':this_year' : 2015} - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.scan(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - scan: function(params, callback) { - var self = this; - var request = self.service.scan(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Directly access items from a table by primary key or a secondary index. - * - * Supply the same parameters as {AWS.DynamoDB.query} with - * `AttributeValue`s substituted by native JavaScript types. - * - * @see AWS.DynamoDB.query - * @example Query an index - * var params = { - * TableName: 'Table', - * IndexName: 'Index', - * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey', - * ExpressionAttributeValues: { - * ':hkey': 'key', - * ':rkey': 2015 - * } - * }; - * - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * documentClient.query(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - query: function(params, callback) { - var self = this; - var request = self.service.query(params); - self.setupRequest(request); - self.setupResponse(request); - if (typeof callback === 'function') { - request.send(callback); - } - return request; - }, - - /** - * Creates a set of elements inferring the type of set from - * the type of the first element. Amazon DynamoDB currently supports - * the number sets, string sets, and binary sets. For more information - * about DynamoDB data types see the documentation on the - * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes). - * - * @param list [Array] Collection to represent your DynamoDB Set - * @param options [map] - * * **validate** [Boolean] set to true if you want to validate the type - * of each element in the set. Defaults to `false`. - * @example Creating a number set - * var documentClient = new AWS.DynamoDB.DocumentClient(); - * - * var params = { - * Item: { - * hashkey: 'hashkey' - * numbers: documentClient.createSet([1, 2, 3]); - * } - * }; - * - * documentClient.put(params, function(err, data) { - * if (err) console.log(err); - * else console.log(data); - * }); - * - */ - createSet: function(list, options) { - options = options || {}; - return new DynamoDBSet(list, options); - }, - - /** - * @api private - */ - getTranslator: function() { - return new Translator(this.options); - }, - - /** - * @api private - */ - setupRequest: function setupRequest(request) { - var self = this; - var translator = self.getTranslator(); - var operation = request.operation; - var inputShape = request.service.api.operations[operation].input; - request._events.validate.unshift(function(req) { - req.rawParams = AWS.util.copy(req.params); - req.params = translator.translateInput(req.rawParams, inputShape); - }); - }, - - /** - * @api private - */ - setupResponse: function setupResponse(request) { - var self = this; - var translator = self.getTranslator(); - var outputShape = self.service.api.operations[request.operation].output; - request.on('extractData', function(response) { - response.data = translator.translateOutput(response.data, outputShape); - }); - - var response = request.response; - response.nextPage = function(cb) { - var resp = this; - var req = resp.request; - var config; - var service = req.service; - var operation = req.operation; - try { - config = service.paginationConfig(operation, true); - } catch (e) { resp.error = e; } - - if (!resp.hasNextPage()) { - if (cb) cb(resp.error, null); - else if (resp.error) throw resp.error; - return null; - } - - var params = AWS.util.copy(req.rawParams); - if (!resp.nextPageTokens) { - return cb ? cb(null, null) : null; - } else { - var inputTokens = config.inputToken; - if (typeof inputTokens === 'string') inputTokens = [inputTokens]; - for (var i = 0; i < inputTokens.length; i++) { - params[inputTokens[i]] = resp.nextPageTokens[i]; - } - return self[operation](params, cb); - } - }; - } - - }); - - module.exports = AWS.DynamoDB.DocumentClient; + var AWS = __webpack_require__(4); + var Translator = __webpack_require__(152); + var DynamoDBSet = __webpack_require__(155); + + /** + * The document client simplifies working with items in Amazon DynamoDB + * by abstracting away the notion of attribute values. This abstraction + * annotates native JavaScript types supplied as input parameters, as well + * as converts annotated response data to native JavaScript types. + * + * ## Marshalling Input and Unmarshalling Response Data + * + * The document client affords developers the use of native JavaScript types + * instead of `AttributeValue`s to simplify the JavaScript development + * experience with Amazon DynamoDB. JavaScript objects passed in as parameters + * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB. + * Responses from DynamoDB are unmarshalled into plain JavaScript objects + * by the `DocumentClient`. The `DocumentClient`, does not accept + * `AttributeValue`s in favor of native JavaScript types. + * + * | JavaScript Type | DynamoDB AttributeValue | + * |:----------------------------------------------------------------------:|-------------------------| + * | String | S | + * | Number | N | + * | Boolean | BOOL | + * | null | NULL | + * | Array | L | + * | Object | M | + * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B | + * + * ## Support for Sets + * + * The `DocumentClient` offers a convenient way to create sets from + * JavaScript Arrays. The type of set is inferred from the first element + * in the array. DynamoDB supports string, number, and binary sets. To + * learn more about supported types see the + * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html) + * For more information see {AWS.DynamoDB.DocumentClient.createSet} + * + */ + AWS.DynamoDB.DocumentClient = AWS.util.inherit({ + + /** + * @api private + */ + operations: { + batchGetItem: 'batchGet', + batchWriteItem: 'batchWrite', + putItem: 'put', + getItem: 'get', + deleteItem: 'delete', + updateItem: 'update', + scan: 'scan', + query: 'query' + }, + + /** + * Creates a DynamoDB document client with a set of configuration options. + * + * @option options params [map] An optional map of parameters to bind to every + * request sent by this service object. + * @option options service [AWS.DynamoDB] An optional pre-configured instance + * of the AWS.DynamoDB service object to use for requests. The object may + * bound parameters used by the document client. + * @option options convertEmptyValues [Boolean] set to true if you would like + * the document client to convert empty values (0-length strings, binary + * buffers, and sets) to be converted to NULL types when persisting to + * DynamoDB. + * @see AWS.DynamoDB.constructor + * + */ + constructor: function DocumentClient(options) { + var self = this; + self.options = options || {}; + self.configure(self.options); + }, + + /** + * @api private + */ + configure: function configure(options) { + var self = this; + self.service = options.service; + self.bindServiceObject(options); + self.attrValue = options.attrValue = + self.service.api.operations.putItem.input.members.Item.value.shape; + }, + + /** + * @api private + */ + bindServiceObject: function bindServiceObject(options) { + var self = this; + options = options || {}; + + if (!self.service) { + self.service = new AWS.DynamoDB(options); + } else { + var config = AWS.util.copy(self.service.config); + self.service = new self.service.constructor.__super__(config); + self.service.config.params = + AWS.util.merge(self.service.config.params || {}, options.params); + } + }, + + /** + * Returns the attributes of one or more items from one or more tables + * by delegating to `AWS.DynamoDB.batchGetItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.batchGetItem + * @example Get items from multiple tables + * var params = { + * RequestItems: { + * 'Table-1': { + * Keys: [ + * { + * HashKey: 'haskey', + * NumberRangeKey: 1 + * } + * ] + * }, + * 'Table-2': { + * Keys: [ + * { foo: 'bar' }, + * ] + * } + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.batchGet(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + batchGet: function(params, callback) { + var self = this; + var request = self.service.batchGetItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Puts or deletes multiple items in one or more tables by delegating + * to `AWS.DynamoDB.batchWriteItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.batchWriteItem + * @example Write to and delete from a table + * var params = { + * RequestItems: { + * 'Table-1': [ + * { + * DeleteRequest: { + * Key: { HashKey: 'someKey' } + * } + * }, + * { + * PutRequest: { + * Item: { + * HashKey: 'anotherKey', + * NumAttribute: 1, + * BoolAttribute: true, + * ListAttribute: [1, 'two', false], + * MapAttribute: { foo: 'bar' } + * } + * } + * } + * ] + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.batchWrite(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + batchWrite: function(params, callback) { + var self = this; + var request = self.service.batchWriteItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Deletes a single item in a table by primary key by delegating to + * `AWS.DynamoDB.deleteItem()` + * + * Supply the same parameters as {AWS.DynamoDB.deleteItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.deleteItem + * @example Delete an item from a table + * var params = { + * TableName : 'Table', + * Key: { + * HashKey: 'hashkey', + * NumberRangeKey: 1 + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.delete(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + delete: function(params, callback) { + var self = this; + var request = self.service.deleteItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Returns a set of attributes for the item with the given primary key + * by delegating to `AWS.DynamoDB.getItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.getItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.getItem + * @example Get an item from a table + * var params = { + * TableName : 'Table', + * Key: { + * HashKey: 'hashkey' + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.get(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + get: function(params, callback) { + var self = this; + var request = self.service.getItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Creates a new item, or replaces an old item with a new item by + * delegating to `AWS.DynamoDB.putItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.putItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.putItem + * @example Create a new item in a table + * var params = { + * TableName : 'Table', + * Item: { + * HashKey: 'haskey', + * NumAttribute: 1, + * BoolAttribute: true, + * ListAttribute: [1, 'two', false], + * MapAttribute: { foo: 'bar'}, + * NullAttribute: null + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.put(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + put: function put(params, callback) { + var self = this; + var request = self.service.putItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Edits an existing item's attributes, or adds a new item to the table if + * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`. + * + * Supply the same parameters as {AWS.DynamoDB.updateItem} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.updateItem + * @example Update an item with expressions + * var params = { + * TableName: 'Table', + * Key: { HashKey : 'hashkey' }, + * UpdateExpression: 'set #a = :x + :y', + * ConditionExpression: '#a < :MAX', + * ExpressionAttributeNames: {'#a' : 'Sum'}, + * ExpressionAttributeValues: { + * ':x' : 20, + * ':y' : 45, + * ':MAX' : 100, + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.update(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + update: function(params, callback) { + var self = this; + var request = self.service.updateItem(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Returns one or more items and item attributes by accessing every item + * in a table or a secondary index. + * + * Supply the same parameters as {AWS.DynamoDB.scan} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.scan + * @example Scan the table with a filter expression + * var params = { + * TableName : 'Table', + * FilterExpression : 'Year = :this_year', + * ExpressionAttributeValues : {':this_year' : 2015} + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.scan(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + scan: function(params, callback) { + var self = this; + var request = self.service.scan(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Directly access items from a table by primary key or a secondary index. + * + * Supply the same parameters as {AWS.DynamoDB.query} with + * `AttributeValue`s substituted by native JavaScript types. + * + * @see AWS.DynamoDB.query + * @example Query an index + * var params = { + * TableName: 'Table', + * IndexName: 'Index', + * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey', + * ExpressionAttributeValues: { + * ':hkey': 'key', + * ':rkey': 2015 + * } + * }; + * + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * documentClient.query(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + query: function(params, callback) { + var self = this; + var request = self.service.query(params); + self.setupRequest(request); + self.setupResponse(request); + if (typeof callback === 'function') { + request.send(callback); + } + return request; + }, + + /** + * Creates a set of elements inferring the type of set from + * the type of the first element. Amazon DynamoDB currently supports + * the number sets, string sets, and binary sets. For more information + * about DynamoDB data types see the documentation on the + * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes). + * + * @param list [Array] Collection to represent your DynamoDB Set + * @param options [map] + * * **validate** [Boolean] set to true if you want to validate the type + * of each element in the set. Defaults to `false`. + * @example Creating a number set + * var documentClient = new AWS.DynamoDB.DocumentClient(); + * + * var params = { + * Item: { + * hashkey: 'hashkey' + * numbers: documentClient.createSet([1, 2, 3]); + * } + * }; + * + * documentClient.put(params, function(err, data) { + * if (err) console.log(err); + * else console.log(data); + * }); + * + */ + createSet: function(list, options) { + options = options || {}; + return new DynamoDBSet(list, options); + }, + + /** + * @api private + */ + getTranslator: function() { + return new Translator(this.options); + }, + + /** + * @api private + */ + setupRequest: function setupRequest(request) { + var self = this; + var translator = self.getTranslator(); + var operation = request.operation; + var inputShape = request.service.api.operations[operation].input; + request._events.validate.unshift(function(req) { + req.rawParams = AWS.util.copy(req.params); + req.params = translator.translateInput(req.rawParams, inputShape); + }); + }, + + /** + * @api private + */ + setupResponse: function setupResponse(request) { + var self = this; + var translator = self.getTranslator(); + var outputShape = self.service.api.operations[request.operation].output; + request.on('extractData', function(response) { + response.data = translator.translateOutput(response.data, outputShape); + }); + + var response = request.response; + response.nextPage = function(cb) { + var resp = this; + var req = resp.request; + var config; + var service = req.service; + var operation = req.operation; + try { + config = service.paginationConfig(operation, true); + } catch (e) { resp.error = e; } + + if (!resp.hasNextPage()) { + if (cb) cb(resp.error, null); + else if (resp.error) throw resp.error; + return null; + } + + var params = AWS.util.copy(req.rawParams); + if (!resp.nextPageTokens) { + return cb ? cb(null, null) : null; + } else { + var inputTokens = config.inputToken; + if (typeof inputTokens === 'string') inputTokens = [inputTokens]; + for (var i = 0; i < inputTokens.length; i++) { + params[inputTokens[i]] = resp.nextPageTokens[i]; + } + return self[operation](params, cb); + } + }; + } + + }); + + module.exports = AWS.DynamoDB.DocumentClient; /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(4).util; - var convert = __webpack_require__(153); - - var Translator = function(options) { - options = options || {}; - this.attrValue = options.attrValue; - this.convertEmptyValues = Boolean(options.convertEmptyValues); - this.wrapNumbers = Boolean(options.wrapNumbers); - }; - - Translator.prototype.translateInput = function(value, shape) { - this.mode = 'input'; - return this.translate(value, shape); - }; - - Translator.prototype.translateOutput = function(value, shape) { - this.mode = 'output'; - return this.translate(value, shape); - }; - - Translator.prototype.translate = function(value, shape) { - var self = this; - if (!shape || value === undefined) return undefined; - - if (shape.shape === self.attrValue) { - return convert[self.mode](value, { - convertEmptyValues: self.convertEmptyValues, - wrapNumbers: self.wrapNumbers, - }); - } - switch (shape.type) { - case 'structure': return self.translateStructure(value, shape); - case 'map': return self.translateMap(value, shape); - case 'list': return self.translateList(value, shape); - default: return self.translateScalar(value, shape); - } - }; - - Translator.prototype.translateStructure = function(structure, shape) { - var self = this; - if (structure == null) return undefined; - - var struct = {}; - util.each(structure, function(name, value) { - var memberShape = shape.members[name]; - if (memberShape) { - var result = self.translate(value, memberShape); - if (result !== undefined) struct[name] = result; - } - }); - return struct; - }; - - Translator.prototype.translateList = function(list, shape) { - var self = this; - if (list == null) return undefined; - - var out = []; - util.arrayEach(list, function(value) { - var result = self.translate(value, shape.member); - if (result === undefined) out.push(null); - else out.push(result); - }); - return out; - }; - - Translator.prototype.translateMap = function(map, shape) { - var self = this; - if (map == null) return undefined; - - var out = {}; - util.each(map, function(key, value) { - var result = self.translate(value, shape.value); - if (result === undefined) out[key] = null; - else out[key] = result; - }); - return out; - }; - - Translator.prototype.translateScalar = function(value, shape) { - return shape.toType(value); - }; - - module.exports = Translator; + var util = __webpack_require__(4).util; + var convert = __webpack_require__(153); + + var Translator = function(options) { + options = options || {}; + this.attrValue = options.attrValue; + this.convertEmptyValues = Boolean(options.convertEmptyValues); + this.wrapNumbers = Boolean(options.wrapNumbers); + }; + + Translator.prototype.translateInput = function(value, shape) { + this.mode = 'input'; + return this.translate(value, shape); + }; + + Translator.prototype.translateOutput = function(value, shape) { + this.mode = 'output'; + return this.translate(value, shape); + }; + + Translator.prototype.translate = function(value, shape) { + var self = this; + if (!shape || value === undefined) return undefined; + + if (shape.shape === self.attrValue) { + return convert[self.mode](value, { + convertEmptyValues: self.convertEmptyValues, + wrapNumbers: self.wrapNumbers, + }); + } + switch (shape.type) { + case 'structure': return self.translateStructure(value, shape); + case 'map': return self.translateMap(value, shape); + case 'list': return self.translateList(value, shape); + default: return self.translateScalar(value, shape); + } + }; + + Translator.prototype.translateStructure = function(structure, shape) { + var self = this; + if (structure == null) return undefined; + + var struct = {}; + util.each(structure, function(name, value) { + var memberShape = shape.members[name]; + if (memberShape) { + var result = self.translate(value, memberShape); + if (result !== undefined) struct[name] = result; + } + }); + return struct; + }; + + Translator.prototype.translateList = function(list, shape) { + var self = this; + if (list == null) return undefined; + + var out = []; + util.arrayEach(list, function(value) { + var result = self.translate(value, shape.member); + if (result === undefined) out.push(null); + else out.push(result); + }); + return out; + }; + + Translator.prototype.translateMap = function(map, shape) { + var self = this; + if (map == null) return undefined; + + var out = {}; + util.each(map, function(key, value) { + var result = self.translate(value, shape.value); + if (result === undefined) out[key] = null; + else out[key] = result; + }); + return out; + }; + + Translator.prototype.translateScalar = function(value, shape) { + return shape.toType(value); + }; + + module.exports = Translator; /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var util = AWS.util; - var typeOf = __webpack_require__(154).typeOf; - var DynamoDBSet = __webpack_require__(155); - var NumberValue = __webpack_require__(156); - - AWS.DynamoDB.Converter = { - /** - * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type - * - * @param data [any] The data to convert to a DynamoDB AttributeValue - * @param options [map] - * @option options convertEmptyValues [Boolean] Whether to automatically - * convert empty strings, blobs, - * and sets to `null` - * @option options wrapNumbers [Boolean] Whether to return numbers as a - * NumberValue object instead of - * converting them to native JavaScript - * numbers. This allows for the safe - * round-trip transport of numbers of - * arbitrary size. - * @return [map] An object in the Amazon DynamoDB AttributeValue format - * - * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to - * convert entire records (rather than individual attributes) - */ - input: function convertInput(data, options) { - options = options || {}; - var type = typeOf(data); - if (type === 'Object') { - return formatMap(data, options); - } else if (type === 'Array') { - return formatList(data, options); - } else if (type === 'Set') { - return formatSet(data, options); - } else if (type === 'String') { - if (data.length === 0 && options.convertEmptyValues) { - return convertInput(null); - } - return { S: data }; - } else if (type === 'Number' || type === 'NumberValue') { - return { N: data.toString() }; - } else if (type === 'Binary') { - if (data.length === 0 && options.convertEmptyValues) { - return convertInput(null); - } - return { B: data }; - } else if (type === 'Boolean') { - return { BOOL: data }; - } else if (type === 'null') { - return { NULL: true }; - } else if (type !== 'undefined' && type !== 'Function') { - // this value has a custom constructor - return formatMap(data, options); - } - }, - - /** - * Convert a JavaScript object into a DynamoDB record. - * - * @param data [any] The data to convert to a DynamoDB record - * @param options [map] - * @option options convertEmptyValues [Boolean] Whether to automatically - * convert empty strings, blobs, - * and sets to `null` - * @option options wrapNumbers [Boolean] Whether to return numbers as a - * NumberValue object instead of - * converting them to native JavaScript - * numbers. This allows for the safe - * round-trip transport of numbers of - * arbitrary size. - * - * @return [map] An object in the DynamoDB record format. - * - * @example Convert a JavaScript object into a DynamoDB record - * var marshalled = AWS.DynamoDB.Converter.marshall({ - * string: 'foo', - * list: ['fizz', 'buzz', 'pop'], - * map: { - * nestedMap: { - * key: 'value', - * } - * }, - * number: 123, - * nullValue: null, - * boolValue: true, - * stringSet: new DynamoDBSet(['foo', 'bar', 'baz']) - * }); - */ - marshall: function marshallItem(data, options) { - return AWS.DynamoDB.Converter.input(data, options).M; - }, - - /** - * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type. - * - * @param data [map] An object in the Amazon DynamoDB AttributeValue format - * @param options [map] - * @option options convertEmptyValues [Boolean] Whether to automatically - * convert empty strings, blobs, - * and sets to `null` - * @option options wrapNumbers [Boolean] Whether to return numbers as a - * NumberValue object instead of - * converting them to native JavaScript - * numbers. This allows for the safe - * round-trip transport of numbers of - * arbitrary size. - * - * @return [Object|Array|String|Number|Boolean|null] - * - * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to - * convert entire records (rather than individual attributes) - */ - output: function convertOutput(data, options) { - options = options || {}; - var list, map, i; - for (var type in data) { - var values = data[type]; - if (type === 'M') { - map = {}; - for (var key in values) { - map[key] = convertOutput(values[key], options); - } - return map; - } else if (type === 'L') { - list = []; - for (i = 0; i < values.length; i++) { - list.push(convertOutput(values[i], options)); - } - return list; - } else if (type === 'SS') { - list = []; - for (i = 0; i < values.length; i++) { - list.push(values[i] + ''); - } - return new DynamoDBSet(list); - } else if (type === 'NS') { - list = []; - for (i = 0; i < values.length; i++) { - list.push(convertNumber(values[i], options.wrapNumbers)); - } - return new DynamoDBSet(list); - } else if (type === 'BS') { - list = []; - for (i = 0; i < values.length; i++) { - list.push(new util.Buffer(values[i])); - } - return new DynamoDBSet(list); - } else if (type === 'S') { - return values + ''; - } else if (type === 'N') { - return convertNumber(values, options.wrapNumbers); - } else if (type === 'B') { - return new util.Buffer(values); - } else if (type === 'BOOL') { - return (values === 'true' || values === 'TRUE' || values === true); - } else if (type === 'NULL') { - return null; - } - } - }, - - /** - * Convert a DynamoDB record into a JavaScript object. - * - * @param data [any] The DynamoDB record - * @param options [map] - * @option options convertEmptyValues [Boolean] Whether to automatically - * convert empty strings, blobs, - * and sets to `null` - * @option options wrapNumbers [Boolean] Whether to return numbers as a - * NumberValue object instead of - * converting them to native JavaScript - * numbers. This allows for the safe - * round-trip transport of numbers of - * arbitrary size. - * - * @return [map] An object whose properties have been converted from - * DynamoDB's AttributeValue format into their corresponding native - * JavaScript types. - * - * @example Convert a record received from a DynamoDB stream - * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({ - * string: {S: 'foo'}, - * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]}, - * map: { - * M: { - * nestedMap: { - * M: { - * key: {S: 'value'} - * } - * } - * } - * }, - * number: {N: '123'}, - * nullValue: {NULL: true}, - * boolValue: {BOOL: true} - * }); - */ - unmarshall: function unmarshall(data, options) { - return AWS.DynamoDB.Converter.output({M: data}, options); - } - }; - - /** - * @api private - * @param data [Array] - * @param options [map] - */ - function formatList(data, options) { - var list = {L: []}; - for (var i = 0; i < data.length; i++) { - list['L'].push(AWS.DynamoDB.Converter.input(data[i], options)); - } - return list; - } - - /** - * @api private - * @param value [String] - * @param wrapNumbers [Boolean] - */ - function convertNumber(value, wrapNumbers) { - return wrapNumbers ? new NumberValue(value) : Number(value); - } - - /** - * @api private - * @param data [map] - * @param options [map] - */ - function formatMap(data, options) { - var map = {M: {}}; - for (var key in data) { - var formatted = AWS.DynamoDB.Converter.input(data[key], options); - if (formatted !== void 0) { - map['M'][key] = formatted; - } - } - return map; - } - - /** - * @api private - */ - function formatSet(data, options) { - options = options || {}; - var values = data.values; - if (options.convertEmptyValues) { - values = filterEmptySetValues(data); - if (values.length === 0) { - return AWS.DynamoDB.Converter.input(null); - } - } - - var map = {}; - switch (data.type) { - case 'String': map['SS'] = values; break; - case 'Binary': map['BS'] = values; break; - case 'Number': map['NS'] = values.map(function (value) { - return value.toString(); - }); - } - return map; - } - - /** - * @api private - */ - function filterEmptySetValues(set) { - var nonEmptyValues = []; - var potentiallyEmptyTypes = { - String: true, - Binary: true, - Number: false - }; - if (potentiallyEmptyTypes[set.type]) { - for (var i = 0; i < set.values.length; i++) { - if (set.values[i].length === 0) { - continue; - } - nonEmptyValues.push(set.values[i]); - } - - return nonEmptyValues; - } - - return set.values; - } - - module.exports = AWS.DynamoDB.Converter; + var AWS = __webpack_require__(4); + var util = AWS.util; + var typeOf = __webpack_require__(154).typeOf; + var DynamoDBSet = __webpack_require__(155); + var NumberValue = __webpack_require__(156); + + AWS.DynamoDB.Converter = { + /** + * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type + * + * @param data [any] The data to convert to a DynamoDB AttributeValue + * @param options [map] + * @option options convertEmptyValues [Boolean] Whether to automatically + * convert empty strings, blobs, + * and sets to `null` + * @option options wrapNumbers [Boolean] Whether to return numbers as a + * NumberValue object instead of + * converting them to native JavaScript + * numbers. This allows for the safe + * round-trip transport of numbers of + * arbitrary size. + * @return [map] An object in the Amazon DynamoDB AttributeValue format + * + * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to + * convert entire records (rather than individual attributes) + */ + input: function convertInput(data, options) { + options = options || {}; + var type = typeOf(data); + if (type === 'Object') { + return formatMap(data, options); + } else if (type === 'Array') { + return formatList(data, options); + } else if (type === 'Set') { + return formatSet(data, options); + } else if (type === 'String') { + if (data.length === 0 && options.convertEmptyValues) { + return convertInput(null); + } + return { S: data }; + } else if (type === 'Number' || type === 'NumberValue') { + return { N: data.toString() }; + } else if (type === 'Binary') { + if (data.length === 0 && options.convertEmptyValues) { + return convertInput(null); + } + return { B: data }; + } else if (type === 'Boolean') { + return { BOOL: data }; + } else if (type === 'null') { + return { NULL: true }; + } else if (type !== 'undefined' && type !== 'Function') { + // this value has a custom constructor + return formatMap(data, options); + } + }, + + /** + * Convert a JavaScript object into a DynamoDB record. + * + * @param data [any] The data to convert to a DynamoDB record + * @param options [map] + * @option options convertEmptyValues [Boolean] Whether to automatically + * convert empty strings, blobs, + * and sets to `null` + * @option options wrapNumbers [Boolean] Whether to return numbers as a + * NumberValue object instead of + * converting them to native JavaScript + * numbers. This allows for the safe + * round-trip transport of numbers of + * arbitrary size. + * + * @return [map] An object in the DynamoDB record format. + * + * @example Convert a JavaScript object into a DynamoDB record + * var marshalled = AWS.DynamoDB.Converter.marshall({ + * string: 'foo', + * list: ['fizz', 'buzz', 'pop'], + * map: { + * nestedMap: { + * key: 'value', + * } + * }, + * number: 123, + * nullValue: null, + * boolValue: true, + * stringSet: new DynamoDBSet(['foo', 'bar', 'baz']) + * }); + */ + marshall: function marshallItem(data, options) { + return AWS.DynamoDB.Converter.input(data, options).M; + }, + + /** + * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type. + * + * @param data [map] An object in the Amazon DynamoDB AttributeValue format + * @param options [map] + * @option options convertEmptyValues [Boolean] Whether to automatically + * convert empty strings, blobs, + * and sets to `null` + * @option options wrapNumbers [Boolean] Whether to return numbers as a + * NumberValue object instead of + * converting them to native JavaScript + * numbers. This allows for the safe + * round-trip transport of numbers of + * arbitrary size. + * + * @return [Object|Array|String|Number|Boolean|null] + * + * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to + * convert entire records (rather than individual attributes) + */ + output: function convertOutput(data, options) { + options = options || {}; + var list, map, i; + for (var type in data) { + var values = data[type]; + if (type === 'M') { + map = {}; + for (var key in values) { + map[key] = convertOutput(values[key], options); + } + return map; + } else if (type === 'L') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(convertOutput(values[i], options)); + } + return list; + } else if (type === 'SS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(values[i] + ''); + } + return new DynamoDBSet(list); + } else if (type === 'NS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(convertNumber(values[i], options.wrapNumbers)); + } + return new DynamoDBSet(list); + } else if (type === 'BS') { + list = []; + for (i = 0; i < values.length; i++) { + list.push(new util.Buffer(values[i])); + } + return new DynamoDBSet(list); + } else if (type === 'S') { + return values + ''; + } else if (type === 'N') { + return convertNumber(values, options.wrapNumbers); + } else if (type === 'B') { + return new util.Buffer(values); + } else if (type === 'BOOL') { + return (values === 'true' || values === 'TRUE' || values === true); + } else if (type === 'NULL') { + return null; + } + } + }, + + /** + * Convert a DynamoDB record into a JavaScript object. + * + * @param data [any] The DynamoDB record + * @param options [map] + * @option options convertEmptyValues [Boolean] Whether to automatically + * convert empty strings, blobs, + * and sets to `null` + * @option options wrapNumbers [Boolean] Whether to return numbers as a + * NumberValue object instead of + * converting them to native JavaScript + * numbers. This allows for the safe + * round-trip transport of numbers of + * arbitrary size. + * + * @return [map] An object whose properties have been converted from + * DynamoDB's AttributeValue format into their corresponding native + * JavaScript types. + * + * @example Convert a record received from a DynamoDB stream + * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({ + * string: {S: 'foo'}, + * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]}, + * map: { + * M: { + * nestedMap: { + * M: { + * key: {S: 'value'} + * } + * } + * } + * }, + * number: {N: '123'}, + * nullValue: {NULL: true}, + * boolValue: {BOOL: true} + * }); + */ + unmarshall: function unmarshall(data, options) { + return AWS.DynamoDB.Converter.output({M: data}, options); + } + }; + + /** + * @api private + * @param data [Array] + * @param options [map] + */ + function formatList(data, options) { + var list = {L: []}; + for (var i = 0; i < data.length; i++) { + list['L'].push(AWS.DynamoDB.Converter.input(data[i], options)); + } + return list; + } + + /** + * @api private + * @param value [String] + * @param wrapNumbers [Boolean] + */ + function convertNumber(value, wrapNumbers) { + return wrapNumbers ? new NumberValue(value) : Number(value); + } + + /** + * @api private + * @param data [map] + * @param options [map] + */ + function formatMap(data, options) { + var map = {M: {}}; + for (var key in data) { + var formatted = AWS.DynamoDB.Converter.input(data[key], options); + if (formatted !== void 0) { + map['M'][key] = formatted; + } + } + return map; + } + + /** + * @api private + */ + function formatSet(data, options) { + options = options || {}; + var values = data.values; + if (options.convertEmptyValues) { + values = filterEmptySetValues(data); + if (values.length === 0) { + return AWS.DynamoDB.Converter.input(null); + } + } + + var map = {}; + switch (data.type) { + case 'String': map['SS'] = values; break; + case 'Binary': map['BS'] = values; break; + case 'Number': map['NS'] = values.map(function (value) { + return value.toString(); + }); + } + return map; + } + + /** + * @api private + */ + function filterEmptySetValues(set) { + var nonEmptyValues = []; + var potentiallyEmptyTypes = { + String: true, + Binary: true, + Number: false + }; + if (potentiallyEmptyTypes[set.type]) { + for (var i = 0; i < set.values.length; i++) { + if (set.values[i].length === 0) { + continue; + } + nonEmptyValues.push(set.values[i]); + } + + return nonEmptyValues; + } + + return set.values; + } + + module.exports = AWS.DynamoDB.Converter; /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(4).util; - - function typeOf(data) { - if (data === null && typeof data === 'object') { - return 'null'; - } else if (data !== undefined && isBinary(data)) { - return 'Binary'; - } else if (data !== undefined && data.constructor) { - return util.typeName(data.constructor); - } else if (data !== undefined && typeof data === 'object') { - // this object is the result of Object.create(null), hence the absence of a - // defined constructor - return 'Object'; - } else { - return 'undefined'; - } - } - - function isBinary(data) { - var types = [ - 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView', - 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', - 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', - 'Float32Array', 'Float64Array' - ]; - if (util.isNode()) { - var Stream = util.stream.Stream; - if (util.Buffer.isBuffer(data) || data instanceof Stream) { - return true; - } - } - - for (var i = 0; i < types.length; i++) { - if (data !== undefined && data.constructor) { - if (util.isType(data, types[i])) return true; - if (util.typeName(data.constructor) === types[i]) return true; - } - } - - return false; - } - - module.exports = { - typeOf: typeOf, - isBinary: isBinary - }; + var util = __webpack_require__(4).util; + + function typeOf(data) { + if (data === null && typeof data === 'object') { + return 'null'; + } else if (data !== undefined && isBinary(data)) { + return 'Binary'; + } else if (data !== undefined && data.constructor) { + return util.typeName(data.constructor); + } else if (data !== undefined && typeof data === 'object') { + // this object is the result of Object.create(null), hence the absence of a + // defined constructor + return 'Object'; + } else { + return 'undefined'; + } + } + + function isBinary(data) { + var types = [ + 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView', + 'Int8Array', 'Uint8Array', 'Uint8ClampedArray', + 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array', + 'Float32Array', 'Float64Array' + ]; + if (util.isNode()) { + var Stream = util.stream.Stream; + if (util.Buffer.isBuffer(data) || data instanceof Stream) { + return true; + } + } + + for (var i = 0; i < types.length; i++) { + if (data !== undefined && data.constructor) { + if (util.isType(data, types[i])) return true; + if (util.typeName(data.constructor) === types[i]) return true; + } + } + + return false; + } + + module.exports = { + typeOf: typeOf, + isBinary: isBinary + }; /***/ }), /* 155 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(4).util; - var typeOf = __webpack_require__(154).typeOf; - - var memberTypeToSetType = { - 'String': 'String', - 'Number': 'Number', - 'NumberValue': 'Number', - 'Binary': 'Binary' - }; - - /** - * @api private - */ - var DynamoDBSet = util.inherit({ - - constructor: function Set(list, options) { - options = options || {}; - this.initialize(list, options.validate); - }, - - initialize: function(list, validate) { - var self = this; - self.values = [].concat(list); - self.detectType(); - if (validate) { - self.validate(); - } - }, - - detectType: function() { - this.type = memberTypeToSetType[typeOf(this.values[0])]; - if (!this.type) { - throw util.error(new Error(), { - code: 'InvalidSetType', - message: 'Sets can contain string, number, or binary values' - }); - } - }, - - validate: function() { - var self = this; - var length = self.values.length; - var values = self.values; - for (var i = 0; i < length; i++) { - if (memberTypeToSetType[typeOf(values[i])] !== self.type) { - throw util.error(new Error(), { - code: 'InvalidType', - message: self.type + ' Set contains ' + typeOf(values[i]) + ' value' - }); - } - } - } - - }); - - module.exports = DynamoDBSet; + var util = __webpack_require__(4).util; + var typeOf = __webpack_require__(154).typeOf; + + /** + * @api private + */ + var memberTypeToSetType = { + 'String': 'String', + 'Number': 'Number', + 'NumberValue': 'Number', + 'Binary': 'Binary' + }; + + /** + * @api private + */ + var DynamoDBSet = util.inherit({ + + constructor: function Set(list, options) { + options = options || {}; + this.initialize(list, options.validate); + }, + + initialize: function(list, validate) { + var self = this; + self.values = [].concat(list); + self.detectType(); + if (validate) { + self.validate(); + } + }, + + detectType: function() { + this.type = memberTypeToSetType[typeOf(this.values[0])]; + if (!this.type) { + throw util.error(new Error(), { + code: 'InvalidSetType', + message: 'Sets can contain string, number, or binary values' + }); + } + }, + + validate: function() { + var self = this; + var length = self.values.length; + var values = self.values; + for (var i = 0; i < length; i++) { + if (memberTypeToSetType[typeOf(values[i])] !== self.type) { + throw util.error(new Error(), { + code: 'InvalidType', + message: self.type + ' Set contains ' + typeOf(values[i]) + ' value' + }); + } + } + } + + }); + + module.exports = DynamoDBSet; /***/ }), /* 156 */ /***/ (function(module, exports, __webpack_require__) { - var util = __webpack_require__(4).util; - - /** - * An object recognizable as a numeric value that stores the underlying number - * as a string. - * - * Intended to be a deserialization target for the DynamoDB Document Client when - * the `wrapNumbers` flag is set. This allows for numeric values that lose - * precision when converted to JavaScript's `number` type. - */ - var DynamoDBNumberValue = util.inherit({ - constructor: function NumberValue(value) { - this.value = value.toString(); - }, - - /** - * Render the underlying value as a number when converting to JSON. - */ - toJSON: function () { - return this.toNumber(); - }, - - /** - * Convert the underlying value to a JavaScript number. - */ - toNumber: function () { - return Number(this.value); - }, - - /** - * Return a string representing the unaltered value provided to the - * constructor. - */ - toString: function () { - return this.value; - } - }); - + var util = __webpack_require__(4).util; + + /** + * An object recognizable as a numeric value that stores the underlying number + * as a string. + * + * Intended to be a deserialization target for the DynamoDB Document Client when + * the `wrapNumbers` flag is set. This allows for numeric values that lose + * precision when converted to JavaScript's `number` type. + */ + var DynamoDBNumberValue = util.inherit({ + constructor: function NumberValue(value) { + this.value = value.toString(); + }, + + /** + * Render the underlying value as a number when converting to JSON. + */ + toJSON: function () { + return this.toNumber(); + }, + + /** + * Convert the underlying value to a JavaScript number. + */ + toNumber: function () { + return Number(this.value); + }, + + /** + * Return a string representing the unaltered value provided to the + * constructor. + */ + toString: function () { + return this.value; + } + }); + module.exports = DynamoDBNumberValue; /***/ }), @@ -41327,24 +41333,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 163 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['dynamodbstreams'] = {}; - AWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']); - Object.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', { - get: function get() { - var model = __webpack_require__(164); - model.paginators = __webpack_require__(165).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DynamoDBStreams; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['dynamodbstreams'] = {}; + AWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']); + Object.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', { + get: function get() { + var model = __webpack_require__(164); + model.paginators = __webpack_require__(165).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DynamoDBStreams; /***/ }), @@ -41363,94 +41369,94 @@ return /******/ (function(modules) { // webpackBootstrap /* 166 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['ec2'] = {}; - AWS.EC2 = Service.defineService('ec2', ['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*', '2016-11-15']); - __webpack_require__(167); - Object.defineProperty(apiLoader.services['ec2'], '2016-11-15', { - get: function get() { - var model = __webpack_require__(168); - model.paginators = __webpack_require__(169).pagination; - model.waiters = __webpack_require__(170).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.EC2; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['ec2'] = {}; + AWS.EC2 = Service.defineService('ec2', ['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*', '2016-11-15']); + __webpack_require__(167); + Object.defineProperty(apiLoader.services['ec2'], '2016-11-15', { + get: function get() { + var model = __webpack_require__(168); + model.paginators = __webpack_require__(169).pagination; + model.waiters = __webpack_require__(170).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.EC2; /***/ }), /* 167 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.EC2.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR); - request.addListener('extractError', this.extractError); - - if (request.operation === 'copySnapshot') { - request.onAsync('validate', this.buildCopySnapshotPresignedUrl); - } - }, - - /** - * @api private - */ - buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) { - if (req.params.PresignedUrl || req._subRequest) { - return done(); - } - - req.params = AWS.util.copy(req.params); - req.params.DestinationRegion = req.service.config.region; - - var config = AWS.util.copy(req.service.config); - delete config.endpoint; - config.region = req.params.SourceRegion; - var svc = new req.service.constructor(config); - var newReq = svc[req.operation](req.params); - newReq._subRequest = true; - newReq.presign(function(err, url) { - if (err) done(err); - else { - req.params.PresignedUrl = url; - done(); - } - }); - }, - - /** - * @api private - */ - extractError: function extractError(resp) { - // EC2 nests the error code and message deeper than other AWS Query services. - var httpResponse = resp.httpResponse; - var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || ''); - if (data.Errors) { - resp.error = AWS.util.error(new Error(), { - code: data.Errors.Error.Code, - message: data.Errors.Error.Message - }); - } else { - resp.error = AWS.util.error(new Error(), { - code: httpResponse.statusCode, - message: null - }); - } - resp.error.requestId = data.RequestID || null; - } - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.EC2.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR); + request.addListener('extractError', this.extractError); + + if (request.operation === 'copySnapshot') { + request.onAsync('validate', this.buildCopySnapshotPresignedUrl); + } + }, + + /** + * @api private + */ + buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) { + if (req.params.PresignedUrl || req._subRequest) { + return done(); + } + + req.params = AWS.util.copy(req.params); + req.params.DestinationRegion = req.service.config.region; + + var config = AWS.util.copy(req.service.config); + delete config.endpoint; + config.region = req.params.SourceRegion; + var svc = new req.service.constructor(config); + var newReq = svc[req.operation](req.params); + newReq._subRequest = true; + newReq.presign(function(err, url) { + if (err) done(err); + else { + req.params.PresignedUrl = url; + done(); + } + }); + }, + + /** + * @api private + */ + extractError: function extractError(resp) { + // EC2 nests the error code and message deeper than other AWS Query services. + var httpResponse = resp.httpResponse; + var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || ''); + if (data.Errors) { + resp.error = AWS.util.error(new Error(), { + code: data.Errors.Error.Code, + message: data.Errors.Error.Message + }); + } else { + resp.error = AWS.util.error(new Error(), { + code: httpResponse.statusCode, + message: null + }); + } + resp.error.requestId = data.RequestID || null; + } + }); /***/ }), @@ -41475,24 +41481,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 171 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['ecr'] = {}; - AWS.ECR = Service.defineService('ecr', ['2015-09-21']); - Object.defineProperty(apiLoader.services['ecr'], '2015-09-21', { - get: function get() { - var model = __webpack_require__(172); - model.paginators = __webpack_require__(173).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ECR; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['ecr'] = {}; + AWS.ECR = Service.defineService('ecr', ['2015-09-21']); + Object.defineProperty(apiLoader.services['ecr'], '2015-09-21', { + get: function get() { + var model = __webpack_require__(172); + model.paginators = __webpack_require__(173).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ECR; /***/ }), @@ -41511,25 +41517,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 174 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['ecs'] = {}; - AWS.ECS = Service.defineService('ecs', ['2014-11-13']); - Object.defineProperty(apiLoader.services['ecs'], '2014-11-13', { - get: function get() { - var model = __webpack_require__(175); - model.paginators = __webpack_require__(176).pagination; - model.waiters = __webpack_require__(177).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ECS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['ecs'] = {}; + AWS.ECS = Service.defineService('ecs', ['2014-11-13']); + Object.defineProperty(apiLoader.services['ecs'], '2014-11-13', { + get: function get() { + var model = __webpack_require__(175); + model.paginators = __webpack_require__(176).pagination; + model.waiters = __webpack_require__(177).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ECS; /***/ }), @@ -41554,24 +41560,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 178 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['efs'] = {}; - AWS.EFS = Service.defineService('efs', ['2015-02-01']); - Object.defineProperty(apiLoader.services['efs'], '2015-02-01', { - get: function get() { - var model = __webpack_require__(179); - model.paginators = __webpack_require__(180).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.EFS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['efs'] = {}; + AWS.EFS = Service.defineService('efs', ['2015-02-01']); + Object.defineProperty(apiLoader.services['efs'], '2015-02-01', { + get: function get() { + var model = __webpack_require__(179); + model.paginators = __webpack_require__(180).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.EFS; /***/ }), @@ -41590,25 +41596,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 181 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['elasticache'] = {}; - AWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']); - Object.defineProperty(apiLoader.services['elasticache'], '2015-02-02', { - get: function get() { - var model = __webpack_require__(182); - model.paginators = __webpack_require__(183).pagination; - model.waiters = __webpack_require__(184).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ElastiCache; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['elasticache'] = {}; + AWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']); + Object.defineProperty(apiLoader.services['elasticache'], '2015-02-02', { + get: function get() { + var model = __webpack_require__(182); + model.paginators = __webpack_require__(183).pagination; + model.waiters = __webpack_require__(184).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ElastiCache; /***/ }), @@ -41633,24 +41639,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 185 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['elasticbeanstalk'] = {}; - AWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']); - Object.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', { - get: function get() { - var model = __webpack_require__(186); - model.paginators = __webpack_require__(187).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ElasticBeanstalk; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['elasticbeanstalk'] = {}; + AWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']); + Object.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', { + get: function get() { + var model = __webpack_require__(186); + model.paginators = __webpack_require__(187).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ElasticBeanstalk; /***/ }), @@ -41669,25 +41675,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 188 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['elb'] = {}; - AWS.ELB = Service.defineService('elb', ['2012-06-01']); - Object.defineProperty(apiLoader.services['elb'], '2012-06-01', { - get: function get() { - var model = __webpack_require__(189); - model.paginators = __webpack_require__(190).pagination; - model.waiters = __webpack_require__(191).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ELB; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['elb'] = {}; + AWS.ELB = Service.defineService('elb', ['2012-06-01']); + Object.defineProperty(apiLoader.services['elb'], '2012-06-01', { + get: function get() { + var model = __webpack_require__(189); + model.paginators = __webpack_require__(190).pagination; + model.waiters = __webpack_require__(191).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ELB; /***/ }), @@ -41712,25 +41718,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 192 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['elbv2'] = {}; - AWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']); - Object.defineProperty(apiLoader.services['elbv2'], '2015-12-01', { - get: function get() { - var model = __webpack_require__(193); - model.paginators = __webpack_require__(194).pagination; - model.waiters = __webpack_require__(195).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ELBv2; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['elbv2'] = {}; + AWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']); + Object.defineProperty(apiLoader.services['elbv2'], '2015-12-01', { + get: function get() { + var model = __webpack_require__(193); + model.paginators = __webpack_require__(194).pagination; + model.waiters = __webpack_require__(195).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ELBv2; /***/ }), @@ -41755,25 +41761,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 196 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['emr'] = {}; - AWS.EMR = Service.defineService('emr', ['2009-03-31']); - Object.defineProperty(apiLoader.services['emr'], '2009-03-31', { - get: function get() { - var model = __webpack_require__(197); - model.paginators = __webpack_require__(198).pagination; - model.waiters = __webpack_require__(199).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.EMR; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['emr'] = {}; + AWS.EMR = Service.defineService('emr', ['2009-03-31']); + Object.defineProperty(apiLoader.services['emr'], '2009-03-31', { + get: function get() { + var model = __webpack_require__(197); + model.paginators = __webpack_require__(198).pagination; + model.waiters = __webpack_require__(199).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.EMR; /***/ }), @@ -41798,24 +41804,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 200 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['es'] = {}; - AWS.ES = Service.defineService('es', ['2015-01-01']); - Object.defineProperty(apiLoader.services['es'], '2015-01-01', { - get: function get() { - var model = __webpack_require__(201); - model.paginators = __webpack_require__(202).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ES; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['es'] = {}; + AWS.ES = Service.defineService('es', ['2015-01-01']); + Object.defineProperty(apiLoader.services['es'], '2015-01-01', { + get: function get() { + var model = __webpack_require__(201); + model.paginators = __webpack_require__(202).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ES; /***/ }), @@ -41834,25 +41840,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 203 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['elastictranscoder'] = {}; - AWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']); - Object.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', { - get: function get() { - var model = __webpack_require__(204); - model.paginators = __webpack_require__(205).pagination; - model.waiters = __webpack_require__(206).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ElasticTranscoder; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['elastictranscoder'] = {}; + AWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']); + Object.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', { + get: function get() { + var model = __webpack_require__(204); + model.paginators = __webpack_require__(205).pagination; + model.waiters = __webpack_require__(206).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ElasticTranscoder; /***/ }), @@ -41877,24 +41883,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 207 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['firehose'] = {}; - AWS.Firehose = Service.defineService('firehose', ['2015-08-04']); - Object.defineProperty(apiLoader.services['firehose'], '2015-08-04', { - get: function get() { - var model = __webpack_require__(208); - model.paginators = __webpack_require__(209).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Firehose; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['firehose'] = {}; + AWS.Firehose = Service.defineService('firehose', ['2015-08-04']); + Object.defineProperty(apiLoader.services['firehose'], '2015-08-04', { + get: function get() { + var model = __webpack_require__(208); + model.paginators = __webpack_require__(209).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Firehose; /***/ }), @@ -41913,24 +41919,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 210 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['gamelift'] = {}; - AWS.GameLift = Service.defineService('gamelift', ['2015-10-01']); - Object.defineProperty(apiLoader.services['gamelift'], '2015-10-01', { - get: function get() { - var model = __webpack_require__(211); - model.paginators = __webpack_require__(212).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.GameLift; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['gamelift'] = {}; + AWS.GameLift = Service.defineService('gamelift', ['2015-10-01']); + Object.defineProperty(apiLoader.services['gamelift'], '2015-10-01', { + get: function get() { + var model = __webpack_require__(211); + model.paginators = __webpack_require__(212).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.GameLift; /***/ }), @@ -41949,146 +41955,146 @@ return /******/ (function(modules) { // webpackBootstrap /* 213 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['glacier'] = {}; - AWS.Glacier = Service.defineService('glacier', ['2012-06-01']); - __webpack_require__(214); - Object.defineProperty(apiLoader.services['glacier'], '2012-06-01', { - get: function get() { - var model = __webpack_require__(215); - model.paginators = __webpack_require__(216).pagination; - model.waiters = __webpack_require__(217).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Glacier; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['glacier'] = {}; + AWS.Glacier = Service.defineService('glacier', ['2012-06-01']); + __webpack_require__(214); + Object.defineProperty(apiLoader.services['glacier'], '2012-06-01', { + get: function get() { + var model = __webpack_require__(215); + model.paginators = __webpack_require__(216).pagination; + model.waiters = __webpack_require__(217).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Glacier; /***/ }), /* 214 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.Glacier.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - if (Array.isArray(request._events.validate)) { - request._events.validate.unshift(this.validateAccountId); - } else { - request.on('validate', this.validateAccountId); - } - request.removeListener('afterBuild', - AWS.EventListeners.Core.COMPUTE_SHA256); - request.on('build', this.addGlacierApiVersion); - request.on('build', this.addTreeHashHeaders); - }, - - /** - * @api private - */ - validateAccountId: function validateAccountId(request) { - if (request.params.accountId !== undefined) return; - request.params = AWS.util.copy(request.params); - request.params.accountId = '-'; - }, - - /** - * @api private - */ - addGlacierApiVersion: function addGlacierApiVersion(request) { - var version = request.service.api.apiVersion; - request.httpRequest.headers['x-amz-glacier-version'] = version; - }, - - /** - * @api private - */ - addTreeHashHeaders: function addTreeHashHeaders(request) { - if (request.params.body === undefined) return; - - var hashes = request.service.computeChecksums(request.params.body); - request.httpRequest.headers['X-Amz-Content-Sha256'] = hashes.linearHash; - - if (!request.httpRequest.headers['x-amz-sha256-tree-hash']) { - request.httpRequest.headers['x-amz-sha256-tree-hash'] = hashes.treeHash; - } - }, - - /** - * @!group Computing Checksums - */ - - /** - * Computes the SHA-256 linear and tree hash checksums for a given - * block of Buffer data. Pass the tree hash of the computed checksums - * as the checksum input to the {completeMultipartUpload} when performing - * a multi-part upload. - * - * @example Calculate checksum of 5.5MB data chunk - * var glacier = new AWS.Glacier(); - * var data = new Buffer(5.5 * 1024 * 1024); - * data.fill('0'); // fill with zeros - * var results = glacier.computeChecksums(data); - * // Result: { linearHash: '68aff0c5a9...', treeHash: '154e26c78f...' } - * @param data [Buffer, String] data to calculate the checksum for - * @return [map] a map containing - * the linearHash and treeHash properties representing hex based digests - * of the respective checksums. - * @see completeMultipartUpload - */ - computeChecksums: function computeChecksums(data) { - if (!AWS.util.Buffer.isBuffer(data)) data = new AWS.util.Buffer(data); - - var mb = 1024 * 1024; - var hashes = []; - var hash = AWS.util.crypto.createHash('sha256'); - - // build leaf nodes in 1mb chunks - for (var i = 0; i < data.length; i += mb) { - var chunk = data.slice(i, Math.min(i + mb, data.length)); - hash.update(chunk); - hashes.push(AWS.util.crypto.sha256(chunk)); - } - - return { - linearHash: hash.digest('hex'), - treeHash: this.buildHashTree(hashes) - }; - }, - - /** - * @api private - */ - buildHashTree: function buildHashTree(hashes) { - // merge leaf nodes - while (hashes.length > 1) { - var tmpHashes = []; - for (var i = 0; i < hashes.length; i += 2) { - if (hashes[i + 1]) { - var tmpHash = new AWS.util.Buffer(64); - tmpHash.write(hashes[i], 0, 32, 'binary'); - tmpHash.write(hashes[i + 1], 32, 32, 'binary'); - tmpHashes.push(AWS.util.crypto.sha256(tmpHash)); - } else { - tmpHashes.push(hashes[i]); - } - } - hashes = tmpHashes; - } - - return AWS.util.crypto.toHex(hashes[0]); - } - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.Glacier.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (Array.isArray(request._events.validate)) { + request._events.validate.unshift(this.validateAccountId); + } else { + request.on('validate', this.validateAccountId); + } + request.removeListener('afterBuild', + AWS.EventListeners.Core.COMPUTE_SHA256); + request.on('build', this.addGlacierApiVersion); + request.on('build', this.addTreeHashHeaders); + }, + + /** + * @api private + */ + validateAccountId: function validateAccountId(request) { + if (request.params.accountId !== undefined) return; + request.params = AWS.util.copy(request.params); + request.params.accountId = '-'; + }, + + /** + * @api private + */ + addGlacierApiVersion: function addGlacierApiVersion(request) { + var version = request.service.api.apiVersion; + request.httpRequest.headers['x-amz-glacier-version'] = version; + }, + + /** + * @api private + */ + addTreeHashHeaders: function addTreeHashHeaders(request) { + if (request.params.body === undefined) return; + + var hashes = request.service.computeChecksums(request.params.body); + request.httpRequest.headers['X-Amz-Content-Sha256'] = hashes.linearHash; + + if (!request.httpRequest.headers['x-amz-sha256-tree-hash']) { + request.httpRequest.headers['x-amz-sha256-tree-hash'] = hashes.treeHash; + } + }, + + /** + * @!group Computing Checksums + */ + + /** + * Computes the SHA-256 linear and tree hash checksums for a given + * block of Buffer data. Pass the tree hash of the computed checksums + * as the checksum input to the {completeMultipartUpload} when performing + * a multi-part upload. + * + * @example Calculate checksum of 5.5MB data chunk + * var glacier = new AWS.Glacier(); + * var data = new Buffer(5.5 * 1024 * 1024); + * data.fill('0'); // fill with zeros + * var results = glacier.computeChecksums(data); + * // Result: { linearHash: '68aff0c5a9...', treeHash: '154e26c78f...' } + * @param data [Buffer, String] data to calculate the checksum for + * @return [map] a map containing + * the linearHash and treeHash properties representing hex based digests + * of the respective checksums. + * @see completeMultipartUpload + */ + computeChecksums: function computeChecksums(data) { + if (!AWS.util.Buffer.isBuffer(data)) data = new AWS.util.Buffer(data); + + var mb = 1024 * 1024; + var hashes = []; + var hash = AWS.util.crypto.createHash('sha256'); + + // build leaf nodes in 1mb chunks + for (var i = 0; i < data.length; i += mb) { + var chunk = data.slice(i, Math.min(i + mb, data.length)); + hash.update(chunk); + hashes.push(AWS.util.crypto.sha256(chunk)); + } + + return { + linearHash: hash.digest('hex'), + treeHash: this.buildHashTree(hashes) + }; + }, + + /** + * @api private + */ + buildHashTree: function buildHashTree(hashes) { + // merge leaf nodes + while (hashes.length > 1) { + var tmpHashes = []; + for (var i = 0; i < hashes.length; i += 2) { + if (hashes[i + 1]) { + var tmpHash = new AWS.util.Buffer(64); + tmpHash.write(hashes[i], 0, 32, 'binary'); + tmpHash.write(hashes[i + 1], 32, 32, 'binary'); + tmpHashes.push(AWS.util.crypto.sha256(tmpHash)); + } else { + tmpHashes.push(hashes[i]); + } + } + hashes = tmpHashes; + } + + return AWS.util.crypto.toHex(hashes[0]); + } + }); /***/ }), @@ -42113,24 +42119,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 218 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['health'] = {}; - AWS.Health = Service.defineService('health', ['2016-08-04']); - Object.defineProperty(apiLoader.services['health'], '2016-08-04', { - get: function get() { - var model = __webpack_require__(219); - model.paginators = __webpack_require__(220).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Health; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['health'] = {}; + AWS.Health = Service.defineService('health', ['2016-08-04']); + Object.defineProperty(apiLoader.services['health'], '2016-08-04', { + get: function get() { + var model = __webpack_require__(219); + model.paginators = __webpack_require__(220).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Health; /***/ }), @@ -42149,25 +42155,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 221 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['iam'] = {}; - AWS.IAM = Service.defineService('iam', ['2010-05-08']); - Object.defineProperty(apiLoader.services['iam'], '2010-05-08', { - get: function get() { - var model = __webpack_require__(222); - model.paginators = __webpack_require__(223).pagination; - model.waiters = __webpack_require__(224).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.IAM; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['iam'] = {}; + AWS.IAM = Service.defineService('iam', ['2010-05-08']); + Object.defineProperty(apiLoader.services['iam'], '2010-05-08', { + get: function get() { + var model = __webpack_require__(222); + model.paginators = __webpack_require__(223).pagination; + model.waiters = __webpack_require__(224).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.IAM; /***/ }), @@ -42192,24 +42198,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 225 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['importexport'] = {}; - AWS.ImportExport = Service.defineService('importexport', ['2010-06-01']); - Object.defineProperty(apiLoader.services['importexport'], '2010-06-01', { - get: function get() { - var model = __webpack_require__(226); - model.paginators = __webpack_require__(227).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ImportExport; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['importexport'] = {}; + AWS.ImportExport = Service.defineService('importexport', ['2010-06-01']); + Object.defineProperty(apiLoader.services['importexport'], '2010-06-01', { + get: function get() { + var model = __webpack_require__(226); + model.paginators = __webpack_require__(227).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ImportExport; /***/ }), @@ -42228,24 +42234,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 228 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['inspector'] = {}; - AWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']); - Object.defineProperty(apiLoader.services['inspector'], '2016-02-16', { - get: function get() { - var model = __webpack_require__(229); - model.paginators = __webpack_require__(230).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Inspector; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['inspector'] = {}; + AWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']); + Object.defineProperty(apiLoader.services['inspector'], '2016-02-16', { + get: function get() { + var model = __webpack_require__(229); + model.paginators = __webpack_require__(230).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Inspector; /***/ }), @@ -42264,24 +42270,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 231 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['iot'] = {}; - AWS.Iot = Service.defineService('iot', ['2015-05-28']); - Object.defineProperty(apiLoader.services['iot'], '2015-05-28', { - get: function get() { - var model = __webpack_require__(232); - model.paginators = __webpack_require__(233).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Iot; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['iot'] = {}; + AWS.Iot = Service.defineService('iot', ['2015-05-28']); + Object.defineProperty(apiLoader.services['iot'], '2015-05-28', { + get: function get() { + var model = __webpack_require__(232); + model.paginators = __webpack_require__(233).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Iot; /***/ }), @@ -42300,130 +42306,130 @@ return /******/ (function(modules) { // webpackBootstrap /* 234 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['iotdata'] = {}; - AWS.IotData = Service.defineService('iotdata', ['2015-05-28']); - __webpack_require__(235); - Object.defineProperty(apiLoader.services['iotdata'], '2015-05-28', { - get: function get() { - var model = __webpack_require__(236); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.IotData; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['iotdata'] = {}; + AWS.IotData = Service.defineService('iotdata', ['2015-05-28']); + __webpack_require__(235); + Object.defineProperty(apiLoader.services['iotdata'], '2015-05-28', { + get: function get() { + var model = __webpack_require__(236); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.IotData; /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - /** - * @api private - */ - var blobPayloadOutputOps = [ - 'deleteThingShadow', - 'getThingShadow', - 'updateThingShadow' - ]; - - /** - * Constructs a service interface object. Each API operation is exposed as a - * function on service. - * - * ### Sending a Request Using IotData - * - * ```javascript - * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); - * iotdata.getThingShadow(params, function (err, data) { - * if (err) console.log(err, err.stack); // an error occurred - * else console.log(data); // successful response - * }); - * ``` - * - * ### Locking the API Version - * - * In order to ensure that the IotData object uses this specific API, - * you can construct the object by passing the `apiVersion` option to the - * constructor: - * - * ```javascript - * var iotdata = new AWS.IotData({ - * endpoint: 'my.host.tld', - * apiVersion: '2015-05-28' - * }); - * ``` - * - * You can also set the API version globally in `AWS.config.apiVersions` using - * the **iotdata** service identifier: - * - * ```javascript - * AWS.config.apiVersions = { - * iotdata: '2015-05-28', - * // other service API versions - * }; - * - * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); - * ``` - * - * @note You *must* provide an `endpoint` configuration parameter when - * constructing this service. See {constructor} for more information. - * - * @!method constructor(options = {}) - * Constructs a service object. This object has one method for each - * API operation. - * - * @example Constructing a IotData object - * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); - * @note You *must* provide an `endpoint` when constructing this service. - * @option (see AWS.Config.constructor) - * - * @service iotdata - * @version 2015-05-28 - */ - AWS.util.update(AWS.IotData.prototype, { - /** - * @api private - */ - validateService: function validateService() { - if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { - var msg = 'AWS.IotData requires an explicit ' + - '`endpoint\' configuration option.'; - throw AWS.util.error(new Error(), - {name: 'InvalidEndpoint', message: msg}); - } - }, - - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.addListener('validateResponse', this.validateResponseBody); - if (blobPayloadOutputOps.indexOf(request.operation) > -1) { - request.addListener('extractData', AWS.util.convertPayloadToString); - } - }, - - /** - * @api private - */ - validateResponseBody: function validateResponseBody(resp) { - var body = resp.httpResponse.body.toString() || '{}'; - var bodyCheck = body.trim(); - if (!bodyCheck || bodyCheck.charAt(0) !== '{') { - resp.httpResponse.body = ''; - } - } - - }); + var AWS = __webpack_require__(4); + + /** + * @api private + */ + var blobPayloadOutputOps = [ + 'deleteThingShadow', + 'getThingShadow', + 'updateThingShadow' + ]; + + /** + * Constructs a service interface object. Each API operation is exposed as a + * function on service. + * + * ### Sending a Request Using IotData + * + * ```javascript + * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); + * iotdata.getThingShadow(params, function (err, data) { + * if (err) console.log(err, err.stack); // an error occurred + * else console.log(data); // successful response + * }); + * ``` + * + * ### Locking the API Version + * + * In order to ensure that the IotData object uses this specific API, + * you can construct the object by passing the `apiVersion` option to the + * constructor: + * + * ```javascript + * var iotdata = new AWS.IotData({ + * endpoint: 'my.host.tld', + * apiVersion: '2015-05-28' + * }); + * ``` + * + * You can also set the API version globally in `AWS.config.apiVersions` using + * the **iotdata** service identifier: + * + * ```javascript + * AWS.config.apiVersions = { + * iotdata: '2015-05-28', + * // other service API versions + * }; + * + * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); + * ``` + * + * @note You *must* provide an `endpoint` configuration parameter when + * constructing this service. See {constructor} for more information. + * + * @!method constructor(options = {}) + * Constructs a service object. This object has one method for each + * API operation. + * + * @example Constructing a IotData object + * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'}); + * @note You *must* provide an `endpoint` when constructing this service. + * @option (see AWS.Config.constructor) + * + * @service iotdata + * @version 2015-05-28 + */ + AWS.util.update(AWS.IotData.prototype, { + /** + * @api private + */ + validateService: function validateService() { + if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) { + var msg = 'AWS.IotData requires an explicit ' + + '`endpoint\' configuration option.'; + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('validateResponse', this.validateResponseBody); + if (blobPayloadOutputOps.indexOf(request.operation) > -1) { + request.addListener('extractData', AWS.util.convertPayloadToString); + } + }, + + /** + * @api private + */ + validateResponseBody: function validateResponseBody(resp) { + var body = resp.httpResponse.body.toString() || '{}'; + var bodyCheck = body.trim(); + if (!bodyCheck || bodyCheck.charAt(0) !== '{') { + resp.httpResponse.body = ''; + } + } + + }); /***/ }), @@ -42436,25 +42442,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 237 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['kinesis'] = {}; - AWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']); - Object.defineProperty(apiLoader.services['kinesis'], '2013-12-02', { - get: function get() { - var model = __webpack_require__(238); - model.paginators = __webpack_require__(239).pagination; - model.waiters = __webpack_require__(240).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Kinesis; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['kinesis'] = {}; + AWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']); + Object.defineProperty(apiLoader.services['kinesis'], '2013-12-02', { + get: function get() { + var model = __webpack_require__(238); + model.paginators = __webpack_require__(239).pagination; + model.waiters = __webpack_require__(240).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Kinesis; /***/ }), @@ -42479,24 +42485,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 241 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['kinesisanalytics'] = {}; - AWS.KinesisAnalytics = Service.defineService('kinesisanalytics', ['2015-08-14']); - Object.defineProperty(apiLoader.services['kinesisanalytics'], '2015-08-14', { - get: function get() { - var model = __webpack_require__(242); - model.paginators = __webpack_require__(243).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.KinesisAnalytics; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['kinesisanalytics'] = {}; + AWS.KinesisAnalytics = Service.defineService('kinesisanalytics', ['2015-08-14']); + Object.defineProperty(apiLoader.services['kinesisanalytics'], '2015-08-14', { + get: function get() { + var model = __webpack_require__(242); + model.paginators = __webpack_require__(243).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.KinesisAnalytics; /***/ }), @@ -42515,24 +42521,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 244 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['kms'] = {}; - AWS.KMS = Service.defineService('kms', ['2014-11-01']); - Object.defineProperty(apiLoader.services['kms'], '2014-11-01', { - get: function get() { - var model = __webpack_require__(245); - model.paginators = __webpack_require__(246).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.KMS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['kms'] = {}; + AWS.KMS = Service.defineService('kms', ['2014-11-01']); + Object.defineProperty(apiLoader.services['kms'], '2014-11-01', { + get: function get() { + var model = __webpack_require__(245); + model.paginators = __webpack_require__(246).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.KMS; /***/ }), @@ -42551,53 +42557,53 @@ return /******/ (function(modules) { // webpackBootstrap /* 247 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['lambda'] = {}; - AWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']); - __webpack_require__(248); - Object.defineProperty(apiLoader.services['lambda'], '2014-11-11', { - get: function get() { - var model = __webpack_require__(249); - model.paginators = __webpack_require__(250).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['lambda'], '2015-03-31', { - get: function get() { - var model = __webpack_require__(251); - model.paginators = __webpack_require__(252).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Lambda; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['lambda'] = {}; + AWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']); + __webpack_require__(248); + Object.defineProperty(apiLoader.services['lambda'], '2014-11-11', { + get: function get() { + var model = __webpack_require__(249); + model.paginators = __webpack_require__(250).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['lambda'], '2015-03-31', { + get: function get() { + var model = __webpack_require__(251); + model.paginators = __webpack_require__(252).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Lambda; /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.Lambda.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - if (request.operation === 'invoke') { - request.addListener('extractData', AWS.util.convertPayloadToString); - } - } - }); - + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.Lambda.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (request.operation === 'invoke') { + request.addListener('extractData', AWS.util.convertPayloadToString); + } + } + }); + /***/ }), @@ -42628,24 +42634,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 253 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['lexruntime'] = {}; - AWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']); - Object.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', { - get: function get() { - var model = __webpack_require__(254); - model.paginators = __webpack_require__(255).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.LexRuntime; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['lexruntime'] = {}; + AWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']); + Object.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', { + get: function get() { + var model = __webpack_require__(254); + model.paginators = __webpack_require__(255).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.LexRuntime; /***/ }), @@ -42664,24 +42670,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 256 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['lightsail'] = {}; - AWS.Lightsail = Service.defineService('lightsail', ['2016-11-28']); - Object.defineProperty(apiLoader.services['lightsail'], '2016-11-28', { - get: function get() { - var model = __webpack_require__(257); - model.paginators = __webpack_require__(258).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Lightsail; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['lightsail'] = {}; + AWS.Lightsail = Service.defineService('lightsail', ['2016-11-28']); + Object.defineProperty(apiLoader.services['lightsail'], '2016-11-28', { + get: function get() { + var model = __webpack_require__(257); + model.paginators = __webpack_require__(258).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Lightsail; /***/ }), @@ -42700,56 +42706,56 @@ return /******/ (function(modules) { // webpackBootstrap /* 259 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['machinelearning'] = {}; - AWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']); - __webpack_require__(260); - Object.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', { - get: function get() { - var model = __webpack_require__(261); - model.paginators = __webpack_require__(262).pagination; - model.waiters = __webpack_require__(263).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MachineLearning; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['machinelearning'] = {}; + AWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']); + __webpack_require__(260); + Object.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', { + get: function get() { + var model = __webpack_require__(261); + model.paginators = __webpack_require__(262).pagination; + model.waiters = __webpack_require__(263).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MachineLearning; /***/ }), /* 260 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.MachineLearning.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - if (request.operation === 'predict') { - request.addListener('build', this.buildEndpoint); - } - }, - - /** - * Updates request endpoint from PredictEndpoint - * @api private - */ - buildEndpoint: function buildEndpoint(request) { - var url = request.params.PredictEndpoint; - if (url) { - request.httpRequest.endpoint = new AWS.Endpoint(url); - } - } - - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.MachineLearning.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (request.operation === 'predict') { + request.addListener('build', this.buildEndpoint); + } + }, + + /** + * Updates request endpoint from PredictEndpoint + * @api private + */ + buildEndpoint: function buildEndpoint(request) { + var url = request.params.PredictEndpoint; + if (url) { + request.httpRequest.endpoint = new AWS.Endpoint(url); + } + } + + }); /***/ }), @@ -42774,24 +42780,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 264 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['marketplacecommerceanalytics'] = {}; - AWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']); - Object.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', { - get: function get() { - var model = __webpack_require__(265); - model.paginators = __webpack_require__(266).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MarketplaceCommerceAnalytics; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['marketplacecommerceanalytics'] = {}; + AWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']); + Object.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', { + get: function get() { + var model = __webpack_require__(265); + model.paginators = __webpack_require__(266).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MarketplaceCommerceAnalytics; /***/ }), @@ -42810,23 +42816,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 267 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['marketplacemetering'] = {}; - AWS.MarketplaceMetering = Service.defineService('marketplacemetering', ['2016-01-14']); - Object.defineProperty(apiLoader.services['marketplacemetering'], '2016-01-14', { - get: function get() { - var model = __webpack_require__(268); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MarketplaceMetering; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['marketplacemetering'] = {}; + AWS.MarketplaceMetering = Service.defineService('marketplacemetering', ['2016-01-14']); + Object.defineProperty(apiLoader.services['marketplacemetering'], '2016-01-14', { + get: function get() { + var model = __webpack_require__(268); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MarketplaceMetering; /***/ }), @@ -42839,24 +42845,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 269 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mturk'] = {}; - AWS.MTurk = Service.defineService('mturk', ['2017-01-17']); - Object.defineProperty(apiLoader.services['mturk'], '2017-01-17', { - get: function get() { - var model = __webpack_require__(270); - model.paginators = __webpack_require__(271).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MTurk; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mturk'] = {}; + AWS.MTurk = Service.defineService('mturk', ['2017-01-17']); + Object.defineProperty(apiLoader.services['mturk'], '2017-01-17', { + get: function get() { + var model = __webpack_require__(270); + model.paginators = __webpack_require__(271).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MTurk; /***/ }), @@ -42875,23 +42881,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 272 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mobileanalytics'] = {}; - AWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']); - Object.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', { - get: function get() { - var model = __webpack_require__(273); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MobileAnalytics; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mobileanalytics'] = {}; + AWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']); + Object.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', { + get: function get() { + var model = __webpack_require__(273); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MobileAnalytics; /***/ }), @@ -42904,25 +42910,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 274 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['opsworks'] = {}; - AWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']); - Object.defineProperty(apiLoader.services['opsworks'], '2013-02-18', { - get: function get() { - var model = __webpack_require__(275); - model.paginators = __webpack_require__(276).pagination; - model.waiters = __webpack_require__(277).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.OpsWorks; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['opsworks'] = {}; + AWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']); + Object.defineProperty(apiLoader.services['opsworks'], '2013-02-18', { + get: function get() { + var model = __webpack_require__(275); + model.paginators = __webpack_require__(276).pagination; + model.waiters = __webpack_require__(277).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.OpsWorks; /***/ }), @@ -42947,25 +42953,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 278 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['opsworkscm'] = {}; - AWS.OpsWorksCM = Service.defineService('opsworkscm', ['2016-11-01']); - Object.defineProperty(apiLoader.services['opsworkscm'], '2016-11-01', { - get: function get() { - var model = __webpack_require__(279); - model.paginators = __webpack_require__(280).pagination; - model.waiters = __webpack_require__(281).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.OpsWorksCM; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['opsworkscm'] = {}; + AWS.OpsWorksCM = Service.defineService('opsworkscm', ['2016-11-01']); + Object.defineProperty(apiLoader.services['opsworkscm'], '2016-11-01', { + get: function get() { + var model = __webpack_require__(279); + model.paginators = __webpack_require__(280).pagination; + model.waiters = __webpack_require__(281).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.OpsWorksCM; /***/ }), @@ -42990,24 +42996,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 282 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['organizations'] = {}; - AWS.Organizations = Service.defineService('organizations', ['2016-11-28']); - Object.defineProperty(apiLoader.services['organizations'], '2016-11-28', { - get: function get() { - var model = __webpack_require__(283); - model.paginators = __webpack_require__(284).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Organizations; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['organizations'] = {}; + AWS.Organizations = Service.defineService('organizations', ['2016-11-28']); + Object.defineProperty(apiLoader.services['organizations'], '2016-11-28', { + get: function get() { + var model = __webpack_require__(283); + model.paginators = __webpack_require__(284).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Organizations; /***/ }), @@ -43026,23 +43032,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 285 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['pinpoint'] = {}; - AWS.Pinpoint = Service.defineService('pinpoint', ['2016-12-01']); - Object.defineProperty(apiLoader.services['pinpoint'], '2016-12-01', { - get: function get() { - var model = __webpack_require__(286); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Pinpoint; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['pinpoint'] = {}; + AWS.Pinpoint = Service.defineService('pinpoint', ['2016-12-01']); + Object.defineProperty(apiLoader.services['pinpoint'], '2016-12-01', { + get: function get() { + var model = __webpack_require__(286); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Pinpoint; /***/ }), @@ -43055,25 +43061,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 287 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['polly'] = {}; - AWS.Polly = Service.defineService('polly', ['2016-06-10']); - __webpack_require__(288); - Object.defineProperty(apiLoader.services['polly'], '2016-06-10', { - get: function get() { - var model = __webpack_require__(290); - model.paginators = __webpack_require__(291).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Polly; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['polly'] = {}; + AWS.Polly = Service.defineService('polly', ['2016-06-10']); + __webpack_require__(288); + Object.defineProperty(apiLoader.services['polly'], '2016-06-10', { + get: function get() { + var model = __webpack_require__(290); + model.paginators = __webpack_require__(291).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Polly; /***/ }), @@ -43086,121 +43092,121 @@ return /******/ (function(modules) { // webpackBootstrap /* 289 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var rest = AWS.Protocol.Rest; - - /** - * A presigner object can be used to generate presigned urls for the Polly service. - */ - AWS.Polly.Presigner = AWS.util.inherit({ - /** - * Creates a presigner object with a set of configuration options. - * - * @option options params [map] An optional map of parameters to bind to every - * request sent by this service object. - * @option options service [AWS.Polly] An optional pre-configured instance - * of the AWS.Polly service object to use for requests. The object may - * bound parameters used by the presigner. - * @see AWS.Polly.constructor - */ - constructor: function Signer(options) { - options = options || {}; - this.options = options; - this.service = options.service; - this.bindServiceObject(options); - this._operations = {}; - }, - - /** - * @api private - */ - bindServiceObject: function bindServiceObject(options) { - options = options || {}; - if (!this.service) { - this.service = new AWS.Polly(options); - } else { - var config = AWS.util.copy(this.service.config); - this.service = new this.service.constructor.__super__(config); - this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params); - } - }, - - /** - * @api private - */ - modifyInputMembers: function modifyInputMembers(input) { - // make copies of the input so we don't overwrite the api - // need to be careful to copy anything we access/modify - var modifiedInput = AWS.util.copy(input); - modifiedInput.members = AWS.util.copy(input.members); - AWS.util.each(input.members, function(name, member) { - modifiedInput.members[name] = AWS.util.copy(member); - // update location and locationName - if (!member.location || member.location === 'body') { - modifiedInput.members[name].location = 'querystring'; - modifiedInput.members[name].locationName = name; - } - }); - return modifiedInput; - }, - - /** - * @api private - */ - convertPostToGet: function convertPostToGet(req) { - // convert method - req.httpRequest.method = 'GET'; - - var operation = req.service.api.operations[req.operation]; - // get cached operation input first - var input = this._operations[req.operation]; - if (!input) { - // modify the original input - this._operations[req.operation] = input = this.modifyInputMembers(operation.input); - } - - var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); - - req.httpRequest.path = uri; - req.httpRequest.body = ''; - - // don't need these headers on a GET request - delete req.httpRequest.headers['Content-Length']; - delete req.httpRequest.headers['Content-Type']; - }, - - /** - * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback]) - * Generate a presigned url for {AWS.Polly.synthesizeSpeech}. - * @note You must ensure that you have static or previously resolved - * credentials if you call this method synchronously (with no callback), - * otherwise it may not properly sign the request. If you cannot guarantee - * this (you are using an asynchronous credential provider, i.e., EC2 - * IAM roles), you should always call this method with an asynchronous - * callback. - * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech} - * operation for the expected operation parameters. - * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in. - * Defaults to 1 hour. - * @return [string] if called synchronously (with no callback), returns the signed URL. - * @return [null] nothing is returned if a callback is provided. - * @callback callback function (err, url) - * If a callback is supplied, it is called when a signed URL has been generated. - * @param err [Error] the error object returned from the presigner. - * @param url [String] the signed URL. - * @see AWS.Polly.synthesizeSpeech - */ - getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) { - var self = this; - var request = this.service.makeRequest('synthesizeSpeech', params); - // remove existing build listeners - request.removeAllListeners('build'); - request.on('build', function(req) { - self.convertPostToGet(req); - }); - return request.presign(expires, callback); - } - }); + var AWS = __webpack_require__(4); + var rest = AWS.Protocol.Rest; + + /** + * A presigner object can be used to generate presigned urls for the Polly service. + */ + AWS.Polly.Presigner = AWS.util.inherit({ + /** + * Creates a presigner object with a set of configuration options. + * + * @option options params [map] An optional map of parameters to bind to every + * request sent by this service object. + * @option options service [AWS.Polly] An optional pre-configured instance + * of the AWS.Polly service object to use for requests. The object may + * bound parameters used by the presigner. + * @see AWS.Polly.constructor + */ + constructor: function Signer(options) { + options = options || {}; + this.options = options; + this.service = options.service; + this.bindServiceObject(options); + this._operations = {}; + }, + + /** + * @api private + */ + bindServiceObject: function bindServiceObject(options) { + options = options || {}; + if (!this.service) { + this.service = new AWS.Polly(options); + } else { + var config = AWS.util.copy(this.service.config); + this.service = new this.service.constructor.__super__(config); + this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params); + } + }, + + /** + * @api private + */ + modifyInputMembers: function modifyInputMembers(input) { + // make copies of the input so we don't overwrite the api + // need to be careful to copy anything we access/modify + var modifiedInput = AWS.util.copy(input); + modifiedInput.members = AWS.util.copy(input.members); + AWS.util.each(input.members, function(name, member) { + modifiedInput.members[name] = AWS.util.copy(member); + // update location and locationName + if (!member.location || member.location === 'body') { + modifiedInput.members[name].location = 'querystring'; + modifiedInput.members[name].locationName = name; + } + }); + return modifiedInput; + }, + + /** + * @api private + */ + convertPostToGet: function convertPostToGet(req) { + // convert method + req.httpRequest.method = 'GET'; + + var operation = req.service.api.operations[req.operation]; + // get cached operation input first + var input = this._operations[req.operation]; + if (!input) { + // modify the original input + this._operations[req.operation] = input = this.modifyInputMembers(operation.input); + } + + var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params); + + req.httpRequest.path = uri; + req.httpRequest.body = ''; + + // don't need these headers on a GET request + delete req.httpRequest.headers['Content-Length']; + delete req.httpRequest.headers['Content-Type']; + }, + + /** + * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback]) + * Generate a presigned url for {AWS.Polly.synthesizeSpeech}. + * @note You must ensure that you have static or previously resolved + * credentials if you call this method synchronously (with no callback), + * otherwise it may not properly sign the request. If you cannot guarantee + * this (you are using an asynchronous credential provider, i.e., EC2 + * IAM roles), you should always call this method with an asynchronous + * callback. + * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech} + * operation for the expected operation parameters. + * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in. + * Defaults to 1 hour. + * @return [string] if called synchronously (with no callback), returns the signed URL. + * @return [null] nothing is returned if a callback is provided. + * @callback callback function (err, url) + * If a callback is supplied, it is called when a signed URL has been generated. + * @param err [Error] the error object returned from the presigner. + * @param url [String] the signed URL. + * @see AWS.Polly.synthesizeSpeech + */ + getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) { + var self = this; + var request = this.service.makeRequest('synthesizeSpeech', params); + // remove existing build listeners + request.removeAllListeners('build'); + request.on('build', function(req) { + self.convertPostToGet(req); + }); + return request.presign(expires, callback); + } + }); /***/ }), @@ -43219,351 +43225,351 @@ return /******/ (function(modules) { // webpackBootstrap /* 292 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['rds'] = {}; - AWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']); - __webpack_require__(293); - Object.defineProperty(apiLoader.services['rds'], '2013-01-10', { - get: function get() { - var model = __webpack_require__(295); - model.paginators = __webpack_require__(296).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['rds'], '2013-02-12', { - get: function get() { - var model = __webpack_require__(297); - model.paginators = __webpack_require__(298).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['rds'], '2013-09-09', { - get: function get() { - var model = __webpack_require__(299); - model.paginators = __webpack_require__(300).pagination; - model.waiters = __webpack_require__(301).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['rds'], '2014-09-01', { - get: function get() { - var model = __webpack_require__(302); - model.paginators = __webpack_require__(303).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(apiLoader.services['rds'], '2014-10-31', { - get: function get() { - var model = __webpack_require__(304); - model.paginators = __webpack_require__(305).pagination; - model.waiters = __webpack_require__(306).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.RDS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['rds'] = {}; + AWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']); + __webpack_require__(293); + Object.defineProperty(apiLoader.services['rds'], '2013-01-10', { + get: function get() { + var model = __webpack_require__(295); + model.paginators = __webpack_require__(296).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['rds'], '2013-02-12', { + get: function get() { + var model = __webpack_require__(297); + model.paginators = __webpack_require__(298).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['rds'], '2013-09-09', { + get: function get() { + var model = __webpack_require__(299); + model.paginators = __webpack_require__(300).pagination; + model.waiters = __webpack_require__(301).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['rds'], '2014-09-01', { + get: function get() { + var model = __webpack_require__(302); + model.paginators = __webpack_require__(303).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(apiLoader.services['rds'], '2014-10-31', { + get: function get() { + var model = __webpack_require__(304); + model.paginators = __webpack_require__(305).pagination; + model.waiters = __webpack_require__(306).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.RDS; /***/ }), /* 293 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - __webpack_require__(294); - /** - * @api private - */ - var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot']; - - AWS.util.update(AWS.RDS.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - if (crossRegionOperations.indexOf(request.operation) !== -1 && - request.params.SourceRegion) { - request.params = AWS.util.copy(request.params); - if (request.params.PreSignedUrl || - request.params.SourceRegion === this.config.region) { - delete request.params.SourceRegion; - } else { - var doesParamValidation = !!this.config.paramValidation; - // remove the validate parameters listener so we can re-add it after we build the URL - if (doesParamValidation) { - request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); - } - request.onAsync('validate', this.buildCrossRegionPresignedUrl); - if (doesParamValidation) { - request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); - } - } - } - }, - - /** - * @api private - */ - buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) { - var config = AWS.util.copy(req.service.config); - config.region = req.params.SourceRegion; - delete req.params.SourceRegion; - delete config.endpoint; - // relevant params for the operation will already be in req.params - delete config.params; - config.signatureVersion = 'v4'; - var destinationRegion = req.service.config.region; - - var svc = new req.service.constructor(config); - var newReq = svc[req.operation](AWS.util.copy(req.params)); - newReq.on('build', function addDestinationRegionParam(request) { - var httpRequest = request.httpRequest; - httpRequest.params.DestinationRegion = destinationRegion; - httpRequest.body = AWS.util.queryParamsToString(httpRequest.params); - }); - newReq.presign(function(err, url) { - if (err) done(err); - else { - req.params.PreSignedUrl = url; - done(); - } - }); - } + var AWS = __webpack_require__(4); + __webpack_require__(294); + /** + * @api private + */ + var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot']; + + AWS.util.update(AWS.RDS.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + if (crossRegionOperations.indexOf(request.operation) !== -1 && + request.params.SourceRegion) { + request.params = AWS.util.copy(request.params); + if (request.params.PreSignedUrl || + request.params.SourceRegion === this.config.region) { + delete request.params.SourceRegion; + } else { + var doesParamValidation = !!this.config.paramValidation; + // remove the validate parameters listener so we can re-add it after we build the URL + if (doesParamValidation) { + request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); + } + request.onAsync('validate', this.buildCrossRegionPresignedUrl); + if (doesParamValidation) { + request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS); + } + } + } + }, + + /** + * @api private + */ + buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) { + var config = AWS.util.copy(req.service.config); + config.region = req.params.SourceRegion; + delete req.params.SourceRegion; + delete config.endpoint; + // relevant params for the operation will already be in req.params + delete config.params; + config.signatureVersion = 'v4'; + var destinationRegion = req.service.config.region; + + var svc = new req.service.constructor(config); + var newReq = svc[req.operation](AWS.util.copy(req.params)); + newReq.on('build', function addDestinationRegionParam(request) { + var httpRequest = request.httpRequest; + httpRequest.params.DestinationRegion = destinationRegion; + httpRequest.body = AWS.util.queryParamsToString(httpRequest.params); + }); + newReq.presign(function(err, url) { + if (err) done(err); + else { + req.params.PreSignedUrl = url; + done(); + } + }); + } }); /***/ }), /* 294 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - /** - * @api private - */ - var service = null; - - /** - * @api private - */ - var api = { - signatureVersion: 'v4', - signingName: 'rds-db' - }; - - /** - * @api private - */ - var requiredAuthTokenOptions = { - region: 'string', - hostname: 'string', - port: 'number', - username: 'string' - }; - - /** - * A signer object can be used to generate an auth token to a database. - */ - AWS.RDS.Signer = AWS.util.inherit({ - /** - * Creates a signer object can be used to generate an auth token. - * - * @option options credentials [AWS.Credentials] the AWS credentials - * to sign requests with. Uses the default credential provider chain - * if not specified. - * @option options hostname [String] the hostname of the database to connect to. - * @option options port [Number] the port number the database is listening on. - * @option options region [String] the region the database is located in. - * @option options username [String] the username to login as. - * @example Passing in options to constructor - * var signer = new AWS.RDS.Signer({ - * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}), - * region: 'us-east-1', - * hostname: 'db.us-east-1.rds.amazonaws.com', - * port: 8000, - * username: 'name' - * }); - */ - constructor: function Signer(options) { - this.options = options || {}; - }, - - /** - * @api private - * Strips the protocol from a url. - */ - convertUrlToAuthToken: function convertUrlToAuthToken(url) { - // we are always using https as the protocol - var protocol = 'https://'; - if (url.indexOf(protocol) === 0) { - return url.substring(protocol.length); - } - }, - - /** - * @overload getAuthToken(options = {}, [callback]) - * Generate an auth token to a database. - * @note You must ensure that you have static or previously resolved - * credentials if you call this method synchronously (with no callback), - * otherwise it may not properly sign the request. If you cannot guarantee - * this (you are using an asynchronous credential provider, i.e., EC2 - * IAM roles), you should always call this method with an asynchronous - * callback. - * - * @param options [map] The fields to use when generating an auth token. - * Any options specified here will be merged on top of any options passed - * to AWS.RDS.Signer: - * - * * **credentials** (AWS.Credentials) — the AWS credentials - * to sign requests with. Uses the default credential provider chain - * if not specified. - * * **hostname** (String) — the hostname of the database to connect to. - * * **port** (Number) — the port number the database is listening on. - * * **region** (String) — the region the database is located in. - * * **username** (String) — the username to login as. - * @return [String] if called synchronously (with no callback), returns the - * auth token. - * @return [null] nothing is returned if a callback is provided. - * @callback callback function (err, token) - * If a callback is supplied, it is called when an auth token has been generated. - * @param err [Error] the error object returned from the signer. - * @param token [String] the auth token. - * - * @example Generating an auth token synchronously - * var signer = new AWS.RDS.Signer({ - * // configure options - * region: 'us-east-1', - * username: 'default', - * hostname: 'db.us-east-1.amazonaws.com', - * port: 8000 - * }); - * var token = signer.getAuthToken({ - * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option - * // credentials are not specified here or when creating the signer, so default credential provider will be used - * username: 'test' // overriding username - * }); - * @example Generating an auth token asynchronously - * var signer = new AWS.RDS.Signer({ - * // configure options - * region: 'us-east-1', - * username: 'default', - * hostname: 'db.us-east-1.amazonaws.com', - * port: 8000 - * }); - * signer.getAuthToken({ - * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option - * // credentials are not specified here or when creating the signer, so default credential provider will be used - * username: 'test' // overriding username - * }, function(err, token) { - * if (err) { - * // handle error - * } else { - * // use token - * } - * }); - * - */ - getAuthToken: function getAuthToken(options, callback) { - if (typeof options === 'function' && callback === undefined) { - callback = options; - options = {}; - } - var self = this; - var hasCallback = typeof callback === 'function'; - // merge options with existing options - options = AWS.util.merge(this.options, options); - // validate options - var optionsValidation = this.validateAuthTokenOptions(options); - if (optionsValidation !== true) { - if (hasCallback) { - return callback(optionsValidation, null); - } - throw optionsValidation; - } - - // 15 minutes - var expires = 900; - // create service to generate a request from - var serviceOptions = { - region: options.region, - endpoint: new AWS.Endpoint(options.hostname + ':' + options.port), - paramValidation: false, - signatureVersion: 'v4' - }; - if (options.credentials) { - serviceOptions.credentials = options.credentials; - } - service = new AWS.Service(serviceOptions); - // ensure the SDK is using sigv4 signing (config is not enough) - service.api = api; - - var request = service.makeRequest(); - // add listeners to request to properly build auth token - this.modifyRequestForAuthToken(request, options); - - if (hasCallback) { - request.presign(expires, function(err, url) { - if (url) { - url = self.convertUrlToAuthToken(url); - } - callback(err, url); - }); - } else { - var url = request.presign(expires); - return this.convertUrlToAuthToken(url); - } - }, - - /** - * @api private - * Modifies a request to allow the presigner to generate an auth token. - */ - modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) { - request.on('build', request.buildAsGet); - var httpRequest = request.httpRequest; - httpRequest.body = AWS.util.queryParamsToString({ - Action: 'connect', - DBUser: options.username - }); - }, - - /** - * @api private - * Validates that the options passed in contain all the keys with values of the correct type that - * are needed to generate an auth token. - */ - validateAuthTokenOptions: function validateAuthTokenOptions(options) { - // iterate over all keys in options - var message = ''; - options = options || {}; - for (var key in requiredAuthTokenOptions) { - if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) { - continue; - } - if (typeof options[key] !== requiredAuthTokenOptions[key]) { - message += 'option \'' + key + '\' should have been type \'' + requiredAuthTokenOptions[key] + '\', was \'' + typeof options[key] + '\'.\n'; - } - } - if (message.length) { - return AWS.util.error(new Error(), { - code: 'InvalidParameter', - message: message - }); - } - return true; - } + var AWS = __webpack_require__(4); + + /** + * @api private + */ + var service = null; + + /** + * @api private + */ + var api = { + signatureVersion: 'v4', + signingName: 'rds-db' + }; + + /** + * @api private + */ + var requiredAuthTokenOptions = { + region: 'string', + hostname: 'string', + port: 'number', + username: 'string' + }; + + /** + * A signer object can be used to generate an auth token to a database. + */ + AWS.RDS.Signer = AWS.util.inherit({ + /** + * Creates a signer object can be used to generate an auth token. + * + * @option options credentials [AWS.Credentials] the AWS credentials + * to sign requests with. Uses the default credential provider chain + * if not specified. + * @option options hostname [String] the hostname of the database to connect to. + * @option options port [Number] the port number the database is listening on. + * @option options region [String] the region the database is located in. + * @option options username [String] the username to login as. + * @example Passing in options to constructor + * var signer = new AWS.RDS.Signer({ + * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}), + * region: 'us-east-1', + * hostname: 'db.us-east-1.rds.amazonaws.com', + * port: 8000, + * username: 'name' + * }); + */ + constructor: function Signer(options) { + this.options = options || {}; + }, + + /** + * @api private + * Strips the protocol from a url. + */ + convertUrlToAuthToken: function convertUrlToAuthToken(url) { + // we are always using https as the protocol + var protocol = 'https://'; + if (url.indexOf(protocol) === 0) { + return url.substring(protocol.length); + } + }, + + /** + * @overload getAuthToken(options = {}, [callback]) + * Generate an auth token to a database. + * @note You must ensure that you have static or previously resolved + * credentials if you call this method synchronously (with no callback), + * otherwise it may not properly sign the request. If you cannot guarantee + * this (you are using an asynchronous credential provider, i.e., EC2 + * IAM roles), you should always call this method with an asynchronous + * callback. + * + * @param options [map] The fields to use when generating an auth token. + * Any options specified here will be merged on top of any options passed + * to AWS.RDS.Signer: + * + * * **credentials** (AWS.Credentials) — the AWS credentials + * to sign requests with. Uses the default credential provider chain + * if not specified. + * * **hostname** (String) — the hostname of the database to connect to. + * * **port** (Number) — the port number the database is listening on. + * * **region** (String) — the region the database is located in. + * * **username** (String) — the username to login as. + * @return [String] if called synchronously (with no callback), returns the + * auth token. + * @return [null] nothing is returned if a callback is provided. + * @callback callback function (err, token) + * If a callback is supplied, it is called when an auth token has been generated. + * @param err [Error] the error object returned from the signer. + * @param token [String] the auth token. + * + * @example Generating an auth token synchronously + * var signer = new AWS.RDS.Signer({ + * // configure options + * region: 'us-east-1', + * username: 'default', + * hostname: 'db.us-east-1.amazonaws.com', + * port: 8000 + * }); + * var token = signer.getAuthToken({ + * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option + * // credentials are not specified here or when creating the signer, so default credential provider will be used + * username: 'test' // overriding username + * }); + * @example Generating an auth token asynchronously + * var signer = new AWS.RDS.Signer({ + * // configure options + * region: 'us-east-1', + * username: 'default', + * hostname: 'db.us-east-1.amazonaws.com', + * port: 8000 + * }); + * signer.getAuthToken({ + * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option + * // credentials are not specified here or when creating the signer, so default credential provider will be used + * username: 'test' // overriding username + * }, function(err, token) { + * if (err) { + * // handle error + * } else { + * // use token + * } + * }); + * + */ + getAuthToken: function getAuthToken(options, callback) { + if (typeof options === 'function' && callback === undefined) { + callback = options; + options = {}; + } + var self = this; + var hasCallback = typeof callback === 'function'; + // merge options with existing options + options = AWS.util.merge(this.options, options); + // validate options + var optionsValidation = this.validateAuthTokenOptions(options); + if (optionsValidation !== true) { + if (hasCallback) { + return callback(optionsValidation, null); + } + throw optionsValidation; + } + + // 15 minutes + var expires = 900; + // create service to generate a request from + var serviceOptions = { + region: options.region, + endpoint: new AWS.Endpoint(options.hostname + ':' + options.port), + paramValidation: false, + signatureVersion: 'v4' + }; + if (options.credentials) { + serviceOptions.credentials = options.credentials; + } + service = new AWS.Service(serviceOptions); + // ensure the SDK is using sigv4 signing (config is not enough) + service.api = api; + + var request = service.makeRequest(); + // add listeners to request to properly build auth token + this.modifyRequestForAuthToken(request, options); + + if (hasCallback) { + request.presign(expires, function(err, url) { + if (url) { + url = self.convertUrlToAuthToken(url); + } + callback(err, url); + }); + } else { + var url = request.presign(expires); + return this.convertUrlToAuthToken(url); + } + }, + + /** + * @api private + * Modifies a request to allow the presigner to generate an auth token. + */ + modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) { + request.on('build', request.buildAsGet); + var httpRequest = request.httpRequest; + httpRequest.body = AWS.util.queryParamsToString({ + Action: 'connect', + DBUser: options.username + }); + }, + + /** + * @api private + * Validates that the options passed in contain all the keys with values of the correct type that + * are needed to generate an auth token. + */ + validateAuthTokenOptions: function validateAuthTokenOptions(options) { + // iterate over all keys in options + var message = ''; + options = options || {}; + for (var key in requiredAuthTokenOptions) { + if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) { + continue; + } + if (typeof options[key] !== requiredAuthTokenOptions[key]) { + message += 'option \'' + key + '\' should have been type \'' + requiredAuthTokenOptions[key] + '\', was \'' + typeof options[key] + '\'.\n'; + } + } + if (message.length) { + return AWS.util.error(new Error(), { + code: 'InvalidParameter', + message: message + }); + } + return true; + } }); /***/ }), @@ -43624,7 +43630,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 304 */ /***/ (function(module, exports) { - module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-10-31","endpointPrefix":"rds","protocol":"query","serviceAbbreviation":"Amazon RDS","serviceFullName":"Amazon Relational Database Service","serviceId":"RDS","signatureVersion":"v4","uid":"rds-2014-10-31","xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/"},"operations":{"AddRoleToDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","RoleArn"],"members":{"DBClusterIdentifier":{},"RoleArn":{}}}},"AddSourceIdentifierToSubscription":{"input":{"type":"structure","required":["SubscriptionName","SourceIdentifier"],"members":{"SubscriptionName":{},"SourceIdentifier":{}}},"output":{"resultWrapper":"AddSourceIdentifierToSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"AddTagsToResource":{"input":{"type":"structure","required":["ResourceName","Tags"],"members":{"ResourceName":{},"Tags":{"shape":"Sa"}}}},"ApplyPendingMaintenanceAction":{"input":{"type":"structure","required":["ResourceIdentifier","ApplyAction","OptInType"],"members":{"ResourceIdentifier":{},"ApplyAction":{},"OptInType":{}}},"output":{"resultWrapper":"ApplyPendingMaintenanceActionResult","type":"structure","members":{"ResourcePendingMaintenanceActions":{"shape":"Se"}}}},"AuthorizeDBSecurityGroupIngress":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{},"CIDRIP":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}},"output":{"resultWrapper":"AuthorizeDBSecurityGroupIngressResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sk"}}}},"CopyDBClusterParameterGroup":{"input":{"type":"structure","required":["SourceDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupDescription"],"members":{"SourceDBClusterParameterGroupIdentifier":{},"TargetDBClusterParameterGroupIdentifier":{},"TargetDBClusterParameterGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CopyDBClusterParameterGroupResult","type":"structure","members":{"DBClusterParameterGroup":{"shape":"Sr"}}}},"CopyDBClusterSnapshot":{"input":{"type":"structure","required":["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],"members":{"SourceDBClusterSnapshotIdentifier":{},"TargetDBClusterSnapshotIdentifier":{},"KmsKeyId":{},"PreSignedUrl":{},"CopyTags":{"type":"boolean"},"Tags":{"shape":"Sa"},"SourceRegion":{}}},"output":{"resultWrapper":"CopyDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sv"}}}},"CopyDBParameterGroup":{"input":{"type":"structure","required":["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],"members":{"SourceDBParameterGroupIdentifier":{},"TargetDBParameterGroupIdentifier":{},"TargetDBParameterGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CopyDBParameterGroupResult","type":"structure","members":{"DBParameterGroup":{"shape":"S10"}}}},"CopyDBSnapshot":{"input":{"type":"structure","required":["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],"members":{"SourceDBSnapshotIdentifier":{},"TargetDBSnapshotIdentifier":{},"KmsKeyId":{},"Tags":{"shape":"Sa"},"CopyTags":{"type":"boolean"},"PreSignedUrl":{},"OptionGroupName":{},"SourceRegion":{}}},"output":{"resultWrapper":"CopyDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"CopyOptionGroup":{"input":{"type":"structure","required":["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],"members":{"SourceOptionGroupIdentifier":{},"TargetOptionGroupIdentifier":{},"TargetOptionGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CopyOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S17"}}}},"CreateDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","Engine"],"members":{"AvailabilityZones":{"shape":"Sw"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"DBSubnetGroupName":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"MasterUsername":{},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"ReplicationSourceIdentifier":{},"Tags":{"shape":"Sa"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"PreSignedUrl":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"SourceRegion":{}}},"output":{"resultWrapper":"CreateDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"CreateDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],"members":{"DBClusterParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBClusterParameterGroupResult","type":"structure","members":{"DBClusterParameterGroup":{"shape":"Sr"}}}},"CreateDBClusterSnapshot":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier","DBClusterIdentifier"],"members":{"DBClusterSnapshotIdentifier":{},"DBClusterIdentifier":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sv"}}}},"CreateDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBInstanceClass","Engine"],"members":{"DBName":{},"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"Engine":{},"MasterUsername":{},"MasterUserPassword":{},"DBSecurityGroups":{"shape":"S1w"},"VpcSecurityGroupIds":{"shape":"S1h"},"AvailabilityZone":{},"DBSubnetGroupName":{},"PreferredMaintenanceWindow":{},"DBParameterGroupName":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{},"Port":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupName":{},"CharacterSetName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"Sa"},"DBClusterIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"DomainIAMRoleName":{},"PromotionTier":{"type":"integer"},"Timezone":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{}}},"output":{"resultWrapper":"CreateDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"CreateDBInstanceReadReplica":{"input":{"type":"structure","required":["DBInstanceIdentifier","SourceDBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"SourceDBInstanceIdentifier":{},"DBInstanceClass":{},"AvailabilityZone":{},"Port":{"type":"integer"},"MultiAZ":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"Iops":{"type":"integer"},"OptionGroupName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"Sa"},"DBSubnetGroupName":{},"StorageType":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"KmsKeyId":{},"PreSignedUrl":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{},"SourceRegion":{}}},"output":{"resultWrapper":"CreateDBInstanceReadReplicaResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"CreateDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName","DBParameterGroupFamily","Description"],"members":{"DBParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBParameterGroupResult","type":"structure","members":{"DBParameterGroup":{"shape":"S10"}}}},"CreateDBSecurityGroup":{"input":{"type":"structure","required":["DBSecurityGroupName","DBSecurityGroupDescription"],"members":{"DBSecurityGroupName":{},"DBSecurityGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBSecurityGroupResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sk"}}}},"CreateDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier","DBInstanceIdentifier"],"members":{"DBSnapshotIdentifier":{},"DBInstanceIdentifier":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"CreateDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],"members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"SubnetIds":{"shape":"S2o"},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBSubnetGroupResult","type":"structure","members":{"DBSubnetGroup":{"shape":"S22"}}}},"CreateEventSubscription":{"input":{"type":"structure","required":["SubscriptionName","SnsTopicArn"],"members":{"SubscriptionName":{},"SnsTopicArn":{},"SourceType":{},"EventCategories":{"shape":"S7"},"SourceIds":{"shape":"S6"},"Enabled":{"type":"boolean"},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"CreateOptionGroup":{"input":{"type":"structure","required":["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],"members":{"OptionGroupName":{},"EngineName":{},"MajorEngineVersion":{},"OptionGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S17"}}}},"DeleteDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"SkipFinalSnapshot":{"type":"boolean"},"FinalDBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"DeleteDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{}}}},"DeleteDBClusterSnapshot":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier"],"members":{"DBClusterSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sv"}}}},"DeleteDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"SkipFinalSnapshot":{"type":"boolean"},"FinalDBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"DeleteDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{}}}},"DeleteDBSecurityGroup":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{}}}},"DeleteDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"DeleteDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName"],"members":{"DBSubnetGroupName":{}}}},"DeleteEventSubscription":{"input":{"type":"structure","required":["SubscriptionName"],"members":{"SubscriptionName":{}}},"output":{"resultWrapper":"DeleteEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"DeleteOptionGroup":{"input":{"type":"structure","required":["OptionGroupName"],"members":{"OptionGroupName":{}}}},"DescribeAccountAttributes":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"DescribeAccountAttributesResult","type":"structure","members":{"AccountQuotas":{"type":"list","member":{"locationName":"AccountQuota","type":"structure","members":{"AccountQuotaName":{},"Used":{"type":"long"},"Max":{"type":"long"}},"wrapper":true}}}}},"DescribeCertificates":{"input":{"type":"structure","members":{"CertificateIdentifier":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeCertificatesResult","type":"structure","members":{"Certificates":{"type":"list","member":{"locationName":"Certificate","type":"structure","members":{"CertificateIdentifier":{},"CertificateType":{},"Thumbprint":{},"ValidFrom":{"type":"timestamp"},"ValidTill":{"type":"timestamp"},"CertificateArn":{}},"wrapper":true}},"Marker":{}}}},"DescribeDBClusterParameterGroups":{"input":{"type":"structure","members":{"DBClusterParameterGroupName":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClusterParameterGroupsResult","type":"structure","members":{"Marker":{},"DBClusterParameterGroups":{"type":"list","member":{"shape":"Sr","locationName":"DBClusterParameterGroup"}}}}},"DescribeDBClusterParameters":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{},"Source":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClusterParametersResult","type":"structure","members":{"Parameters":{"shape":"S3q"},"Marker":{}}}},"DescribeDBClusterSnapshotAttributes":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier"],"members":{"DBClusterSnapshotIdentifier":{}}},"output":{"resultWrapper":"DescribeDBClusterSnapshotAttributesResult","type":"structure","members":{"DBClusterSnapshotAttributesResult":{"shape":"S3v"}}}},"DescribeDBClusterSnapshots":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"DBClusterSnapshotIdentifier":{},"SnapshotType":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{},"IncludeShared":{"type":"boolean"},"IncludePublic":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBClusterSnapshotsResult","type":"structure","members":{"Marker":{},"DBClusterSnapshots":{"type":"list","member":{"shape":"Sv","locationName":"DBClusterSnapshot"}}}}},"DescribeDBClusters":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClustersResult","type":"structure","members":{"Marker":{},"DBClusters":{"type":"list","member":{"shape":"S1j","locationName":"DBCluster"}}}}},"DescribeDBEngineVersions":{"input":{"type":"structure","members":{"Engine":{},"EngineVersion":{},"DBParameterGroupFamily":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{},"DefaultOnly":{"type":"boolean"},"ListSupportedCharacterSets":{"type":"boolean"},"ListSupportedTimezones":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBEngineVersionsResult","type":"structure","members":{"Marker":{},"DBEngineVersions":{"type":"list","member":{"locationName":"DBEngineVersion","type":"structure","members":{"Engine":{},"EngineVersion":{},"DBParameterGroupFamily":{},"DBEngineDescription":{},"DBEngineVersionDescription":{},"DefaultCharacterSet":{"shape":"S49"},"SupportedCharacterSets":{"type":"list","member":{"shape":"S49","locationName":"CharacterSet"}},"ValidUpgradeTarget":{"type":"list","member":{"locationName":"UpgradeTarget","type":"structure","members":{"Engine":{},"EngineVersion":{},"Description":{},"AutoUpgrade":{"type":"boolean"},"IsMajorVersionUpgrade":{"type":"boolean"}}}},"SupportedTimezones":{"type":"list","member":{"locationName":"Timezone","type":"structure","members":{"TimezoneName":{}}}}}}}}}},"DescribeDBInstances":{"input":{"type":"structure","members":{"DBInstanceIdentifier":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBInstancesResult","type":"structure","members":{"Marker":{},"DBInstances":{"type":"list","member":{"shape":"S1y","locationName":"DBInstance"}}}}},"DescribeDBLogFiles":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"FilenameContains":{},"FileLastWritten":{"type":"long"},"FileSize":{"type":"long"},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBLogFilesResult","type":"structure","members":{"DescribeDBLogFiles":{"type":"list","member":{"locationName":"DescribeDBLogFilesDetails","type":"structure","members":{"LogFileName":{},"LastWritten":{"type":"long"},"Size":{"type":"long"}}}},"Marker":{}}}},"DescribeDBParameterGroups":{"input":{"type":"structure","members":{"DBParameterGroupName":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBParameterGroupsResult","type":"structure","members":{"Marker":{},"DBParameterGroups":{"type":"list","member":{"shape":"S10","locationName":"DBParameterGroup"}}}}},"DescribeDBParameters":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{},"Source":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBParametersResult","type":"structure","members":{"Parameters":{"shape":"S3q"},"Marker":{}}}},"DescribeDBSecurityGroups":{"input":{"type":"structure","members":{"DBSecurityGroupName":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBSecurityGroupsResult","type":"structure","members":{"Marker":{},"DBSecurityGroups":{"type":"list","member":{"shape":"Sk","locationName":"DBSecurityGroup"}}}}},"DescribeDBSnapshotAttributes":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DescribeDBSnapshotAttributesResult","type":"structure","members":{"DBSnapshotAttributesResult":{"shape":"S4w"}}}},"DescribeDBSnapshots":{"input":{"type":"structure","members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{},"SnapshotType":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{},"IncludeShared":{"type":"boolean"},"IncludePublic":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBSnapshotsResult","type":"structure","members":{"Marker":{},"DBSnapshots":{"type":"list","member":{"shape":"S13","locationName":"DBSnapshot"}}}}},"DescribeDBSubnetGroups":{"input":{"type":"structure","members":{"DBSubnetGroupName":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBSubnetGroupsResult","type":"structure","members":{"Marker":{},"DBSubnetGroups":{"type":"list","member":{"shape":"S22","locationName":"DBSubnetGroup"}}}}},"DescribeEngineDefaultClusterParameters":{"input":{"type":"structure","required":["DBParameterGroupFamily"],"members":{"DBParameterGroupFamily":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEngineDefaultClusterParametersResult","type":"structure","members":{"EngineDefaults":{"shape":"S57"}}}},"DescribeEngineDefaultParameters":{"input":{"type":"structure","required":["DBParameterGroupFamily"],"members":{"DBParameterGroupFamily":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEngineDefaultParametersResult","type":"structure","members":{"EngineDefaults":{"shape":"S57"}}}},"DescribeEventCategories":{"input":{"type":"structure","members":{"SourceType":{},"Filters":{"shape":"S3f"}}},"output":{"resultWrapper":"DescribeEventCategoriesResult","type":"structure","members":{"EventCategoriesMapList":{"type":"list","member":{"locationName":"EventCategoriesMap","type":"structure","members":{"SourceType":{},"EventCategories":{"shape":"S7"}},"wrapper":true}}}}},"DescribeEventSubscriptions":{"input":{"type":"structure","members":{"SubscriptionName":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEventSubscriptionsResult","type":"structure","members":{"Marker":{},"EventSubscriptionsList":{"type":"list","member":{"shape":"S5","locationName":"EventSubscription"}}}}},"DescribeEvents":{"input":{"type":"structure","members":{"SourceIdentifier":{},"SourceType":{},"StartTime":{"type":"timestamp"},"EndTime":{"type":"timestamp"},"Duration":{"type":"integer"},"EventCategories":{"shape":"S7"},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEventsResult","type":"structure","members":{"Marker":{},"Events":{"type":"list","member":{"locationName":"Event","type":"structure","members":{"SourceIdentifier":{},"SourceType":{},"Message":{},"EventCategories":{"shape":"S7"},"Date":{"type":"timestamp"},"SourceArn":{}}}}}}},"DescribeOptionGroupOptions":{"input":{"type":"structure","required":["EngineName"],"members":{"EngineName":{},"MajorEngineVersion":{},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeOptionGroupOptionsResult","type":"structure","members":{"OptionGroupOptions":{"type":"list","member":{"locationName":"OptionGroupOption","type":"structure","members":{"Name":{},"Description":{},"EngineName":{},"MajorEngineVersion":{},"MinimumRequiredMinorEngineVersion":{},"PortRequired":{"type":"boolean"},"DefaultPort":{"type":"integer"},"OptionsDependedOn":{"type":"list","member":{"locationName":"OptionName"}},"OptionsConflictsWith":{"type":"list","member":{"locationName":"OptionConflictName"}},"Persistent":{"type":"boolean"},"Permanent":{"type":"boolean"},"RequiresAutoMinorEngineVersionUpgrade":{"type":"boolean"},"VpcOnly":{"type":"boolean"},"SupportsOptionVersionDowngrade":{"type":"boolean"},"OptionGroupOptionSettings":{"type":"list","member":{"locationName":"OptionGroupOptionSetting","type":"structure","members":{"SettingName":{},"SettingDescription":{},"DefaultValue":{},"ApplyType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"}}}},"OptionGroupOptionVersions":{"type":"list","member":{"locationName":"OptionVersion","type":"structure","members":{"Version":{},"IsDefault":{"type":"boolean"}}}}}}},"Marker":{}}}},"DescribeOptionGroups":{"input":{"type":"structure","members":{"OptionGroupName":{},"Filters":{"shape":"S3f"},"Marker":{},"MaxRecords":{"type":"integer"},"EngineName":{},"MajorEngineVersion":{}}},"output":{"resultWrapper":"DescribeOptionGroupsResult","type":"structure","members":{"OptionGroupsList":{"type":"list","member":{"shape":"S17","locationName":"OptionGroup"}},"Marker":{}}}},"DescribeOrderableDBInstanceOptions":{"input":{"type":"structure","required":["Engine"],"members":{"Engine":{},"EngineVersion":{},"DBInstanceClass":{},"LicenseModel":{},"Vpc":{"type":"boolean"},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeOrderableDBInstanceOptionsResult","type":"structure","members":{"OrderableDBInstanceOptions":{"type":"list","member":{"locationName":"OrderableDBInstanceOption","type":"structure","members":{"Engine":{},"EngineVersion":{},"DBInstanceClass":{},"LicenseModel":{},"AvailabilityZones":{"type":"list","member":{"shape":"S25","locationName":"AvailabilityZone"}},"MultiAZCapable":{"type":"boolean"},"ReadReplicaCapable":{"type":"boolean"},"Vpc":{"type":"boolean"},"SupportsStorageEncryption":{"type":"boolean"},"StorageType":{},"SupportsIops":{"type":"boolean"},"SupportsEnhancedMonitoring":{"type":"boolean"},"SupportsIAMDatabaseAuthentication":{"type":"boolean"},"SupportsPerformanceInsights":{"type":"boolean"},"MinStorageSize":{"type":"integer"},"MaxStorageSize":{"type":"integer"},"MinIopsPerDbInstance":{"type":"integer"},"MaxIopsPerDbInstance":{"type":"integer"},"MinIopsPerGib":{"type":"double"},"MaxIopsPerGib":{"type":"double"}},"wrapper":true}},"Marker":{}}}},"DescribePendingMaintenanceActions":{"input":{"type":"structure","members":{"ResourceIdentifier":{},"Filters":{"shape":"S3f"},"Marker":{},"MaxRecords":{"type":"integer"}}},"output":{"resultWrapper":"DescribePendingMaintenanceActionsResult","type":"structure","members":{"PendingMaintenanceActions":{"type":"list","member":{"shape":"Se","locationName":"ResourcePendingMaintenanceActions"}},"Marker":{}}}},"DescribeReservedDBInstances":{"input":{"type":"structure","members":{"ReservedDBInstanceId":{},"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeReservedDBInstancesResult","type":"structure","members":{"Marker":{},"ReservedDBInstances":{"type":"list","member":{"shape":"S6b","locationName":"ReservedDBInstance"}}}}},"DescribeReservedDBInstancesOfferings":{"input":{"type":"structure","members":{"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"Filters":{"shape":"S3f"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeReservedDBInstancesOfferingsResult","type":"structure","members":{"Marker":{},"ReservedDBInstancesOfferings":{"type":"list","member":{"locationName":"ReservedDBInstancesOffering","type":"structure","members":{"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{"type":"integer"},"FixedPrice":{"type":"double"},"UsagePrice":{"type":"double"},"CurrencyCode":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"RecurringCharges":{"shape":"S6d"}},"wrapper":true}}}}},"DescribeSourceRegions":{"input":{"type":"structure","members":{"RegionName":{},"MaxRecords":{"type":"integer"},"Marker":{},"Filters":{"shape":"S3f"}}},"output":{"resultWrapper":"DescribeSourceRegionsResult","type":"structure","members":{"Marker":{},"SourceRegions":{"type":"list","member":{"locationName":"SourceRegion","type":"structure","members":{"RegionName":{},"Endpoint":{},"Status":{}}}}}}},"DescribeValidDBInstanceModifications":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{}}},"output":{"resultWrapper":"DescribeValidDBInstanceModificationsResult","type":"structure","members":{"ValidDBInstanceModificationsMessage":{"type":"structure","members":{"Storage":{"type":"list","member":{"locationName":"ValidStorageOptions","type":"structure","members":{"StorageType":{},"StorageSize":{"shape":"S6s"},"ProvisionedIops":{"shape":"S6s"},"IopsToStorageRatio":{"type":"list","member":{"locationName":"DoubleRange","type":"structure","members":{"From":{"type":"double"},"To":{"type":"double"}}}}}}}},"wrapper":true}}}},"DownloadDBLogFilePortion":{"input":{"type":"structure","required":["DBInstanceIdentifier","LogFileName"],"members":{"DBInstanceIdentifier":{},"LogFileName":{},"Marker":{},"NumberOfLines":{"type":"integer"}}},"output":{"resultWrapper":"DownloadDBLogFilePortionResult","type":"structure","members":{"LogFileData":{},"Marker":{},"AdditionalDataPending":{"type":"boolean"}}}},"FailoverDBCluster":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"TargetDBInstanceIdentifier":{}}},"output":{"resultWrapper":"FailoverDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceName"],"members":{"ResourceName":{},"Filters":{"shape":"S3f"}}},"output":{"resultWrapper":"ListTagsForResourceResult","type":"structure","members":{"TagList":{"shape":"Sa"}}}},"ModifyDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"NewDBClusterIdentifier":{},"ApplyImmediately":{"type":"boolean"},"BackupRetentionPeriod":{"type":"integer"},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"Port":{"type":"integer"},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"ModifyDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName","Parameters"],"members":{"DBClusterParameterGroupName":{},"Parameters":{"shape":"S3q"}}},"output":{"shape":"S75","resultWrapper":"ModifyDBClusterParameterGroupResult"}},"ModifyDBClusterSnapshotAttribute":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier","AttributeName"],"members":{"DBClusterSnapshotIdentifier":{},"AttributeName":{},"ValuesToAdd":{"shape":"S3y"},"ValuesToRemove":{"shape":"S3y"}}},"output":{"resultWrapper":"ModifyDBClusterSnapshotAttributeResult","type":"structure","members":{"DBClusterSnapshotAttributesResult":{"shape":"S3v"}}}},"ModifyDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"DBSubnetGroupName":{},"DBSecurityGroups":{"shape":"S1w"},"VpcSecurityGroupIds":{"shape":"S1h"},"ApplyImmediately":{"type":"boolean"},"MasterUserPassword":{},"DBParameterGroupName":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AllowMajorVersionUpgrade":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupName":{},"NewDBInstanceIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"CACertificateIdentifier":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"DBPortNumber":{"type":"integer"},"PubliclyAccessible":{"type":"boolean"},"MonitoringRoleArn":{},"DomainIAMRoleName":{},"PromotionTier":{"type":"integer"},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{}}},"output":{"resultWrapper":"ModifyDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"ModifyDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName","Parameters"],"members":{"DBParameterGroupName":{},"Parameters":{"shape":"S3q"}}},"output":{"shape":"S7b","resultWrapper":"ModifyDBParameterGroupResult"}},"ModifyDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{},"EngineVersion":{},"OptionGroupName":{}}},"output":{"resultWrapper":"ModifyDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"ModifyDBSnapshotAttribute":{"input":{"type":"structure","required":["DBSnapshotIdentifier","AttributeName"],"members":{"DBSnapshotIdentifier":{},"AttributeName":{},"ValuesToAdd":{"shape":"S3y"},"ValuesToRemove":{"shape":"S3y"}}},"output":{"resultWrapper":"ModifyDBSnapshotAttributeResult","type":"structure","members":{"DBSnapshotAttributesResult":{"shape":"S4w"}}}},"ModifyDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName","SubnetIds"],"members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"SubnetIds":{"shape":"S2o"}}},"output":{"resultWrapper":"ModifyDBSubnetGroupResult","type":"structure","members":{"DBSubnetGroup":{"shape":"S22"}}}},"ModifyEventSubscription":{"input":{"type":"structure","required":["SubscriptionName"],"members":{"SubscriptionName":{},"SnsTopicArn":{},"SourceType":{},"EventCategories":{"shape":"S7"},"Enabled":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"ModifyOptionGroup":{"input":{"type":"structure","required":["OptionGroupName"],"members":{"OptionGroupName":{},"OptionsToInclude":{"type":"list","member":{"locationName":"OptionConfiguration","type":"structure","required":["OptionName"],"members":{"OptionName":{},"Port":{"type":"integer"},"OptionVersion":{},"DBSecurityGroupMemberships":{"shape":"S1w"},"VpcSecurityGroupMemberships":{"shape":"S1h"},"OptionSettings":{"type":"list","member":{"shape":"S1b","locationName":"OptionSetting"}}}}},"OptionsToRemove":{"type":"list","member":{}},"ApplyImmediately":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S17"}}}},"PromoteReadReplica":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{}}},"output":{"resultWrapper":"PromoteReadReplicaResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"PromoteReadReplicaDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{}}},"output":{"resultWrapper":"PromoteReadReplicaDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"PurchaseReservedDBInstancesOffering":{"input":{"type":"structure","required":["ReservedDBInstancesOfferingId"],"members":{"ReservedDBInstancesOfferingId":{},"ReservedDBInstanceId":{},"DBInstanceCount":{"type":"integer"},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"PurchaseReservedDBInstancesOfferingResult","type":"structure","members":{"ReservedDBInstance":{"shape":"S6b"}}}},"RebootDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"ForceFailover":{"type":"boolean"}}},"output":{"resultWrapper":"RebootDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"RemoveRoleFromDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","RoleArn"],"members":{"DBClusterIdentifier":{},"RoleArn":{}}}},"RemoveSourceIdentifierFromSubscription":{"input":{"type":"structure","required":["SubscriptionName","SourceIdentifier"],"members":{"SubscriptionName":{},"SourceIdentifier":{}}},"output":{"resultWrapper":"RemoveSourceIdentifierFromSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"RemoveTagsFromResource":{"input":{"type":"structure","required":["ResourceName","TagKeys"],"members":{"ResourceName":{},"TagKeys":{"type":"list","member":{}}}}},"ResetDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{},"ResetAllParameters":{"type":"boolean"},"Parameters":{"shape":"S3q"}}},"output":{"shape":"S75","resultWrapper":"ResetDBClusterParameterGroupResult"}},"ResetDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{},"ResetAllParameters":{"type":"boolean"},"Parameters":{"shape":"S3q"}}},"output":{"shape":"S7b","resultWrapper":"ResetDBParameterGroupResult"}},"RestoreDBClusterFromS3":{"input":{"type":"structure","required":["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],"members":{"AvailabilityZones":{"shape":"Sw"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"DBSubnetGroupName":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"MasterUsername":{},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"Tags":{"shape":"Sa"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"SourceEngine":{},"SourceEngineVersion":{},"S3BucketName":{},"S3Prefix":{},"S3IngestionRoleArn":{}}},"output":{"resultWrapper":"RestoreDBClusterFromS3Result","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"RestoreDBClusterFromSnapshot":{"input":{"type":"structure","required":["DBClusterIdentifier","SnapshotIdentifier","Engine"],"members":{"AvailabilityZones":{"shape":"Sw"},"DBClusterIdentifier":{},"SnapshotIdentifier":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"DBSubnetGroupName":{},"DatabaseName":{},"OptionGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"Tags":{"shape":"Sa"},"KmsKeyId":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"RestoreDBClusterFromSnapshotResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"RestoreDBClusterToPointInTime":{"input":{"type":"structure","required":["DBClusterIdentifier","SourceDBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"RestoreType":{},"SourceDBClusterIdentifier":{},"RestoreToTime":{"type":"timestamp"},"UseLatestRestorableTime":{"type":"boolean"},"Port":{"type":"integer"},"DBSubnetGroupName":{},"OptionGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"Tags":{"shape":"Sa"},"KmsKeyId":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"RestoreDBClusterToPointInTimeResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"RestoreDBInstanceFromDBSnapshot":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBSnapshotIdentifier"],"members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{},"DBInstanceClass":{},"Port":{"type":"integer"},"AvailabilityZone":{},"DBSubnetGroupName":{},"MultiAZ":{"type":"boolean"},"PubliclyAccessible":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"DBName":{},"Engine":{},"Iops":{"type":"integer"},"OptionGroupName":{},"Tags":{"shape":"Sa"},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"DomainIAMRoleName":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"RestoreDBInstanceFromDBSnapshotResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"RestoreDBInstanceFromS3":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBInstanceClass","Engine","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],"members":{"DBName":{},"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"Engine":{},"MasterUsername":{},"MasterUserPassword":{},"DBSecurityGroups":{"shape":"S1w"},"VpcSecurityGroupIds":{"shape":"S1h"},"AvailabilityZone":{},"DBSubnetGroupName":{},"PreferredMaintenanceWindow":{},"DBParameterGroupName":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{},"Port":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"Sa"},"StorageType":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"SourceEngine":{},"SourceEngineVersion":{},"S3BucketName":{},"S3Prefix":{},"S3IngestionRoleArn":{},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{}}},"output":{"resultWrapper":"RestoreDBInstanceFromS3Result","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"RestoreDBInstanceToPointInTime":{"input":{"type":"structure","required":["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],"members":{"SourceDBInstanceIdentifier":{},"TargetDBInstanceIdentifier":{},"RestoreTime":{"type":"timestamp"},"UseLatestRestorableTime":{"type":"boolean"},"DBInstanceClass":{},"Port":{"type":"integer"},"AvailabilityZone":{},"DBSubnetGroupName":{},"MultiAZ":{"type":"boolean"},"PubliclyAccessible":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"DBName":{},"Engine":{},"Iops":{"type":"integer"},"OptionGroupName":{},"CopyTagsToSnapshot":{"type":"boolean"},"Tags":{"shape":"Sa"},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"Domain":{},"DomainIAMRoleName":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"RestoreDBInstanceToPointInTimeResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"RevokeDBSecurityGroupIngress":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{},"CIDRIP":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}},"output":{"resultWrapper":"RevokeDBSecurityGroupIngressResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sk"}}}},"StartDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{}}},"output":{"resultWrapper":"StartDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}},"StopDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"StopDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1y"}}}}},"shapes":{"S5":{"type":"structure","members":{"CustomerAwsId":{},"CustSubscriptionId":{},"SnsTopicArn":{},"Status":{},"SubscriptionCreationTime":{},"SourceType":{},"SourceIdsList":{"shape":"S6"},"EventCategoriesList":{"shape":"S7"},"Enabled":{"type":"boolean"},"EventSubscriptionArn":{}},"wrapper":true},"S6":{"type":"list","member":{"locationName":"SourceId"}},"S7":{"type":"list","member":{"locationName":"EventCategory"}},"Sa":{"type":"list","member":{"locationName":"Tag","type":"structure","members":{"Key":{},"Value":{}}}},"Se":{"type":"structure","members":{"ResourceIdentifier":{},"PendingMaintenanceActionDetails":{"type":"list","member":{"locationName":"PendingMaintenanceAction","type":"structure","members":{"Action":{},"AutoAppliedAfterDate":{"type":"timestamp"},"ForcedApplyDate":{"type":"timestamp"},"OptInStatus":{},"CurrentApplyDate":{"type":"timestamp"},"Description":{}}}}},"wrapper":true},"Sk":{"type":"structure","members":{"OwnerId":{},"DBSecurityGroupName":{},"DBSecurityGroupDescription":{},"VpcId":{},"EC2SecurityGroups":{"type":"list","member":{"locationName":"EC2SecurityGroup","type":"structure","members":{"Status":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}}},"IPRanges":{"type":"list","member":{"locationName":"IPRange","type":"structure","members":{"Status":{},"CIDRIP":{}}}},"DBSecurityGroupArn":{}},"wrapper":true},"Sr":{"type":"structure","members":{"DBClusterParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"DBClusterParameterGroupArn":{}},"wrapper":true},"Sv":{"type":"structure","members":{"AvailabilityZones":{"shape":"Sw"},"DBClusterSnapshotIdentifier":{},"DBClusterIdentifier":{},"SnapshotCreateTime":{"type":"timestamp"},"Engine":{},"AllocatedStorage":{"type":"integer"},"Status":{},"Port":{"type":"integer"},"VpcId":{},"ClusterCreateTime":{"type":"timestamp"},"MasterUsername":{},"EngineVersion":{},"LicenseModel":{},"SnapshotType":{},"PercentProgress":{"type":"integer"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DBClusterSnapshotArn":{},"SourceDBClusterSnapshotArn":{},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"}},"wrapper":true},"Sw":{"type":"list","member":{"locationName":"AvailabilityZone"}},"S10":{"type":"structure","members":{"DBParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"DBParameterGroupArn":{}},"wrapper":true},"S13":{"type":"structure","members":{"DBSnapshotIdentifier":{},"DBInstanceIdentifier":{},"SnapshotCreateTime":{"type":"timestamp"},"Engine":{},"AllocatedStorage":{"type":"integer"},"Status":{},"Port":{"type":"integer"},"AvailabilityZone":{},"VpcId":{},"InstanceCreateTime":{"type":"timestamp"},"MasterUsername":{},"EngineVersion":{},"LicenseModel":{},"SnapshotType":{},"Iops":{"type":"integer"},"OptionGroupName":{},"PercentProgress":{"type":"integer"},"SourceRegion":{},"SourceDBSnapshotIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"Encrypted":{"type":"boolean"},"KmsKeyId":{},"DBSnapshotArn":{},"Timezone":{},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"}},"wrapper":true},"S17":{"type":"structure","members":{"OptionGroupName":{},"OptionGroupDescription":{},"EngineName":{},"MajorEngineVersion":{},"Options":{"type":"list","member":{"locationName":"Option","type":"structure","members":{"OptionName":{},"OptionDescription":{},"Persistent":{"type":"boolean"},"Permanent":{"type":"boolean"},"Port":{"type":"integer"},"OptionVersion":{},"OptionSettings":{"type":"list","member":{"shape":"S1b","locationName":"OptionSetting"}},"DBSecurityGroupMemberships":{"shape":"S1c"},"VpcSecurityGroupMemberships":{"shape":"S1e"}}}},"AllowsVpcAndNonVpcInstanceMemberships":{"type":"boolean"},"VpcId":{},"OptionGroupArn":{}},"wrapper":true},"S1b":{"type":"structure","members":{"Name":{},"Value":{},"DefaultValue":{},"Description":{},"ApplyType":{},"DataType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"},"IsCollection":{"type":"boolean"}}},"S1c":{"type":"list","member":{"locationName":"DBSecurityGroup","type":"structure","members":{"DBSecurityGroupName":{},"Status":{}}}},"S1e":{"type":"list","member":{"locationName":"VpcSecurityGroupMembership","type":"structure","members":{"VpcSecurityGroupId":{},"Status":{}}}},"S1h":{"type":"list","member":{"locationName":"VpcSecurityGroupId"}},"S1j":{"type":"structure","members":{"AllocatedStorage":{"type":"integer"},"AvailabilityZones":{"shape":"Sw"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroup":{},"DBSubnetGroup":{},"Status":{},"PercentProgress":{},"EarliestRestorableTime":{"type":"timestamp"},"Endpoint":{},"ReaderEndpoint":{},"MultiAZ":{"type":"boolean"},"Engine":{},"EngineVersion":{},"LatestRestorableTime":{"type":"timestamp"},"Port":{"type":"integer"},"MasterUsername":{},"DBClusterOptionGroupMemberships":{"type":"list","member":{"locationName":"DBClusterOptionGroup","type":"structure","members":{"DBClusterOptionGroupName":{},"Status":{}}}},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"ReplicationSourceIdentifier":{},"ReadReplicaIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaIdentifier"}},"DBClusterMembers":{"type":"list","member":{"locationName":"DBClusterMember","type":"structure","members":{"DBInstanceIdentifier":{},"IsClusterWriter":{"type":"boolean"},"DBClusterParameterGroupStatus":{},"PromotionTier":{"type":"integer"}},"wrapper":true}},"VpcSecurityGroups":{"shape":"S1e"},"HostedZoneId":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DbClusterResourceId":{},"DBClusterArn":{},"AssociatedRoles":{"type":"list","member":{"locationName":"DBClusterRole","type":"structure","members":{"RoleArn":{},"Status":{}}}},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"},"CloneGroupId":{},"ClusterCreateTime":{"type":"timestamp"}},"wrapper":true},"S1w":{"type":"list","member":{"locationName":"DBSecurityGroupName"}},"S1y":{"type":"structure","members":{"DBInstanceIdentifier":{},"DBInstanceClass":{},"Engine":{},"DBInstanceStatus":{},"MasterUsername":{},"DBName":{},"Endpoint":{"type":"structure","members":{"Address":{},"Port":{"type":"integer"},"HostedZoneId":{}}},"AllocatedStorage":{"type":"integer"},"InstanceCreateTime":{"type":"timestamp"},"PreferredBackupWindow":{},"BackupRetentionPeriod":{"type":"integer"},"DBSecurityGroups":{"shape":"S1c"},"VpcSecurityGroups":{"shape":"S1e"},"DBParameterGroups":{"type":"list","member":{"locationName":"DBParameterGroup","type":"structure","members":{"DBParameterGroupName":{},"ParameterApplyStatus":{}}}},"AvailabilityZone":{},"DBSubnetGroup":{"shape":"S22"},"PreferredMaintenanceWindow":{},"PendingModifiedValues":{"type":"structure","members":{"DBInstanceClass":{},"AllocatedStorage":{"type":"integer"},"MasterUserPassword":{},"Port":{"type":"integer"},"BackupRetentionPeriod":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"LicenseModel":{},"Iops":{"type":"integer"},"DBInstanceIdentifier":{},"StorageType":{},"CACertificateIdentifier":{},"DBSubnetGroupName":{}}},"LatestRestorableTime":{"type":"timestamp"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"ReadReplicaSourceDBInstanceIdentifier":{},"ReadReplicaDBInstanceIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaDBInstanceIdentifier"}},"ReadReplicaDBClusterIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaDBClusterIdentifier"}},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupMemberships":{"type":"list","member":{"locationName":"OptionGroupMembership","type":"structure","members":{"OptionGroupName":{},"Status":{}}}},"CharacterSetName":{},"SecondaryAvailabilityZone":{},"PubliclyAccessible":{"type":"boolean"},"StatusInfos":{"type":"list","member":{"locationName":"DBInstanceStatusInfo","type":"structure","members":{"StatusType":{},"Normal":{"type":"boolean"},"Status":{},"Message":{}}}},"StorageType":{},"TdeCredentialArn":{},"DbInstancePort":{"type":"integer"},"DBClusterIdentifier":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DbiResourceId":{},"CACertificateIdentifier":{},"DomainMemberships":{"type":"list","member":{"locationName":"DomainMembership","type":"structure","members":{"Domain":{},"Status":{},"FQDN":{},"IAMRoleName":{}}}},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"EnhancedMonitoringResourceArn":{},"MonitoringRoleArn":{},"PromotionTier":{"type":"integer"},"DBInstanceArn":{},"Timezone":{},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"},"PerformanceInsightsEnabled":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{}},"wrapper":true},"S22":{"type":"structure","members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"VpcId":{},"SubnetGroupStatus":{},"Subnets":{"type":"list","member":{"locationName":"Subnet","type":"structure","members":{"SubnetIdentifier":{},"SubnetAvailabilityZone":{"shape":"S25"},"SubnetStatus":{}}}},"DBSubnetGroupArn":{}},"wrapper":true},"S25":{"type":"structure","members":{"Name":{}},"wrapper":true},"S2o":{"type":"list","member":{"locationName":"SubnetIdentifier"}},"S3f":{"type":"list","member":{"locationName":"Filter","type":"structure","required":["Name","Values"],"members":{"Name":{},"Values":{"type":"list","member":{"locationName":"Value"}}}}},"S3q":{"type":"list","member":{"locationName":"Parameter","type":"structure","members":{"ParameterName":{},"ParameterValue":{},"Description":{},"Source":{},"ApplyType":{},"DataType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"},"MinimumEngineVersion":{},"ApplyMethod":{}}}},"S3v":{"type":"structure","members":{"DBClusterSnapshotIdentifier":{},"DBClusterSnapshotAttributes":{"type":"list","member":{"locationName":"DBClusterSnapshotAttribute","type":"structure","members":{"AttributeName":{},"AttributeValues":{"shape":"S3y"}}}}},"wrapper":true},"S3y":{"type":"list","member":{"locationName":"AttributeValue"}},"S49":{"type":"structure","members":{"CharacterSetName":{},"CharacterSetDescription":{}}},"S4w":{"type":"structure","members":{"DBSnapshotIdentifier":{},"DBSnapshotAttributes":{"type":"list","member":{"locationName":"DBSnapshotAttribute","type":"structure","members":{"AttributeName":{},"AttributeValues":{"shape":"S3y"}},"wrapper":true}}},"wrapper":true},"S57":{"type":"structure","members":{"DBParameterGroupFamily":{},"Marker":{},"Parameters":{"shape":"S3q"}},"wrapper":true},"S6b":{"type":"structure","members":{"ReservedDBInstanceId":{},"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"StartTime":{"type":"timestamp"},"Duration":{"type":"integer"},"FixedPrice":{"type":"double"},"UsagePrice":{"type":"double"},"CurrencyCode":{},"DBInstanceCount":{"type":"integer"},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"State":{},"RecurringCharges":{"shape":"S6d"},"ReservedDBInstanceArn":{}},"wrapper":true},"S6d":{"type":"list","member":{"locationName":"RecurringCharge","type":"structure","members":{"RecurringChargeAmount":{"type":"double"},"RecurringChargeFrequency":{}},"wrapper":true}},"S6s":{"type":"list","member":{"locationName":"Range","type":"structure","members":{"From":{"type":"integer"},"To":{"type":"integer"},"Step":{"type":"integer"}}}},"S75":{"type":"structure","members":{"DBClusterParameterGroupName":{}}},"S7b":{"type":"structure","members":{"DBParameterGroupName":{}}}}} + module.exports = {"version":"2.0","metadata":{"apiVersion":"2014-10-31","endpointPrefix":"rds","protocol":"query","serviceAbbreviation":"Amazon RDS","serviceFullName":"Amazon Relational Database Service","serviceId":"RDS","signatureVersion":"v4","uid":"rds-2014-10-31","xmlNamespace":"http://rds.amazonaws.com/doc/2014-10-31/"},"operations":{"AddRoleToDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","RoleArn"],"members":{"DBClusterIdentifier":{},"RoleArn":{}}}},"AddSourceIdentifierToSubscription":{"input":{"type":"structure","required":["SubscriptionName","SourceIdentifier"],"members":{"SubscriptionName":{},"SourceIdentifier":{}}},"output":{"resultWrapper":"AddSourceIdentifierToSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"AddTagsToResource":{"input":{"type":"structure","required":["ResourceName","Tags"],"members":{"ResourceName":{},"Tags":{"shape":"Sa"}}}},"ApplyPendingMaintenanceAction":{"input":{"type":"structure","required":["ResourceIdentifier","ApplyAction","OptInType"],"members":{"ResourceIdentifier":{},"ApplyAction":{},"OptInType":{}}},"output":{"resultWrapper":"ApplyPendingMaintenanceActionResult","type":"structure","members":{"ResourcePendingMaintenanceActions":{"shape":"Se"}}}},"AuthorizeDBSecurityGroupIngress":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{},"CIDRIP":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}},"output":{"resultWrapper":"AuthorizeDBSecurityGroupIngressResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sk"}}}},"CopyDBClusterParameterGroup":{"input":{"type":"structure","required":["SourceDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupDescription"],"members":{"SourceDBClusterParameterGroupIdentifier":{},"TargetDBClusterParameterGroupIdentifier":{},"TargetDBClusterParameterGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CopyDBClusterParameterGroupResult","type":"structure","members":{"DBClusterParameterGroup":{"shape":"Sr"}}}},"CopyDBClusterSnapshot":{"input":{"type":"structure","required":["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],"members":{"SourceDBClusterSnapshotIdentifier":{},"TargetDBClusterSnapshotIdentifier":{},"KmsKeyId":{},"PreSignedUrl":{},"CopyTags":{"type":"boolean"},"Tags":{"shape":"Sa"},"SourceRegion":{}}},"output":{"resultWrapper":"CopyDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sv"}}}},"CopyDBParameterGroup":{"input":{"type":"structure","required":["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],"members":{"SourceDBParameterGroupIdentifier":{},"TargetDBParameterGroupIdentifier":{},"TargetDBParameterGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CopyDBParameterGroupResult","type":"structure","members":{"DBParameterGroup":{"shape":"S10"}}}},"CopyDBSnapshot":{"input":{"type":"structure","required":["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],"members":{"SourceDBSnapshotIdentifier":{},"TargetDBSnapshotIdentifier":{},"KmsKeyId":{},"Tags":{"shape":"Sa"},"CopyTags":{"type":"boolean"},"PreSignedUrl":{},"OptionGroupName":{},"SourceRegion":{}}},"output":{"resultWrapper":"CopyDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"CopyOptionGroup":{"input":{"type":"structure","required":["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],"members":{"SourceOptionGroupIdentifier":{},"TargetOptionGroupIdentifier":{},"TargetOptionGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CopyOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S17"}}}},"CreateDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","Engine"],"members":{"AvailabilityZones":{"shape":"Sw"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"DBSubnetGroupName":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"MasterUsername":{},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"ReplicationSourceIdentifier":{},"Tags":{"shape":"Sa"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"PreSignedUrl":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"SourceRegion":{}}},"output":{"resultWrapper":"CreateDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"CreateDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],"members":{"DBClusterParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBClusterParameterGroupResult","type":"structure","members":{"DBClusterParameterGroup":{"shape":"Sr"}}}},"CreateDBClusterSnapshot":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier","DBClusterIdentifier"],"members":{"DBClusterSnapshotIdentifier":{},"DBClusterIdentifier":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sv"}}}},"CreateDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBInstanceClass","Engine"],"members":{"DBName":{},"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"Engine":{},"MasterUsername":{},"MasterUserPassword":{},"DBSecurityGroups":{"shape":"S1w"},"VpcSecurityGroupIds":{"shape":"S1h"},"AvailabilityZone":{},"DBSubnetGroupName":{},"PreferredMaintenanceWindow":{},"DBParameterGroupName":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{},"Port":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupName":{},"CharacterSetName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"Sa"},"DBClusterIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"DomainIAMRoleName":{},"PromotionTier":{"type":"integer"},"Timezone":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{},"EnableCloudwatchLogsExports":{"shape":"S1x"}}},"output":{"resultWrapper":"CreateDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"CreateDBInstanceReadReplica":{"input":{"type":"structure","required":["DBInstanceIdentifier","SourceDBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"SourceDBInstanceIdentifier":{},"DBInstanceClass":{},"AvailabilityZone":{},"Port":{"type":"integer"},"MultiAZ":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"Iops":{"type":"integer"},"OptionGroupName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"Sa"},"DBSubnetGroupName":{},"StorageType":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"KmsKeyId":{},"PreSignedUrl":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{},"EnableCloudwatchLogsExports":{"shape":"S1x"},"SourceRegion":{}}},"output":{"resultWrapper":"CreateDBInstanceReadReplicaResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"CreateDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName","DBParameterGroupFamily","Description"],"members":{"DBParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBParameterGroupResult","type":"structure","members":{"DBParameterGroup":{"shape":"S10"}}}},"CreateDBSecurityGroup":{"input":{"type":"structure","required":["DBSecurityGroupName","DBSecurityGroupDescription"],"members":{"DBSecurityGroupName":{},"DBSecurityGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBSecurityGroupResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sk"}}}},"CreateDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier","DBInstanceIdentifier"],"members":{"DBSnapshotIdentifier":{},"DBInstanceIdentifier":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"CreateDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],"members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"SubnetIds":{"shape":"S2q"},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateDBSubnetGroupResult","type":"structure","members":{"DBSubnetGroup":{"shape":"S23"}}}},"CreateEventSubscription":{"input":{"type":"structure","required":["SubscriptionName","SnsTopicArn"],"members":{"SubscriptionName":{},"SnsTopicArn":{},"SourceType":{},"EventCategories":{"shape":"S7"},"SourceIds":{"shape":"S6"},"Enabled":{"type":"boolean"},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"CreateOptionGroup":{"input":{"type":"structure","required":["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],"members":{"OptionGroupName":{},"EngineName":{},"MajorEngineVersion":{},"OptionGroupDescription":{},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"CreateOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S17"}}}},"DeleteDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"SkipFinalSnapshot":{"type":"boolean"},"FinalDBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"DeleteDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{}}}},"DeleteDBClusterSnapshot":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier"],"members":{"DBClusterSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBClusterSnapshotResult","type":"structure","members":{"DBClusterSnapshot":{"shape":"Sv"}}}},"DeleteDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"SkipFinalSnapshot":{"type":"boolean"},"FinalDBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"DeleteDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{}}}},"DeleteDBSecurityGroup":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{}}}},"DeleteDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DeleteDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"DeleteDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName"],"members":{"DBSubnetGroupName":{}}}},"DeleteEventSubscription":{"input":{"type":"structure","required":["SubscriptionName"],"members":{"SubscriptionName":{}}},"output":{"resultWrapper":"DeleteEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"DeleteOptionGroup":{"input":{"type":"structure","required":["OptionGroupName"],"members":{"OptionGroupName":{}}}},"DescribeAccountAttributes":{"input":{"type":"structure","members":{}},"output":{"resultWrapper":"DescribeAccountAttributesResult","type":"structure","members":{"AccountQuotas":{"type":"list","member":{"locationName":"AccountQuota","type":"structure","members":{"AccountQuotaName":{},"Used":{"type":"long"},"Max":{"type":"long"}},"wrapper":true}}}}},"DescribeCertificates":{"input":{"type":"structure","members":{"CertificateIdentifier":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeCertificatesResult","type":"structure","members":{"Certificates":{"type":"list","member":{"locationName":"Certificate","type":"structure","members":{"CertificateIdentifier":{},"CertificateType":{},"Thumbprint":{},"ValidFrom":{"type":"timestamp"},"ValidTill":{"type":"timestamp"},"CertificateArn":{}},"wrapper":true}},"Marker":{}}}},"DescribeDBClusterParameterGroups":{"input":{"type":"structure","members":{"DBClusterParameterGroupName":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClusterParameterGroupsResult","type":"structure","members":{"Marker":{},"DBClusterParameterGroups":{"type":"list","member":{"shape":"Sr","locationName":"DBClusterParameterGroup"}}}}},"DescribeDBClusterParameters":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{},"Source":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClusterParametersResult","type":"structure","members":{"Parameters":{"shape":"S3s"},"Marker":{}}}},"DescribeDBClusterSnapshotAttributes":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier"],"members":{"DBClusterSnapshotIdentifier":{}}},"output":{"resultWrapper":"DescribeDBClusterSnapshotAttributesResult","type":"structure","members":{"DBClusterSnapshotAttributesResult":{"shape":"S3x"}}}},"DescribeDBClusterSnapshots":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"DBClusterSnapshotIdentifier":{},"SnapshotType":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{},"IncludeShared":{"type":"boolean"},"IncludePublic":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBClusterSnapshotsResult","type":"structure","members":{"Marker":{},"DBClusterSnapshots":{"type":"list","member":{"shape":"Sv","locationName":"DBClusterSnapshot"}}}}},"DescribeDBClusters":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBClustersResult","type":"structure","members":{"Marker":{},"DBClusters":{"type":"list","member":{"shape":"S1j","locationName":"DBCluster"}}}}},"DescribeDBEngineVersions":{"input":{"type":"structure","members":{"Engine":{},"EngineVersion":{},"DBParameterGroupFamily":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{},"DefaultOnly":{"type":"boolean"},"ListSupportedCharacterSets":{"type":"boolean"},"ListSupportedTimezones":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBEngineVersionsResult","type":"structure","members":{"Marker":{},"DBEngineVersions":{"type":"list","member":{"locationName":"DBEngineVersion","type":"structure","members":{"Engine":{},"EngineVersion":{},"DBParameterGroupFamily":{},"DBEngineDescription":{},"DBEngineVersionDescription":{},"DefaultCharacterSet":{"shape":"S4b"},"SupportedCharacterSets":{"type":"list","member":{"shape":"S4b","locationName":"CharacterSet"}},"ValidUpgradeTarget":{"type":"list","member":{"locationName":"UpgradeTarget","type":"structure","members":{"Engine":{},"EngineVersion":{},"Description":{},"AutoUpgrade":{"type":"boolean"},"IsMajorVersionUpgrade":{"type":"boolean"}}}},"SupportedTimezones":{"type":"list","member":{"locationName":"Timezone","type":"structure","members":{"TimezoneName":{}}}},"ExportableLogTypes":{"shape":"S1x"},"SupportsLogExportsToCloudwatchLogs":{"type":"boolean"}}}}}}},"DescribeDBInstances":{"input":{"type":"structure","members":{"DBInstanceIdentifier":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBInstancesResult","type":"structure","members":{"Marker":{},"DBInstances":{"type":"list","member":{"shape":"S1z","locationName":"DBInstance"}}}}},"DescribeDBLogFiles":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"FilenameContains":{},"FileLastWritten":{"type":"long"},"FileSize":{"type":"long"},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBLogFilesResult","type":"structure","members":{"DescribeDBLogFiles":{"type":"list","member":{"locationName":"DescribeDBLogFilesDetails","type":"structure","members":{"LogFileName":{},"LastWritten":{"type":"long"},"Size":{"type":"long"}}}},"Marker":{}}}},"DescribeDBParameterGroups":{"input":{"type":"structure","members":{"DBParameterGroupName":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBParameterGroupsResult","type":"structure","members":{"Marker":{},"DBParameterGroups":{"type":"list","member":{"shape":"S10","locationName":"DBParameterGroup"}}}}},"DescribeDBParameters":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{},"Source":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBParametersResult","type":"structure","members":{"Parameters":{"shape":"S3s"},"Marker":{}}}},"DescribeDBSecurityGroups":{"input":{"type":"structure","members":{"DBSecurityGroupName":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBSecurityGroupsResult","type":"structure","members":{"Marker":{},"DBSecurityGroups":{"type":"list","member":{"shape":"Sk","locationName":"DBSecurityGroup"}}}}},"DescribeDBSnapshotAttributes":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"DescribeDBSnapshotAttributesResult","type":"structure","members":{"DBSnapshotAttributesResult":{"shape":"S4y"}}}},"DescribeDBSnapshots":{"input":{"type":"structure","members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{},"SnapshotType":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{},"IncludeShared":{"type":"boolean"},"IncludePublic":{"type":"boolean"}}},"output":{"resultWrapper":"DescribeDBSnapshotsResult","type":"structure","members":{"Marker":{},"DBSnapshots":{"type":"list","member":{"shape":"S13","locationName":"DBSnapshot"}}}}},"DescribeDBSubnetGroups":{"input":{"type":"structure","members":{"DBSubnetGroupName":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeDBSubnetGroupsResult","type":"structure","members":{"Marker":{},"DBSubnetGroups":{"type":"list","member":{"shape":"S23","locationName":"DBSubnetGroup"}}}}},"DescribeEngineDefaultClusterParameters":{"input":{"type":"structure","required":["DBParameterGroupFamily"],"members":{"DBParameterGroupFamily":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEngineDefaultClusterParametersResult","type":"structure","members":{"EngineDefaults":{"shape":"S59"}}}},"DescribeEngineDefaultParameters":{"input":{"type":"structure","required":["DBParameterGroupFamily"],"members":{"DBParameterGroupFamily":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEngineDefaultParametersResult","type":"structure","members":{"EngineDefaults":{"shape":"S59"}}}},"DescribeEventCategories":{"input":{"type":"structure","members":{"SourceType":{},"Filters":{"shape":"S3h"}}},"output":{"resultWrapper":"DescribeEventCategoriesResult","type":"structure","members":{"EventCategoriesMapList":{"type":"list","member":{"locationName":"EventCategoriesMap","type":"structure","members":{"SourceType":{},"EventCategories":{"shape":"S7"}},"wrapper":true}}}}},"DescribeEventSubscriptions":{"input":{"type":"structure","members":{"SubscriptionName":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEventSubscriptionsResult","type":"structure","members":{"Marker":{},"EventSubscriptionsList":{"type":"list","member":{"shape":"S5","locationName":"EventSubscription"}}}}},"DescribeEvents":{"input":{"type":"structure","members":{"SourceIdentifier":{},"SourceType":{},"StartTime":{"type":"timestamp"},"EndTime":{"type":"timestamp"},"Duration":{"type":"integer"},"EventCategories":{"shape":"S7"},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeEventsResult","type":"structure","members":{"Marker":{},"Events":{"type":"list","member":{"locationName":"Event","type":"structure","members":{"SourceIdentifier":{},"SourceType":{},"Message":{},"EventCategories":{"shape":"S7"},"Date":{"type":"timestamp"},"SourceArn":{}}}}}}},"DescribeOptionGroupOptions":{"input":{"type":"structure","required":["EngineName"],"members":{"EngineName":{},"MajorEngineVersion":{},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeOptionGroupOptionsResult","type":"structure","members":{"OptionGroupOptions":{"type":"list","member":{"locationName":"OptionGroupOption","type":"structure","members":{"Name":{},"Description":{},"EngineName":{},"MajorEngineVersion":{},"MinimumRequiredMinorEngineVersion":{},"PortRequired":{"type":"boolean"},"DefaultPort":{"type":"integer"},"OptionsDependedOn":{"type":"list","member":{"locationName":"OptionName"}},"OptionsConflictsWith":{"type":"list","member":{"locationName":"OptionConflictName"}},"Persistent":{"type":"boolean"},"Permanent":{"type":"boolean"},"RequiresAutoMinorEngineVersionUpgrade":{"type":"boolean"},"VpcOnly":{"type":"boolean"},"SupportsOptionVersionDowngrade":{"type":"boolean"},"OptionGroupOptionSettings":{"type":"list","member":{"locationName":"OptionGroupOptionSetting","type":"structure","members":{"SettingName":{},"SettingDescription":{},"DefaultValue":{},"ApplyType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"}}}},"OptionGroupOptionVersions":{"type":"list","member":{"locationName":"OptionVersion","type":"structure","members":{"Version":{},"IsDefault":{"type":"boolean"}}}}}}},"Marker":{}}}},"DescribeOptionGroups":{"input":{"type":"structure","members":{"OptionGroupName":{},"Filters":{"shape":"S3h"},"Marker":{},"MaxRecords":{"type":"integer"},"EngineName":{},"MajorEngineVersion":{}}},"output":{"resultWrapper":"DescribeOptionGroupsResult","type":"structure","members":{"OptionGroupsList":{"type":"list","member":{"shape":"S17","locationName":"OptionGroup"}},"Marker":{}}}},"DescribeOrderableDBInstanceOptions":{"input":{"type":"structure","required":["Engine"],"members":{"Engine":{},"EngineVersion":{},"DBInstanceClass":{},"LicenseModel":{},"Vpc":{"type":"boolean"},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeOrderableDBInstanceOptionsResult","type":"structure","members":{"OrderableDBInstanceOptions":{"type":"list","member":{"locationName":"OrderableDBInstanceOption","type":"structure","members":{"Engine":{},"EngineVersion":{},"DBInstanceClass":{},"LicenseModel":{},"AvailabilityZones":{"type":"list","member":{"shape":"S26","locationName":"AvailabilityZone"}},"MultiAZCapable":{"type":"boolean"},"ReadReplicaCapable":{"type":"boolean"},"Vpc":{"type":"boolean"},"SupportsStorageEncryption":{"type":"boolean"},"StorageType":{},"SupportsIops":{"type":"boolean"},"SupportsEnhancedMonitoring":{"type":"boolean"},"SupportsIAMDatabaseAuthentication":{"type":"boolean"},"SupportsPerformanceInsights":{"type":"boolean"},"MinStorageSize":{"type":"integer"},"MaxStorageSize":{"type":"integer"},"MinIopsPerDbInstance":{"type":"integer"},"MaxIopsPerDbInstance":{"type":"integer"},"MinIopsPerGib":{"type":"double"},"MaxIopsPerGib":{"type":"double"}},"wrapper":true}},"Marker":{}}}},"DescribePendingMaintenanceActions":{"input":{"type":"structure","members":{"ResourceIdentifier":{},"Filters":{"shape":"S3h"},"Marker":{},"MaxRecords":{"type":"integer"}}},"output":{"resultWrapper":"DescribePendingMaintenanceActionsResult","type":"structure","members":{"PendingMaintenanceActions":{"type":"list","member":{"shape":"Se","locationName":"ResourcePendingMaintenanceActions"}},"Marker":{}}}},"DescribeReservedDBInstances":{"input":{"type":"structure","members":{"ReservedDBInstanceId":{},"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeReservedDBInstancesResult","type":"structure","members":{"Marker":{},"ReservedDBInstances":{"type":"list","member":{"shape":"S6d","locationName":"ReservedDBInstance"}}}}},"DescribeReservedDBInstancesOfferings":{"input":{"type":"structure","members":{"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"Filters":{"shape":"S3h"},"MaxRecords":{"type":"integer"},"Marker":{}}},"output":{"resultWrapper":"DescribeReservedDBInstancesOfferingsResult","type":"structure","members":{"Marker":{},"ReservedDBInstancesOfferings":{"type":"list","member":{"locationName":"ReservedDBInstancesOffering","type":"structure","members":{"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"Duration":{"type":"integer"},"FixedPrice":{"type":"double"},"UsagePrice":{"type":"double"},"CurrencyCode":{},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"RecurringCharges":{"shape":"S6f"}},"wrapper":true}}}}},"DescribeSourceRegions":{"input":{"type":"structure","members":{"RegionName":{},"MaxRecords":{"type":"integer"},"Marker":{},"Filters":{"shape":"S3h"}}},"output":{"resultWrapper":"DescribeSourceRegionsResult","type":"structure","members":{"Marker":{},"SourceRegions":{"type":"list","member":{"locationName":"SourceRegion","type":"structure","members":{"RegionName":{},"Endpoint":{},"Status":{}}}}}}},"DescribeValidDBInstanceModifications":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{}}},"output":{"resultWrapper":"DescribeValidDBInstanceModificationsResult","type":"structure","members":{"ValidDBInstanceModificationsMessage":{"type":"structure","members":{"Storage":{"type":"list","member":{"locationName":"ValidStorageOptions","type":"structure","members":{"StorageType":{},"StorageSize":{"shape":"S6u"},"ProvisionedIops":{"shape":"S6u"},"IopsToStorageRatio":{"type":"list","member":{"locationName":"DoubleRange","type":"structure","members":{"From":{"type":"double"},"To":{"type":"double"}}}}}}}},"wrapper":true}}}},"DownloadDBLogFilePortion":{"input":{"type":"structure","required":["DBInstanceIdentifier","LogFileName"],"members":{"DBInstanceIdentifier":{},"LogFileName":{},"Marker":{},"NumberOfLines":{"type":"integer"}}},"output":{"resultWrapper":"DownloadDBLogFilePortionResult","type":"structure","members":{"LogFileData":{},"Marker":{},"AdditionalDataPending":{"type":"boolean"}}}},"FailoverDBCluster":{"input":{"type":"structure","members":{"DBClusterIdentifier":{},"TargetDBInstanceIdentifier":{}}},"output":{"resultWrapper":"FailoverDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"ListTagsForResource":{"input":{"type":"structure","required":["ResourceName"],"members":{"ResourceName":{},"Filters":{"shape":"S3h"}}},"output":{"resultWrapper":"ListTagsForResourceResult","type":"structure","members":{"TagList":{"shape":"Sa"}}}},"ModifyDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"NewDBClusterIdentifier":{},"ApplyImmediately":{"type":"boolean"},"BackupRetentionPeriod":{"type":"integer"},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"Port":{"type":"integer"},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"ModifyDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName","Parameters"],"members":{"DBClusterParameterGroupName":{},"Parameters":{"shape":"S3s"}}},"output":{"shape":"S77","resultWrapper":"ModifyDBClusterParameterGroupResult"}},"ModifyDBClusterSnapshotAttribute":{"input":{"type":"structure","required":["DBClusterSnapshotIdentifier","AttributeName"],"members":{"DBClusterSnapshotIdentifier":{},"AttributeName":{},"ValuesToAdd":{"shape":"S40"},"ValuesToRemove":{"shape":"S40"}}},"output":{"resultWrapper":"ModifyDBClusterSnapshotAttributeResult","type":"structure","members":{"DBClusterSnapshotAttributesResult":{"shape":"S3x"}}}},"ModifyDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"DBSubnetGroupName":{},"DBSecurityGroups":{"shape":"S1w"},"VpcSecurityGroupIds":{"shape":"S1h"},"ApplyImmediately":{"type":"boolean"},"MasterUserPassword":{},"DBParameterGroupName":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AllowMajorVersionUpgrade":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupName":{},"NewDBInstanceIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"CACertificateIdentifier":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"DBPortNumber":{"type":"integer"},"PubliclyAccessible":{"type":"boolean"},"MonitoringRoleArn":{},"DomainIAMRoleName":{},"PromotionTier":{"type":"integer"},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{},"CloudwatchLogsExportConfiguration":{"type":"structure","members":{"EnableLogTypes":{"shape":"S1x"},"DisableLogTypes":{"shape":"S1x"}}}}},"output":{"resultWrapper":"ModifyDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"ModifyDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName","Parameters"],"members":{"DBParameterGroupName":{},"Parameters":{"shape":"S3s"}}},"output":{"shape":"S7e","resultWrapper":"ModifyDBParameterGroupResult"}},"ModifyDBSnapshot":{"input":{"type":"structure","required":["DBSnapshotIdentifier"],"members":{"DBSnapshotIdentifier":{},"EngineVersion":{},"OptionGroupName":{}}},"output":{"resultWrapper":"ModifyDBSnapshotResult","type":"structure","members":{"DBSnapshot":{"shape":"S13"}}}},"ModifyDBSnapshotAttribute":{"input":{"type":"structure","required":["DBSnapshotIdentifier","AttributeName"],"members":{"DBSnapshotIdentifier":{},"AttributeName":{},"ValuesToAdd":{"shape":"S40"},"ValuesToRemove":{"shape":"S40"}}},"output":{"resultWrapper":"ModifyDBSnapshotAttributeResult","type":"structure","members":{"DBSnapshotAttributesResult":{"shape":"S4y"}}}},"ModifyDBSubnetGroup":{"input":{"type":"structure","required":["DBSubnetGroupName","SubnetIds"],"members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"SubnetIds":{"shape":"S2q"}}},"output":{"resultWrapper":"ModifyDBSubnetGroupResult","type":"structure","members":{"DBSubnetGroup":{"shape":"S23"}}}},"ModifyEventSubscription":{"input":{"type":"structure","required":["SubscriptionName"],"members":{"SubscriptionName":{},"SnsTopicArn":{},"SourceType":{},"EventCategories":{"shape":"S7"},"Enabled":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyEventSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"ModifyOptionGroup":{"input":{"type":"structure","required":["OptionGroupName"],"members":{"OptionGroupName":{},"OptionsToInclude":{"type":"list","member":{"locationName":"OptionConfiguration","type":"structure","required":["OptionName"],"members":{"OptionName":{},"Port":{"type":"integer"},"OptionVersion":{},"DBSecurityGroupMemberships":{"shape":"S1w"},"VpcSecurityGroupMemberships":{"shape":"S1h"},"OptionSettings":{"type":"list","member":{"shape":"S1b","locationName":"OptionSetting"}}}}},"OptionsToRemove":{"type":"list","member":{}},"ApplyImmediately":{"type":"boolean"}}},"output":{"resultWrapper":"ModifyOptionGroupResult","type":"structure","members":{"OptionGroup":{"shape":"S17"}}}},"PromoteReadReplica":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{}}},"output":{"resultWrapper":"PromoteReadReplicaResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"PromoteReadReplicaDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier"],"members":{"DBClusterIdentifier":{}}},"output":{"resultWrapper":"PromoteReadReplicaDBClusterResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"PurchaseReservedDBInstancesOffering":{"input":{"type":"structure","required":["ReservedDBInstancesOfferingId"],"members":{"ReservedDBInstancesOfferingId":{},"ReservedDBInstanceId":{},"DBInstanceCount":{"type":"integer"},"Tags":{"shape":"Sa"}}},"output":{"resultWrapper":"PurchaseReservedDBInstancesOfferingResult","type":"structure","members":{"ReservedDBInstance":{"shape":"S6d"}}}},"RebootDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"ForceFailover":{"type":"boolean"}}},"output":{"resultWrapper":"RebootDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"RemoveRoleFromDBCluster":{"input":{"type":"structure","required":["DBClusterIdentifier","RoleArn"],"members":{"DBClusterIdentifier":{},"RoleArn":{}}}},"RemoveSourceIdentifierFromSubscription":{"input":{"type":"structure","required":["SubscriptionName","SourceIdentifier"],"members":{"SubscriptionName":{},"SourceIdentifier":{}}},"output":{"resultWrapper":"RemoveSourceIdentifierFromSubscriptionResult","type":"structure","members":{"EventSubscription":{"shape":"S5"}}}},"RemoveTagsFromResource":{"input":{"type":"structure","required":["ResourceName","TagKeys"],"members":{"ResourceName":{},"TagKeys":{"type":"list","member":{}}}}},"ResetDBClusterParameterGroup":{"input":{"type":"structure","required":["DBClusterParameterGroupName"],"members":{"DBClusterParameterGroupName":{},"ResetAllParameters":{"type":"boolean"},"Parameters":{"shape":"S3s"}}},"output":{"shape":"S77","resultWrapper":"ResetDBClusterParameterGroupResult"}},"ResetDBParameterGroup":{"input":{"type":"structure","required":["DBParameterGroupName"],"members":{"DBParameterGroupName":{},"ResetAllParameters":{"type":"boolean"},"Parameters":{"shape":"S3s"}}},"output":{"shape":"S7e","resultWrapper":"ResetDBParameterGroupResult"}},"RestoreDBClusterFromS3":{"input":{"type":"structure","required":["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],"members":{"AvailabilityZones":{"shape":"Sw"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"DBSubnetGroupName":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"MasterUsername":{},"MasterUserPassword":{},"OptionGroupName":{},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"Tags":{"shape":"Sa"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"SourceEngine":{},"SourceEngineVersion":{},"S3BucketName":{},"S3Prefix":{},"S3IngestionRoleArn":{}}},"output":{"resultWrapper":"RestoreDBClusterFromS3Result","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"RestoreDBClusterFromSnapshot":{"input":{"type":"structure","required":["DBClusterIdentifier","SnapshotIdentifier","Engine"],"members":{"AvailabilityZones":{"shape":"Sw"},"DBClusterIdentifier":{},"SnapshotIdentifier":{},"Engine":{},"EngineVersion":{},"Port":{"type":"integer"},"DBSubnetGroupName":{},"DatabaseName":{},"OptionGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"Tags":{"shape":"Sa"},"KmsKeyId":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"RestoreDBClusterFromSnapshotResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"RestoreDBClusterToPointInTime":{"input":{"type":"structure","required":["DBClusterIdentifier","SourceDBClusterIdentifier"],"members":{"DBClusterIdentifier":{},"RestoreType":{},"SourceDBClusterIdentifier":{},"RestoreToTime":{"type":"timestamp"},"UseLatestRestorableTime":{"type":"boolean"},"Port":{"type":"integer"},"DBSubnetGroupName":{},"OptionGroupName":{},"VpcSecurityGroupIds":{"shape":"S1h"},"Tags":{"shape":"Sa"},"KmsKeyId":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"}}},"output":{"resultWrapper":"RestoreDBClusterToPointInTimeResult","type":"structure","members":{"DBCluster":{"shape":"S1j"}}}},"RestoreDBInstanceFromDBSnapshot":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBSnapshotIdentifier"],"members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{},"DBInstanceClass":{},"Port":{"type":"integer"},"AvailabilityZone":{},"DBSubnetGroupName":{},"MultiAZ":{"type":"boolean"},"PubliclyAccessible":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"DBName":{},"Engine":{},"Iops":{"type":"integer"},"OptionGroupName":{},"Tags":{"shape":"Sa"},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"Domain":{},"CopyTagsToSnapshot":{"type":"boolean"},"DomainIAMRoleName":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnableCloudwatchLogsExports":{"shape":"S1x"}}},"output":{"resultWrapper":"RestoreDBInstanceFromDBSnapshotResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"RestoreDBInstanceFromS3":{"input":{"type":"structure","required":["DBInstanceIdentifier","DBInstanceClass","Engine","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],"members":{"DBName":{},"DBInstanceIdentifier":{},"AllocatedStorage":{"type":"integer"},"DBInstanceClass":{},"Engine":{},"MasterUsername":{},"MasterUserPassword":{},"DBSecurityGroups":{"shape":"S1w"},"VpcSecurityGroupIds":{"shape":"S1h"},"AvailabilityZone":{},"DBSubnetGroupName":{},"PreferredMaintenanceWindow":{},"DBParameterGroupName":{},"BackupRetentionPeriod":{"type":"integer"},"PreferredBackupWindow":{},"Port":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupName":{},"PubliclyAccessible":{"type":"boolean"},"Tags":{"shape":"Sa"},"StorageType":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"MonitoringRoleArn":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"SourceEngine":{},"SourceEngineVersion":{},"S3BucketName":{},"S3Prefix":{},"S3IngestionRoleArn":{},"EnablePerformanceInsights":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{},"EnableCloudwatchLogsExports":{"shape":"S1x"}}},"output":{"resultWrapper":"RestoreDBInstanceFromS3Result","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"RestoreDBInstanceToPointInTime":{"input":{"type":"structure","required":["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],"members":{"SourceDBInstanceIdentifier":{},"TargetDBInstanceIdentifier":{},"RestoreTime":{"type":"timestamp"},"UseLatestRestorableTime":{"type":"boolean"},"DBInstanceClass":{},"Port":{"type":"integer"},"AvailabilityZone":{},"DBSubnetGroupName":{},"MultiAZ":{"type":"boolean"},"PubliclyAccessible":{"type":"boolean"},"AutoMinorVersionUpgrade":{"type":"boolean"},"LicenseModel":{},"DBName":{},"Engine":{},"Iops":{"type":"integer"},"OptionGroupName":{},"CopyTagsToSnapshot":{"type":"boolean"},"Tags":{"shape":"Sa"},"StorageType":{},"TdeCredentialArn":{},"TdeCredentialPassword":{},"Domain":{},"DomainIAMRoleName":{},"EnableIAMDatabaseAuthentication":{"type":"boolean"},"EnableCloudwatchLogsExports":{"shape":"S1x"}}},"output":{"resultWrapper":"RestoreDBInstanceToPointInTimeResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"RevokeDBSecurityGroupIngress":{"input":{"type":"structure","required":["DBSecurityGroupName"],"members":{"DBSecurityGroupName":{},"CIDRIP":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}},"output":{"resultWrapper":"RevokeDBSecurityGroupIngressResult","type":"structure","members":{"DBSecurityGroup":{"shape":"Sk"}}}},"StartDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{}}},"output":{"resultWrapper":"StartDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}},"StopDBInstance":{"input":{"type":"structure","required":["DBInstanceIdentifier"],"members":{"DBInstanceIdentifier":{},"DBSnapshotIdentifier":{}}},"output":{"resultWrapper":"StopDBInstanceResult","type":"structure","members":{"DBInstance":{"shape":"S1z"}}}}},"shapes":{"S5":{"type":"structure","members":{"CustomerAwsId":{},"CustSubscriptionId":{},"SnsTopicArn":{},"Status":{},"SubscriptionCreationTime":{},"SourceType":{},"SourceIdsList":{"shape":"S6"},"EventCategoriesList":{"shape":"S7"},"Enabled":{"type":"boolean"},"EventSubscriptionArn":{}},"wrapper":true},"S6":{"type":"list","member":{"locationName":"SourceId"}},"S7":{"type":"list","member":{"locationName":"EventCategory"}},"Sa":{"type":"list","member":{"locationName":"Tag","type":"structure","members":{"Key":{},"Value":{}}}},"Se":{"type":"structure","members":{"ResourceIdentifier":{},"PendingMaintenanceActionDetails":{"type":"list","member":{"locationName":"PendingMaintenanceAction","type":"structure","members":{"Action":{},"AutoAppliedAfterDate":{"type":"timestamp"},"ForcedApplyDate":{"type":"timestamp"},"OptInStatus":{},"CurrentApplyDate":{"type":"timestamp"},"Description":{}}}}},"wrapper":true},"Sk":{"type":"structure","members":{"OwnerId":{},"DBSecurityGroupName":{},"DBSecurityGroupDescription":{},"VpcId":{},"EC2SecurityGroups":{"type":"list","member":{"locationName":"EC2SecurityGroup","type":"structure","members":{"Status":{},"EC2SecurityGroupName":{},"EC2SecurityGroupId":{},"EC2SecurityGroupOwnerId":{}}}},"IPRanges":{"type":"list","member":{"locationName":"IPRange","type":"structure","members":{"Status":{},"CIDRIP":{}}}},"DBSecurityGroupArn":{}},"wrapper":true},"Sr":{"type":"structure","members":{"DBClusterParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"DBClusterParameterGroupArn":{}},"wrapper":true},"Sv":{"type":"structure","members":{"AvailabilityZones":{"shape":"Sw"},"DBClusterSnapshotIdentifier":{},"DBClusterIdentifier":{},"SnapshotCreateTime":{"type":"timestamp"},"Engine":{},"AllocatedStorage":{"type":"integer"},"Status":{},"Port":{"type":"integer"},"VpcId":{},"ClusterCreateTime":{"type":"timestamp"},"MasterUsername":{},"EngineVersion":{},"LicenseModel":{},"SnapshotType":{},"PercentProgress":{"type":"integer"},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DBClusterSnapshotArn":{},"SourceDBClusterSnapshotArn":{},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"}},"wrapper":true},"Sw":{"type":"list","member":{"locationName":"AvailabilityZone"}},"S10":{"type":"structure","members":{"DBParameterGroupName":{},"DBParameterGroupFamily":{},"Description":{},"DBParameterGroupArn":{}},"wrapper":true},"S13":{"type":"structure","members":{"DBSnapshotIdentifier":{},"DBInstanceIdentifier":{},"SnapshotCreateTime":{"type":"timestamp"},"Engine":{},"AllocatedStorage":{"type":"integer"},"Status":{},"Port":{"type":"integer"},"AvailabilityZone":{},"VpcId":{},"InstanceCreateTime":{"type":"timestamp"},"MasterUsername":{},"EngineVersion":{},"LicenseModel":{},"SnapshotType":{},"Iops":{"type":"integer"},"OptionGroupName":{},"PercentProgress":{"type":"integer"},"SourceRegion":{},"SourceDBSnapshotIdentifier":{},"StorageType":{},"TdeCredentialArn":{},"Encrypted":{"type":"boolean"},"KmsKeyId":{},"DBSnapshotArn":{},"Timezone":{},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"}},"wrapper":true},"S17":{"type":"structure","members":{"OptionGroupName":{},"OptionGroupDescription":{},"EngineName":{},"MajorEngineVersion":{},"Options":{"type":"list","member":{"locationName":"Option","type":"structure","members":{"OptionName":{},"OptionDescription":{},"Persistent":{"type":"boolean"},"Permanent":{"type":"boolean"},"Port":{"type":"integer"},"OptionVersion":{},"OptionSettings":{"type":"list","member":{"shape":"S1b","locationName":"OptionSetting"}},"DBSecurityGroupMemberships":{"shape":"S1c"},"VpcSecurityGroupMemberships":{"shape":"S1e"}}}},"AllowsVpcAndNonVpcInstanceMemberships":{"type":"boolean"},"VpcId":{},"OptionGroupArn":{}},"wrapper":true},"S1b":{"type":"structure","members":{"Name":{},"Value":{},"DefaultValue":{},"Description":{},"ApplyType":{},"DataType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"},"IsCollection":{"type":"boolean"}}},"S1c":{"type":"list","member":{"locationName":"DBSecurityGroup","type":"structure","members":{"DBSecurityGroupName":{},"Status":{}}}},"S1e":{"type":"list","member":{"locationName":"VpcSecurityGroupMembership","type":"structure","members":{"VpcSecurityGroupId":{},"Status":{}}}},"S1h":{"type":"list","member":{"locationName":"VpcSecurityGroupId"}},"S1j":{"type":"structure","members":{"AllocatedStorage":{"type":"integer"},"AvailabilityZones":{"shape":"Sw"},"BackupRetentionPeriod":{"type":"integer"},"CharacterSetName":{},"DatabaseName":{},"DBClusterIdentifier":{},"DBClusterParameterGroup":{},"DBSubnetGroup":{},"Status":{},"PercentProgress":{},"EarliestRestorableTime":{"type":"timestamp"},"Endpoint":{},"ReaderEndpoint":{},"MultiAZ":{"type":"boolean"},"Engine":{},"EngineVersion":{},"LatestRestorableTime":{"type":"timestamp"},"Port":{"type":"integer"},"MasterUsername":{},"DBClusterOptionGroupMemberships":{"type":"list","member":{"locationName":"DBClusterOptionGroup","type":"structure","members":{"DBClusterOptionGroupName":{},"Status":{}}}},"PreferredBackupWindow":{},"PreferredMaintenanceWindow":{},"ReplicationSourceIdentifier":{},"ReadReplicaIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaIdentifier"}},"DBClusterMembers":{"type":"list","member":{"locationName":"DBClusterMember","type":"structure","members":{"DBInstanceIdentifier":{},"IsClusterWriter":{"type":"boolean"},"DBClusterParameterGroupStatus":{},"PromotionTier":{"type":"integer"}},"wrapper":true}},"VpcSecurityGroups":{"shape":"S1e"},"HostedZoneId":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DbClusterResourceId":{},"DBClusterArn":{},"AssociatedRoles":{"type":"list","member":{"locationName":"DBClusterRole","type":"structure","members":{"RoleArn":{},"Status":{}}}},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"},"CloneGroupId":{},"ClusterCreateTime":{"type":"timestamp"}},"wrapper":true},"S1w":{"type":"list","member":{"locationName":"DBSecurityGroupName"}},"S1x":{"type":"list","member":{}},"S1z":{"type":"structure","members":{"DBInstanceIdentifier":{},"DBInstanceClass":{},"Engine":{},"DBInstanceStatus":{},"MasterUsername":{},"DBName":{},"Endpoint":{"type":"structure","members":{"Address":{},"Port":{"type":"integer"},"HostedZoneId":{}}},"AllocatedStorage":{"type":"integer"},"InstanceCreateTime":{"type":"timestamp"},"PreferredBackupWindow":{},"BackupRetentionPeriod":{"type":"integer"},"DBSecurityGroups":{"shape":"S1c"},"VpcSecurityGroups":{"shape":"S1e"},"DBParameterGroups":{"type":"list","member":{"locationName":"DBParameterGroup","type":"structure","members":{"DBParameterGroupName":{},"ParameterApplyStatus":{}}}},"AvailabilityZone":{},"DBSubnetGroup":{"shape":"S23"},"PreferredMaintenanceWindow":{},"PendingModifiedValues":{"type":"structure","members":{"DBInstanceClass":{},"AllocatedStorage":{"type":"integer"},"MasterUserPassword":{},"Port":{"type":"integer"},"BackupRetentionPeriod":{"type":"integer"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"LicenseModel":{},"Iops":{"type":"integer"},"DBInstanceIdentifier":{},"StorageType":{},"CACertificateIdentifier":{},"DBSubnetGroupName":{},"PendingCloudwatchLogsExports":{"type":"structure","members":{"LogTypesToEnable":{"shape":"S1x"},"LogTypesToDisable":{"shape":"S1x"}}}}},"LatestRestorableTime":{"type":"timestamp"},"MultiAZ":{"type":"boolean"},"EngineVersion":{},"AutoMinorVersionUpgrade":{"type":"boolean"},"ReadReplicaSourceDBInstanceIdentifier":{},"ReadReplicaDBInstanceIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaDBInstanceIdentifier"}},"ReadReplicaDBClusterIdentifiers":{"type":"list","member":{"locationName":"ReadReplicaDBClusterIdentifier"}},"LicenseModel":{},"Iops":{"type":"integer"},"OptionGroupMemberships":{"type":"list","member":{"locationName":"OptionGroupMembership","type":"structure","members":{"OptionGroupName":{},"Status":{}}}},"CharacterSetName":{},"SecondaryAvailabilityZone":{},"PubliclyAccessible":{"type":"boolean"},"StatusInfos":{"type":"list","member":{"locationName":"DBInstanceStatusInfo","type":"structure","members":{"StatusType":{},"Normal":{"type":"boolean"},"Status":{},"Message":{}}}},"StorageType":{},"TdeCredentialArn":{},"DbInstancePort":{"type":"integer"},"DBClusterIdentifier":{},"StorageEncrypted":{"type":"boolean"},"KmsKeyId":{},"DbiResourceId":{},"CACertificateIdentifier":{},"DomainMemberships":{"type":"list","member":{"locationName":"DomainMembership","type":"structure","members":{"Domain":{},"Status":{},"FQDN":{},"IAMRoleName":{}}}},"CopyTagsToSnapshot":{"type":"boolean"},"MonitoringInterval":{"type":"integer"},"EnhancedMonitoringResourceArn":{},"MonitoringRoleArn":{},"PromotionTier":{"type":"integer"},"DBInstanceArn":{},"Timezone":{},"IAMDatabaseAuthenticationEnabled":{"type":"boolean"},"PerformanceInsightsEnabled":{"type":"boolean"},"PerformanceInsightsKMSKeyId":{},"EnabledCloudwatchLogsExports":{"shape":"S1x"}},"wrapper":true},"S23":{"type":"structure","members":{"DBSubnetGroupName":{},"DBSubnetGroupDescription":{},"VpcId":{},"SubnetGroupStatus":{},"Subnets":{"type":"list","member":{"locationName":"Subnet","type":"structure","members":{"SubnetIdentifier":{},"SubnetAvailabilityZone":{"shape":"S26"},"SubnetStatus":{}}}},"DBSubnetGroupArn":{}},"wrapper":true},"S26":{"type":"structure","members":{"Name":{}},"wrapper":true},"S2q":{"type":"list","member":{"locationName":"SubnetIdentifier"}},"S3h":{"type":"list","member":{"locationName":"Filter","type":"structure","required":["Name","Values"],"members":{"Name":{},"Values":{"type":"list","member":{"locationName":"Value"}}}}},"S3s":{"type":"list","member":{"locationName":"Parameter","type":"structure","members":{"ParameterName":{},"ParameterValue":{},"Description":{},"Source":{},"ApplyType":{},"DataType":{},"AllowedValues":{},"IsModifiable":{"type":"boolean"},"MinimumEngineVersion":{},"ApplyMethod":{}}}},"S3x":{"type":"structure","members":{"DBClusterSnapshotIdentifier":{},"DBClusterSnapshotAttributes":{"type":"list","member":{"locationName":"DBClusterSnapshotAttribute","type":"structure","members":{"AttributeName":{},"AttributeValues":{"shape":"S40"}}}}},"wrapper":true},"S40":{"type":"list","member":{"locationName":"AttributeValue"}},"S4b":{"type":"structure","members":{"CharacterSetName":{},"CharacterSetDescription":{}}},"S4y":{"type":"structure","members":{"DBSnapshotIdentifier":{},"DBSnapshotAttributes":{"type":"list","member":{"locationName":"DBSnapshotAttribute","type":"structure","members":{"AttributeName":{},"AttributeValues":{"shape":"S40"}},"wrapper":true}}},"wrapper":true},"S59":{"type":"structure","members":{"DBParameterGroupFamily":{},"Marker":{},"Parameters":{"shape":"S3s"}},"wrapper":true},"S6d":{"type":"structure","members":{"ReservedDBInstanceId":{},"ReservedDBInstancesOfferingId":{},"DBInstanceClass":{},"StartTime":{"type":"timestamp"},"Duration":{"type":"integer"},"FixedPrice":{"type":"double"},"UsagePrice":{"type":"double"},"CurrencyCode":{},"DBInstanceCount":{"type":"integer"},"ProductDescription":{},"OfferingType":{},"MultiAZ":{"type":"boolean"},"State":{},"RecurringCharges":{"shape":"S6f"},"ReservedDBInstanceArn":{}},"wrapper":true},"S6f":{"type":"list","member":{"locationName":"RecurringCharge","type":"structure","members":{"RecurringChargeAmount":{"type":"double"},"RecurringChargeFrequency":{}},"wrapper":true}},"S6u":{"type":"list","member":{"locationName":"Range","type":"structure","members":{"From":{"type":"integer"},"To":{"type":"integer"},"Step":{"type":"integer"}}}},"S77":{"type":"structure","members":{"DBClusterParameterGroupName":{}}},"S7e":{"type":"structure","members":{"DBParameterGroupName":{}}}}} /***/ }), /* 305 */ @@ -43642,25 +43648,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 307 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['redshift'] = {}; - AWS.Redshift = Service.defineService('redshift', ['2012-12-01']); - Object.defineProperty(apiLoader.services['redshift'], '2012-12-01', { - get: function get() { - var model = __webpack_require__(308); - model.paginators = __webpack_require__(309).pagination; - model.waiters = __webpack_require__(310).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Redshift; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['redshift'] = {}; + AWS.Redshift = Service.defineService('redshift', ['2012-12-01']); + Object.defineProperty(apiLoader.services['redshift'], '2012-12-01', { + get: function get() { + var model = __webpack_require__(308); + model.paginators = __webpack_require__(309).pagination; + model.waiters = __webpack_require__(310).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Redshift; /***/ }), @@ -43685,24 +43691,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 311 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['rekognition'] = {}; - AWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']); - Object.defineProperty(apiLoader.services['rekognition'], '2016-06-27', { - get: function get() { - var model = __webpack_require__(312); - model.paginators = __webpack_require__(313).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Rekognition; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['rekognition'] = {}; + AWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']); + Object.defineProperty(apiLoader.services['rekognition'], '2016-06-27', { + get: function get() { + var model = __webpack_require__(312); + model.paginators = __webpack_require__(313).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Rekognition; /***/ }), @@ -43721,24 +43727,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 314 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['resourcegroupstaggingapi'] = {}; - AWS.ResourceGroupsTaggingAPI = Service.defineService('resourcegroupstaggingapi', ['2017-01-26']); - Object.defineProperty(apiLoader.services['resourcegroupstaggingapi'], '2017-01-26', { - get: function get() { - var model = __webpack_require__(315); - model.paginators = __webpack_require__(316).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ResourceGroupsTaggingAPI; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['resourcegroupstaggingapi'] = {}; + AWS.ResourceGroupsTaggingAPI = Service.defineService('resourcegroupstaggingapi', ['2017-01-26']); + Object.defineProperty(apiLoader.services['resourcegroupstaggingapi'], '2017-01-26', { + get: function get() { + var model = __webpack_require__(315); + model.paginators = __webpack_require__(316).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ResourceGroupsTaggingAPI; /***/ }), @@ -43757,64 +43763,64 @@ return /******/ (function(modules) { // webpackBootstrap /* 317 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['route53'] = {}; - AWS.Route53 = Service.defineService('route53', ['2013-04-01']); - __webpack_require__(318); - Object.defineProperty(apiLoader.services['route53'], '2013-04-01', { - get: function get() { - var model = __webpack_require__(319); - model.paginators = __webpack_require__(320).pagination; - model.waiters = __webpack_require__(321).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Route53; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['route53'] = {}; + AWS.Route53 = Service.defineService('route53', ['2013-04-01']); + __webpack_require__(318); + Object.defineProperty(apiLoader.services['route53'], '2013-04-01', { + get: function get() { + var model = __webpack_require__(319); + model.paginators = __webpack_require__(320).pagination; + model.waiters = __webpack_require__(321).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Route53; /***/ }), /* 318 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.Route53.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.on('build', this.sanitizeUrl); - }, - - /** - * @api private - */ - sanitizeUrl: function sanitizeUrl(request) { - var path = request.httpRequest.path; - request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/'); - }, - - /** - * @return [Boolean] whether the error can be retried - * @api private - */ - retryableError: function retryableError(error) { - if (error.code === 'PriorRequestNotComplete' && - error.statusCode === 400) { - return true; - } else { - var _super = AWS.Service.prototype.retryableError; - return _super.call(this, error); - } - } - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.Route53.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.on('build', this.sanitizeUrl); + }, + + /** + * @api private + */ + sanitizeUrl: function sanitizeUrl(request) { + var path = request.httpRequest.path; + request.httpRequest.path = path.replace(/\/%2F\w+%2F/, '/'); + }, + + /** + * @return [Boolean] whether the error can be retried + * @api private + */ + retryableError: function retryableError(error) { + if (error.code === 'PriorRequestNotComplete' && + error.statusCode === 400) { + return true; + } else { + var _super = AWS.Service.prototype.retryableError; + return _super.call(this, error); + } + } + }); /***/ }), @@ -43839,24 +43845,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 322 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['route53domains'] = {}; - AWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']); - Object.defineProperty(apiLoader.services['route53domains'], '2014-05-15', { - get: function get() { - var model = __webpack_require__(323); - model.paginators = __webpack_require__(324).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Route53Domains; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['route53domains'] = {}; + AWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']); + Object.defineProperty(apiLoader.services['route53domains'], '2014-05-15', { + get: function get() { + var model = __webpack_require__(323); + model.paginators = __webpack_require__(324).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Route53Domains; /***/ }), @@ -43875,1921 +43881,1921 @@ return /******/ (function(modules) { // webpackBootstrap /* 325 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['s3'] = {}; - AWS.S3 = Service.defineService('s3', ['2006-03-01']); - __webpack_require__(326); - Object.defineProperty(apiLoader.services['s3'], '2006-03-01', { - get: function get() { - var model = __webpack_require__(329); - model.paginators = __webpack_require__(330).pagination; - model.waiters = __webpack_require__(331).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.S3; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['s3'] = {}; + AWS.S3 = Service.defineService('s3', ['2006-03-01']); + __webpack_require__(326); + Object.defineProperty(apiLoader.services['s3'], '2006-03-01', { + get: function get() { + var model = __webpack_require__(329); + model.paginators = __webpack_require__(330).pagination; + model.waiters = __webpack_require__(331).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.S3; /***/ }), /* 326 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var v4Credentials = __webpack_require__(327); - - // Pull in managed upload extension - __webpack_require__(328); - - /** - * @api private - */ - var operationsWith200StatusCodeError = { - 'completeMultipartUpload': true, - 'copyObject': true, - 'uploadPartCopy': true - }; - - /** - * @api private - */ - var regionRedirectErrorCodes = [ - 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints - 'BadRequest', // head operations on virtual-hosted global bucket endpoints - 'PermanentRedirect', // non-head operations on path-style or regional endpoints - 301 // head operations on path-style or regional endpoints - ]; - - AWS.util.update(AWS.S3.prototype, { - /** - * @api private - */ - getSignatureVersion: function getSignatureVersion(request) { - var defaultApiVersion = this.api.signatureVersion; - var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null; - var regionDefinedVersion = this.config.signatureVersion; - var isPresigned = request ? request.isPresigned() : false; - /* - 1) User defined version specified: - a) always return user defined version - 2) No user defined version specified: - a) default to lowest version the region supports - b) If using presigned urls, default to lowest version the region supports - */ - if (userDefinedVersion) { - userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion; - return userDefinedVersion; - } - if (isPresigned !== true) { - defaultApiVersion = 'v4'; - } else if (regionDefinedVersion) { - defaultApiVersion = regionDefinedVersion; - } - return defaultApiVersion; - }, - - /** - * @api private - */ - getSignerClass: function getSignerClass(request) { - var signatureVersion = this.getSignatureVersion(request); - return AWS.Signers.RequestSigner.getVersion(signatureVersion); - }, - - /** - * @api private - */ - validateService: function validateService() { - var msg; - var messages = []; - - // default to us-east-1 when no region is provided - if (!this.config.region) this.config.region = 'us-east-1'; - - if (!this.config.endpoint && this.config.s3BucketEndpoint) { - messages.push('An endpoint must be provided when configuring ' + - '`s3BucketEndpoint` to true.'); - } - if (messages.length === 1) { - msg = messages[0]; - } else if (messages.length > 1) { - msg = 'Multiple configuration errors:\n' + messages.join('\n'); - } - if (msg) { - throw AWS.util.error(new Error(), - {name: 'InvalidEndpoint', message: msg}); - } - }, - - /** - * @api private - */ - shouldDisableBodySigning: function shouldDisableBodySigning(request) { - var signerClass = this.getSignerClass(); - if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4 - && request.httpRequest.endpoint.protocol === 'https:') { - return true; - } - return false; - }, - - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.addListener('validate', this.validateScheme); - request.addListener('validate', this.validateBucketEndpoint); - request.addListener('validate', this.correctBucketRegionFromCache); - request.addListener('validate', this.validateBucketName); - request.addListener('build', this.addContentType); - request.addListener('build', this.populateURI); - request.addListener('build', this.computeContentMd5); - request.addListener('build', this.computeSseCustomerKeyMd5); - request.addListener('afterBuild', this.addExpect100Continue); - request.removeListener('validate', - AWS.EventListeners.Core.VALIDATE_REGION); - request.addListener('extractError', this.extractError); - request.onAsync('extractError', this.requestBucketRegion); - request.addListener('extractData', this.extractData); - request.addListener('extractData', AWS.util.hoistPayloadMember); - request.addListener('beforePresign', this.prepareSignedUrl); - if (AWS.util.isBrowser()) { - request.onAsync('retry', this.reqRegionForNetworkingError); - } - if (this.shouldDisableBodySigning(request)) { - request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); - request.addListener('afterBuild', this.disableBodySigning); - } - }, - - /** - * @api private - */ - validateScheme: function(req) { - var params = req.params, - scheme = req.httpRequest.endpoint.protocol, - sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey; - if (sensitive && scheme !== 'https:') { - var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' + - 'to \'true\' in your configuration'; - throw AWS.util.error(new Error(), - { code: 'ConfigError', message: msg }); - } - }, - - /** - * @api private - */ - validateBucketEndpoint: function(req) { - if (!req.params.Bucket && req.service.config.s3BucketEndpoint) { - var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.'; - throw AWS.util.error(new Error(), - { code: 'ConfigError', message: msg }); - } - }, - - /** - * @api private - */ - validateBucketName: function validateBucketName(req) { - var service = req.service; - var signatureVersion = service.getSignatureVersion(req); - // Only validate buckets when using sigv4 - if (signatureVersion !== 'v4') { - return; - } - var bucket = req.params && req.params.Bucket; - var key = req.params && req.params.Key; - var slashIndex = bucket && bucket.indexOf('/'); - if (bucket && slashIndex >= 0) { - if (typeof key === 'string') { - req.params = AWS.util.copy(req.params); - // Need to include trailing slash to match sigv2 behavior - var prefix = bucket.substr(slashIndex + 1) || ''; - req.params.Key = prefix + '/' + key; - req.params.Bucket = bucket.substr(0, slashIndex); - } else { - var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket; - throw AWS.util.error(new Error(), - { code: 'InvalidBucket', message: msg }); - } - } - }, - - /** - * @api private - */ - isValidAccelerateOperation: function isValidAccelerateOperation(operation) { - var invalidOperations = [ - 'createBucket', - 'deleteBucket', - 'listBuckets' - ]; - return invalidOperations.indexOf(operation) === -1; - }, - - - /** - * S3 prefers dns-compatible bucket names to be moved from the uri path - * to the hostname as a sub-domain. This is not possible, even for dns-compat - * buckets when using SSL and the bucket name contains a dot ('.'). The - * ssl wildcard certificate is only 1-level deep. - * - * @api private - */ - populateURI: function populateURI(req) { - var httpRequest = req.httpRequest; - var b = req.params.Bucket; - var service = req.service; - var endpoint = httpRequest.endpoint; - if (b) { - if (!service.pathStyleBucketName(b)) { - if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) { - if (service.config.useDualstack) { - endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com'; - } else { - endpoint.hostname = b + '.s3-accelerate.amazonaws.com'; - } - } else if (!service.config.s3BucketEndpoint) { - endpoint.hostname = - b + '.' + endpoint.hostname; - } - - var port = endpoint.port; - if (port !== 80 && port !== 443) { - endpoint.host = endpoint.hostname + ':' + - endpoint.port; - } else { - endpoint.host = endpoint.hostname; - } - - httpRequest.virtualHostedBucket = b; // needed for signing the request - service.removeVirtualHostedBucketFromPath(req); - } - } - }, - - /** - * Takes the bucket name out of the path if bucket is virtual-hosted - * - * @api private - */ - removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) { - var httpRequest = req.httpRequest; - var bucket = httpRequest.virtualHostedBucket; - if (bucket && httpRequest.path) { - httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), ''); - if (httpRequest.path[0] !== '/') { - httpRequest.path = '/' + httpRequest.path; - } - } - }, - - /** - * Adds Expect: 100-continue header if payload is greater-or-equal 1MB - * @api private - */ - addExpect100Continue: function addExpect100Continue(req) { - var len = req.httpRequest.headers['Content-Length']; - if (AWS.util.isNode() && len >= 1024 * 1024) { - req.httpRequest.headers['Expect'] = '100-continue'; - } - }, - - /** - * Adds a default content type if none is supplied. - * - * @api private - */ - addContentType: function addContentType(req) { - var httpRequest = req.httpRequest; - if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') { - // Content-Type is not set in GET/HEAD requests - delete httpRequest.headers['Content-Type']; - return; - } - - if (!httpRequest.headers['Content-Type']) { // always have a Content-Type - httpRequest.headers['Content-Type'] = 'application/octet-stream'; - } - - var contentType = httpRequest.headers['Content-Type']; - if (AWS.util.isBrowser()) { - if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) { - var charset = '; charset=UTF-8'; - httpRequest.headers['Content-Type'] += charset; - } else { - var replaceFn = function(_, prefix, charsetName) { - return prefix + charsetName.toUpperCase(); - }; - - httpRequest.headers['Content-Type'] = - contentType.replace(/(;\s*charset=)(.+)$/, replaceFn); - } - } - }, - - /** - * @api private - */ - computableChecksumOperations: { - putBucketCors: true, - putBucketLifecycle: true, - putBucketLifecycleConfiguration: true, - putBucketTagging: true, - deleteObjects: true, - putBucketReplication: true - }, - - /** - * Checks whether checksums should be computed for the request. - * If the request requires checksums to be computed, this will always - * return true, otherwise it depends on whether {AWS.Config.computeChecksums} - * is set. - * - * @param req [AWS.Request] the request to check against - * @return [Boolean] whether to compute checksums for a request. - * @api private - */ - willComputeChecksums: function willComputeChecksums(req) { - if (this.computableChecksumOperations[req.operation]) return true; - if (!this.config.computeChecksums) return false; - - // TODO: compute checksums for Stream objects - if (!AWS.util.Buffer.isBuffer(req.httpRequest.body) && - typeof req.httpRequest.body !== 'string') { - return false; - } - - var rules = req.service.api.operations[req.operation].input.members; - - // Sha256 signing disabled, and not a presigned url - if (req.service.shouldDisableBodySigning(req) && !Object.prototype.hasOwnProperty.call(req.httpRequest.headers, 'presigned-expires')) { - if (rules.ContentMD5 && !req.params.ContentMD5) { - return true; - } - } - - // V4 signer uses SHA256 signatures so only compute MD5 if it is required - if (req.service.getSignerClass(req) === AWS.Signers.V4) { - if (rules.ContentMD5 && !rules.ContentMD5.required) return false; - } - - if (rules.ContentMD5 && !req.params.ContentMD5) return true; - }, - - /** - * A listener that computes the Content-MD5 and sets it in the header. - * @see AWS.S3.willComputeChecksums - * @api private - */ - computeContentMd5: function computeContentMd5(req) { - if (req.service.willComputeChecksums(req)) { - var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64'); - req.httpRequest.headers['Content-MD5'] = md5; - } - }, - - /** - * @api private - */ - computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) { - var keys = { - SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5', - CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5' - }; - AWS.util.each(keys, function(key, header) { - if (req.params[key]) { - var value = AWS.util.crypto.md5(req.params[key], 'base64'); - req.httpRequest.headers[header] = value; - } - }); - }, - - /** - * Returns true if the bucket name should be left in the URI path for - * a request to S3. This function takes into account the current - * endpoint protocol (e.g. http or https). - * - * @api private - */ - pathStyleBucketName: function pathStyleBucketName(bucketName) { - // user can force path style requests via the configuration - if (this.config.s3ForcePathStyle) return true; - if (this.config.s3BucketEndpoint) return false; - - if (this.dnsCompatibleBucketName(bucketName)) { - return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false; - } else { - return true; // not dns compatible names must always use path style - } - }, - - /** - * Returns true if the bucket name is DNS compatible. Buckets created - * outside of the classic region MUST be DNS compatible. - * - * @api private - */ - dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) { - var b = bucketName; - var domain = new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/); - var ipAddress = new RegExp(/(\d+\.){3}\d+/); - var dots = new RegExp(/\.\./); - return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false; - }, - - /** - * @return [Boolean] whether response contains an error - * @api private - */ - successfulResponse: function successfulResponse(resp) { - var req = resp.request; - var httpResponse = resp.httpResponse; - if (operationsWith200StatusCodeError[req.operation] && - httpResponse.body.toString().match('')) { - return false; - } else { - return httpResponse.statusCode < 300; - } - }, - - /** - * @return [Boolean] whether the error can be retried - * @api private - */ - retryableError: function retryableError(error, request) { - if (operationsWith200StatusCodeError[request.operation] && - error.statusCode === 200) { - return true; - } else if (request._requestRegionForBucket && - request.service.bucketRegionCache[request._requestRegionForBucket]) { - return false; - } else if (error && error.code === 'RequestTimeout') { - return true; - } else if (error && - regionRedirectErrorCodes.indexOf(error.code) != -1 && - error.region && error.region != request.httpRequest.region) { - request.httpRequest.region = error.region; - if (error.statusCode === 301) { - request.service.updateReqBucketRegion(request); - } - return true; - } else { - var _super = AWS.Service.prototype.retryableError; - return _super.call(this, error, request); - } - }, - - /** - * Updates httpRequest with region. If region is not provided, then - * the httpRequest will be updated based on httpRequest.region - * - * @api private - */ - updateReqBucketRegion: function updateReqBucketRegion(request, region) { - var httpRequest = request.httpRequest; - if (typeof region === 'string' && region.length) { - httpRequest.region = region; - } - if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)) { - return; - } - var service = request.service; - var s3Config = service.config; - var s3BucketEndpoint = s3Config.s3BucketEndpoint; - if (s3BucketEndpoint) { - delete s3Config.s3BucketEndpoint; - } - var newConfig = AWS.util.copy(s3Config); - delete newConfig.endpoint; - newConfig.region = httpRequest.region; - - httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint; - service.populateURI(request); - s3Config.s3BucketEndpoint = s3BucketEndpoint; - httpRequest.headers.Host = httpRequest.endpoint.host; - - if (request._asm.currentState === 'validate') { - request.removeListener('build', service.populateURI); - request.addListener('build', service.removeVirtualHostedBucketFromPath); - } - }, - - /** - * Provides a specialized parser for getBucketLocation -- all other - * operations are parsed by the super class. - * - * @api private - */ - extractData: function extractData(resp) { - var req = resp.request; - if (req.operation === 'getBucketLocation') { - var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/); - delete resp.data['_']; - if (match) { - resp.data.LocationConstraint = match[1]; - } else { - resp.data.LocationConstraint = ''; - } - } - var bucket = req.params.Bucket || null; - if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) { - req.service.clearBucketRegionCache(bucket); - } else { - var headers = resp.httpResponse.headers || {}; - var region = headers['x-amz-bucket-region'] || null; - if (!region && req.operation === 'createBucket' && !resp.error) { - var createBucketConfiguration = req.params.CreateBucketConfiguration; - if (!createBucketConfiguration) { - region = 'us-east-1'; - } else if (createBucketConfiguration.LocationConstraint === 'EU') { - region = 'eu-west-1'; - } else { - region = createBucketConfiguration.LocationConstraint; - } - } - if (region) { - if (bucket && region !== req.service.bucketRegionCache[bucket]) { - req.service.bucketRegionCache[bucket] = region; - } - } - } - req.service.extractRequestIds(resp); - }, - - /** - * Extracts an error object from the http response. - * - * @api private - */ - extractError: function extractError(resp) { - var codes = { - 304: 'NotModified', - 403: 'Forbidden', - 400: 'BadRequest', - 404: 'NotFound' - }; - - var req = resp.request; - var code = resp.httpResponse.statusCode; - var body = resp.httpResponse.body || ''; - - var headers = resp.httpResponse.headers || {}; - var region = headers['x-amz-bucket-region'] || null; - var bucket = req.params.Bucket || null; - var bucketRegionCache = req.service.bucketRegionCache; - if (region && bucket && region !== bucketRegionCache[bucket]) { - bucketRegionCache[bucket] = region; - } - - var cachedRegion; - if (codes[code] && body.length === 0) { - if (bucket && !region) { - cachedRegion = bucketRegionCache[bucket] || null; - if (cachedRegion !== req.httpRequest.region) { - region = cachedRegion; - } - } - resp.error = AWS.util.error(new Error(), { - code: codes[code], - message: null, - region: region - }); - } else { - var data = new AWS.XML.Parser().parse(body.toString()); - - if (data.Region && !region) { - region = data.Region; - if (bucket && region !== bucketRegionCache[bucket]) { - bucketRegionCache[bucket] = region; - } - } else if (bucket && !region && !data.Region) { - cachedRegion = bucketRegionCache[bucket] || null; - if (cachedRegion !== req.httpRequest.region) { - region = cachedRegion; - } - } - - resp.error = AWS.util.error(new Error(), { - code: data.Code || code, - message: data.Message || null, - region: region - }); - } - req.service.extractRequestIds(resp); - }, - - /** - * If region was not obtained synchronously, then send async request - * to get bucket region for errors resulting from wrong region. - * - * @api private - */ - requestBucketRegion: function requestBucketRegion(resp, done) { - var error = resp.error; - var req = resp.request; - var bucket = req.params.Bucket || null; - - if (!error || !bucket || error.region || req.operation === 'listObjects' || - (AWS.util.isNode() && req.operation === 'headBucket') || - (error.statusCode === 400 && req.operation !== 'headObject') || - regionRedirectErrorCodes.indexOf(error.code) === -1) { - return done(); - } - var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects'; - var reqParams = {Bucket: bucket}; - if (reqOperation === 'listObjects') reqParams.MaxKeys = 0; - var regionReq = req.service[reqOperation](reqParams); - regionReq._requestRegionForBucket = bucket; - regionReq.send(function() { - var region = req.service.bucketRegionCache[bucket] || null; - error.region = region; - done(); - }); - }, - - /** - * For browser only. If NetworkingError received, will attempt to obtain - * the bucket region. - * - * @api private - */ - reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) { - if (!AWS.util.isBrowser()) { - return done(); - } - var error = resp.error; - var request = resp.request; - var bucket = request.params.Bucket; - if (!error || error.code !== 'NetworkingError' || !bucket || - request.httpRequest.region === 'us-east-1') { - return done(); - } - var service = request.service; - var bucketRegionCache = service.bucketRegionCache; - var cachedRegion = bucketRegionCache[bucket] || null; - - if (cachedRegion && cachedRegion !== request.httpRequest.region) { - service.updateReqBucketRegion(request, cachedRegion); - done(); - } else if (!service.dnsCompatibleBucketName(bucket)) { - service.updateReqBucketRegion(request, 'us-east-1'); - if (bucketRegionCache[bucket] !== 'us-east-1') { - bucketRegionCache[bucket] = 'us-east-1'; - } - done(); - } else if (request.httpRequest.virtualHostedBucket) { - var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0}); - service.updateReqBucketRegion(getRegionReq, 'us-east-1'); - getRegionReq._requestRegionForBucket = bucket; - - getRegionReq.send(function() { - var region = service.bucketRegionCache[bucket] || null; - if (region && region !== request.httpRequest.region) { - service.updateReqBucketRegion(request, region); - } - done(); - }); - } else { - // DNS-compatible path-style - // (s3ForcePathStyle or bucket name with dot over https) - // Cannot obtain region information for this case - done(); - } - }, - - /** - * Cache for bucket region. - * - * @api private - */ - bucketRegionCache: {}, - - /** - * Clears bucket region cache. - * - * @api private - */ - clearBucketRegionCache: function(buckets) { - var bucketRegionCache = this.bucketRegionCache; - if (!buckets) { - buckets = Object.keys(bucketRegionCache); - } else if (typeof buckets === 'string') { - buckets = [buckets]; - } - for (var i = 0; i < buckets.length; i++) { - delete bucketRegionCache[buckets[i]]; - } - return bucketRegionCache; - }, - - /** - * Corrects request region if bucket's cached region is different - * - * @api private - */ - correctBucketRegionFromCache: function correctBucketRegionFromCache(req) { - var bucket = req.params.Bucket || null; - if (bucket) { - var service = req.service; - var requestRegion = req.httpRequest.region; - var cachedRegion = service.bucketRegionCache[bucket]; - if (cachedRegion && cachedRegion !== requestRegion) { - service.updateReqBucketRegion(req, cachedRegion); - } - } - }, - - /** - * Extracts S3 specific request ids from the http response. - * - * @api private - */ - extractRequestIds: function extractRequestIds(resp) { - var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null; - var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null; - resp.extendedRequestId = extendedRequestId; - resp.cfId = cfId; - - if (resp.error) { - resp.error.requestId = resp.requestId || null; - resp.error.extendedRequestId = extendedRequestId; - resp.error.cfId = cfId; - } - }, - - /** - * Get a pre-signed URL for a given operation name. - * - * @note You must ensure that you have static or previously resolved - * credentials if you call this method synchronously (with no callback), - * otherwise it may not properly sign the request. If you cannot guarantee - * this (you are using an asynchronous credential provider, i.e., EC2 - * IAM roles), you should always call this method with an asynchronous - * callback. - * @note Not all operation parameters are supported when using pre-signed - * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`, - * `ContentLength`, or `Tagging` must be provided as headers when sending a - * request. If you are using pre-signed URLs to upload from a browser and - * need to use these fields, see {createPresignedPost}. - * @param operation [String] the name of the operation to call - * @param params [map] parameters to pass to the operation. See the given - * operation for the expected operation parameters. In addition, you can - * also pass the "Expires" parameter to inform S3 how long the URL should - * work for. - * @option params Expires [Integer] (900) the number of seconds to expire - * the pre-signed URL operation in. Defaults to 15 minutes. - * @param callback [Function] if a callback is provided, this function will - * pass the URL as the second parameter (after the error parameter) to - * the callback function. - * @return [String] if called synchronously (with no callback), returns the - * signed URL. - * @return [null] nothing is returned if a callback is provided. - * @example Pre-signing a getObject operation (synchronously) - * var params = {Bucket: 'bucket', Key: 'key'}; - * var url = s3.getSignedUrl('getObject', params); - * console.log('The URL is', url); - * @example Pre-signing a putObject (asynchronously) - * var params = {Bucket: 'bucket', Key: 'key'}; - * s3.getSignedUrl('putObject', params, function (err, url) { - * console.log('The URL is', url); - * }); - * @example Pre-signing a putObject operation with a specific payload - * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'}; - * var url = s3.getSignedUrl('putObject', params); - * console.log('The URL is', url); - * @example Passing in a 1-minute expiry time for a pre-signed URL - * var params = {Bucket: 'bucket', Key: 'key', Expires: 60}; - * var url = s3.getSignedUrl('getObject', params); - * console.log('The URL is', url); // expires in 60 seconds - */ - getSignedUrl: function getSignedUrl(operation, params, callback) { - params = AWS.util.copy(params || {}); - var expires = params.Expires || 900; - delete params.Expires; // we can't validate this - var request = this.makeRequest(operation, params); - - if (callback) { - AWS.util.defer(function() { - request.presign(expires, callback); - }); - } else { - return request.presign(expires, callback); - } - }, - - - /** - * Get a pre-signed POST policy to support uploading to S3 directly from an - * HTML form. - * - * @param params [map] - * @option params Bucket [String] The bucket to which the post should be - * uploaded - * @option params Expires [Integer] (3600) The number of seconds for which - * the presigned policy should be valid. - * @option params Conditions [Array] An array of conditions that must be met - * for the presigned policy to allow the - * upload. This can include required tags, - * the accepted range for content lengths, - * etc. - * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html - * @option params Fields [map] Fields to include in the form. All - * values passed in as fields will be - * signed as exact match conditions. - * @param callback [Function] - * - * @note All fields passed in when creating presigned post data will be signed - * as exact match conditions. Any fields that will be interpolated by S3 - * must be added to the fields hash after signing, and an appropriate - * condition for such fields must be explicitly added to the Conditions - * array passed to this function before signing. - * - * @example Presiging post data with a known key - * var params = { - * Bucket: 'bucket', - * Fields: { - * key: 'key' - * } - * }; - * s3.createPresignedPost(params, function(err, data) { - * if (err) { - * console.error('Presigning post data encountered an error', err); - * } else { - * console.log('The post data is', data); - * } - * }); - * - * @example Presigning post data with an interpolated key - * var params = { - * Bucket: 'bucket', - * Conditions: [ - * ['starts-with', '$key', 'path/to/uploads/'] - * ] - * }; - * s3.createPresignedPost(params, function(err, data) { - * if (err) { - * console.error('Presigning post data encountered an error', err); - * } else { - * data.Fields.key = 'path/to/uploads/${filename}'; - * console.log('The post data is', data); - * } - * }); - * - * @note You must ensure that you have static or previously resolved - * credentials if you call this method synchronously (with no callback), - * otherwise it may not properly sign the request. If you cannot guarantee - * this (you are using an asynchronous credential provider, i.e., EC2 - * IAM roles), you should always call this method with an asynchronous - * callback. - * - * @return [map] If called synchronously (with no callback), returns a hash - * with the url to set as the form action and a hash of fields - * to include in the form. - * @return [null] Nothing is returned if a callback is provided. - * - * @callback callback function (err, data) - * @param err [Error] the error object returned from the policy signer - * @param data [map] The data necessary to construct an HTML form - * @param data.url [String] The URL to use as the action of the form - * @param data.fields [map] A hash of fields that must be included in the - * form for the upload to succeed. This hash will - * include the signed POST policy, your access key - * ID and security token (if present), etc. These - * may be safely included as input elements of type - * 'hidden.' - */ - createPresignedPost: function createPresignedPost(params, callback) { - if (typeof params === 'function' && callback === undefined) { - callback = params; - params = null; - } - - params = AWS.util.copy(params || {}); - var boundParams = this.config.params || {}; - var bucket = params.Bucket || boundParams.Bucket, - self = this, - config = this.config, - endpoint = AWS.util.copy(this.endpoint); - if (!config.s3BucketEndpoint) { - endpoint.pathname = '/' + bucket; - } - - function finalizePost() { - return { - url: AWS.util.urlFormat(endpoint), - fields: self.preparePostFields( - config.credentials, - config.region, - bucket, - params.Fields, - params.Conditions, - params.Expires - ) - }; - } - - if (callback) { - config.getCredentials(function (err) { - if (err) { - callback(err); - } - - callback(null, finalizePost()); - }); - } else { - return finalizePost(); - } - }, - - /** - * @api private - */ - preparePostFields: function preparePostFields( - credentials, - region, - bucket, - fields, - conditions, - expiresInSeconds - ) { - var now = this.getSkewCorrectedDate(); - if (!credentials || !region || !bucket) { - throw new Error('Unable to create a POST object policy without a bucket,' - + ' region, and credentials'); - } - fields = AWS.util.copy(fields || {}); - conditions = (conditions || []).slice(0); - expiresInSeconds = expiresInSeconds || 3600; - - var signingDate = AWS.util.date.iso8601(now).replace(/[:\-]|\.\d{3}/g, ''); - var shortDate = signingDate.substr(0, 8); - var scope = v4Credentials.createScope(shortDate, region, 's3'); - var credential = credentials.accessKeyId + '/' + scope; - - fields['bucket'] = bucket; - fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'; - fields['X-Amz-Credential'] = credential; - fields['X-Amz-Date'] = signingDate; - if (credentials.sessionToken) { - fields['X-Amz-Security-Token'] = credentials.sessionToken; - } - for (var field in fields) { - if (fields.hasOwnProperty(field)) { - var condition = {}; - condition[field] = fields[field]; - conditions.push(condition); - } - } - - fields.Policy = this.preparePostPolicy( - new Date(now.valueOf() + expiresInSeconds * 1000), - conditions - ); - fields['X-Amz-Signature'] = AWS.util.crypto.hmac( - v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true), - fields.Policy, - 'hex' - ); - - return fields; - }, - - /** - * @api private - */ - preparePostPolicy: function preparePostPolicy(expiration, conditions) { - return AWS.util.base64.encode(JSON.stringify({ - expiration: AWS.util.date.iso8601(expiration), - conditions: conditions - })); - }, - - /** - * @api private - */ - prepareSignedUrl: function prepareSignedUrl(request) { - request.addListener('validate', request.service.noPresignedContentLength); - request.removeListener('build', request.service.addContentType); - if (!request.params.Body) { - // no Content-MD5/SHA-256 if body is not provided - request.removeListener('build', request.service.computeContentMd5); - } else { - request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); - } - }, - - /** - * @api private - * @param request - */ - disableBodySigning: function disableBodySigning(request) { - var headers = request.httpRequest.headers; - // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined - if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) { - headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; - } - }, - - /** - * @api private - */ - noPresignedContentLength: function noPresignedContentLength(request) { - if (request.params.ContentLength !== undefined) { - throw AWS.util.error(new Error(), {code: 'UnexpectedParameter', - message: 'ContentLength is not supported in pre-signed URLs.'}); - } - }, - - createBucket: function createBucket(params, callback) { - // When creating a bucket *outside* the classic region, the location - // constraint must be set for the bucket and it must match the endpoint. - // This chunk of code will set the location constraint param based - // on the region (when possible), but it will not override a passed-in - // location constraint. - if (typeof params === 'function' || !params) { - callback = callback || params; - params = {}; - } - var hostname = this.endpoint.hostname; - if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) { - params.CreateBucketConfiguration = { LocationConstraint: this.config.region }; - } - return this.makeRequest('createBucket', params, callback); - }, - - /** - * @see AWS.S3.ManagedUpload - * @overload upload(params = {}, [options], [callback]) - * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent - * concurrent handling of parts if the payload is large enough. You can - * configure the concurrent queue size by setting `options`. Note that this - * is the only operation for which the SDK can retry requests with stream - * bodies. - * - * @param (see AWS.S3.putObject) - * @option (see AWS.S3.ManagedUpload.constructor) - * @return [AWS.S3.ManagedUpload] the managed upload object that can call - * `send()` or track progress. - * @example Uploading a stream object - * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; - * s3.upload(params, function(err, data) { - * console.log(err, data); - * }); - * @example Uploading a stream with concurrency of 1 and partSize of 10mb - * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; - * var options = {partSize: 10 * 1024 * 1024, queueSize: 1}; - * s3.upload(params, options, function(err, data) { - * console.log(err, data); - * }); - * @callback callback function(err, data) - * @param err [Error] an error or null if no error occurred. - * @param data [map] The response data from the successful upload: - * @param data.Location [String] the URL of the uploaded object - * @param data.ETag [String] the ETag of the uploaded object - * @param data.Bucket [String] the bucket to which the object was uploaded - * @param data.Key [String] the key to which the object was uploaded - */ - upload: function upload(params, options, callback) { - if (typeof options === 'function' && callback === undefined) { - callback = options; - options = null; - } - - options = options || {}; - options = AWS.util.merge(options || {}, {service: this, params: params}); - - var uploader = new AWS.S3.ManagedUpload(options); - if (typeof callback === 'function') uploader.send(callback); - return uploader; - } - }); + var AWS = __webpack_require__(4); + var v4Credentials = __webpack_require__(327); + + // Pull in managed upload extension + __webpack_require__(328); + + /** + * @api private + */ + var operationsWith200StatusCodeError = { + 'completeMultipartUpload': true, + 'copyObject': true, + 'uploadPartCopy': true + }; + + /** + * @api private + */ + var regionRedirectErrorCodes = [ + 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints + 'BadRequest', // head operations on virtual-hosted global bucket endpoints + 'PermanentRedirect', // non-head operations on path-style or regional endpoints + 301 // head operations on path-style or regional endpoints + ]; + + AWS.util.update(AWS.S3.prototype, { + /** + * @api private + */ + getSignatureVersion: function getSignatureVersion(request) { + var defaultApiVersion = this.api.signatureVersion; + var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null; + var regionDefinedVersion = this.config.signatureVersion; + var isPresigned = request ? request.isPresigned() : false; + /* + 1) User defined version specified: + a) always return user defined version + 2) No user defined version specified: + a) default to lowest version the region supports + b) If using presigned urls, default to lowest version the region supports + */ + if (userDefinedVersion) { + userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion; + return userDefinedVersion; + } + if (isPresigned !== true) { + defaultApiVersion = 'v4'; + } else if (regionDefinedVersion) { + defaultApiVersion = regionDefinedVersion; + } + return defaultApiVersion; + }, + + /** + * @api private + */ + getSignerClass: function getSignerClass(request) { + var signatureVersion = this.getSignatureVersion(request); + return AWS.Signers.RequestSigner.getVersion(signatureVersion); + }, + + /** + * @api private + */ + validateService: function validateService() { + var msg; + var messages = []; + + // default to us-east-1 when no region is provided + if (!this.config.region) this.config.region = 'us-east-1'; + + if (!this.config.endpoint && this.config.s3BucketEndpoint) { + messages.push('An endpoint must be provided when configuring ' + + '`s3BucketEndpoint` to true.'); + } + if (messages.length === 1) { + msg = messages[0]; + } else if (messages.length > 1) { + msg = 'Multiple configuration errors:\n' + messages.join('\n'); + } + if (msg) { + throw AWS.util.error(new Error(), + {name: 'InvalidEndpoint', message: msg}); + } + }, + + /** + * @api private + */ + shouldDisableBodySigning: function shouldDisableBodySigning(request) { + var signerClass = this.getSignerClass(); + if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4 + && request.httpRequest.endpoint.protocol === 'https:') { + return true; + } + return false; + }, + + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('validate', this.validateScheme); + request.addListener('validate', this.validateBucketEndpoint); + request.addListener('validate', this.correctBucketRegionFromCache); + request.addListener('validate', this.validateBucketName); + request.addListener('build', this.addContentType); + request.addListener('build', this.populateURI); + request.addListener('build', this.computeContentMd5); + request.addListener('build', this.computeSseCustomerKeyMd5); + request.addListener('afterBuild', this.addExpect100Continue); + request.removeListener('validate', + AWS.EventListeners.Core.VALIDATE_REGION); + request.addListener('extractError', this.extractError); + request.onAsync('extractError', this.requestBucketRegion); + request.addListener('extractData', this.extractData); + request.addListener('extractData', AWS.util.hoistPayloadMember); + request.addListener('beforePresign', this.prepareSignedUrl); + if (AWS.util.isBrowser()) { + request.onAsync('retry', this.reqRegionForNetworkingError); + } + if (this.shouldDisableBodySigning(request)) { + request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); + request.addListener('afterBuild', this.disableBodySigning); + } + }, + + /** + * @api private + */ + validateScheme: function(req) { + var params = req.params, + scheme = req.httpRequest.endpoint.protocol, + sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey; + if (sensitive && scheme !== 'https:') { + var msg = 'Cannot send SSE keys over HTTP. Set \'sslEnabled\'' + + 'to \'true\' in your configuration'; + throw AWS.util.error(new Error(), + { code: 'ConfigError', message: msg }); + } + }, + + /** + * @api private + */ + validateBucketEndpoint: function(req) { + if (!req.params.Bucket && req.service.config.s3BucketEndpoint) { + var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.'; + throw AWS.util.error(new Error(), + { code: 'ConfigError', message: msg }); + } + }, + + /** + * @api private + */ + validateBucketName: function validateBucketName(req) { + var service = req.service; + var signatureVersion = service.getSignatureVersion(req); + // Only validate buckets when using sigv4 + if (signatureVersion !== 'v4') { + return; + } + var bucket = req.params && req.params.Bucket; + var key = req.params && req.params.Key; + var slashIndex = bucket && bucket.indexOf('/'); + if (bucket && slashIndex >= 0) { + if (typeof key === 'string') { + req.params = AWS.util.copy(req.params); + // Need to include trailing slash to match sigv2 behavior + var prefix = bucket.substr(slashIndex + 1) || ''; + req.params.Key = prefix + '/' + key; + req.params.Bucket = bucket.substr(0, slashIndex); + } else { + var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket; + throw AWS.util.error(new Error(), + { code: 'InvalidBucket', message: msg }); + } + } + }, + + /** + * @api private + */ + isValidAccelerateOperation: function isValidAccelerateOperation(operation) { + var invalidOperations = [ + 'createBucket', + 'deleteBucket', + 'listBuckets' + ]; + return invalidOperations.indexOf(operation) === -1; + }, + + + /** + * S3 prefers dns-compatible bucket names to be moved from the uri path + * to the hostname as a sub-domain. This is not possible, even for dns-compat + * buckets when using SSL and the bucket name contains a dot ('.'). The + * ssl wildcard certificate is only 1-level deep. + * + * @api private + */ + populateURI: function populateURI(req) { + var httpRequest = req.httpRequest; + var b = req.params.Bucket; + var service = req.service; + var endpoint = httpRequest.endpoint; + if (b) { + if (!service.pathStyleBucketName(b)) { + if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) { + if (service.config.useDualstack) { + endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com'; + } else { + endpoint.hostname = b + '.s3-accelerate.amazonaws.com'; + } + } else if (!service.config.s3BucketEndpoint) { + endpoint.hostname = + b + '.' + endpoint.hostname; + } + + var port = endpoint.port; + if (port !== 80 && port !== 443) { + endpoint.host = endpoint.hostname + ':' + + endpoint.port; + } else { + endpoint.host = endpoint.hostname; + } + + httpRequest.virtualHostedBucket = b; // needed for signing the request + service.removeVirtualHostedBucketFromPath(req); + } + } + }, + + /** + * Takes the bucket name out of the path if bucket is virtual-hosted + * + * @api private + */ + removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) { + var httpRequest = req.httpRequest; + var bucket = httpRequest.virtualHostedBucket; + if (bucket && httpRequest.path) { + httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), ''); + if (httpRequest.path[0] !== '/') { + httpRequest.path = '/' + httpRequest.path; + } + } + }, + + /** + * Adds Expect: 100-continue header if payload is greater-or-equal 1MB + * @api private + */ + addExpect100Continue: function addExpect100Continue(req) { + var len = req.httpRequest.headers['Content-Length']; + if (AWS.util.isNode() && len >= 1024 * 1024) { + req.httpRequest.headers['Expect'] = '100-continue'; + } + }, + + /** + * Adds a default content type if none is supplied. + * + * @api private + */ + addContentType: function addContentType(req) { + var httpRequest = req.httpRequest; + if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') { + // Content-Type is not set in GET/HEAD requests + delete httpRequest.headers['Content-Type']; + return; + } + + if (!httpRequest.headers['Content-Type']) { // always have a Content-Type + httpRequest.headers['Content-Type'] = 'application/octet-stream'; + } + + var contentType = httpRequest.headers['Content-Type']; + if (AWS.util.isBrowser()) { + if (typeof httpRequest.body === 'string' && !contentType.match(/;\s*charset=/)) { + var charset = '; charset=UTF-8'; + httpRequest.headers['Content-Type'] += charset; + } else { + var replaceFn = function(_, prefix, charsetName) { + return prefix + charsetName.toUpperCase(); + }; + + httpRequest.headers['Content-Type'] = + contentType.replace(/(;\s*charset=)(.+)$/, replaceFn); + } + } + }, + + /** + * @api private + */ + computableChecksumOperations: { + putBucketCors: true, + putBucketLifecycle: true, + putBucketLifecycleConfiguration: true, + putBucketTagging: true, + deleteObjects: true, + putBucketReplication: true + }, + + /** + * Checks whether checksums should be computed for the request. + * If the request requires checksums to be computed, this will always + * return true, otherwise it depends on whether {AWS.Config.computeChecksums} + * is set. + * + * @param req [AWS.Request] the request to check against + * @return [Boolean] whether to compute checksums for a request. + * @api private + */ + willComputeChecksums: function willComputeChecksums(req) { + if (this.computableChecksumOperations[req.operation]) return true; + if (!this.config.computeChecksums) return false; + + // TODO: compute checksums for Stream objects + if (!AWS.util.Buffer.isBuffer(req.httpRequest.body) && + typeof req.httpRequest.body !== 'string') { + return false; + } + + var rules = req.service.api.operations[req.operation].input.members; + + // Sha256 signing disabled, and not a presigned url + if (req.service.shouldDisableBodySigning(req) && !Object.prototype.hasOwnProperty.call(req.httpRequest.headers, 'presigned-expires')) { + if (rules.ContentMD5 && !req.params.ContentMD5) { + return true; + } + } + + // V4 signer uses SHA256 signatures so only compute MD5 if it is required + if (req.service.getSignerClass(req) === AWS.Signers.V4) { + if (rules.ContentMD5 && !rules.ContentMD5.required) return false; + } + + if (rules.ContentMD5 && !req.params.ContentMD5) return true; + }, + + /** + * A listener that computes the Content-MD5 and sets it in the header. + * @see AWS.S3.willComputeChecksums + * @api private + */ + computeContentMd5: function computeContentMd5(req) { + if (req.service.willComputeChecksums(req)) { + var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64'); + req.httpRequest.headers['Content-MD5'] = md5; + } + }, + + /** + * @api private + */ + computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) { + var keys = { + SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5', + CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5' + }; + AWS.util.each(keys, function(key, header) { + if (req.params[key]) { + var value = AWS.util.crypto.md5(req.params[key], 'base64'); + req.httpRequest.headers[header] = value; + } + }); + }, + + /** + * Returns true if the bucket name should be left in the URI path for + * a request to S3. This function takes into account the current + * endpoint protocol (e.g. http or https). + * + * @api private + */ + pathStyleBucketName: function pathStyleBucketName(bucketName) { + // user can force path style requests via the configuration + if (this.config.s3ForcePathStyle) return true; + if (this.config.s3BucketEndpoint) return false; + + if (this.dnsCompatibleBucketName(bucketName)) { + return (this.config.sslEnabled && bucketName.match(/\./)) ? true : false; + } else { + return true; // not dns compatible names must always use path style + } + }, + + /** + * Returns true if the bucket name is DNS compatible. Buckets created + * outside of the classic region MUST be DNS compatible. + * + * @api private + */ + dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) { + var b = bucketName; + var domain = new RegExp(/^[a-z0-9][a-z0-9\.\-]{1,61}[a-z0-9]$/); + var ipAddress = new RegExp(/(\d+\.){3}\d+/); + var dots = new RegExp(/\.\./); + return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false; + }, + + /** + * @return [Boolean] whether response contains an error + * @api private + */ + successfulResponse: function successfulResponse(resp) { + var req = resp.request; + var httpResponse = resp.httpResponse; + if (operationsWith200StatusCodeError[req.operation] && + httpResponse.body.toString().match('')) { + return false; + } else { + return httpResponse.statusCode < 300; + } + }, + + /** + * @return [Boolean] whether the error can be retried + * @api private + */ + retryableError: function retryableError(error, request) { + if (operationsWith200StatusCodeError[request.operation] && + error.statusCode === 200) { + return true; + } else if (request._requestRegionForBucket && + request.service.bucketRegionCache[request._requestRegionForBucket]) { + return false; + } else if (error && error.code === 'RequestTimeout') { + return true; + } else if (error && + regionRedirectErrorCodes.indexOf(error.code) != -1 && + error.region && error.region != request.httpRequest.region) { + request.httpRequest.region = error.region; + if (error.statusCode === 301) { + request.service.updateReqBucketRegion(request); + } + return true; + } else { + var _super = AWS.Service.prototype.retryableError; + return _super.call(this, error, request); + } + }, + + /** + * Updates httpRequest with region. If region is not provided, then + * the httpRequest will be updated based on httpRequest.region + * + * @api private + */ + updateReqBucketRegion: function updateReqBucketRegion(request, region) { + var httpRequest = request.httpRequest; + if (typeof region === 'string' && region.length) { + httpRequest.region = region; + } + if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\.amazonaws\.com$/)) { + return; + } + var service = request.service; + var s3Config = service.config; + var s3BucketEndpoint = s3Config.s3BucketEndpoint; + if (s3BucketEndpoint) { + delete s3Config.s3BucketEndpoint; + } + var newConfig = AWS.util.copy(s3Config); + delete newConfig.endpoint; + newConfig.region = httpRequest.region; + + httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint; + service.populateURI(request); + s3Config.s3BucketEndpoint = s3BucketEndpoint; + httpRequest.headers.Host = httpRequest.endpoint.host; + + if (request._asm.currentState === 'validate') { + request.removeListener('build', service.populateURI); + request.addListener('build', service.removeVirtualHostedBucketFromPath); + } + }, + + /** + * Provides a specialized parser for getBucketLocation -- all other + * operations are parsed by the super class. + * + * @api private + */ + extractData: function extractData(resp) { + var req = resp.request; + if (req.operation === 'getBucketLocation') { + var match = resp.httpResponse.body.toString().match(/>(.+)<\/Location/); + delete resp.data['_']; + if (match) { + resp.data.LocationConstraint = match[1]; + } else { + resp.data.LocationConstraint = ''; + } + } + var bucket = req.params.Bucket || null; + if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) { + req.service.clearBucketRegionCache(bucket); + } else { + var headers = resp.httpResponse.headers || {}; + var region = headers['x-amz-bucket-region'] || null; + if (!region && req.operation === 'createBucket' && !resp.error) { + var createBucketConfiguration = req.params.CreateBucketConfiguration; + if (!createBucketConfiguration) { + region = 'us-east-1'; + } else if (createBucketConfiguration.LocationConstraint === 'EU') { + region = 'eu-west-1'; + } else { + region = createBucketConfiguration.LocationConstraint; + } + } + if (region) { + if (bucket && region !== req.service.bucketRegionCache[bucket]) { + req.service.bucketRegionCache[bucket] = region; + } + } + } + req.service.extractRequestIds(resp); + }, + + /** + * Extracts an error object from the http response. + * + * @api private + */ + extractError: function extractError(resp) { + var codes = { + 304: 'NotModified', + 403: 'Forbidden', + 400: 'BadRequest', + 404: 'NotFound' + }; + + var req = resp.request; + var code = resp.httpResponse.statusCode; + var body = resp.httpResponse.body || ''; + + var headers = resp.httpResponse.headers || {}; + var region = headers['x-amz-bucket-region'] || null; + var bucket = req.params.Bucket || null; + var bucketRegionCache = req.service.bucketRegionCache; + if (region && bucket && region !== bucketRegionCache[bucket]) { + bucketRegionCache[bucket] = region; + } + + var cachedRegion; + if (codes[code] && body.length === 0) { + if (bucket && !region) { + cachedRegion = bucketRegionCache[bucket] || null; + if (cachedRegion !== req.httpRequest.region) { + region = cachedRegion; + } + } + resp.error = AWS.util.error(new Error(), { + code: codes[code], + message: null, + region: region + }); + } else { + var data = new AWS.XML.Parser().parse(body.toString()); + + if (data.Region && !region) { + region = data.Region; + if (bucket && region !== bucketRegionCache[bucket]) { + bucketRegionCache[bucket] = region; + } + } else if (bucket && !region && !data.Region) { + cachedRegion = bucketRegionCache[bucket] || null; + if (cachedRegion !== req.httpRequest.region) { + region = cachedRegion; + } + } + + resp.error = AWS.util.error(new Error(), { + code: data.Code || code, + message: data.Message || null, + region: region + }); + } + req.service.extractRequestIds(resp); + }, + + /** + * If region was not obtained synchronously, then send async request + * to get bucket region for errors resulting from wrong region. + * + * @api private + */ + requestBucketRegion: function requestBucketRegion(resp, done) { + var error = resp.error; + var req = resp.request; + var bucket = req.params.Bucket || null; + + if (!error || !bucket || error.region || req.operation === 'listObjects' || + (AWS.util.isNode() && req.operation === 'headBucket') || + (error.statusCode === 400 && req.operation !== 'headObject') || + regionRedirectErrorCodes.indexOf(error.code) === -1) { + return done(); + } + var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects'; + var reqParams = {Bucket: bucket}; + if (reqOperation === 'listObjects') reqParams.MaxKeys = 0; + var regionReq = req.service[reqOperation](reqParams); + regionReq._requestRegionForBucket = bucket; + regionReq.send(function() { + var region = req.service.bucketRegionCache[bucket] || null; + error.region = region; + done(); + }); + }, + + /** + * For browser only. If NetworkingError received, will attempt to obtain + * the bucket region. + * + * @api private + */ + reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) { + if (!AWS.util.isBrowser()) { + return done(); + } + var error = resp.error; + var request = resp.request; + var bucket = request.params.Bucket; + if (!error || error.code !== 'NetworkingError' || !bucket || + request.httpRequest.region === 'us-east-1') { + return done(); + } + var service = request.service; + var bucketRegionCache = service.bucketRegionCache; + var cachedRegion = bucketRegionCache[bucket] || null; + + if (cachedRegion && cachedRegion !== request.httpRequest.region) { + service.updateReqBucketRegion(request, cachedRegion); + done(); + } else if (!service.dnsCompatibleBucketName(bucket)) { + service.updateReqBucketRegion(request, 'us-east-1'); + if (bucketRegionCache[bucket] !== 'us-east-1') { + bucketRegionCache[bucket] = 'us-east-1'; + } + done(); + } else if (request.httpRequest.virtualHostedBucket) { + var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0}); + service.updateReqBucketRegion(getRegionReq, 'us-east-1'); + getRegionReq._requestRegionForBucket = bucket; + + getRegionReq.send(function() { + var region = service.bucketRegionCache[bucket] || null; + if (region && region !== request.httpRequest.region) { + service.updateReqBucketRegion(request, region); + } + done(); + }); + } else { + // DNS-compatible path-style + // (s3ForcePathStyle or bucket name with dot over https) + // Cannot obtain region information for this case + done(); + } + }, + + /** + * Cache for bucket region. + * + * @api private + */ + bucketRegionCache: {}, + + /** + * Clears bucket region cache. + * + * @api private + */ + clearBucketRegionCache: function(buckets) { + var bucketRegionCache = this.bucketRegionCache; + if (!buckets) { + buckets = Object.keys(bucketRegionCache); + } else if (typeof buckets === 'string') { + buckets = [buckets]; + } + for (var i = 0; i < buckets.length; i++) { + delete bucketRegionCache[buckets[i]]; + } + return bucketRegionCache; + }, + + /** + * Corrects request region if bucket's cached region is different + * + * @api private + */ + correctBucketRegionFromCache: function correctBucketRegionFromCache(req) { + var bucket = req.params.Bucket || null; + if (bucket) { + var service = req.service; + var requestRegion = req.httpRequest.region; + var cachedRegion = service.bucketRegionCache[bucket]; + if (cachedRegion && cachedRegion !== requestRegion) { + service.updateReqBucketRegion(req, cachedRegion); + } + } + }, + + /** + * Extracts S3 specific request ids from the http response. + * + * @api private + */ + extractRequestIds: function extractRequestIds(resp) { + var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null; + var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null; + resp.extendedRequestId = extendedRequestId; + resp.cfId = cfId; + + if (resp.error) { + resp.error.requestId = resp.requestId || null; + resp.error.extendedRequestId = extendedRequestId; + resp.error.cfId = cfId; + } + }, + + /** + * Get a pre-signed URL for a given operation name. + * + * @note You must ensure that you have static or previously resolved + * credentials if you call this method synchronously (with no callback), + * otherwise it may not properly sign the request. If you cannot guarantee + * this (you are using an asynchronous credential provider, i.e., EC2 + * IAM roles), you should always call this method with an asynchronous + * callback. + * @note Not all operation parameters are supported when using pre-signed + * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`, + * `ContentLength`, or `Tagging` must be provided as headers when sending a + * request. If you are using pre-signed URLs to upload from a browser and + * need to use these fields, see {createPresignedPost}. + * @param operation [String] the name of the operation to call + * @param params [map] parameters to pass to the operation. See the given + * operation for the expected operation parameters. In addition, you can + * also pass the "Expires" parameter to inform S3 how long the URL should + * work for. + * @option params Expires [Integer] (900) the number of seconds to expire + * the pre-signed URL operation in. Defaults to 15 minutes. + * @param callback [Function] if a callback is provided, this function will + * pass the URL as the second parameter (after the error parameter) to + * the callback function. + * @return [String] if called synchronously (with no callback), returns the + * signed URL. + * @return [null] nothing is returned if a callback is provided. + * @example Pre-signing a getObject operation (synchronously) + * var params = {Bucket: 'bucket', Key: 'key'}; + * var url = s3.getSignedUrl('getObject', params); + * console.log('The URL is', url); + * @example Pre-signing a putObject (asynchronously) + * var params = {Bucket: 'bucket', Key: 'key'}; + * s3.getSignedUrl('putObject', params, function (err, url) { + * console.log('The URL is', url); + * }); + * @example Pre-signing a putObject operation with a specific payload + * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'}; + * var url = s3.getSignedUrl('putObject', params); + * console.log('The URL is', url); + * @example Passing in a 1-minute expiry time for a pre-signed URL + * var params = {Bucket: 'bucket', Key: 'key', Expires: 60}; + * var url = s3.getSignedUrl('getObject', params); + * console.log('The URL is', url); // expires in 60 seconds + */ + getSignedUrl: function getSignedUrl(operation, params, callback) { + params = AWS.util.copy(params || {}); + var expires = params.Expires || 900; + delete params.Expires; // we can't validate this + var request = this.makeRequest(operation, params); + + if (callback) { + AWS.util.defer(function() { + request.presign(expires, callback); + }); + } else { + return request.presign(expires, callback); + } + }, + + + /** + * Get a pre-signed POST policy to support uploading to S3 directly from an + * HTML form. + * + * @param params [map] + * @option params Bucket [String] The bucket to which the post should be + * uploaded + * @option params Expires [Integer] (3600) The number of seconds for which + * the presigned policy should be valid. + * @option params Conditions [Array] An array of conditions that must be met + * for the presigned policy to allow the + * upload. This can include required tags, + * the accepted range for content lengths, + * etc. + * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html + * @option params Fields [map] Fields to include in the form. All + * values passed in as fields will be + * signed as exact match conditions. + * @param callback [Function] + * + * @note All fields passed in when creating presigned post data will be signed + * as exact match conditions. Any fields that will be interpolated by S3 + * must be added to the fields hash after signing, and an appropriate + * condition for such fields must be explicitly added to the Conditions + * array passed to this function before signing. + * + * @example Presiging post data with a known key + * var params = { + * Bucket: 'bucket', + * Fields: { + * key: 'key' + * } + * }; + * s3.createPresignedPost(params, function(err, data) { + * if (err) { + * console.error('Presigning post data encountered an error', err); + * } else { + * console.log('The post data is', data); + * } + * }); + * + * @example Presigning post data with an interpolated key + * var params = { + * Bucket: 'bucket', + * Conditions: [ + * ['starts-with', '$key', 'path/to/uploads/'] + * ] + * }; + * s3.createPresignedPost(params, function(err, data) { + * if (err) { + * console.error('Presigning post data encountered an error', err); + * } else { + * data.Fields.key = 'path/to/uploads/${filename}'; + * console.log('The post data is', data); + * } + * }); + * + * @note You must ensure that you have static or previously resolved + * credentials if you call this method synchronously (with no callback), + * otherwise it may not properly sign the request. If you cannot guarantee + * this (you are using an asynchronous credential provider, i.e., EC2 + * IAM roles), you should always call this method with an asynchronous + * callback. + * + * @return [map] If called synchronously (with no callback), returns a hash + * with the url to set as the form action and a hash of fields + * to include in the form. + * @return [null] Nothing is returned if a callback is provided. + * + * @callback callback function (err, data) + * @param err [Error] the error object returned from the policy signer + * @param data [map] The data necessary to construct an HTML form + * @param data.url [String] The URL to use as the action of the form + * @param data.fields [map] A hash of fields that must be included in the + * form for the upload to succeed. This hash will + * include the signed POST policy, your access key + * ID and security token (if present), etc. These + * may be safely included as input elements of type + * 'hidden.' + */ + createPresignedPost: function createPresignedPost(params, callback) { + if (typeof params === 'function' && callback === undefined) { + callback = params; + params = null; + } + + params = AWS.util.copy(params || {}); + var boundParams = this.config.params || {}; + var bucket = params.Bucket || boundParams.Bucket, + self = this, + config = this.config, + endpoint = AWS.util.copy(this.endpoint); + if (!config.s3BucketEndpoint) { + endpoint.pathname = '/' + bucket; + } + + function finalizePost() { + return { + url: AWS.util.urlFormat(endpoint), + fields: self.preparePostFields( + config.credentials, + config.region, + bucket, + params.Fields, + params.Conditions, + params.Expires + ) + }; + } + + if (callback) { + config.getCredentials(function (err) { + if (err) { + callback(err); + } + + callback(null, finalizePost()); + }); + } else { + return finalizePost(); + } + }, + + /** + * @api private + */ + preparePostFields: function preparePostFields( + credentials, + region, + bucket, + fields, + conditions, + expiresInSeconds + ) { + var now = this.getSkewCorrectedDate(); + if (!credentials || !region || !bucket) { + throw new Error('Unable to create a POST object policy without a bucket,' + + ' region, and credentials'); + } + fields = AWS.util.copy(fields || {}); + conditions = (conditions || []).slice(0); + expiresInSeconds = expiresInSeconds || 3600; + + var signingDate = AWS.util.date.iso8601(now).replace(/[:\-]|\.\d{3}/g, ''); + var shortDate = signingDate.substr(0, 8); + var scope = v4Credentials.createScope(shortDate, region, 's3'); + var credential = credentials.accessKeyId + '/' + scope; + + fields['bucket'] = bucket; + fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256'; + fields['X-Amz-Credential'] = credential; + fields['X-Amz-Date'] = signingDate; + if (credentials.sessionToken) { + fields['X-Amz-Security-Token'] = credentials.sessionToken; + } + for (var field in fields) { + if (fields.hasOwnProperty(field)) { + var condition = {}; + condition[field] = fields[field]; + conditions.push(condition); + } + } + + fields.Policy = this.preparePostPolicy( + new Date(now.valueOf() + expiresInSeconds * 1000), + conditions + ); + fields['X-Amz-Signature'] = AWS.util.crypto.hmac( + v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true), + fields.Policy, + 'hex' + ); + + return fields; + }, + + /** + * @api private + */ + preparePostPolicy: function preparePostPolicy(expiration, conditions) { + return AWS.util.base64.encode(JSON.stringify({ + expiration: AWS.util.date.iso8601(expiration), + conditions: conditions + })); + }, + + /** + * @api private + */ + prepareSignedUrl: function prepareSignedUrl(request) { + request.addListener('validate', request.service.noPresignedContentLength); + request.removeListener('build', request.service.addContentType); + if (!request.params.Body) { + // no Content-MD5/SHA-256 if body is not provided + request.removeListener('build', request.service.computeContentMd5); + } else { + request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256); + } + }, + + /** + * @api private + * @param request + */ + disableBodySigning: function disableBodySigning(request) { + var headers = request.httpRequest.headers; + // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined + if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) { + headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD'; + } + }, + + /** + * @api private + */ + noPresignedContentLength: function noPresignedContentLength(request) { + if (request.params.ContentLength !== undefined) { + throw AWS.util.error(new Error(), {code: 'UnexpectedParameter', + message: 'ContentLength is not supported in pre-signed URLs.'}); + } + }, + + createBucket: function createBucket(params, callback) { + // When creating a bucket *outside* the classic region, the location + // constraint must be set for the bucket and it must match the endpoint. + // This chunk of code will set the location constraint param based + // on the region (when possible), but it will not override a passed-in + // location constraint. + if (typeof params === 'function' || !params) { + callback = callback || params; + params = {}; + } + var hostname = this.endpoint.hostname; + if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) { + params.CreateBucketConfiguration = { LocationConstraint: this.config.region }; + } + return this.makeRequest('createBucket', params, callback); + }, + + /** + * @see AWS.S3.ManagedUpload + * @overload upload(params = {}, [options], [callback]) + * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent + * concurrent handling of parts if the payload is large enough. You can + * configure the concurrent queue size by setting `options`. Note that this + * is the only operation for which the SDK can retry requests with stream + * bodies. + * + * @param (see AWS.S3.putObject) + * @option (see AWS.S3.ManagedUpload.constructor) + * @return [AWS.S3.ManagedUpload] the managed upload object that can call + * `send()` or track progress. + * @example Uploading a stream object + * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; + * s3.upload(params, function(err, data) { + * console.log(err, data); + * }); + * @example Uploading a stream with concurrency of 1 and partSize of 10mb + * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; + * var options = {partSize: 10 * 1024 * 1024, queueSize: 1}; + * s3.upload(params, options, function(err, data) { + * console.log(err, data); + * }); + * @callback callback function(err, data) + * @param err [Error] an error or null if no error occurred. + * @param data [map] The response data from the successful upload: + * @param data.Location [String] the URL of the uploaded object + * @param data.ETag [String] the ETag of the uploaded object + * @param data.Bucket [String] the bucket to which the object was uploaded + * @param data.Key [String] the key to which the object was uploaded + */ + upload: function upload(params, options, callback) { + if (typeof options === 'function' && callback === undefined) { + callback = options; + options = null; + } + + options = options || {}; + options = AWS.util.merge(options || {}, {service: this, params: params}); + + var uploader = new AWS.S3.ManagedUpload(options); + if (typeof callback === 'function') uploader.send(callback); + return uploader; + } + }); /***/ }), /* 327 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - /** - * @api private - */ - var cachedSecret = {}; - - /** - * @api private - */ - var cacheQueue = []; - - /** - * @api private - */ - var maxCacheEntries = 50; - - /** - * @api private - */ - var v4Identifier = 'aws4_request'; - - module.exports = { - /** - * @api private - * - * @param date [String] - * @param region [String] - * @param serviceName [String] - * @return [String] - */ - createScope: function createScope(date, region, serviceName) { - return [ - date.substr(0, 8), - region, - serviceName, - v4Identifier - ].join('/'); - }, - - /** - * @api private - * - * @param credentials [Credentials] - * @param date [String] - * @param region [String] - * @param service [String] - * @param shouldCache [Boolean] - * @return [String] - */ - getSigningKey: function getSigningKey( - credentials, - date, - region, - service, - shouldCache - ) { - var credsIdentifier = AWS.util.crypto - .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); - var cacheKey = [credsIdentifier, date, region, service].join('_'); - shouldCache = shouldCache !== false; - if (shouldCache && (cacheKey in cachedSecret)) { - return cachedSecret[cacheKey]; - } - - var kDate = AWS.util.crypto.hmac( - 'AWS4' + credentials.secretAccessKey, - date, - 'buffer' - ); - var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); - var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); - - var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); - if (shouldCache) { - cachedSecret[cacheKey] = signingKey; - cacheQueue.push(cacheKey); - if (cacheQueue.length > maxCacheEntries) { - // remove the oldest entry (not the least recently used) - delete cachedSecret[cacheQueue.shift()]; - } - } - - return signingKey; - }, - - /** - * @api private - * - * Empties the derived signing key cache. Made available for testing purposes - * only. - */ - emptyCache: function emptyCache() { - cachedSecret = {}; - cacheQueue = []; - } - }; + var AWS = __webpack_require__(4); + + /** + * @api private + */ + var cachedSecret = {}; + + /** + * @api private + */ + var cacheQueue = []; + + /** + * @api private + */ + var maxCacheEntries = 50; + + /** + * @api private + */ + var v4Identifier = 'aws4_request'; + + module.exports = { + /** + * @api private + * + * @param date [String] + * @param region [String] + * @param serviceName [String] + * @return [String] + */ + createScope: function createScope(date, region, serviceName) { + return [ + date.substr(0, 8), + region, + serviceName, + v4Identifier + ].join('/'); + }, + + /** + * @api private + * + * @param credentials [Credentials] + * @param date [String] + * @param region [String] + * @param service [String] + * @param shouldCache [Boolean] + * @return [String] + */ + getSigningKey: function getSigningKey( + credentials, + date, + region, + service, + shouldCache + ) { + var credsIdentifier = AWS.util.crypto + .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64'); + var cacheKey = [credsIdentifier, date, region, service].join('_'); + shouldCache = shouldCache !== false; + if (shouldCache && (cacheKey in cachedSecret)) { + return cachedSecret[cacheKey]; + } + + var kDate = AWS.util.crypto.hmac( + 'AWS4' + credentials.secretAccessKey, + date, + 'buffer' + ); + var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer'); + var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer'); + + var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer'); + if (shouldCache) { + cachedSecret[cacheKey] = signingKey; + cacheQueue.push(cacheKey); + if (cacheQueue.length > maxCacheEntries) { + // remove the oldest entry (not the least recently used) + delete cachedSecret[cacheQueue.shift()]; + } + } + + return signingKey; + }, + + /** + * @api private + * + * Empties the derived signing key cache. Made available for testing purposes + * only. + */ + emptyCache: function emptyCache() { + cachedSecret = {}; + cacheQueue = []; + } + }; /***/ }), /* 328 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - var byteLength = AWS.util.string.byteLength; - var Buffer = AWS.util.Buffer; - - /** - * The managed uploader allows for easy and efficient uploading of buffers, - * blobs, or streams, using a configurable amount of concurrency to perform - * multipart uploads where possible. This abstraction also enables uploading - * streams of unknown size due to the use of multipart uploads. - * - * To construct a managed upload object, see the {constructor} function. - * - * ## Tracking upload progress - * - * The managed upload object can also track progress by attaching an - * 'httpUploadProgress' listener to the upload manager. This event is similar - * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress - * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more - * information. - * - * ## Handling Multipart Cleanup - * - * By default, this class will automatically clean up any multipart uploads - * when an individual part upload fails. This behavior can be disabled in order - * to manually handle failures by setting the `leavePartsOnError` configuration - * option to `true` when initializing the upload object. - * - * @!event httpUploadProgress(progress) - * Triggered when the uploader has uploaded more data. - * @note The `total` property may not be set if the stream being uploaded has - * not yet finished chunking. In this case the `total` will be undefined - * until the total stream size is known. - * @note This event will not be emitted in Node.js 0.8.x. - * @param progress [map] An object containing the `loaded` and `total` bytes - * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload - * size is known. - * @context (see AWS.Request~send) - */ - AWS.S3.ManagedUpload = AWS.util.inherit({ - /** - * Creates a managed upload object with a set of configuration options. - * - * @note A "Body" parameter is required to be set prior to calling {send}. - * @option options params [map] a map of parameters to pass to the upload - * requests. The "Body" parameter is required to be specified either on - * the service or in the params option. - * @note ContentMD5 should not be provided when using the managed upload object. - * Instead, setting "computeChecksums" to true will enable automatic ContentMD5 generation - * by the managed upload object. - * @option options queueSize [Number] (4) the size of the concurrent queue - * manager to upload parts in parallel. Set to 1 for synchronous uploading - * of parts. Note that the uploader will buffer at most queueSize * partSize - * bytes into memory at any given time. - * @option options partSize [Number] (5mb) the size in bytes for each - * individual part to be uploaded. Adjust the part size to ensure the number - * of parts does not exceed {maxTotalParts}. See {minPartSize} for the - * minimum allowed part size. - * @option options leavePartsOnError [Boolean] (false) whether to abort the - * multipart upload if an error occurs. Set to true if you want to handle - * failures manually. - * @option options service [AWS.S3] an optional S3 service object to use for - * requests. This object might have bound parameters used by the uploader. - * @option options tags [Array] The tags to apply to the uploaded object. - * Each tag should have a `Key` and `Value` keys. - * @example Creating a default uploader for a stream object - * var upload = new AWS.S3.ManagedUpload({ - * params: {Bucket: 'bucket', Key: 'key', Body: stream} - * }); - * @example Creating an uploader with concurrency of 1 and partSize of 10mb - * var upload = new AWS.S3.ManagedUpload({ - * partSize: 10 * 1024 * 1024, queueSize: 1, - * params: {Bucket: 'bucket', Key: 'key', Body: stream} - * }); - * @example Creating an uploader with tags - * var upload = new AWS.S3.ManagedUpload({ - * params: {Bucket: 'bucket', Key: 'key', Body: stream}, - * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}] - * }); - * @see send - */ - constructor: function ManagedUpload(options) { - var self = this; - AWS.SequentialExecutor.call(self); - self.body = null; - self.sliceFn = null; - self.callback = null; - self.parts = {}; - self.completeInfo = []; - self.fillQueue = function() { - self.callback(new Error('Unsupported body payload ' + typeof self.body)); - }; - - self.configure(options); - }, - - /** - * @api private - */ - configure: function configure(options) { - options = options || {}; - this.partSize = this.minPartSize; - - if (options.queueSize) this.queueSize = options.queueSize; - if (options.partSize) this.partSize = options.partSize; - if (options.leavePartsOnError) this.leavePartsOnError = true; - if (options.tags) { - if (!Array.isArray(options.tags)) { - throw new Error('Tags must be specified as an array; ' + - typeof options.tags + ' provided.'); - } - this.tags = options.tags; - } - - if (this.partSize < this.minPartSize) { - throw new Error('partSize must be greater than ' + - this.minPartSize); - } - - this.service = options.service; - this.bindServiceObject(options.params); - this.validateBody(); - this.adjustTotalBytes(); - }, - - /** - * @api private - */ - leavePartsOnError: false, - - /** - * @api private - */ - queueSize: 4, - - /** - * @api private - */ - partSize: null, - - /** - * @readonly - * @return [Number] the minimum number of bytes for an individual part - * upload. - */ - minPartSize: 1024 * 1024 * 5, - - /** - * @readonly - * @return [Number] the maximum allowed number of parts in a multipart upload. - */ - maxTotalParts: 10000, - - /** - * Initiates the managed upload for the payload. - * - * @callback callback function(err, data) - * @param err [Error] an error or null if no error occurred. - * @param data [map] The response data from the successful upload: - * * `Location` (String) the URL of the uploaded object - * * `ETag` (String) the ETag of the uploaded object - * * `Bucket` (String) the bucket to which the object was uploaded - * * `Key` (String) the key to which the object was uploaded - * @example Sending a managed upload object - * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; - * var upload = new AWS.S3.ManagedUpload({params: params}); - * upload.send(function(err, data) { - * console.log(err, data); - * }); - */ - send: function(callback) { - var self = this; - self.failed = false; - self.callback = callback || function(err) { if (err) throw err; }; - - var runFill = true; - if (self.sliceFn) { - self.fillQueue = self.fillBuffer; - } else if (AWS.util.isNode()) { - var Stream = AWS.util.stream.Stream; - if (self.body instanceof Stream) { - runFill = false; - self.fillQueue = self.fillStream; - self.partBuffers = []; - self.body. - on('error', function(err) { self.cleanup(err); }). - on('readable', function() { self.fillQueue(); }). - on('end', function() { - self.isDoneChunking = true; - self.numParts = self.totalPartNumbers; - self.fillQueue.call(self); - - if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) { - self.finishMultiPart(); - } - }); - } - } - - if (runFill) self.fillQueue.call(self); - }, - - /** - * @!method promise() - * Returns a 'thenable' promise. - * - * Two callbacks can be provided to the `then` method on the returned promise. - * The first callback will be called if the promise is fulfilled, and the second - * callback will be called if the promise is rejected. - * @callback fulfilledCallback function(data) - * Called if the promise is fulfilled. - * @param data [map] The response data from the successful upload: - * `Location` (String) the URL of the uploaded object - * `ETag` (String) the ETag of the uploaded object - * `Bucket` (String) the bucket to which the object was uploaded - * `Key` (String) the key to which the object was uploaded - * @callback rejectedCallback function(err) - * Called if the promise is rejected. - * @param err [Error] an error or null if no error occurred. - * @return [Promise] A promise that represents the state of the upload request. - * @example Sending an upload request using promises. - * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream}); - * var promise = upload.promise(); - * promise.then(function(data) { ... }, function(err) { ... }); - */ - - /** - * Aborts a managed upload, including all concurrent upload requests. - * @note By default, calling this function will cleanup a multipart upload - * if one was created. To leave the multipart upload around after aborting - * a request, configure `leavePartsOnError` to `true` in the {constructor}. - * @note Calling {abort} in the browser environment will not abort any requests - * that are already in flight. If a multipart upload was created, any parts - * not yet uploaded will not be sent, and the multipart upload will be cleaned up. - * @example Aborting an upload - * var params = { - * Bucket: 'bucket', Key: 'key', - * Body: new Buffer(1024 * 1024 * 25) // 25MB payload - * }; - * var upload = s3.upload(params); - * upload.send(function (err, data) { - * if (err) console.log("Error:", err.code, err.message); - * else console.log(data); - * }); - * - * // abort request in 1 second - * setTimeout(upload.abort.bind(upload), 1000); - */ - abort: function() { - this.cleanup(AWS.util.error(new Error('Request aborted by user'), { - code: 'RequestAbortedError', retryable: false - })); - }, - - /** - * @api private - */ - validateBody: function validateBody() { - var self = this; - self.body = self.service.config.params.Body; - if (typeof self.body === 'string') { - self.body = new AWS.util.Buffer(self.body); - } else if (!self.body) { - throw new Error('params.Body is required'); - } - self.sliceFn = AWS.util.arraySliceFn(self.body); - }, - - /** - * @api private - */ - bindServiceObject: function bindServiceObject(params) { - params = params || {}; - var self = this; - // bind parameters to new service object - if (!self.service) { - self.service = new AWS.S3({params: params}); - } else { - var service = self.service; - var config = AWS.util.copy(service.config); - config.signatureVersion = service.getSignatureVersion(); - self.service = new service.constructor.__super__(config); - self.service.config.params = - AWS.util.merge(self.service.config.params || {}, params); - } - }, - - /** - * @api private - */ - adjustTotalBytes: function adjustTotalBytes() { - var self = this; - try { // try to get totalBytes - self.totalBytes = byteLength(self.body); - } catch (e) { } - - // try to adjust partSize if we know payload length - if (self.totalBytes) { - var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts); - if (newPartSize > self.partSize) self.partSize = newPartSize; - } else { - self.totalBytes = undefined; - } - }, - - /** - * @api private - */ - isDoneChunking: false, - - /** - * @api private - */ - partPos: 0, - - /** - * @api private - */ - totalChunkedBytes: 0, - - /** - * @api private - */ - totalUploadedBytes: 0, - - /** - * @api private - */ - totalBytes: undefined, - - /** - * @api private - */ - numParts: 0, - - /** - * @api private - */ - totalPartNumbers: 0, - - /** - * @api private - */ - activeParts: 0, - - /** - * @api private - */ - doneParts: 0, - - /** - * @api private - */ - parts: null, - - /** - * @api private - */ - completeInfo: null, - - /** - * @api private - */ - failed: false, - - /** - * @api private - */ - multipartReq: null, - - /** - * @api private - */ - partBuffers: null, - - /** - * @api private - */ - partBufferLength: 0, - - /** - * @api private - */ - fillBuffer: function fillBuffer() { - var self = this; - var bodyLen = byteLength(self.body); - - if (bodyLen === 0) { - self.isDoneChunking = true; - self.numParts = 1; - self.nextChunk(self.body); - return; - } - - while (self.activeParts < self.queueSize && self.partPos < bodyLen) { - var endPos = Math.min(self.partPos + self.partSize, bodyLen); - var buf = self.sliceFn.call(self.body, self.partPos, endPos); - self.partPos += self.partSize; - - if (byteLength(buf) < self.partSize || self.partPos === bodyLen) { - self.isDoneChunking = true; - self.numParts = self.totalPartNumbers + 1; - } - self.nextChunk(buf); - } - }, - - /** - * @api private - */ - fillStream: function fillStream() { - var self = this; - if (self.activeParts >= self.queueSize) return; - - var buf = self.body.read(self.partSize - self.partBufferLength) || - self.body.read(); - if (buf) { - self.partBuffers.push(buf); - self.partBufferLength += buf.length; - self.totalChunkedBytes += buf.length; - } - - if (self.partBufferLength >= self.partSize) { - // if we have single buffer we avoid copyfull concat - var pbuf = self.partBuffers.length === 1 ? - self.partBuffers[0] : Buffer.concat(self.partBuffers); - self.partBuffers = []; - self.partBufferLength = 0; - - // if we have more than partSize, push the rest back on the queue - if (pbuf.length > self.partSize) { - var rest = pbuf.slice(self.partSize); - self.partBuffers.push(rest); - self.partBufferLength += rest.length; - pbuf = pbuf.slice(0, self.partSize); - } - - self.nextChunk(pbuf); - } - - if (self.isDoneChunking && !self.isDoneSending) { - // if we have single buffer we avoid copyfull concat - pbuf = self.partBuffers.length === 1 ? - self.partBuffers[0] : Buffer.concat(self.partBuffers); - self.partBuffers = []; - self.partBufferLength = 0; - self.totalBytes = self.totalChunkedBytes; - self.isDoneSending = true; - - if (self.numParts === 0 || pbuf.length > 0) { - self.numParts++; - self.nextChunk(pbuf); - } - } - - self.body.read(0); - }, - - /** - * @api private - */ - nextChunk: function nextChunk(chunk) { - var self = this; - if (self.failed) return null; - - var partNumber = ++self.totalPartNumbers; - if (self.isDoneChunking && partNumber === 1) { - var params = {Body: chunk}; - if (this.tags) { - params.Tagging = this.getTaggingHeader(); - } - var req = self.service.putObject(params); - req._managedUpload = self; - req.on('httpUploadProgress', self.progress).send(self.finishSinglePart); - return null; - } else if (self.service.config.params.ContentMD5) { - var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), { - code: 'InvalidDigest', retryable: false - }); - - self.cleanup(err); - return null; - } - - if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) { - return null; // Already uploaded this part. - } - - self.activeParts++; - if (!self.service.config.params.UploadId) { - - if (!self.multipartReq) { // create multipart - self.multipartReq = self.service.createMultipartUpload(); - self.multipartReq.on('success', function(resp) { - self.service.config.params.UploadId = resp.data.UploadId; - self.multipartReq = null; - }); - self.queueChunks(chunk, partNumber); - self.multipartReq.on('error', function(err) { - self.cleanup(err); - }); - self.multipartReq.send(); - } else { - self.queueChunks(chunk, partNumber); - } - } else { // multipart is created, just send - self.uploadPart(chunk, partNumber); - } - }, - - /** - * @api private - */ - getTaggingHeader: function getTaggingHeader() { - var kvPairStrings = []; - for (var i = 0; i < this.tags.length; i++) { - kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' + - AWS.util.uriEscape(this.tags[i].Value)); - } - - return kvPairStrings.join('&'); - }, - - /** - * @api private - */ - uploadPart: function uploadPart(chunk, partNumber) { - var self = this; - - var partParams = { - Body: chunk, - ContentLength: AWS.util.string.byteLength(chunk), - PartNumber: partNumber - }; - - var partInfo = {ETag: null, PartNumber: partNumber}; - self.completeInfo[partNumber] = partInfo; - - var req = self.service.uploadPart(partParams); - self.parts[partNumber] = req; - req._lastUploadedBytes = 0; - req._managedUpload = self; - req.on('httpUploadProgress', self.progress); - req.send(function(err, data) { - delete self.parts[partParams.PartNumber]; - self.activeParts--; - - if (!err && (!data || !data.ETag)) { - var message = 'No access to ETag property on response.'; - if (AWS.util.isBrowser()) { - message += ' Check CORS configuration to expose ETag header.'; - } - - err = AWS.util.error(new Error(message), { - code: 'ETagMissing', retryable: false - }); - } - if (err) return self.cleanup(err); - - partInfo.ETag = data.ETag; - self.doneParts++; - if (self.isDoneChunking && self.doneParts === self.numParts) { - self.finishMultiPart(); - } else { - self.fillQueue.call(self); - } - }); - }, - - /** - * @api private - */ - queueChunks: function queueChunks(chunk, partNumber) { - var self = this; - self.multipartReq.on('success', function() { - self.uploadPart(chunk, partNumber); - }); - }, - - /** - * @api private - */ - cleanup: function cleanup(err) { - var self = this; - if (self.failed) return; - - // clean up stream - if (typeof self.body.removeAllListeners === 'function' && - typeof self.body.resume === 'function') { - self.body.removeAllListeners('readable'); - self.body.removeAllListeners('end'); - self.body.resume(); - } - - // cleanup multipartReq listeners - if (self.multipartReq) { - self.multipartReq.removeAllListeners('success'); - self.multipartReq.removeAllListeners('error'); - self.multipartReq.removeAllListeners('complete'); - delete self.multipartReq; - } - - if (self.service.config.params.UploadId && !self.leavePartsOnError) { - self.service.abortMultipartUpload().send(); - } else if (self.leavePartsOnError) { - self.isDoneChunking = false; - } - - AWS.util.each(self.parts, function(partNumber, part) { - part.removeAllListeners('complete'); - part.abort(); - }); - - self.activeParts = 0; - self.partPos = 0; - self.numParts = 0; - self.totalPartNumbers = 0; - self.parts = {}; - self.failed = true; - self.callback(err); - }, - - /** - * @api private - */ - finishMultiPart: function finishMultiPart() { - var self = this; - var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } }; - self.service.completeMultipartUpload(completeParams, function(err, data) { - if (err) { - return self.cleanup(err); - } - - if (data && typeof data.Location === 'string') { - data.Location = data.Location.replace(/%2F/g, '/'); - } - - if (Array.isArray(self.tags)) { - self.service.putObjectTagging( - {Tagging: {TagSet: self.tags}}, - function(e, d) { - if (e) { - self.callback(e); - } else { - self.callback(e, data); - } - } - ); - } else { - self.callback(err, data); - } - }); - }, - - /** - * @api private - */ - finishSinglePart: function finishSinglePart(err, data) { - var upload = this.request._managedUpload; - var httpReq = this.request.httpRequest; - var endpoint = httpReq.endpoint; - if (err) return upload.callback(err); - data.Location = - [endpoint.protocol, '//', endpoint.host, httpReq.path].join(''); - data.key = this.request.params.Key; // will stay undocumented - data.Key = this.request.params.Key; - data.Bucket = this.request.params.Bucket; - upload.callback(err, data); - }, - - /** - * @api private - */ - progress: function progress(info) { - var upload = this._managedUpload; - if (this.operation === 'putObject') { - info.part = 1; - info.key = this.params.Key; - } else { - upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes; - this._lastUploadedBytes = info.loaded; - info = { - loaded: upload.totalUploadedBytes, - total: upload.totalBytes, - part: this.params.PartNumber, - key: this.params.Key - }; - } - upload.emit('httpUploadProgress', [info]); - } - }); - - AWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor); - - /** - * @api private - */ - AWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) { - this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency); - }; - - /** - * @api private - */ - AWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() { - delete this.prototype.promise; - }; - - AWS.util.addPromises(AWS.S3.ManagedUpload); - - module.exports = AWS.S3.ManagedUpload; + var AWS = __webpack_require__(4); + var byteLength = AWS.util.string.byteLength; + var Buffer = AWS.util.Buffer; + + /** + * The managed uploader allows for easy and efficient uploading of buffers, + * blobs, or streams, using a configurable amount of concurrency to perform + * multipart uploads where possible. This abstraction also enables uploading + * streams of unknown size due to the use of multipart uploads. + * + * To construct a managed upload object, see the {constructor} function. + * + * ## Tracking upload progress + * + * The managed upload object can also track progress by attaching an + * 'httpUploadProgress' listener to the upload manager. This event is similar + * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress + * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more + * information. + * + * ## Handling Multipart Cleanup + * + * By default, this class will automatically clean up any multipart uploads + * when an individual part upload fails. This behavior can be disabled in order + * to manually handle failures by setting the `leavePartsOnError` configuration + * option to `true` when initializing the upload object. + * + * @!event httpUploadProgress(progress) + * Triggered when the uploader has uploaded more data. + * @note The `total` property may not be set if the stream being uploaded has + * not yet finished chunking. In this case the `total` will be undefined + * until the total stream size is known. + * @note This event will not be emitted in Node.js 0.8.x. + * @param progress [map] An object containing the `loaded` and `total` bytes + * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload + * size is known. + * @context (see AWS.Request~send) + */ + AWS.S3.ManagedUpload = AWS.util.inherit({ + /** + * Creates a managed upload object with a set of configuration options. + * + * @note A "Body" parameter is required to be set prior to calling {send}. + * @option options params [map] a map of parameters to pass to the upload + * requests. The "Body" parameter is required to be specified either on + * the service or in the params option. + * @note ContentMD5 should not be provided when using the managed upload object. + * Instead, setting "computeChecksums" to true will enable automatic ContentMD5 generation + * by the managed upload object. + * @option options queueSize [Number] (4) the size of the concurrent queue + * manager to upload parts in parallel. Set to 1 for synchronous uploading + * of parts. Note that the uploader will buffer at most queueSize * partSize + * bytes into memory at any given time. + * @option options partSize [Number] (5mb) the size in bytes for each + * individual part to be uploaded. Adjust the part size to ensure the number + * of parts does not exceed {maxTotalParts}. See {minPartSize} for the + * minimum allowed part size. + * @option options leavePartsOnError [Boolean] (false) whether to abort the + * multipart upload if an error occurs. Set to true if you want to handle + * failures manually. + * @option options service [AWS.S3] an optional S3 service object to use for + * requests. This object might have bound parameters used by the uploader. + * @option options tags [Array] The tags to apply to the uploaded object. + * Each tag should have a `Key` and `Value` keys. + * @example Creating a default uploader for a stream object + * var upload = new AWS.S3.ManagedUpload({ + * params: {Bucket: 'bucket', Key: 'key', Body: stream} + * }); + * @example Creating an uploader with concurrency of 1 and partSize of 10mb + * var upload = new AWS.S3.ManagedUpload({ + * partSize: 10 * 1024 * 1024, queueSize: 1, + * params: {Bucket: 'bucket', Key: 'key', Body: stream} + * }); + * @example Creating an uploader with tags + * var upload = new AWS.S3.ManagedUpload({ + * params: {Bucket: 'bucket', Key: 'key', Body: stream}, + * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}] + * }); + * @see send + */ + constructor: function ManagedUpload(options) { + var self = this; + AWS.SequentialExecutor.call(self); + self.body = null; + self.sliceFn = null; + self.callback = null; + self.parts = {}; + self.completeInfo = []; + self.fillQueue = function() { + self.callback(new Error('Unsupported body payload ' + typeof self.body)); + }; + + self.configure(options); + }, + + /** + * @api private + */ + configure: function configure(options) { + options = options || {}; + this.partSize = this.minPartSize; + + if (options.queueSize) this.queueSize = options.queueSize; + if (options.partSize) this.partSize = options.partSize; + if (options.leavePartsOnError) this.leavePartsOnError = true; + if (options.tags) { + if (!Array.isArray(options.tags)) { + throw new Error('Tags must be specified as an array; ' + + typeof options.tags + ' provided.'); + } + this.tags = options.tags; + } + + if (this.partSize < this.minPartSize) { + throw new Error('partSize must be greater than ' + + this.minPartSize); + } + + this.service = options.service; + this.bindServiceObject(options.params); + this.validateBody(); + this.adjustTotalBytes(); + }, + + /** + * @api private + */ + leavePartsOnError: false, + + /** + * @api private + */ + queueSize: 4, + + /** + * @api private + */ + partSize: null, + + /** + * @readonly + * @return [Number] the minimum number of bytes for an individual part + * upload. + */ + minPartSize: 1024 * 1024 * 5, + + /** + * @readonly + * @return [Number] the maximum allowed number of parts in a multipart upload. + */ + maxTotalParts: 10000, + + /** + * Initiates the managed upload for the payload. + * + * @callback callback function(err, data) + * @param err [Error] an error or null if no error occurred. + * @param data [map] The response data from the successful upload: + * * `Location` (String) the URL of the uploaded object + * * `ETag` (String) the ETag of the uploaded object + * * `Bucket` (String) the bucket to which the object was uploaded + * * `Key` (String) the key to which the object was uploaded + * @example Sending a managed upload object + * var params = {Bucket: 'bucket', Key: 'key', Body: stream}; + * var upload = new AWS.S3.ManagedUpload({params: params}); + * upload.send(function(err, data) { + * console.log(err, data); + * }); + */ + send: function(callback) { + var self = this; + self.failed = false; + self.callback = callback || function(err) { if (err) throw err; }; + + var runFill = true; + if (self.sliceFn) { + self.fillQueue = self.fillBuffer; + } else if (AWS.util.isNode()) { + var Stream = AWS.util.stream.Stream; + if (self.body instanceof Stream) { + runFill = false; + self.fillQueue = self.fillStream; + self.partBuffers = []; + self.body. + on('error', function(err) { self.cleanup(err); }). + on('readable', function() { self.fillQueue(); }). + on('end', function() { + self.isDoneChunking = true; + self.numParts = self.totalPartNumbers; + self.fillQueue.call(self); + + if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) { + self.finishMultiPart(); + } + }); + } + } + + if (runFill) self.fillQueue.call(self); + }, + + /** + * @!method promise() + * Returns a 'thenable' promise. + * + * Two callbacks can be provided to the `then` method on the returned promise. + * The first callback will be called if the promise is fulfilled, and the second + * callback will be called if the promise is rejected. + * @callback fulfilledCallback function(data) + * Called if the promise is fulfilled. + * @param data [map] The response data from the successful upload: + * `Location` (String) the URL of the uploaded object + * `ETag` (String) the ETag of the uploaded object + * `Bucket` (String) the bucket to which the object was uploaded + * `Key` (String) the key to which the object was uploaded + * @callback rejectedCallback function(err) + * Called if the promise is rejected. + * @param err [Error] an error or null if no error occurred. + * @return [Promise] A promise that represents the state of the upload request. + * @example Sending an upload request using promises. + * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream}); + * var promise = upload.promise(); + * promise.then(function(data) { ... }, function(err) { ... }); + */ + + /** + * Aborts a managed upload, including all concurrent upload requests. + * @note By default, calling this function will cleanup a multipart upload + * if one was created. To leave the multipart upload around after aborting + * a request, configure `leavePartsOnError` to `true` in the {constructor}. + * @note Calling {abort} in the browser environment will not abort any requests + * that are already in flight. If a multipart upload was created, any parts + * not yet uploaded will not be sent, and the multipart upload will be cleaned up. + * @example Aborting an upload + * var params = { + * Bucket: 'bucket', Key: 'key', + * Body: new Buffer(1024 * 1024 * 25) // 25MB payload + * }; + * var upload = s3.upload(params); + * upload.send(function (err, data) { + * if (err) console.log("Error:", err.code, err.message); + * else console.log(data); + * }); + * + * // abort request in 1 second + * setTimeout(upload.abort.bind(upload), 1000); + */ + abort: function() { + this.cleanup(AWS.util.error(new Error('Request aborted by user'), { + code: 'RequestAbortedError', retryable: false + })); + }, + + /** + * @api private + */ + validateBody: function validateBody() { + var self = this; + self.body = self.service.config.params.Body; + if (typeof self.body === 'string') { + self.body = new AWS.util.Buffer(self.body); + } else if (!self.body) { + throw new Error('params.Body is required'); + } + self.sliceFn = AWS.util.arraySliceFn(self.body); + }, + + /** + * @api private + */ + bindServiceObject: function bindServiceObject(params) { + params = params || {}; + var self = this; + // bind parameters to new service object + if (!self.service) { + self.service = new AWS.S3({params: params}); + } else { + var service = self.service; + var config = AWS.util.copy(service.config); + config.signatureVersion = service.getSignatureVersion(); + self.service = new service.constructor.__super__(config); + self.service.config.params = + AWS.util.merge(self.service.config.params || {}, params); + } + }, + + /** + * @api private + */ + adjustTotalBytes: function adjustTotalBytes() { + var self = this; + try { // try to get totalBytes + self.totalBytes = byteLength(self.body); + } catch (e) { } + + // try to adjust partSize if we know payload length + if (self.totalBytes) { + var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts); + if (newPartSize > self.partSize) self.partSize = newPartSize; + } else { + self.totalBytes = undefined; + } + }, + + /** + * @api private + */ + isDoneChunking: false, + + /** + * @api private + */ + partPos: 0, + + /** + * @api private + */ + totalChunkedBytes: 0, + + /** + * @api private + */ + totalUploadedBytes: 0, + + /** + * @api private + */ + totalBytes: undefined, + + /** + * @api private + */ + numParts: 0, + + /** + * @api private + */ + totalPartNumbers: 0, + + /** + * @api private + */ + activeParts: 0, + + /** + * @api private + */ + doneParts: 0, + + /** + * @api private + */ + parts: null, + + /** + * @api private + */ + completeInfo: null, + + /** + * @api private + */ + failed: false, + + /** + * @api private + */ + multipartReq: null, + + /** + * @api private + */ + partBuffers: null, + + /** + * @api private + */ + partBufferLength: 0, + + /** + * @api private + */ + fillBuffer: function fillBuffer() { + var self = this; + var bodyLen = byteLength(self.body); + + if (bodyLen === 0) { + self.isDoneChunking = true; + self.numParts = 1; + self.nextChunk(self.body); + return; + } + + while (self.activeParts < self.queueSize && self.partPos < bodyLen) { + var endPos = Math.min(self.partPos + self.partSize, bodyLen); + var buf = self.sliceFn.call(self.body, self.partPos, endPos); + self.partPos += self.partSize; + + if (byteLength(buf) < self.partSize || self.partPos === bodyLen) { + self.isDoneChunking = true; + self.numParts = self.totalPartNumbers + 1; + } + self.nextChunk(buf); + } + }, + + /** + * @api private + */ + fillStream: function fillStream() { + var self = this; + if (self.activeParts >= self.queueSize) return; + + var buf = self.body.read(self.partSize - self.partBufferLength) || + self.body.read(); + if (buf) { + self.partBuffers.push(buf); + self.partBufferLength += buf.length; + self.totalChunkedBytes += buf.length; + } + + if (self.partBufferLength >= self.partSize) { + // if we have single buffer we avoid copyfull concat + var pbuf = self.partBuffers.length === 1 ? + self.partBuffers[0] : Buffer.concat(self.partBuffers); + self.partBuffers = []; + self.partBufferLength = 0; + + // if we have more than partSize, push the rest back on the queue + if (pbuf.length > self.partSize) { + var rest = pbuf.slice(self.partSize); + self.partBuffers.push(rest); + self.partBufferLength += rest.length; + pbuf = pbuf.slice(0, self.partSize); + } + + self.nextChunk(pbuf); + } + + if (self.isDoneChunking && !self.isDoneSending) { + // if we have single buffer we avoid copyfull concat + pbuf = self.partBuffers.length === 1 ? + self.partBuffers[0] : Buffer.concat(self.partBuffers); + self.partBuffers = []; + self.partBufferLength = 0; + self.totalBytes = self.totalChunkedBytes; + self.isDoneSending = true; + + if (self.numParts === 0 || pbuf.length > 0) { + self.numParts++; + self.nextChunk(pbuf); + } + } + + self.body.read(0); + }, + + /** + * @api private + */ + nextChunk: function nextChunk(chunk) { + var self = this; + if (self.failed) return null; + + var partNumber = ++self.totalPartNumbers; + if (self.isDoneChunking && partNumber === 1) { + var params = {Body: chunk}; + if (this.tags) { + params.Tagging = this.getTaggingHeader(); + } + var req = self.service.putObject(params); + req._managedUpload = self; + req.on('httpUploadProgress', self.progress).send(self.finishSinglePart); + return null; + } else if (self.service.config.params.ContentMD5) { + var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), { + code: 'InvalidDigest', retryable: false + }); + + self.cleanup(err); + return null; + } + + if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) { + return null; // Already uploaded this part. + } + + self.activeParts++; + if (!self.service.config.params.UploadId) { + + if (!self.multipartReq) { // create multipart + self.multipartReq = self.service.createMultipartUpload(); + self.multipartReq.on('success', function(resp) { + self.service.config.params.UploadId = resp.data.UploadId; + self.multipartReq = null; + }); + self.queueChunks(chunk, partNumber); + self.multipartReq.on('error', function(err) { + self.cleanup(err); + }); + self.multipartReq.send(); + } else { + self.queueChunks(chunk, partNumber); + } + } else { // multipart is created, just send + self.uploadPart(chunk, partNumber); + } + }, + + /** + * @api private + */ + getTaggingHeader: function getTaggingHeader() { + var kvPairStrings = []; + for (var i = 0; i < this.tags.length; i++) { + kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' + + AWS.util.uriEscape(this.tags[i].Value)); + } + + return kvPairStrings.join('&'); + }, + + /** + * @api private + */ + uploadPart: function uploadPart(chunk, partNumber) { + var self = this; + + var partParams = { + Body: chunk, + ContentLength: AWS.util.string.byteLength(chunk), + PartNumber: partNumber + }; + + var partInfo = {ETag: null, PartNumber: partNumber}; + self.completeInfo[partNumber] = partInfo; + + var req = self.service.uploadPart(partParams); + self.parts[partNumber] = req; + req._lastUploadedBytes = 0; + req._managedUpload = self; + req.on('httpUploadProgress', self.progress); + req.send(function(err, data) { + delete self.parts[partParams.PartNumber]; + self.activeParts--; + + if (!err && (!data || !data.ETag)) { + var message = 'No access to ETag property on response.'; + if (AWS.util.isBrowser()) { + message += ' Check CORS configuration to expose ETag header.'; + } + + err = AWS.util.error(new Error(message), { + code: 'ETagMissing', retryable: false + }); + } + if (err) return self.cleanup(err); + + partInfo.ETag = data.ETag; + self.doneParts++; + if (self.isDoneChunking && self.doneParts === self.numParts) { + self.finishMultiPart(); + } else { + self.fillQueue.call(self); + } + }); + }, + + /** + * @api private + */ + queueChunks: function queueChunks(chunk, partNumber) { + var self = this; + self.multipartReq.on('success', function() { + self.uploadPart(chunk, partNumber); + }); + }, + + /** + * @api private + */ + cleanup: function cleanup(err) { + var self = this; + if (self.failed) return; + + // clean up stream + if (typeof self.body.removeAllListeners === 'function' && + typeof self.body.resume === 'function') { + self.body.removeAllListeners('readable'); + self.body.removeAllListeners('end'); + self.body.resume(); + } + + // cleanup multipartReq listeners + if (self.multipartReq) { + self.multipartReq.removeAllListeners('success'); + self.multipartReq.removeAllListeners('error'); + self.multipartReq.removeAllListeners('complete'); + delete self.multipartReq; + } + + if (self.service.config.params.UploadId && !self.leavePartsOnError) { + self.service.abortMultipartUpload().send(); + } else if (self.leavePartsOnError) { + self.isDoneChunking = false; + } + + AWS.util.each(self.parts, function(partNumber, part) { + part.removeAllListeners('complete'); + part.abort(); + }); + + self.activeParts = 0; + self.partPos = 0; + self.numParts = 0; + self.totalPartNumbers = 0; + self.parts = {}; + self.failed = true; + self.callback(err); + }, + + /** + * @api private + */ + finishMultiPart: function finishMultiPart() { + var self = this; + var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } }; + self.service.completeMultipartUpload(completeParams, function(err, data) { + if (err) { + return self.cleanup(err); + } + + if (data && typeof data.Location === 'string') { + data.Location = data.Location.replace(/%2F/g, '/'); + } + + if (Array.isArray(self.tags)) { + self.service.putObjectTagging( + {Tagging: {TagSet: self.tags}}, + function(e, d) { + if (e) { + self.callback(e); + } else { + self.callback(e, data); + } + } + ); + } else { + self.callback(err, data); + } + }); + }, + + /** + * @api private + */ + finishSinglePart: function finishSinglePart(err, data) { + var upload = this.request._managedUpload; + var httpReq = this.request.httpRequest; + var endpoint = httpReq.endpoint; + if (err) return upload.callback(err); + data.Location = + [endpoint.protocol, '//', endpoint.host, httpReq.path].join(''); + data.key = this.request.params.Key; // will stay undocumented + data.Key = this.request.params.Key; + data.Bucket = this.request.params.Bucket; + upload.callback(err, data); + }, + + /** + * @api private + */ + progress: function progress(info) { + var upload = this._managedUpload; + if (this.operation === 'putObject') { + info.part = 1; + info.key = this.params.Key; + } else { + upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes; + this._lastUploadedBytes = info.loaded; + info = { + loaded: upload.totalUploadedBytes, + total: upload.totalBytes, + part: this.params.PartNumber, + key: this.params.Key + }; + } + upload.emit('httpUploadProgress', [info]); + } + }); + + AWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor); + + /** + * @api private + */ + AWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) { + this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency); + }; + + /** + * @api private + */ + AWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() { + delete this.prototype.promise; + }; + + AWS.util.addPromises(AWS.S3.ManagedUpload); + + module.exports = AWS.S3.ManagedUpload; /***/ }), @@ -45814,24 +45820,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 332 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['servicecatalog'] = {}; - AWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']); - Object.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', { - get: function get() { - var model = __webpack_require__(333); - model.paginators = __webpack_require__(334).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ServiceCatalog; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['servicecatalog'] = {}; + AWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']); + Object.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', { + get: function get() { + var model = __webpack_require__(333); + model.paginators = __webpack_require__(334).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ServiceCatalog; /***/ }), @@ -45850,25 +45856,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 335 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['ses'] = {}; - AWS.SES = Service.defineService('ses', ['2010-12-01']); - Object.defineProperty(apiLoader.services['ses'], '2010-12-01', { - get: function get() { - var model = __webpack_require__(336); - model.paginators = __webpack_require__(337).pagination; - model.waiters = __webpack_require__(338).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SES; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['ses'] = {}; + AWS.SES = Service.defineService('ses', ['2010-12-01']); + Object.defineProperty(apiLoader.services['ses'], '2010-12-01', { + get: function get() { + var model = __webpack_require__(336); + model.paginators = __webpack_require__(337).pagination; + model.waiters = __webpack_require__(338).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SES; /***/ }), @@ -45893,24 +45899,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 339 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['shield'] = {}; - AWS.Shield = Service.defineService('shield', ['2016-06-02']); - Object.defineProperty(apiLoader.services['shield'], '2016-06-02', { - get: function get() { - var model = __webpack_require__(340); - model.paginators = __webpack_require__(341).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Shield; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['shield'] = {}; + AWS.Shield = Service.defineService('shield', ['2016-06-02']); + Object.defineProperty(apiLoader.services['shield'], '2016-06-02', { + get: function get() { + var model = __webpack_require__(340); + model.paginators = __webpack_require__(341).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Shield; /***/ }), @@ -45929,24 +45935,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 342 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['simpledb'] = {}; - AWS.SimpleDB = Service.defineService('simpledb', ['2009-04-15']); - Object.defineProperty(apiLoader.services['simpledb'], '2009-04-15', { - get: function get() { - var model = __webpack_require__(343); - model.paginators = __webpack_require__(344).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SimpleDB; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['simpledb'] = {}; + AWS.SimpleDB = Service.defineService('simpledb', ['2009-04-15']); + Object.defineProperty(apiLoader.services['simpledb'], '2009-04-15', { + get: function get() { + var model = __webpack_require__(343); + model.paginators = __webpack_require__(344).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SimpleDB; /***/ }), @@ -45965,24 +45971,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 345 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['sms'] = {}; - AWS.SMS = Service.defineService('sms', ['2016-10-24']); - Object.defineProperty(apiLoader.services['sms'], '2016-10-24', { - get: function get() { - var model = __webpack_require__(346); - model.paginators = __webpack_require__(347).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SMS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['sms'] = {}; + AWS.SMS = Service.defineService('sms', ['2016-10-24']); + Object.defineProperty(apiLoader.services['sms'], '2016-10-24', { + get: function get() { + var model = __webpack_require__(346); + model.paginators = __webpack_require__(347).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SMS; /***/ }), @@ -46001,24 +46007,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 348 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['snowball'] = {}; - AWS.Snowball = Service.defineService('snowball', ['2016-06-30']); - Object.defineProperty(apiLoader.services['snowball'], '2016-06-30', { - get: function get() { - var model = __webpack_require__(349); - model.paginators = __webpack_require__(350).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Snowball; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['snowball'] = {}; + AWS.Snowball = Service.defineService('snowball', ['2016-06-30']); + Object.defineProperty(apiLoader.services['snowball'], '2016-06-30', { + get: function get() { + var model = __webpack_require__(349); + model.paginators = __webpack_require__(350).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Snowball; /***/ }), @@ -46037,24 +46043,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 351 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['sns'] = {}; - AWS.SNS = Service.defineService('sns', ['2010-03-31']); - Object.defineProperty(apiLoader.services['sns'], '2010-03-31', { - get: function get() { - var model = __webpack_require__(352); - model.paginators = __webpack_require__(353).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SNS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['sns'] = {}; + AWS.SNS = Service.defineService('sns', ['2010-03-31']); + Object.defineProperty(apiLoader.services['sns'], '2010-03-31', { + get: function get() { + var model = __webpack_require__(352); + model.paginators = __webpack_require__(353).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SNS; /***/ }), @@ -46073,162 +46079,162 @@ return /******/ (function(modules) { // webpackBootstrap /* 354 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['sqs'] = {}; - AWS.SQS = Service.defineService('sqs', ['2012-11-05']); - __webpack_require__(355); - Object.defineProperty(apiLoader.services['sqs'], '2012-11-05', { - get: function get() { - var model = __webpack_require__(356); - model.paginators = __webpack_require__(357).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SQS; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['sqs'] = {}; + AWS.SQS = Service.defineService('sqs', ['2012-11-05']); + __webpack_require__(355); + Object.defineProperty(apiLoader.services['sqs'], '2012-11-05', { + get: function get() { + var model = __webpack_require__(356); + model.paginators = __webpack_require__(357).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SQS; /***/ }), /* 355 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.update(AWS.SQS.prototype, { - /** - * @api private - */ - setupRequestListeners: function setupRequestListeners(request) { - request.addListener('build', this.buildEndpoint); - - if (request.service.config.computeChecksums) { - if (request.operation === 'sendMessage') { - request.addListener('extractData', this.verifySendMessageChecksum); - } else if (request.operation === 'sendMessageBatch') { - request.addListener('extractData', this.verifySendMessageBatchChecksum); - } else if (request.operation === 'receiveMessage') { - request.addListener('extractData', this.verifyReceiveMessageChecksum); - } - } - }, - - /** - * @api private - */ - verifySendMessageChecksum: function verifySendMessageChecksum(response) { - if (!response.data) return; - - var md5 = response.data.MD5OfMessageBody; - var body = this.params.MessageBody; - var calculatedMd5 = this.service.calculateChecksum(body); - if (calculatedMd5 !== md5) { - var msg = 'Got "' + response.data.MD5OfMessageBody + - '", expecting "' + calculatedMd5 + '".'; - this.service.throwInvalidChecksumError(response, - [response.data.MessageId], msg); - } - }, - - /** - * @api private - */ - verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) { - if (!response.data) return; - - var service = this.service; - var entries = {}; - var errors = []; - var messageIds = []; - AWS.util.arrayEach(response.data.Successful, function (entry) { - entries[entry.Id] = entry; - }); - AWS.util.arrayEach(this.params.Entries, function (entry) { - if (entries[entry.Id]) { - var md5 = entries[entry.Id].MD5OfMessageBody; - var body = entry.MessageBody; - if (!service.isChecksumValid(md5, body)) { - errors.push(entry.Id); - messageIds.push(entries[entry.Id].MessageId); - } - } - }); - - if (errors.length > 0) { - service.throwInvalidChecksumError(response, messageIds, - 'Invalid messages: ' + errors.join(', ')); - } - }, - - /** - * @api private - */ - verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) { - if (!response.data) return; - - var service = this.service; - var messageIds = []; - AWS.util.arrayEach(response.data.Messages, function(message) { - var md5 = message.MD5OfBody; - var body = message.Body; - if (!service.isChecksumValid(md5, body)) { - messageIds.push(message.MessageId); - } - }); - - if (messageIds.length > 0) { - service.throwInvalidChecksumError(response, messageIds, - 'Invalid messages: ' + messageIds.join(', ')); - } - }, - - /** - * @api private - */ - throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) { - response.error = AWS.util.error(new Error(), { - retryable: true, - code: 'InvalidChecksum', - messageIds: ids, - message: response.request.operation + - ' returned an invalid MD5 response. ' + message - }); - }, - - /** - * @api private - */ - isChecksumValid: function isChecksumValid(checksum, data) { - return this.calculateChecksum(data) === checksum; - }, - - /** - * @api private - */ - calculateChecksum: function calculateChecksum(data) { - return AWS.util.crypto.md5(data, 'hex'); - }, - - /** - * @api private - */ - buildEndpoint: function buildEndpoint(request) { - var url = request.httpRequest.params.QueueUrl; - if (url) { - request.httpRequest.endpoint = new AWS.Endpoint(url); - - // signature version 4 requires the region name to be set, - // sqs queue urls contain the region name - var matches = request.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./); - if (matches) request.httpRequest.region = matches[1]; - } - } - }); + var AWS = __webpack_require__(4); + + AWS.util.update(AWS.SQS.prototype, { + /** + * @api private + */ + setupRequestListeners: function setupRequestListeners(request) { + request.addListener('build', this.buildEndpoint); + + if (request.service.config.computeChecksums) { + if (request.operation === 'sendMessage') { + request.addListener('extractData', this.verifySendMessageChecksum); + } else if (request.operation === 'sendMessageBatch') { + request.addListener('extractData', this.verifySendMessageBatchChecksum); + } else if (request.operation === 'receiveMessage') { + request.addListener('extractData', this.verifyReceiveMessageChecksum); + } + } + }, + + /** + * @api private + */ + verifySendMessageChecksum: function verifySendMessageChecksum(response) { + if (!response.data) return; + + var md5 = response.data.MD5OfMessageBody; + var body = this.params.MessageBody; + var calculatedMd5 = this.service.calculateChecksum(body); + if (calculatedMd5 !== md5) { + var msg = 'Got "' + response.data.MD5OfMessageBody + + '", expecting "' + calculatedMd5 + '".'; + this.service.throwInvalidChecksumError(response, + [response.data.MessageId], msg); + } + }, + + /** + * @api private + */ + verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) { + if (!response.data) return; + + var service = this.service; + var entries = {}; + var errors = []; + var messageIds = []; + AWS.util.arrayEach(response.data.Successful, function (entry) { + entries[entry.Id] = entry; + }); + AWS.util.arrayEach(this.params.Entries, function (entry) { + if (entries[entry.Id]) { + var md5 = entries[entry.Id].MD5OfMessageBody; + var body = entry.MessageBody; + if (!service.isChecksumValid(md5, body)) { + errors.push(entry.Id); + messageIds.push(entries[entry.Id].MessageId); + } + } + }); + + if (errors.length > 0) { + service.throwInvalidChecksumError(response, messageIds, + 'Invalid messages: ' + errors.join(', ')); + } + }, + + /** + * @api private + */ + verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) { + if (!response.data) return; + + var service = this.service; + var messageIds = []; + AWS.util.arrayEach(response.data.Messages, function(message) { + var md5 = message.MD5OfBody; + var body = message.Body; + if (!service.isChecksumValid(md5, body)) { + messageIds.push(message.MessageId); + } + }); + + if (messageIds.length > 0) { + service.throwInvalidChecksumError(response, messageIds, + 'Invalid messages: ' + messageIds.join(', ')); + } + }, + + /** + * @api private + */ + throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) { + response.error = AWS.util.error(new Error(), { + retryable: true, + code: 'InvalidChecksum', + messageIds: ids, + message: response.request.operation + + ' returned an invalid MD5 response. ' + message + }); + }, + + /** + * @api private + */ + isChecksumValid: function isChecksumValid(checksum, data) { + return this.calculateChecksum(data) === checksum; + }, + + /** + * @api private + */ + calculateChecksum: function calculateChecksum(data) { + return AWS.util.crypto.md5(data, 'hex'); + }, + + /** + * @api private + */ + buildEndpoint: function buildEndpoint(request) { + var url = request.httpRequest.params.QueueUrl; + if (url) { + request.httpRequest.endpoint = new AWS.Endpoint(url); + + // signature version 4 requires the region name to be set, + // sqs queue urls contain the region name + var matches = request.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./); + if (matches) request.httpRequest.region = matches[1]; + } + } + }); /***/ }), @@ -46247,24 +46253,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 358 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['ssm'] = {}; - AWS.SSM = Service.defineService('ssm', ['2014-11-06']); - Object.defineProperty(apiLoader.services['ssm'], '2014-11-06', { - get: function get() { - var model = __webpack_require__(359); - model.paginators = __webpack_require__(360).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SSM; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['ssm'] = {}; + AWS.SSM = Service.defineService('ssm', ['2014-11-06']); + Object.defineProperty(apiLoader.services['ssm'], '2014-11-06', { + get: function get() { + var model = __webpack_require__(359); + model.paginators = __webpack_require__(360).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SSM; /***/ }), @@ -46283,24 +46289,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 361 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['storagegateway'] = {}; - AWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']); - Object.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', { - get: function get() { - var model = __webpack_require__(362); - model.paginators = __webpack_require__(363).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.StorageGateway; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['storagegateway'] = {}; + AWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']); + Object.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', { + get: function get() { + var model = __webpack_require__(362); + model.paginators = __webpack_require__(363).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.StorageGateway; /***/ }), @@ -46319,24 +46325,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 364 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['stepfunctions'] = {}; - AWS.StepFunctions = Service.defineService('stepfunctions', ['2016-11-23']); - Object.defineProperty(apiLoader.services['stepfunctions'], '2016-11-23', { - get: function get() { - var model = __webpack_require__(365); - model.paginators = __webpack_require__(366).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.StepFunctions; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['stepfunctions'] = {}; + AWS.StepFunctions = Service.defineService('stepfunctions', ['2016-11-23']); + Object.defineProperty(apiLoader.services['stepfunctions'], '2016-11-23', { + get: function get() { + var model = __webpack_require__(365); + model.paginators = __webpack_require__(366).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.StepFunctions; /***/ }), @@ -46355,24 +46361,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 367 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['support'] = {}; - AWS.Support = Service.defineService('support', ['2013-04-15']); - Object.defineProperty(apiLoader.services['support'], '2013-04-15', { - get: function get() { - var model = __webpack_require__(368); - model.paginators = __webpack_require__(369).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Support; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['support'] = {}; + AWS.Support = Service.defineService('support', ['2013-04-15']); + Object.defineProperty(apiLoader.services['support'], '2013-04-15', { + get: function get() { + var model = __webpack_require__(368); + model.paginators = __webpack_require__(369).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Support; /***/ }), @@ -46391,41 +46397,41 @@ return /******/ (function(modules) { // webpackBootstrap /* 370 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['swf'] = {}; - AWS.SWF = Service.defineService('swf', ['2012-01-25']); - __webpack_require__(371); - Object.defineProperty(apiLoader.services['swf'], '2012-01-25', { - get: function get() { - var model = __webpack_require__(372); - model.paginators = __webpack_require__(373).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SWF; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['swf'] = {}; + AWS.SWF = Service.defineService('swf', ['2012-01-25']); + __webpack_require__(371); + Object.defineProperty(apiLoader.services['swf'], '2012-01-25', { + get: function get() { + var model = __webpack_require__(372); + model.paginators = __webpack_require__(373).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SWF; /***/ }), /* 371 */ /***/ (function(module, exports, __webpack_require__) { - var AWS = __webpack_require__(4); - - AWS.util.hideProperties(AWS, ['SimpleWorkflow']); - - /** - * @constant - * @readonly - * Backwards compatibility for access to the {AWS.SWF} service class. - */ - AWS.SimpleWorkflow = AWS.SWF; + var AWS = __webpack_require__(4); + + AWS.util.hideProperties(AWS, ['SimpleWorkflow']); + + /** + * @constant + * @readonly + * Backwards compatibility for access to the {AWS.SWF} service class. + */ + AWS.SimpleWorkflow = AWS.SWF; /***/ }), @@ -46444,24 +46450,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 374 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['xray'] = {}; - AWS.XRay = Service.defineService('xray', ['2016-04-12']); - Object.defineProperty(apiLoader.services['xray'], '2016-04-12', { - get: function get() { - var model = __webpack_require__(375); - model.paginators = __webpack_require__(376).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.XRay; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['xray'] = {}; + AWS.XRay = Service.defineService('xray', ['2016-04-12']); + Object.defineProperty(apiLoader.services['xray'], '2016-04-12', { + get: function get() { + var model = __webpack_require__(375); + model.paginators = __webpack_require__(376).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.XRay; /***/ }), @@ -46480,24 +46486,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 377 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['waf'] = {}; - AWS.WAF = Service.defineService('waf', ['2015-08-24']); - Object.defineProperty(apiLoader.services['waf'], '2015-08-24', { - get: function get() { - var model = __webpack_require__(378); - model.paginators = __webpack_require__(379).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.WAF; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['waf'] = {}; + AWS.WAF = Service.defineService('waf', ['2015-08-24']); + Object.defineProperty(apiLoader.services['waf'], '2015-08-24', { + get: function get() { + var model = __webpack_require__(378); + model.paginators = __webpack_require__(379).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.WAF; /***/ }), @@ -46516,24 +46522,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 380 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['wafregional'] = {}; - AWS.WAFRegional = Service.defineService('wafregional', ['2016-11-28']); - Object.defineProperty(apiLoader.services['wafregional'], '2016-11-28', { - get: function get() { - var model = __webpack_require__(381); - model.paginators = __webpack_require__(382).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.WAFRegional; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['wafregional'] = {}; + AWS.WAFRegional = Service.defineService('wafregional', ['2016-11-28']); + Object.defineProperty(apiLoader.services['wafregional'], '2016-11-28', { + get: function get() { + var model = __webpack_require__(381); + model.paginators = __webpack_require__(382).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.WAFRegional; /***/ }), @@ -46552,24 +46558,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 383 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['workdocs'] = {}; - AWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']); - Object.defineProperty(apiLoader.services['workdocs'], '2016-05-01', { - get: function get() { - var model = __webpack_require__(384); - model.paginators = __webpack_require__(385).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.WorkDocs; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['workdocs'] = {}; + AWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']); + Object.defineProperty(apiLoader.services['workdocs'], '2016-05-01', { + get: function get() { + var model = __webpack_require__(384); + model.paginators = __webpack_require__(385).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.WorkDocs; /***/ }), @@ -46588,24 +46594,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 386 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['workspaces'] = {}; - AWS.WorkSpaces = Service.defineService('workspaces', ['2015-04-08']); - Object.defineProperty(apiLoader.services['workspaces'], '2015-04-08', { - get: function get() { - var model = __webpack_require__(387); - model.paginators = __webpack_require__(388).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.WorkSpaces; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['workspaces'] = {}; + AWS.WorkSpaces = Service.defineService('workspaces', ['2015-04-08']); + Object.defineProperty(apiLoader.services['workspaces'], '2015-04-08', { + get: function get() { + var model = __webpack_require__(387); + model.paginators = __webpack_require__(388).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.WorkSpaces; /***/ }), @@ -46624,24 +46630,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 389 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['codestar'] = {}; - AWS.CodeStar = Service.defineService('codestar', ['2017-04-19']); - Object.defineProperty(apiLoader.services['codestar'], '2017-04-19', { - get: function get() { - var model = __webpack_require__(390); - model.paginators = __webpack_require__(391).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CodeStar; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['codestar'] = {}; + AWS.CodeStar = Service.defineService('codestar', ['2017-04-19']); + Object.defineProperty(apiLoader.services['codestar'], '2017-04-19', { + get: function get() { + var model = __webpack_require__(390); + model.paginators = __webpack_require__(391).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CodeStar; /***/ }), @@ -46660,24 +46666,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 392 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['lexmodelbuildingservice'] = {}; - AWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']); - Object.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', { - get: function get() { - var model = __webpack_require__(393); - model.paginators = __webpack_require__(394).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.LexModelBuildingService; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['lexmodelbuildingservice'] = {}; + AWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']); + Object.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', { + get: function get() { + var model = __webpack_require__(393); + model.paginators = __webpack_require__(394).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.LexModelBuildingService; /***/ }), @@ -46696,24 +46702,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 395 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['marketplaceentitlementservice'] = {}; - AWS.MarketplaceEntitlementService = Service.defineService('marketplaceentitlementservice', ['2017-01-11']); - Object.defineProperty(apiLoader.services['marketplaceentitlementservice'], '2017-01-11', { - get: function get() { - var model = __webpack_require__(396); - model.paginators = __webpack_require__(397).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MarketplaceEntitlementService; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['marketplaceentitlementservice'] = {}; + AWS.MarketplaceEntitlementService = Service.defineService('marketplaceentitlementservice', ['2017-01-11']); + Object.defineProperty(apiLoader.services['marketplaceentitlementservice'], '2017-01-11', { + get: function get() { + var model = __webpack_require__(396); + model.paginators = __webpack_require__(397).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MarketplaceEntitlementService; /***/ }), @@ -46732,24 +46738,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 398 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['athena'] = {}; - AWS.Athena = Service.defineService('athena', ['2017-05-18']); - Object.defineProperty(apiLoader.services['athena'], '2017-05-18', { - get: function get() { - var model = __webpack_require__(399); - model.paginators = __webpack_require__(400).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Athena; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['athena'] = {}; + AWS.Athena = Service.defineService('athena', ['2017-05-18']); + Object.defineProperty(apiLoader.services['athena'], '2017-05-18', { + get: function get() { + var model = __webpack_require__(399); + model.paginators = __webpack_require__(400).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Athena; /***/ }), @@ -46768,23 +46774,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 401 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['greengrass'] = {}; - AWS.Greengrass = Service.defineService('greengrass', ['2017-06-07']); - Object.defineProperty(apiLoader.services['greengrass'], '2017-06-07', { - get: function get() { - var model = __webpack_require__(402); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Greengrass; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['greengrass'] = {}; + AWS.Greengrass = Service.defineService('greengrass', ['2017-06-07']); + Object.defineProperty(apiLoader.services['greengrass'], '2017-06-07', { + get: function get() { + var model = __webpack_require__(402); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Greengrass; /***/ }), @@ -46797,24 +46803,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 403 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['dax'] = {}; - AWS.DAX = Service.defineService('dax', ['2017-04-19']); - Object.defineProperty(apiLoader.services['dax'], '2017-04-19', { - get: function get() { - var model = __webpack_require__(404); - model.paginators = __webpack_require__(405).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.DAX; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['dax'] = {}; + AWS.DAX = Service.defineService('dax', ['2017-04-19']); + Object.defineProperty(apiLoader.services['dax'], '2017-04-19', { + get: function get() { + var model = __webpack_require__(404); + model.paginators = __webpack_require__(405).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.DAX; /***/ }), @@ -46833,24 +46839,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 406 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['migrationhub'] = {}; - AWS.MigrationHub = Service.defineService('migrationhub', ['2017-05-31']); - Object.defineProperty(apiLoader.services['migrationhub'], '2017-05-31', { - get: function get() { - var model = __webpack_require__(407); - model.paginators = __webpack_require__(408).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MigrationHub; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['migrationhub'] = {}; + AWS.MigrationHub = Service.defineService('migrationhub', ['2017-05-31']); + Object.defineProperty(apiLoader.services['migrationhub'], '2017-05-31', { + get: function get() { + var model = __webpack_require__(407); + model.paginators = __webpack_require__(408).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MigrationHub; /***/ }), @@ -46869,24 +46875,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 409 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloudhsmv2'] = {}; - AWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']); - Object.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', { - get: function get() { - var model = __webpack_require__(410); - model.paginators = __webpack_require__(411).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CloudHSMV2; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloudhsmv2'] = {}; + AWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']); + Object.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', { + get: function get() { + var model = __webpack_require__(410); + model.paginators = __webpack_require__(411).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CloudHSMV2; /***/ }), @@ -46905,24 +46911,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 412 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['glue'] = {}; - AWS.Glue = Service.defineService('glue', ['2017-03-31']); - Object.defineProperty(apiLoader.services['glue'], '2017-03-31', { - get: function get() { - var model = __webpack_require__(413); - model.paginators = __webpack_require__(414).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Glue; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['glue'] = {}; + AWS.Glue = Service.defineService('glue', ['2017-03-31']); + Object.defineProperty(apiLoader.services['glue'], '2017-03-31', { + get: function get() { + var model = __webpack_require__(413); + model.paginators = __webpack_require__(414).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Glue; /***/ }), @@ -46941,24 +46947,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 415 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mobile'] = {}; - AWS.Mobile = Service.defineService('mobile', ['2017-07-01']); - Object.defineProperty(apiLoader.services['mobile'], '2017-07-01', { - get: function get() { - var model = __webpack_require__(416); - model.paginators = __webpack_require__(417).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Mobile; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mobile'] = {}; + AWS.Mobile = Service.defineService('mobile', ['2017-07-01']); + Object.defineProperty(apiLoader.services['mobile'], '2017-07-01', { + get: function get() { + var model = __webpack_require__(416); + model.paginators = __webpack_require__(417).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Mobile; /***/ }), @@ -46977,24 +46983,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 418 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['pricing'] = {}; - AWS.Pricing = Service.defineService('pricing', ['2017-10-15']); - Object.defineProperty(apiLoader.services['pricing'], '2017-10-15', { - get: function get() { - var model = __webpack_require__(419); - model.paginators = __webpack_require__(420).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Pricing; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['pricing'] = {}; + AWS.Pricing = Service.defineService('pricing', ['2017-10-15']); + Object.defineProperty(apiLoader.services['pricing'], '2017-10-15', { + get: function get() { + var model = __webpack_require__(419); + model.paginators = __webpack_require__(420).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Pricing; /***/ }), @@ -47013,24 +47019,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 421 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['costexplorer'] = {}; - AWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']); - Object.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', { - get: function get() { - var model = __webpack_require__(422); - model.paginators = __webpack_require__(423).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.CostExplorer; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['costexplorer'] = {}; + AWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']); + Object.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', { + get: function get() { + var model = __webpack_require__(422); + model.paginators = __webpack_require__(423).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.CostExplorer; /***/ }), @@ -47049,23 +47055,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 424 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mediaconvert'] = {}; - AWS.MediaConvert = Service.defineService('mediaconvert', ['2017-08-29']); - Object.defineProperty(apiLoader.services['mediaconvert'], '2017-08-29', { - get: function get() { - var model = __webpack_require__(425); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MediaConvert; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mediaconvert'] = {}; + AWS.MediaConvert = Service.defineService('mediaconvert', ['2017-08-29']); + Object.defineProperty(apiLoader.services['mediaconvert'], '2017-08-29', { + get: function get() { + var model = __webpack_require__(425); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MediaConvert; /***/ }), @@ -47078,24 +47084,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 426 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['medialive'] = {}; - AWS.MediaLive = Service.defineService('medialive', ['2017-10-14']); - Object.defineProperty(apiLoader.services['medialive'], '2017-10-14', { - get: function get() { - var model = __webpack_require__(427); - model.paginators = __webpack_require__(428).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MediaLive; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['medialive'] = {}; + AWS.MediaLive = Service.defineService('medialive', ['2017-10-14']); + Object.defineProperty(apiLoader.services['medialive'], '2017-10-14', { + get: function get() { + var model = __webpack_require__(427); + model.paginators = __webpack_require__(428).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MediaLive; /***/ }), @@ -47114,24 +47120,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 429 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mediapackage'] = {}; - AWS.MediaPackage = Service.defineService('mediapackage', ['2017-10-12']); - Object.defineProperty(apiLoader.services['mediapackage'], '2017-10-12', { - get: function get() { - var model = __webpack_require__(430); - model.paginators = __webpack_require__(431).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MediaPackage; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mediapackage'] = {}; + AWS.MediaPackage = Service.defineService('mediapackage', ['2017-10-12']); + Object.defineProperty(apiLoader.services['mediapackage'], '2017-10-12', { + get: function get() { + var model = __webpack_require__(430); + model.paginators = __webpack_require__(431).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MediaPackage; /***/ }), @@ -47150,24 +47156,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 432 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mediastore'] = {}; - AWS.MediaStore = Service.defineService('mediastore', ['2017-09-01']); - Object.defineProperty(apiLoader.services['mediastore'], '2017-09-01', { - get: function get() { - var model = __webpack_require__(433); - model.paginators = __webpack_require__(434).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MediaStore; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mediastore'] = {}; + AWS.MediaStore = Service.defineService('mediastore', ['2017-09-01']); + Object.defineProperty(apiLoader.services['mediastore'], '2017-09-01', { + get: function get() { + var model = __webpack_require__(433); + model.paginators = __webpack_require__(434).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MediaStore; /***/ }), @@ -47186,24 +47192,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 435 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mediastoredata'] = {}; - AWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']); - Object.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', { - get: function get() { - var model = __webpack_require__(436); - model.paginators = __webpack_require__(437).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MediaStoreData; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mediastoredata'] = {}; + AWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']); + Object.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', { + get: function get() { + var model = __webpack_require__(436); + model.paginators = __webpack_require__(437).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MediaStoreData; /***/ }), @@ -47222,24 +47228,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 438 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['appsync'] = {}; - AWS.AppSync = Service.defineService('appsync', ['2017-07-25']); - Object.defineProperty(apiLoader.services['appsync'], '2017-07-25', { - get: function get() { - var model = __webpack_require__(439); - model.paginators = __webpack_require__(440).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.AppSync; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['appsync'] = {}; + AWS.AppSync = Service.defineService('appsync', ['2017-07-25']); + Object.defineProperty(apiLoader.services['appsync'], '2017-07-25', { + get: function get() { + var model = __webpack_require__(439); + model.paginators = __webpack_require__(440).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.AppSync; /***/ }), @@ -47258,24 +47264,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 441 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['guardduty'] = {}; - AWS.GuardDuty = Service.defineService('guardduty', ['2017-11-28']); - Object.defineProperty(apiLoader.services['guardduty'], '2017-11-28', { - get: function get() { - var model = __webpack_require__(442); - model.paginators = __webpack_require__(443).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.GuardDuty; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['guardduty'] = {}; + AWS.GuardDuty = Service.defineService('guardduty', ['2017-11-28']); + Object.defineProperty(apiLoader.services['guardduty'], '2017-11-28', { + get: function get() { + var model = __webpack_require__(442); + model.paginators = __webpack_require__(443).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.GuardDuty; /***/ }), @@ -47294,23 +47300,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 444 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['mq'] = {}; - AWS.MQ = Service.defineService('mq', ['2017-11-27']); - Object.defineProperty(apiLoader.services['mq'], '2017-11-27', { - get: function get() { - var model = __webpack_require__(445); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.MQ; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['mq'] = {}; + AWS.MQ = Service.defineService('mq', ['2017-11-27']); + Object.defineProperty(apiLoader.services['mq'], '2017-11-27', { + get: function get() { + var model = __webpack_require__(445); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.MQ; /***/ }), @@ -47323,24 +47329,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 446 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['comprehend'] = {}; - AWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']); - Object.defineProperty(apiLoader.services['comprehend'], '2017-11-27', { - get: function get() { - var model = __webpack_require__(447); - model.paginators = __webpack_require__(448).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Comprehend; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['comprehend'] = {}; + AWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']); + Object.defineProperty(apiLoader.services['comprehend'], '2017-11-27', { + get: function get() { + var model = __webpack_require__(447); + model.paginators = __webpack_require__(448).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Comprehend; /***/ }), @@ -47359,24 +47365,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 449 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['iotjobsdataplane'] = {}; - AWS.IoTJobsDataPlane = Service.defineService('iotjobsdataplane', ['2017-09-29']); - Object.defineProperty(apiLoader.services['iotjobsdataplane'], '2017-09-29', { - get: function get() { - var model = __webpack_require__(450); - model.paginators = __webpack_require__(451).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.IoTJobsDataPlane; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['iotjobsdataplane'] = {}; + AWS.IoTJobsDataPlane = Service.defineService('iotjobsdataplane', ['2017-09-29']); + Object.defineProperty(apiLoader.services['iotjobsdataplane'], '2017-09-29', { + get: function get() { + var model = __webpack_require__(450); + model.paginators = __webpack_require__(451).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.IoTJobsDataPlane; /***/ }), @@ -47395,24 +47401,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 452 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['kinesisvideoarchivedmedia'] = {}; - AWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']); - Object.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', { - get: function get() { - var model = __webpack_require__(453); - model.paginators = __webpack_require__(454).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.KinesisVideoArchivedMedia; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['kinesisvideoarchivedmedia'] = {}; + AWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']); + Object.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', { + get: function get() { + var model = __webpack_require__(453); + model.paginators = __webpack_require__(454).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.KinesisVideoArchivedMedia; /***/ }), @@ -47431,24 +47437,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 455 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['kinesisvideomedia'] = {}; - AWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']); - Object.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', { - get: function get() { - var model = __webpack_require__(456); - model.paginators = __webpack_require__(457).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.KinesisVideoMedia; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['kinesisvideomedia'] = {}; + AWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']); + Object.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', { + get: function get() { + var model = __webpack_require__(456); + model.paginators = __webpack_require__(457).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.KinesisVideoMedia; /***/ }), @@ -47467,24 +47473,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 458 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['kinesisvideo'] = {}; - AWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']); - Object.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', { - get: function get() { - var model = __webpack_require__(459); - model.paginators = __webpack_require__(460).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.KinesisVideo; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['kinesisvideo'] = {}; + AWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']); + Object.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', { + get: function get() { + var model = __webpack_require__(459); + model.paginators = __webpack_require__(460).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.KinesisVideo; /***/ }), @@ -47503,24 +47509,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 461 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['sagemakerruntime'] = {}; - AWS.SageMakerRuntime = Service.defineService('sagemakerruntime', ['2017-05-13']); - Object.defineProperty(apiLoader.services['sagemakerruntime'], '2017-05-13', { - get: function get() { - var model = __webpack_require__(462); - model.paginators = __webpack_require__(463).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SageMakerRuntime; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['sagemakerruntime'] = {}; + AWS.SageMakerRuntime = Service.defineService('sagemakerruntime', ['2017-05-13']); + Object.defineProperty(apiLoader.services['sagemakerruntime'], '2017-05-13', { + get: function get() { + var model = __webpack_require__(462); + model.paginators = __webpack_require__(463).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SageMakerRuntime; /***/ }), @@ -47539,25 +47545,25 @@ return /******/ (function(modules) { // webpackBootstrap /* 464 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['sagemaker'] = {}; - AWS.SageMaker = Service.defineService('sagemaker', ['2017-07-24']); - Object.defineProperty(apiLoader.services['sagemaker'], '2017-07-24', { - get: function get() { - var model = __webpack_require__(465); - model.paginators = __webpack_require__(466).pagination; - model.waiters = __webpack_require__(467).waiters; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.SageMaker; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['sagemaker'] = {}; + AWS.SageMaker = Service.defineService('sagemaker', ['2017-07-24']); + Object.defineProperty(apiLoader.services['sagemaker'], '2017-07-24', { + get: function get() { + var model = __webpack_require__(465); + model.paginators = __webpack_require__(466).pagination; + model.waiters = __webpack_require__(467).waiters; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.SageMaker; /***/ }), @@ -47582,24 +47588,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 468 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['translate'] = {}; - AWS.Translate = Service.defineService('translate', ['2017-07-01']); - Object.defineProperty(apiLoader.services['translate'], '2017-07-01', { - get: function get() { - var model = __webpack_require__(469); - model.paginators = __webpack_require__(470).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Translate; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['translate'] = {}; + AWS.Translate = Service.defineService('translate', ['2017-07-01']); + Object.defineProperty(apiLoader.services['translate'], '2017-07-01', { + get: function get() { + var model = __webpack_require__(469); + model.paginators = __webpack_require__(470).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Translate; /***/ }), @@ -47618,24 +47624,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 471 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['resourcegroups'] = {}; - AWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']); - Object.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', { - get: function get() { - var model = __webpack_require__(472); - model.paginators = __webpack_require__(473).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ResourceGroups; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['resourcegroups'] = {}; + AWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']); + Object.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', { + get: function get() { + var model = __webpack_require__(472); + model.paginators = __webpack_require__(473).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ResourceGroups; /***/ }), @@ -47654,24 +47660,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 474 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['alexaforbusiness'] = {}; - AWS.AlexaForBusiness = Service.defineService('alexaforbusiness', ['2017-11-09']); - Object.defineProperty(apiLoader.services['alexaforbusiness'], '2017-11-09', { - get: function get() { - var model = __webpack_require__(475); - model.paginators = __webpack_require__(476).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.AlexaForBusiness; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['alexaforbusiness'] = {}; + AWS.AlexaForBusiness = Service.defineService('alexaforbusiness', ['2017-11-09']); + Object.defineProperty(apiLoader.services['alexaforbusiness'], '2017-11-09', { + get: function get() { + var model = __webpack_require__(475); + model.paginators = __webpack_require__(476).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.AlexaForBusiness; /***/ }), @@ -47690,24 +47696,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 477 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['cloud9'] = {}; - AWS.Cloud9 = Service.defineService('cloud9', ['2017-09-23']); - Object.defineProperty(apiLoader.services['cloud9'], '2017-09-23', { - get: function get() { - var model = __webpack_require__(478); - model.paginators = __webpack_require__(479).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.Cloud9; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['cloud9'] = {}; + AWS.Cloud9 = Service.defineService('cloud9', ['2017-09-23']); + Object.defineProperty(apiLoader.services['cloud9'], '2017-09-23', { + get: function get() { + var model = __webpack_require__(478); + model.paginators = __webpack_require__(479).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.Cloud9; /***/ }), @@ -47726,23 +47732,23 @@ return /******/ (function(modules) { // webpackBootstrap /* 480 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['serverlessapplicationrepository'] = {}; - AWS.ServerlessApplicationRepository = Service.defineService('serverlessapplicationrepository', ['2017-09-08']); - Object.defineProperty(apiLoader.services['serverlessapplicationrepository'], '2017-09-08', { - get: function get() { - var model = __webpack_require__(481); - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ServerlessApplicationRepository; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['serverlessapplicationrepository'] = {}; + AWS.ServerlessApplicationRepository = Service.defineService('serverlessapplicationrepository', ['2017-09-08']); + Object.defineProperty(apiLoader.services['serverlessapplicationrepository'], '2017-09-08', { + get: function get() { + var model = __webpack_require__(481); + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ServerlessApplicationRepository; /***/ }), @@ -47755,24 +47761,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 482 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['servicediscovery'] = {}; - AWS.ServiceDiscovery = Service.defineService('servicediscovery', ['2017-03-14']); - Object.defineProperty(apiLoader.services['servicediscovery'], '2017-03-14', { - get: function get() { - var model = __webpack_require__(483); - model.paginators = __webpack_require__(484).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.ServiceDiscovery; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['servicediscovery'] = {}; + AWS.ServiceDiscovery = Service.defineService('servicediscovery', ['2017-03-14']); + Object.defineProperty(apiLoader.services['servicediscovery'], '2017-03-14', { + get: function get() { + var model = __webpack_require__(483); + model.paginators = __webpack_require__(484).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.ServiceDiscovery; /***/ }), @@ -47791,24 +47797,24 @@ return /******/ (function(modules) { // webpackBootstrap /* 485 */ /***/ (function(module, exports, __webpack_require__) { - __webpack_require__(2); - var AWS = __webpack_require__(4); - var Service = AWS.Service; - var apiLoader = AWS.apiLoader; - - apiLoader.services['workmail'] = {}; - AWS.WorkMail = Service.defineService('workmail', ['2017-10-01']); - Object.defineProperty(apiLoader.services['workmail'], '2017-10-01', { - get: function get() { - var model = __webpack_require__(486); - model.paginators = __webpack_require__(487).pagination; - return model; - }, - enumerable: true, - configurable: true - }); - - module.exports = AWS.WorkMail; + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['workmail'] = {}; + AWS.WorkMail = Service.defineService('workmail', ['2017-10-01']); + Object.defineProperty(apiLoader.services['workmail'], '2017-10-01', { + get: function get() { + var model = __webpack_require__(486); + model.paginators = __webpack_require__(487).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.WorkMail; /***/ }), @@ -47823,6 +47829,42 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = {"pagination":{"ListAliases":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults"},"ListGroupMembers":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults"},"ListGroups":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults"},"ListOrganizations":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults"},"ListResources":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults"},"ListUsers":{"input_token":"NextToken","output_token":"NextToken","limit_key":"MaxResults"}}} +/***/ }), +/* 488 */ +/***/ (function(module, exports, __webpack_require__) { + + __webpack_require__(2); + var AWS = __webpack_require__(4); + var Service = AWS.Service; + var apiLoader = AWS.apiLoader; + + apiLoader.services['autoscalingplans'] = {}; + AWS.AutoScalingPlans = Service.defineService('autoscalingplans', ['2018-01-06']); + Object.defineProperty(apiLoader.services['autoscalingplans'], '2018-01-06', { + get: function get() { + var model = __webpack_require__(489); + model.paginators = __webpack_require__(490).pagination; + return model; + }, + enumerable: true, + configurable: true + }); + + module.exports = AWS.AutoScalingPlans; + + +/***/ }), +/* 489 */ +/***/ (function(module, exports) { + + module.exports = {"version":"2.0","metadata":{"apiVersion":"2018-01-06","endpointPrefix":"autoscaling","jsonVersion":"1.1","protocol":"json","serviceFullName":"AWS Auto Scaling Plans","serviceId":"Auto Scaling Plans","signatureVersion":"v4","signingName":"autoscaling-plans","targetPrefix":"AnyScaleScalingPlannerFrontendService","uid":"autoscaling-plans-2018-01-06"},"operations":{"CreateScalingPlan":{"input":{"type":"structure","required":["ScalingPlanName","ApplicationSource","ScalingInstructions"],"members":{"ScalingPlanName":{},"ApplicationSource":{"shape":"S3"},"ScalingInstructions":{"shape":"S5"}}},"output":{"type":"structure","required":["ScalingPlanVersion"],"members":{"ScalingPlanVersion":{"type":"long"}}}},"DeleteScalingPlan":{"input":{"type":"structure","required":["ScalingPlanName","ScalingPlanVersion"],"members":{"ScalingPlanName":{},"ScalingPlanVersion":{"type":"long"}}},"output":{"type":"structure","members":{}}},"DescribeScalingPlanResources":{"input":{"type":"structure","required":["ScalingPlanName","ScalingPlanVersion"],"members":{"ScalingPlanName":{},"ScalingPlanVersion":{"type":"long"},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"ScalingPlanResources":{"type":"list","member":{"type":"structure","required":["ScalingPlanName","ScalingPlanVersion","ServiceNamespace","ResourceId","ScalableDimension","ScalingStatusCode"],"members":{"ScalingPlanName":{},"ScalingPlanVersion":{"type":"long"},"ServiceNamespace":{},"ResourceId":{},"ScalableDimension":{},"ScalingPolicies":{"type":"list","member":{"type":"structure","required":["PolicyName","PolicyType"],"members":{"PolicyName":{},"PolicyType":{},"TargetTrackingConfiguration":{"shape":"Sc"}}}},"ScalingStatusCode":{},"ScalingStatusMessage":{}}}},"NextToken":{}}}},"DescribeScalingPlans":{"input":{"type":"structure","members":{"ScalingPlanNames":{"type":"list","member":{}},"ScalingPlanVersion":{"type":"long"},"ApplicationSources":{"type":"list","member":{"shape":"S3"}},"MaxResults":{"type":"integer"},"NextToken":{}}},"output":{"type":"structure","members":{"ScalingPlans":{"type":"list","member":{"type":"structure","required":["ScalingPlanName","ScalingPlanVersion","ApplicationSource","ScalingInstructions","StatusCode"],"members":{"ScalingPlanName":{},"ScalingPlanVersion":{"type":"long"},"ApplicationSource":{"shape":"S3"},"ScalingInstructions":{"shape":"S5"},"StatusCode":{},"StatusMessage":{},"CreationTime":{"type":"timestamp"}}}},"NextToken":{}}}}},"shapes":{"S3":{"type":"structure","members":{"CloudFormationStackARN":{}}},"S5":{"type":"list","member":{"type":"structure","required":["ServiceNamespace","ResourceId","ScalableDimension","MinCapacity","MaxCapacity","TargetTrackingConfigurations"],"members":{"ServiceNamespace":{},"ResourceId":{},"ScalableDimension":{},"MinCapacity":{"type":"integer"},"MaxCapacity":{"type":"integer"},"TargetTrackingConfigurations":{"type":"list","member":{"shape":"Sc"}}}}},"Sc":{"type":"structure","required":["TargetValue"],"members":{"PredefinedScalingMetricSpecification":{"type":"structure","required":["PredefinedScalingMetricType"],"members":{"PredefinedScalingMetricType":{},"ResourceLabel":{}}},"CustomizedScalingMetricSpecification":{"type":"structure","required":["MetricName","Namespace","Statistic"],"members":{"MetricName":{},"Namespace":{},"Dimensions":{"type":"list","member":{"type":"structure","required":["Name","Value"],"members":{"Name":{},"Value":{}}}},"Statistic":{},"Unit":{}}},"TargetValue":{"type":"double"},"DisableScaleIn":{"type":"boolean"},"ScaleOutCooldown":{"type":"integer"},"ScaleInCooldown":{"type":"integer"},"EstimatedInstanceWarmup":{"type":"integer"}}}}} + +/***/ }), +/* 490 */ +/***/ (function(module, exports) { + + module.exports = {"pagination":{}} + /***/ }) /******/ ]) }); diff --git a/dist/aws-sdk.js b/dist/aws-sdk.js index 7e70db583a..6923074674 100644 --- a/dist/aws-sdk.js +++ b/dist/aws-sdk.js @@ -1,4 +1,4 @@ -// AWS SDK for JavaScript v2.182.0 +// AWS SDK for JavaScript v2.183.0 // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o -1; + }; +} + +/** + * @api private + */ +var viewStrings = [ + '[object Int8Array]', + '[object Uint8Array]', + '[object Uint8ClampedArray]', + '[object Int16Array]', + '[object Uint16Array]', + '[object Int32Array]', + '[object Uint32Array]', + '[object Float32Array]', + '[object Float64Array]', + '[object DataView]', +]; + +/** + * @api private + */ +function isEmptyData(data) { + if (typeof data === 'string') { + return data.length === 0; + } + return data.byteLength === 0; +} + +/** + * @api private + */ +function convertToBuffer(data) { + if (typeof data === 'string') { + data = new Buffer(data, 'utf8'); + } + + if (ArrayBuffer.isView(data)) { + return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT); + } + + return new Uint8Array(data); +} + +module.exports = exports = { + isEmptyData: isEmptyData, + convertToBuffer: convertToBuffer, +} + +},{"buffer/":308}],232:[function(require,module,exports){ +var hashUtils = require('./browserHashUtils'); + +/** + * @api private + */ +function Hmac(hashCtor, secret) { + this.hash = new hashCtor(); + this.outer = new hashCtor(); + + var inner = bufferFromSecret(hashCtor, secret); + var outer = new Uint8Array(hashCtor.BLOCK_SIZE); + outer.set(inner); + + for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) { + inner[i] ^= 0x36; + outer[i] ^= 0x5c; + } + + this.hash.update(inner); + this.outer.update(outer); + + // Zero out the copied key buffer. + for (var i = 0; i < inner.byteLength; i++) { + inner[i] = 0; + } +} + +module.exports = exports = Hmac; + +Hmac.prototype.update = function (toHash) { + if (hashUtils.isEmptyData(toHash) || this.error) { + return this; + } + + try { + this.hash.update(hashUtils.convertToBuffer(toHash)); + } catch (e) { + this.error = e; + } + + return this; +}; + +Hmac.prototype.digest = function (encoding) { + if (!this.outer.finished) { + this.outer.update(this.hash.digest()); + } + + return this.outer.digest(encoding); +} + +function bufferFromSecret(hashCtor, secret) { + var input = hashUtils.convertToBuffer(secret); + if (input.byteLength > hashCtor.BLOCK_SIZE) { + var bufferHash = new hashCtor; + bufferHash.update(input); + input = bufferHash.digest(); + } + var buffer = new Uint8Array(hashCtor.BLOCK_SIZE); + buffer.set(input); + return buffer; +} + +},{"./browserHashUtils":231}],233:[function(require,module,exports){ +var hashUtils = require('./browserHashUtils'); +var Buffer = require('buffer/').Buffer; + +var BLOCK_SIZE = 64; + +var DIGEST_LENGTH = 16; + +var INIT = [ + 0x67452301, + 0xefcdab89, + 0x98badcfe, + 0x10325476, +]; + +/** + * @api private + */ +function Md5() { + this.state = [ + 0x67452301, + 0xefcdab89, + 0x98badcfe, + 0x10325476, + ]; + this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE)); + this.bufferLength = 0; + this.bytesHashed = 0; + this.finished = false; +} + +module.exports = exports = Md5; + +Md5.BLOCK_SIZE = BLOCK_SIZE; + +Md5.prototype.update = function (sourceData) { + if (hashUtils.isEmptyData(sourceData)) { + return this; + } else if (this.finished) { + throw new Error('Attempted to update an already finished hash.'); + } + + var data = hashUtils.convertToBuffer(sourceData); + var position = 0; + var byteLength = data.byteLength; + this.bytesHashed += byteLength; + while (byteLength > 0) { + this.buffer.setUint8(this.bufferLength++, data[position++]); + byteLength--; + if (this.bufferLength === BLOCK_SIZE) { + this.hashBuffer(); + this.bufferLength = 0; + } + } + + return this; +}; + +Md5.prototype.digest = function (encoding) { + if (!this.finished) { + var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed; + var bitsHashed = bytesHashed * 8; + buffer.setUint8(this.bufferLength++, 128); + // Ensure the final block has enough room for the hashed length + if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { + for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { + buffer.setUint8(i, 0); + } + this.hashBuffer(); + this.bufferLength = 0; + } + for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { + buffer.setUint8(i, 0); + } + buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true); + buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true); + this.hashBuffer(); + this.finished = true; + } + var out = new DataView(new ArrayBuffer(DIGEST_LENGTH)); + for (var i = 0; i < 4; i++) { + out.setUint32(i * 4, this.state[i], true); + } + var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength); + return encoding ? buff.toString(encoding) : buff; +}; + +Md5.prototype.hashBuffer = function () { + var _a = this, buffer = _a.buffer, state = _a.state; + var a = state[0], b = state[1], c = state[2], d = state[3]; + a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478); + d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756); + c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db); + b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee); + a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf); + d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a); + c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613); + b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501); + a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8); + d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af); + c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1); + b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be); + a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122); + d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193); + c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e); + b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821); + a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562); + d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340); + c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51); + b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa); + a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d); + d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453); + c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681); + b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8); + a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6); + d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6); + c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87); + b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed); + a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905); + d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8); + c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9); + b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a); + a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942); + d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681); + c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122); + b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c); + a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44); + d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9); + c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60); + b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70); + a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6); + d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa); + c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085); + b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05); + a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039); + d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5); + c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8); + b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665); + a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244); + d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97); + c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7); + b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039); + a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3); + d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92); + c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d); + b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1); + a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f); + d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0); + c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314); + b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1); + a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82); + d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235); + c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb); + b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391); + state[0] = (a + state[0]) & 0xFFFFFFFF; + state[1] = (b + state[1]) & 0xFFFFFFFF; + state[2] = (c + state[2]) & 0xFFFFFFFF; + state[3] = (d + state[3]) & 0xFFFFFFFF; +}; + +function cmn(q, a, b, x, s, t) { + a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF; + return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF; +} + +function ff(a, b, c, d, x, s, t) { + return cmn((b & c) | ((~b) & d), a, b, x, s, t); +} + +function gg(a, b, c, d, x, s, t) { + return cmn((b & d) | (c & (~d)), a, b, x, s, t); +} + +function hh(a, b, c, d, x, s, t) { + return cmn(b ^ c ^ d, a, b, x, s, t); +} + +function ii(a, b, c, d, x, s, t) { + return cmn(c ^ (b | (~d)), a, b, x, s, t); +} + +},{"./browserHashUtils":231,"buffer/":308}],234:[function(require,module,exports){ +var Buffer = require('buffer/').Buffer; +var hashUtils = require('./browserHashUtils'); + +var BLOCK_SIZE = 64; + +var DIGEST_LENGTH = 20; + +var KEY = new Uint32Array([ + 0x5a827999, + 0x6ed9eba1, + 0x8f1bbcdc | 0, + 0xca62c1d6 | 0 +]); + +var INIT = [ + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19, +]; + +var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; + +/** + * @api private + */ +function Sha1() { + this.h0 = 0x67452301; + this.h1 = 0xEFCDAB89; + this.h2 = 0x98BADCFE; + this.h3 = 0x10325476; + this.h4 = 0xC3D2E1F0; + // The first 64 bytes (16 words) is the data chunk + this.block = new Uint32Array(80); + this.offset = 0; + this.shift = 24; + this.totalLength = 0; +} + +module.exports = exports = Sha1; + +Sha1.BLOCK_SIZE = BLOCK_SIZE; + +Sha1.prototype.update = function (data) { + if (this.finished) { + throw new Error('Attempted to update an already finished hash.'); + } + + if (hashUtils.isEmptyData(data)) { + return this; + } + + data = hashUtils.convertToBuffer(data); + + var length = data.length; + this.totalLength += length * 8; + for (var i = 0; i < length; i++) { + this.write(data[i]); + } + + return this; +}; + +Sha1.prototype.write = function write(byte) { + this.block[this.offset] |= (byte & 0xff) << this.shift; + if (this.shift) { + this.shift -= 8; + } else { + this.offset++; + this.shift = 24; + } + + if (this.offset === 16) this.processBlock(); +}; + +Sha1.prototype.digest = function (encoding) { + // Pad + this.write(0x80); + if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) { + this.processBlock(); + } + this.offset = 14; + this.shift = 24; + + // 64-bit length big-endian + this.write(0x00); // numbers this big aren't accurate in javascript anyway + this.write(0x00); // ..So just hard-code to zero. + this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00); + this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00); + for (var s = 24; s >= 0; s -= 8) { + this.write(this.totalLength >> s); + } + // The value in state is little-endian rather than big-endian, so flip + // each word into a new Uint8Array + var out = new Buffer(DIGEST_LENGTH); + var outView = new DataView(out.buffer); + outView.setUint32(0, this.h0, false); + outView.setUint32(4, this.h1, false); + outView.setUint32(8, this.h2, false); + outView.setUint32(12, this.h3, false); + outView.setUint32(16, this.h4, false); + + return encoding ? out.toString(encoding) : out; +}; + +Sha1.prototype.processBlock = function processBlock() { + // Extend the sixteen 32-bit words into eighty 32-bit words: + for (var i = 16; i < 80; i++) { + var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16]; + this.block[i] = (w << 1) | (w >>> 31); + } + + // Initialize hash value for this chunk: + var a = this.h0; + var b = this.h1; + var c = this.h2; + var d = this.h3; + var e = this.h4; + var f, k; + + // Main loop: + for (i = 0; i < 80; i++) { + if (i < 20) { + f = d ^ (b & (c ^ d)); + k = 0x5A827999; + } + else if (i < 40) { + f = b ^ c ^ d; + k = 0x6ED9EBA1; + } + else if (i < 60) { + f = (b & c) | (d & (b | c)); + k = 0x8F1BBCDC; + } + else { + f = b ^ c ^ d; + k = 0xCA62C1D6; + } + var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0); + e = d; + d = c; + c = (b << 30 | b >>> 2); + b = a; + a = temp; + } + + // Add this chunk's hash to result so far: + this.h0 = (this.h0 + a) | 0; + this.h1 = (this.h1 + b) | 0; + this.h2 = (this.h2 + c) | 0; + this.h3 = (this.h3 + d) | 0; + this.h4 = (this.h4 + e) | 0; + + // The block is now reusable. + this.offset = 0; + for (i = 0; i < 16; i++) { + this.block[i] = 0; + } +} + +},{"./browserHashUtils":231,"buffer/":308}],235:[function(require,module,exports){ +var Buffer = require('buffer/').Buffer; +var hashUtils = require('./browserHashUtils'); + +var BLOCK_SIZE = 64; + +var DIGEST_LENGTH = 32; + +var KEY = new Uint32Array([ + 0x428a2f98, + 0x71374491, + 0xb5c0fbcf, + 0xe9b5dba5, + 0x3956c25b, + 0x59f111f1, + 0x923f82a4, + 0xab1c5ed5, + 0xd807aa98, + 0x12835b01, + 0x243185be, + 0x550c7dc3, + 0x72be5d74, + 0x80deb1fe, + 0x9bdc06a7, + 0xc19bf174, + 0xe49b69c1, + 0xefbe4786, + 0x0fc19dc6, + 0x240ca1cc, + 0x2de92c6f, + 0x4a7484aa, + 0x5cb0a9dc, + 0x76f988da, + 0x983e5152, + 0xa831c66d, + 0xb00327c8, + 0xbf597fc7, + 0xc6e00bf3, + 0xd5a79147, + 0x06ca6351, + 0x14292967, + 0x27b70a85, + 0x2e1b2138, + 0x4d2c6dfc, + 0x53380d13, + 0x650a7354, + 0x766a0abb, + 0x81c2c92e, + 0x92722c85, + 0xa2bfe8a1, + 0xa81a664b, + 0xc24b8b70, + 0xc76c51a3, + 0xd192e819, + 0xd6990624, + 0xf40e3585, + 0x106aa070, + 0x19a4c116, + 0x1e376c08, + 0x2748774c, + 0x34b0bcb5, + 0x391c0cb3, + 0x4ed8aa4a, + 0x5b9cca4f, + 0x682e6ff3, + 0x748f82ee, + 0x78a5636f, + 0x84c87814, + 0x8cc70208, + 0x90befffa, + 0xa4506ceb, + 0xbef9a3f7, + 0xc67178f2 +]); + +var INIT = [ + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19, +]; + +var MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1; + +/** + * @private + */ +function Sha256() { + this.state = [ + 0x6a09e667, + 0xbb67ae85, + 0x3c6ef372, + 0xa54ff53a, + 0x510e527f, + 0x9b05688c, + 0x1f83d9ab, + 0x5be0cd19, + ]; + this.temp = new Int32Array(64); + this.buffer = new Uint8Array(64); + this.bufferLength = 0; + this.bytesHashed = 0; + /** + * @private + */ + this.finished = false; +} + +module.exports = exports = Sha256; + +Sha256.BLOCK_SIZE = BLOCK_SIZE; + +Sha256.prototype.update = function (data) { + if (this.finished) { + throw new Error('Attempted to update an already finished hash.'); + } + + if (hashUtils.isEmptyData(data)) { + return this; + } + + data = hashUtils.convertToBuffer(data); + + var position = 0; + var byteLength = data.byteLength; + this.bytesHashed += byteLength; + if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) { + throw new Error('Cannot hash more than 2^53 - 1 bits'); + } + + while (byteLength > 0) { + this.buffer[this.bufferLength++] = data[position++]; + byteLength--; + if (this.bufferLength === BLOCK_SIZE) { + this.hashBuffer(); + this.bufferLength = 0; + } + } + + return this; +}; + +Sha256.prototype.digest = function (encoding) { + if (!this.finished) { + var bitsHashed = this.bytesHashed * 8; + var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength); + var undecoratedLength = this.bufferLength; + bufferView.setUint8(this.bufferLength++, 0x80); + // Ensure the final block has enough room for the hashed length + if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) { + for (var i = this.bufferLength; i < BLOCK_SIZE; i++) { + bufferView.setUint8(i, 0); + } + this.hashBuffer(); + this.bufferLength = 0; + } + for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) { + bufferView.setUint8(i, 0); + } + bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true); + bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed); + this.hashBuffer(); + this.finished = true; + } + // The value in state is little-endian rather than big-endian, so flip + // each word into a new Uint8Array + var out = new Buffer(DIGEST_LENGTH); + for (var i = 0; i < 8; i++) { + out[i * 4] = (this.state[i] >>> 24) & 0xff; + out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff; + out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff; + out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff; + } + return encoding ? out.toString(encoding) : out; +}; + +Sha256.prototype.hashBuffer = function () { + var _a = this, + buffer = _a.buffer, + state = _a.state; + var state0 = state[0], + state1 = state[1], + state2 = state[2], + state3 = state[3], + state4 = state[4], + state5 = state[5], + state6 = state[6], + state7 = state[7]; + for (var i = 0; i < BLOCK_SIZE; i++) { + if (i < 16) { + this.temp[i] = (((buffer[i * 4] & 0xff) << 24) | + ((buffer[(i * 4) + 1] & 0xff) << 16) | + ((buffer[(i * 4) + 2] & 0xff) << 8) | + (buffer[(i * 4) + 3] & 0xff)); + } + else { + var u = this.temp[i - 2]; + var t1_1 = (u >>> 17 | u << 15) ^ + (u >>> 19 | u << 13) ^ + (u >>> 10); + u = this.temp[i - 15]; + var t2_1 = (u >>> 7 | u << 25) ^ + (u >>> 18 | u << 14) ^ + (u >>> 3); + this.temp[i] = (t1_1 + this.temp[i - 7] | 0) + + (t2_1 + this.temp[i - 16] | 0); + } + var t1 = (((((state4 >>> 6 | state4 << 26) ^ + (state4 >>> 11 | state4 << 21) ^ + (state4 >>> 25 | state4 << 7)) + + ((state4 & state5) ^ (~state4 & state6))) | 0) + + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0; + var t2 = (((state0 >>> 2 | state0 << 30) ^ + (state0 >>> 13 | state0 << 19) ^ + (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0; + state7 = state6; + state6 = state5; + state5 = state4; + state4 = (state3 + t1) | 0; + state3 = state2; + state2 = state1; + state1 = state0; + state0 = (t1 + t2) | 0; + } + state[0] += state0; + state[1] += state1; + state[2] += state2; + state[3] += state3; + state[4] += state4; + state[5] += state5; + state[6] += state6; + state[7] += state7; +}; + +},{"./browserHashUtils":231,"buffer/":308}],236:[function(require,module,exports){ (function (process){ var util = require('./util'); // browser specific modules -util.crypto.lib = { - createHash: require('create-hash'), - createHmac: require('create-hmac'), - createSign: function() { - throw new Error('createSign is not implemented in the browser'); - } -} +util.crypto.lib = require('./browserCryptoLib'); util.Buffer = require('buffer/').Buffer; util.url = require('url/'); util.querystring = require('querystring/'); @@ -119841,7 +120639,7 @@ if (typeof process === 'undefined') { } }).call(this,require('_process')) -},{"./core":233,"./credentials":234,"./credentials/cognito_identity_credentials":235,"./credentials/credential_provider_chain":236,"./credentials/saml_credentials":237,"./credentials/temporary_credentials":238,"./credentials/web_identity_credentials":239,"./http/xhr":248,"./util":297,"./xml/browser_parser":298,"_process":458,"buffer/":302,"create-hash":305,"create-hmac":308,"querystring/":465,"url/":492}],231:[function(require,module,exports){ +},{"./browserCryptoLib":230,"./core":239,"./credentials":240,"./credentials/cognito_identity_credentials":241,"./credentials/credential_provider_chain":242,"./credentials/saml_credentials":243,"./credentials/temporary_credentials":244,"./credentials/web_identity_credentials":245,"./http/xhr":254,"./util":303,"./xml/browser_parser":304,"_process":453,"buffer/":308,"querystring/":460,"url/":461}],237:[function(require,module,exports){ var AWS = require('../core'), url = AWS.util.url, crypto = AWS.util.crypto.lib, @@ -120049,7 +120847,7 @@ AWS.CloudFront.Signer = inherit({ module.exports = AWS.CloudFront.Signer; -},{"../core":233}],232:[function(require,module,exports){ +},{"../core":239}],238:[function(require,module,exports){ var AWS = require('./core'); require('./credentials'); require('./credentials/credential_provider_chain'); @@ -120591,7 +121389,7 @@ AWS.Config = AWS.util.inherit({ */ AWS.config = new AWS.Config(); -},{"./core":233,"./credentials":234,"./credentials/credential_provider_chain":236}],233:[function(require,module,exports){ +},{"./core":239,"./credentials":240,"./credentials/credential_provider_chain":242}],239:[function(require,module,exports){ /** * The main AWS namespace */ @@ -120611,7 +121409,7 @@ AWS.util.update(AWS, { /** * @constant */ - VERSION: '2.182.0', + VERSION: '2.183.0', /** * @api private @@ -120691,7 +121489,7 @@ require('./param_validator'); */ AWS.events = new AWS.SequentialExecutor(); -},{"./api_loader":229,"./config":232,"./event_listeners":246,"./http":247,"./json/builder":249,"./json/parser":250,"./model/api":251,"./model/operation":253,"./model/paginator":254,"./model/resource_waiter":255,"./model/shape":256,"./param_validator":257,"./protocol/json":259,"./protocol/query":260,"./protocol/rest":261,"./protocol/rest_json":262,"./protocol/rest_xml":263,"./request":268,"./resource_waiter":269,"./response":270,"./sequential_executor":272,"./service":273,"./signers/request_signer":289,"./util":297,"./xml/builder":299}],234:[function(require,module,exports){ +},{"./api_loader":229,"./config":238,"./event_listeners":252,"./http":253,"./json/builder":255,"./json/parser":256,"./model/api":257,"./model/operation":259,"./model/paginator":260,"./model/resource_waiter":261,"./model/shape":262,"./param_validator":263,"./protocol/json":265,"./protocol/query":266,"./protocol/rest":267,"./protocol/rest_json":268,"./protocol/rest_xml":269,"./request":274,"./resource_waiter":275,"./response":276,"./sequential_executor":278,"./service":279,"./signers/request_signer":295,"./util":303,"./xml/builder":305}],240:[function(require,module,exports){ var AWS = require('./core'); /** @@ -120907,7 +121705,7 @@ AWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() { AWS.util.addPromises(AWS.Credentials); -},{"./core":233}],235:[function(require,module,exports){ +},{"./core":239}],241:[function(require,module,exports){ var AWS = require('../core'); var CognitoIdentity = require('../../clients/cognitoidentity'); var STS = require('../../clients/sts'); @@ -121286,7 +122084,7 @@ AWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, { })() }); -},{"../../clients/cognitoidentity":179,"../../clients/sts":226,"../core":233}],236:[function(require,module,exports){ +},{"../../clients/cognitoidentity":179,"../../clients/sts":226,"../core":239}],242:[function(require,module,exports){ var AWS = require('../core'); /** @@ -121461,7 +122259,7 @@ AWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFro AWS.util.addPromises(AWS.CredentialProviderChain); -},{"../core":233}],237:[function(require,module,exports){ +},{"../core":239}],243:[function(require,module,exports){ var AWS = require('../core'); var STS = require('../../clients/sts'); @@ -121552,7 +122350,7 @@ AWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, { }); -},{"../../clients/sts":226,"../core":233}],238:[function(require,module,exports){ +},{"../../clients/sts":226,"../core":239}],244:[function(require,module,exports){ var AWS = require('../core'); var STS = require('../../clients/sts'); @@ -121674,7 +122472,7 @@ AWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, { }); -},{"../../clients/sts":226,"../core":233}],239:[function(require,module,exports){ +},{"../../clients/sts":226,"../core":239}],245:[function(require,module,exports){ var AWS = require('../core'); var STS = require('../../clients/sts'); @@ -121786,7 +122584,7 @@ AWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, { }); -},{"../../clients/sts":226,"../core":233}],240:[function(require,module,exports){ +},{"../../clients/sts":226,"../core":239}],246:[function(require,module,exports){ var AWS = require('../core'); var util = AWS.util; var typeOf = require('./types').typeOf; @@ -122079,7 +122877,7 @@ function filterEmptySetValues(set) { module.exports = AWS.DynamoDB.Converter; -},{"../core":233,"./numberValue":242,"./set":243,"./types":245}],241:[function(require,module,exports){ +},{"../core":239,"./numberValue":248,"./set":249,"./types":251}],247:[function(require,module,exports){ var AWS = require('../core'); var Translator = require('./translator'); var DynamoDBSet = require('./set'); @@ -122604,7 +123402,7 @@ AWS.DynamoDB.DocumentClient = AWS.util.inherit({ module.exports = AWS.DynamoDB.DocumentClient; -},{"../core":233,"./set":243,"./translator":244}],242:[function(require,module,exports){ +},{"../core":239,"./set":249,"./translator":250}],248:[function(require,module,exports){ var util = require('../core').util; /** @@ -122644,10 +123442,13 @@ var DynamoDBNumberValue = util.inherit({ }); module.exports = DynamoDBNumberValue; -},{"../core":233}],243:[function(require,module,exports){ +},{"../core":239}],249:[function(require,module,exports){ var util = require('../core').util; var typeOf = require('./types').typeOf; +/** + * @api private + */ var memberTypeToSetType = { 'String': 'String', 'Number': 'Number', @@ -122702,7 +123503,7 @@ var DynamoDBSet = util.inherit({ module.exports = DynamoDBSet; -},{"../core":233,"./types":245}],244:[function(require,module,exports){ +},{"../core":239,"./types":251}],250:[function(require,module,exports){ var util = require('../core').util; var convert = require('./converter'); @@ -122788,7 +123589,7 @@ Translator.prototype.translateScalar = function(value, shape) { module.exports = Translator; -},{"../core":233,"./converter":240}],245:[function(require,module,exports){ +},{"../core":239,"./converter":246}],251:[function(require,module,exports){ var util = require('../core').util; function typeOf(data) { @@ -122836,7 +123637,7 @@ module.exports = { isBinary: isBinary }; -},{"../core":233}],246:[function(require,module,exports){ +},{"../core":239}],252:[function(require,module,exports){ var AWS = require('./core'); var SequentialExecutor = require('./sequential_executor'); /** @@ -123415,7 +124216,7 @@ AWS.EventListeners = { }) }; -},{"./core":233,"./protocol/json":259,"./protocol/query":260,"./protocol/rest":261,"./protocol/rest_json":262,"./protocol/rest_xml":263,"./sequential_executor":272,"util":496}],247:[function(require,module,exports){ +},{"./core":239,"./protocol/json":265,"./protocol/query":266,"./protocol/rest":267,"./protocol/rest_json":268,"./protocol/rest_xml":269,"./sequential_executor":278,"util":464}],253:[function(require,module,exports){ var AWS = require('./core'); var inherit = AWS.util.inherit; @@ -123643,7 +124444,7 @@ AWS.HttpClient.getInstance = function getInstance() { return this.singleton; }; -},{"./core":233}],248:[function(require,module,exports){ +},{"./core":239}],254:[function(require,module,exports){ var AWS = require('../core'); var EventEmitter = require('events').EventEmitter; require('../http'); @@ -123781,7 +124582,7 @@ AWS.HttpClient.prototype = AWS.XHRClient.prototype; */ AWS.HttpClient.streamsApiVersion = 1; -},{"../core":233,"../http":247,"events":310}],249:[function(require,module,exports){ +},{"../core":239,"../http":253,"events":309}],255:[function(require,module,exports){ var util = require('../util'); function JsonBuilder() { } @@ -123839,7 +124640,7 @@ function translateScalar(value, shape) { module.exports = JsonBuilder; -},{"../util":297}],250:[function(require,module,exports){ +},{"../util":303}],256:[function(require,module,exports){ var util = require('../util'); function JsonParser() { } @@ -123905,7 +124706,7 @@ function translateScalar(value, shape) { module.exports = JsonParser; -},{"../util":297}],251:[function(require,module,exports){ +},{"../util":303}],257:[function(require,module,exports){ var Collection = require('./collection'); var Operation = require('./operation'); var Shape = require('./shape'); @@ -123970,7 +124771,7 @@ function Api(api, options) { module.exports = Api; -},{"../util":297,"./collection":252,"./operation":253,"./paginator":254,"./resource_waiter":255,"./shape":256}],252:[function(require,module,exports){ +},{"../util":303,"./collection":258,"./operation":259,"./paginator":260,"./resource_waiter":261,"./shape":262}],258:[function(require,module,exports){ var memoizedProperty = require('../util').memoizedProperty; function memoize(name, value, fn, nameTr) { @@ -123992,7 +124793,7 @@ function Collection(iterable, options, fn, nameTr) { module.exports = Collection; -},{"../util":297}],253:[function(require,module,exports){ +},{"../util":303}],259:[function(require,module,exports){ var Shape = require('./shape'); var util = require('../util'); @@ -124068,7 +124869,7 @@ function Operation(name, operation, options) { module.exports = Operation; -},{"../util":297,"./shape":256}],254:[function(require,module,exports){ +},{"../util":303,"./shape":262}],260:[function(require,module,exports){ var property = require('../util').property; function Paginator(name, paginator) { @@ -124081,7 +124882,7 @@ function Paginator(name, paginator) { module.exports = Paginator; -},{"../util":297}],255:[function(require,module,exports){ +},{"../util":303}],261:[function(require,module,exports){ var util = require('../util'); var property = util.property; @@ -124113,7 +124914,7 @@ function ResourceWaiter(name, waiter, options) { module.exports = ResourceWaiter; -},{"../util":297}],256:[function(require,module,exports){ +},{"../util":303}],262:[function(require,module,exports){ var Collection = require('./collection'); var util = require('../util'); @@ -124468,7 +125269,7 @@ Shape.shapes = { module.exports = Shape; -},{"../util":297,"./collection":252}],257:[function(require,module,exports){ +},{"../util":303,"./collection":258}],263:[function(require,module,exports){ var AWS = require('./core'); /** @@ -124728,7 +125529,7 @@ AWS.ParamValidator = AWS.util.inherit({ } }); -},{"./core":233}],258:[function(require,module,exports){ +},{"./core":239}],264:[function(require,module,exports){ var AWS = require('../core'); var rest = AWS.Protocol.Rest; @@ -124845,7 +125646,7 @@ AWS.Polly.Presigner = AWS.util.inherit({ } }); -},{"../core":233}],259:[function(require,module,exports){ +},{"../core":239}],265:[function(require,module,exports){ var util = require('../util'); var JsonBuilder = require('../json/builder'); var JsonParser = require('../json/parser'); @@ -124914,7 +125715,7 @@ module.exports = { extractData: extractData }; -},{"../json/builder":249,"../json/parser":250,"../util":297}],260:[function(require,module,exports){ +},{"../json/builder":255,"../json/parser":256,"../util":303}],266:[function(require,module,exports){ var AWS = require('../core'); var util = require('../util'); var QueryParamSerializer = require('../query/query_param_serializer'); @@ -125020,7 +125821,7 @@ module.exports = { extractData: extractData }; -},{"../core":233,"../model/shape":256,"../query/query_param_serializer":264,"../util":297}],261:[function(require,module,exports){ +},{"../core":239,"../model/shape":262,"../query/query_param_serializer":270,"../util":303}],267:[function(require,module,exports){ var util = require('../util'); function populateMethod(req) { @@ -125165,7 +125966,7 @@ module.exports = { generateURI: generateURI }; -},{"../util":297}],262:[function(require,module,exports){ +},{"../util":303}],268:[function(require,module,exports){ var util = require('../util'); var Rest = require('./rest'); var Json = require('./json'); @@ -125249,7 +126050,7 @@ module.exports = { extractData: extractData }; -},{"../json/builder":249,"../json/parser":250,"../util":297,"./json":259,"./rest":261}],263:[function(require,module,exports){ +},{"../json/builder":255,"../json/parser":256,"../util":303,"./json":265,"./rest":267}],269:[function(require,module,exports){ var AWS = require('../core'); var util = require('../util'); var Rest = require('./rest'); @@ -125347,7 +126148,7 @@ module.exports = { extractData: extractData }; -},{"../core":233,"../util":297,"./rest":261}],264:[function(require,module,exports){ +},{"../core":239,"../util":303,"./rest":267}],270:[function(require,module,exports){ var util = require('../util'); function QueryParamSerializer() { @@ -125430,7 +126231,7 @@ function serializeMember(name, value, rules, fn) { module.exports = QueryParamSerializer; -},{"../util":297}],265:[function(require,module,exports){ +},{"../util":303}],271:[function(require,module,exports){ var AWS = require('../core'); /** @@ -125648,7 +126449,7 @@ AWS.RDS.Signer = AWS.util.inherit({ return true; } }); -},{"../core":233}],266:[function(require,module,exports){ +},{"../core":239}],272:[function(require,module,exports){ var util = require('./util'); var regionConfig = require('./region_config_data.json'); @@ -125719,7 +126520,7 @@ function configureEndpoint(service) { module.exports = configureEndpoint; -},{"./region_config_data.json":267,"./util":297}],267:[function(require,module,exports){ +},{"./region_config_data.json":273,"./util":303}],273:[function(require,module,exports){ module.exports={ "rules": { "*/*": { @@ -125784,7 +126585,7 @@ module.exports={ } } -},{}],268:[function(require,module,exports){ +},{}],274:[function(require,module,exports){ (function (process){ var AWS = require('./core'); var AcceptorStateMachine = require('./state_machine'); @@ -126593,7 +127394,7 @@ AWS.util.addPromises(AWS.Request); AWS.util.mixin(AWS.Request, AWS.SequentialExecutor); }).call(this,require('_process')) -},{"./core":233,"./state_machine":296,"_process":458,"jmespath":316}],269:[function(require,module,exports){ +},{"./core":239,"./state_machine":302,"_process":453,"jmespath":312}],275:[function(require,module,exports){ /** * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved. * @@ -126799,7 +127600,7 @@ AWS.ResourceWaiter = inherit({ } }); -},{"./core":233,"jmespath":316}],270:[function(require,module,exports){ +},{"./core":239,"jmespath":312}],276:[function(require,module,exports){ var AWS = require('./core'); var inherit = AWS.util.inherit; var jmespath = require('jmespath'); @@ -127002,7 +127803,7 @@ AWS.Response = inherit({ }); -},{"./core":233,"jmespath":316}],271:[function(require,module,exports){ +},{"./core":239,"jmespath":312}],277:[function(require,module,exports){ var AWS = require('../core'); var byteLength = AWS.util.string.byteLength; var Buffer = AWS.util.Buffer; @@ -127714,7 +128515,7 @@ AWS.util.addPromises(AWS.S3.ManagedUpload); module.exports = AWS.S3.ManagedUpload; -},{"../core":233}],272:[function(require,module,exports){ +},{"../core":239}],278:[function(require,module,exports){ var AWS = require('./core'); /** @@ -127947,7 +128748,7 @@ AWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype. module.exports = AWS.SequentialExecutor; -},{"./core":233}],273:[function(require,module,exports){ +},{"./core":239}],279:[function(require,module,exports){ var AWS = require('./core'); var Api = require('./model/api'); var regionConfig = require('./region_config'); @@ -128557,7 +129358,7 @@ AWS.util.update(AWS.Service, { module.exports = AWS.Service; -},{"./core":233,"./model/api":251,"./region_config":266}],274:[function(require,module,exports){ +},{"./core":239,"./model/api":257,"./region_config":272}],280:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.APIGateway.prototype, { @@ -128588,7 +129389,7 @@ AWS.util.update(AWS.APIGateway.prototype, { }); -},{"../core":233}],275:[function(require,module,exports){ +},{"../core":239}],281:[function(require,module,exports){ var AWS = require('../core'); // pull in CloudFront signer @@ -128602,7 +129403,7 @@ AWS.util.update(AWS.CloudFront.prototype, { }); -},{"../cloudfront/signer":231,"../core":233}],276:[function(require,module,exports){ +},{"../cloudfront/signer":237,"../core":239}],282:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.CognitoIdentity.prototype, { @@ -128619,7 +129420,7 @@ AWS.util.update(AWS.CognitoIdentity.prototype, { } }); -},{"../core":233}],277:[function(require,module,exports){ +},{"../core":239}],283:[function(require,module,exports){ var AWS = require('../core'); require('../dynamodb/document_client'); @@ -128679,7 +129480,7 @@ AWS.util.update(AWS.DynamoDB.prototype, { } }); -},{"../core":233,"../dynamodb/document_client":241}],278:[function(require,module,exports){ +},{"../core":239,"../dynamodb/document_client":247}],284:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.EC2.prototype, { @@ -128743,7 +129544,7 @@ AWS.util.update(AWS.EC2.prototype, { } }); -},{"../core":233}],279:[function(require,module,exports){ +},{"../core":239}],285:[function(require,module,exports){ var AWS = require('../core'); /** @@ -128845,7 +129646,7 @@ AWS.util.update(AWS.IotData.prototype, { }); -},{"../core":233}],280:[function(require,module,exports){ +},{"../core":239}],286:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.Lambda.prototype, { @@ -128860,7 +129661,7 @@ AWS.util.update(AWS.Lambda.prototype, { }); -},{"../core":233}],281:[function(require,module,exports){ +},{"../core":239}],287:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.MachineLearning.prototype, { @@ -128886,9 +129687,9 @@ AWS.util.update(AWS.MachineLearning.prototype, { }); -},{"../core":233}],282:[function(require,module,exports){ +},{"../core":239}],288:[function(require,module,exports){ require('../polly/presigner'); -},{"../polly/presigner":258}],283:[function(require,module,exports){ +},{"../polly/presigner":264}],289:[function(require,module,exports){ var AWS = require('../core'); require('../rds/signer'); /** @@ -128950,7 +129751,7 @@ require('../rds/signer'); }); } }); -},{"../core":233,"../rds/signer":265}],284:[function(require,module,exports){ +},{"../core":239,"../rds/signer":271}],290:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.Route53.prototype, { @@ -128984,7 +129785,7 @@ AWS.util.update(AWS.Route53.prototype, { } }); -},{"../core":233}],285:[function(require,module,exports){ +},{"../core":239}],291:[function(require,module,exports){ var AWS = require('../core'); var v4Credentials = require('../signers/v4_credentials'); @@ -130056,7 +130857,7 @@ AWS.util.update(AWS.S3.prototype, { } }); -},{"../core":233,"../s3/managed_upload":271,"../signers/v4_credentials":295}],286:[function(require,module,exports){ +},{"../core":239,"../s3/managed_upload":277,"../signers/v4_credentials":301}],292:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.SQS.prototype, { @@ -130189,7 +130990,7 @@ AWS.util.update(AWS.SQS.prototype, { } }); -},{"../core":233}],287:[function(require,module,exports){ +},{"../core":239}],293:[function(require,module,exports){ var AWS = require('../core'); AWS.util.update(AWS.STS.prototype, { @@ -130238,7 +131039,7 @@ AWS.util.update(AWS.STS.prototype, { } }); -},{"../core":233}],288:[function(require,module,exports){ +},{"../core":239}],294:[function(require,module,exports){ var AWS = require('../core'); var inherit = AWS.util.inherit; @@ -130356,7 +131157,7 @@ AWS.Signers.Presign = inherit({ module.exports = AWS.Signers.Presign; -},{"../core":233}],289:[function(require,module,exports){ +},{"../core":239}],295:[function(require,module,exports){ var AWS = require('../core'); var inherit = AWS.util.inherit; @@ -130396,7 +131197,7 @@ require('./v4'); require('./s3'); require('./presign'); -},{"../core":233,"./presign":288,"./s3":290,"./v2":291,"./v3":292,"./v3https":293,"./v4":294}],290:[function(require,module,exports){ +},{"../core":239,"./presign":294,"./s3":296,"./v2":297,"./v3":298,"./v3https":299,"./v4":300}],296:[function(require,module,exports){ var AWS = require('../core'); var inherit = AWS.util.inherit; @@ -130570,7 +131371,7 @@ AWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, { module.exports = AWS.Signers.S3; -},{"../core":233}],291:[function(require,module,exports){ +},{"../core":239}],297:[function(require,module,exports){ var AWS = require('../core'); var inherit = AWS.util.inherit; @@ -130617,7 +131418,7 @@ AWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, { module.exports = AWS.Signers.V2; -},{"../core":233}],292:[function(require,module,exports){ +},{"../core":239}],298:[function(require,module,exports){ var AWS = require('../core'); var inherit = AWS.util.inherit; @@ -130693,7 +131494,7 @@ AWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, { module.exports = AWS.Signers.V3; -},{"../core":233}],293:[function(require,module,exports){ +},{"../core":239}],299:[function(require,module,exports){ var AWS = require('../core'); var inherit = AWS.util.inherit; @@ -130717,7 +131518,7 @@ AWS.Signers.V3Https = inherit(AWS.Signers.V3, { module.exports = AWS.Signers.V3Https; -},{"../core":233,"./v3":292}],294:[function(require,module,exports){ +},{"../core":239,"./v3":298}],300:[function(require,module,exports){ var AWS = require('../core'); var v4Credentials = require('./v4_credentials'); var inherit = AWS.util.inherit; @@ -130930,7 +131731,7 @@ AWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, { module.exports = AWS.Signers.V4; -},{"../core":233,"./v4_credentials":295}],295:[function(require,module,exports){ +},{"../core":239,"./v4_credentials":301}],301:[function(require,module,exports){ var AWS = require('../core'); /** @@ -131029,7 +131830,7 @@ module.exports = { } }; -},{"../core":233}],296:[function(require,module,exports){ +},{"../core":239}],302:[function(require,module,exports){ function AcceptorStateMachine(states, state) { this.currentState = state || null; this.states = states || {}; @@ -131073,7 +131874,7 @@ AcceptorStateMachine.prototype.addState = function addState(name, acceptState, f module.exports = AcceptorStateMachine; -},{}],297:[function(require,module,exports){ +},{}],303:[function(require,module,exports){ (function (process){ /* eslint guard-for-in:0 */ var AWS; @@ -132009,7 +132810,7 @@ var util = { module.exports = util; }).call(this,require('_process')) -},{"../apis/metadata.json":107,"./core":233,"_process":458,"fs":301,"uuid":497}],298:[function(require,module,exports){ +},{"../apis/metadata.json":107,"./core":239,"_process":453,"fs":307,"uuid":465}],304:[function(require,module,exports){ var util = require('../util'); var Shape = require('../model/shape'); @@ -132197,7 +132998,7 @@ function parseUnknown(xml) { module.exports = DomXmlParser; -},{"../model/shape":256,"../util":297}],299:[function(require,module,exports){ +},{"../model/shape":262,"../util":303}],305:[function(require,module,exports){ var util = require('../util'); var builder = require('xmlbuilder'); @@ -132285,7 +133086,7 @@ function applyNamespaces(xml, shape) { module.exports = XmlBuilder; -},{"../util":297,"xmlbuilder":518}],300:[function(require,module,exports){ +},{"../util":303,"xmlbuilder":486}],306:[function(require,module,exports){ 'use strict' exports.byteLength = byteLength @@ -132401,9 +133202,9 @@ function fromByteArray (uint8) { return parts.join('') } -},{}],301:[function(require,module,exports){ +},{}],307:[function(require,module,exports){ -},{}],302:[function(require,module,exports){ +},{}],308:[function(require,module,exports){ (function (global){ /*! * The buffer module from node.js, for the browser. @@ -134196,574 +134997,7 @@ function isnan (val) { } }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"base64-js":300,"ieee754":312,"isarray":315}],303:[function(require,module,exports){ -var Buffer = require('safe-buffer').Buffer -var Transform = require('stream').Transform -var StringDecoder = require('string_decoder').StringDecoder -var inherits = require('inherits') - -function CipherBase (hashMode) { - Transform.call(this) - this.hashMode = typeof hashMode === 'string' - if (this.hashMode) { - this[hashMode] = this._finalOrDigest - } else { - this.final = this._finalOrDigest - } - if (this._final) { - this.__final = this._final - this._final = null - } - this._decoder = null - this._encoding = null -} -inherits(CipherBase, Transform) - -CipherBase.prototype.update = function (data, inputEnc, outputEnc) { - if (typeof data === 'string') { - data = Buffer.from(data, inputEnc) - } - - var outData = this._update(data) - if (this.hashMode) return this - - if (outputEnc) { - outData = this._toString(outData, outputEnc) - } - - return outData -} - -CipherBase.prototype.setAutoPadding = function () {} -CipherBase.prototype.getAuthTag = function () { - throw new Error('trying to get auth tag in unsupported state') -} - -CipherBase.prototype.setAuthTag = function () { - throw new Error('trying to set auth tag in unsupported state') -} - -CipherBase.prototype.setAAD = function () { - throw new Error('trying to set aad in unsupported state') -} - -CipherBase.prototype._transform = function (data, _, next) { - var err - try { - if (this.hashMode) { - this._update(data) - } else { - this.push(this._update(data)) - } - } catch (e) { - err = e - } finally { - next(err) - } -} -CipherBase.prototype._flush = function (done) { - var err - try { - this.push(this.__final()) - } catch (e) { - err = e - } - - done(err) -} -CipherBase.prototype._finalOrDigest = function (outputEnc) { - var outData = this.__final() || Buffer.alloc(0) - if (outputEnc) { - outData = this._toString(outData, outputEnc, true) - } - return outData -} - -CipherBase.prototype._toString = function (value, enc, fin) { - if (!this._decoder) { - this._decoder = new StringDecoder(enc) - this._encoding = enc - } - - if (this._encoding !== enc) throw new Error('can\'t switch encodings') - - var out = this._decoder.write(value) - if (fin) { - out += this._decoder.end() - } - - return out -} - -module.exports = CipherBase - -},{"inherits":313,"safe-buffer":481,"stream":490,"string_decoder":491}],304:[function(require,module,exports){ -(function (Buffer){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} - -}).call(this,{"isBuffer":require("../../is-buffer/index.js")}) -},{"../../is-buffer/index.js":314}],305:[function(require,module,exports){ -(function (Buffer){ -'use strict' -var inherits = require('inherits') -var md5 = require('./md5') -var RIPEMD160 = require('ripemd160') -var sha = require('sha.js') - -var Base = require('cipher-base') - -function HashNoConstructor (hash) { - Base.call(this, 'digest') - - this._hash = hash - this.buffers = [] -} - -inherits(HashNoConstructor, Base) - -HashNoConstructor.prototype._update = function (data) { - this.buffers.push(data) -} - -HashNoConstructor.prototype._final = function () { - var buf = Buffer.concat(this.buffers) - var r = this._hash(buf) - this.buffers = null - - return r -} - -function Hash (hash) { - Base.call(this, 'digest') - - this._hash = hash -} - -inherits(Hash, Base) - -Hash.prototype._update = function (data) { - this._hash.update(data) -} - -Hash.prototype._final = function () { - return this._hash.digest() -} - -module.exports = function createHash (alg) { - alg = alg.toLowerCase() - if (alg === 'md5') return new HashNoConstructor(md5) - if (alg === 'rmd160' || alg === 'ripemd160') return new Hash(new RIPEMD160()) - - return new Hash(sha(alg)) -} - -}).call(this,require("buffer").Buffer) -},{"./md5":307,"buffer":302,"cipher-base":303,"inherits":313,"ripemd160":480,"sha.js":483}],306:[function(require,module,exports){ -(function (Buffer){ -'use strict' -var intSize = 4 -var zeroBuffer = new Buffer(intSize) -zeroBuffer.fill(0) - -var charSize = 8 -var hashSize = 16 - -function toArray (buf) { - if ((buf.length % intSize) !== 0) { - var len = buf.length + (intSize - (buf.length % intSize)) - buf = Buffer.concat([buf, zeroBuffer], len) - } - - var arr = new Array(buf.length >>> 2) - for (var i = 0, j = 0; i < buf.length; i += intSize, j++) { - arr[j] = buf.readInt32LE(i) - } - - return arr -} - -module.exports = function hash (buf, fn) { - var arr = fn(toArray(buf), buf.length * charSize) - buf = new Buffer(hashSize) - for (var i = 0; i < arr.length; i++) { - buf.writeInt32LE(arr[i], i << 2, true) - } - return buf -} - -}).call(this,require("buffer").Buffer) -},{"buffer":302}],307:[function(require,module,exports){ -'use strict' -/* - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ - -var makeHash = require('./make-hash') - -/* - * Calculate the MD5 of an array of little-endian words, and a bit length - */ -function core_md5 (x, len) { - /* append padding */ - x[len >> 5] |= 0x80 << ((len) % 32) - x[(((len + 64) >>> 9) << 4) + 14] = len - - var a = 1732584193 - var b = -271733879 - var c = -1732584194 - var d = 271733878 - - for (var i = 0; i < x.length; i += 16) { - var olda = a - var oldb = b - var oldc = c - var oldd = d - - a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936) - d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586) - c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819) - b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330) - a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897) - d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426) - c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341) - b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983) - a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416) - d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417) - c = md5_ff(c, d, a, b, x[i + 10], 17, -42063) - b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162) - a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682) - d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101) - c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290) - b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329) - - a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510) - d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632) - c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713) - b = md5_gg(b, c, d, a, x[i + 0], 20, -373897302) - a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691) - d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083) - c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335) - b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848) - a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438) - d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690) - c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961) - b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501) - a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467) - d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784) - c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473) - b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734) - - a = md5_hh(a, b, c, d, x[i + 5], 4, -378558) - d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463) - c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562) - b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556) - a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060) - d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353) - c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632) - b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640) - a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174) - d = md5_hh(d, a, b, c, x[i + 0], 11, -358537222) - c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979) - b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189) - a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487) - d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835) - c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520) - b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651) - - a = md5_ii(a, b, c, d, x[i + 0], 6, -198630844) - d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415) - c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905) - b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055) - a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571) - d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606) - c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523) - b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799) - a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359) - d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744) - c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380) - b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649) - a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070) - d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379) - c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259) - b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551) - - a = safe_add(a, olda) - b = safe_add(b, oldb) - c = safe_add(c, oldc) - d = safe_add(d, oldd) - } - - return [a, b, c, d] -} - -/* - * These functions implement the four basic operations the algorithm uses. - */ -function md5_cmn (q, a, b, x, s, t) { - return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) -} - -function md5_ff (a, b, c, d, x, s, t) { - return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t) -} - -function md5_gg (a, b, c, d, x, s, t) { - return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t) -} - -function md5_hh (a, b, c, d, x, s, t) { - return md5_cmn(b ^ c ^ d, a, b, x, s, t) -} - -function md5_ii (a, b, c, d, x, s, t) { - return md5_cmn(c ^ (b | (~d)), a, b, x, s, t) -} - -/* - * Add integers, wrapping at 2^32. This uses 16-bit operations internally - * to work around bugs in some JS interpreters. - */ -function safe_add (x, y) { - var lsw = (x & 0xFFFF) + (y & 0xFFFF) - var msw = (x >> 16) + (y >> 16) + (lsw >> 16) - return (msw << 16) | (lsw & 0xFFFF) -} - -/* - * Bitwise rotate a 32-bit number to the left. - */ -function bit_rol (num, cnt) { - return (num << cnt) | (num >>> (32 - cnt)) -} - -module.exports = function md5 (buf) { - return makeHash(buf, core_md5) -} - -},{"./make-hash":306}],308:[function(require,module,exports){ -'use strict' -var inherits = require('inherits') -var Legacy = require('./legacy') -var Base = require('cipher-base') -var Buffer = require('safe-buffer').Buffer -var md5 = require('create-hash/md5') -var RIPEMD160 = require('ripemd160') - -var sha = require('sha.js') - -var ZEROS = Buffer.alloc(128) - -function Hmac (alg, key) { - Base.call(this, 'digest') - if (typeof key === 'string') { - key = Buffer.from(key) - } - - var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64 - - this._alg = alg - this._key = key - if (key.length > blocksize) { - var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) - key = hash.update(key).digest() - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - - var ipad = this._ipad = Buffer.allocUnsafe(blocksize) - var opad = this._opad = Buffer.allocUnsafe(blocksize) - - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 0x36 - opad[i] = key[i] ^ 0x5C - } - this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg) - this._hash.update(ipad) -} - -inherits(Hmac, Base) - -Hmac.prototype._update = function (data) { - this._hash.update(data) -} - -Hmac.prototype._final = function () { - var h = this._hash.digest() - var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg) - return hash.update(this._opad).update(h).digest() -} - -module.exports = function createHmac (alg, key) { - alg = alg.toLowerCase() - if (alg === 'rmd160' || alg === 'ripemd160') { - return new Hmac('rmd160', key) - } - if (alg === 'md5') { - return new Legacy(md5, key) - } - return new Hmac(alg, key) -} - -},{"./legacy":309,"cipher-base":303,"create-hash/md5":307,"inherits":313,"ripemd160":480,"safe-buffer":481,"sha.js":483}],309:[function(require,module,exports){ -'use strict' -var inherits = require('inherits') -var Buffer = require('safe-buffer').Buffer - -var Base = require('cipher-base') - -var ZEROS = Buffer.alloc(128) -var blocksize = 64 - -function Hmac (alg, key) { - Base.call(this, 'digest') - if (typeof key === 'string') { - key = Buffer.from(key) - } - - this._alg = alg - this._key = key - - if (key.length > blocksize) { - key = alg(key) - } else if (key.length < blocksize) { - key = Buffer.concat([key, ZEROS], blocksize) - } - - var ipad = this._ipad = Buffer.allocUnsafe(blocksize) - var opad = this._opad = Buffer.allocUnsafe(blocksize) - - for (var i = 0; i < blocksize; i++) { - ipad[i] = key[i] ^ 0x36 - opad[i] = key[i] ^ 0x5C - } - - this._hash = [ipad] -} - -inherits(Hmac, Base) - -Hmac.prototype._update = function (data) { - this._hash.push(data) -} - -Hmac.prototype._final = function () { - var h = this._alg(Buffer.concat(this._hash)) - return this._alg(Buffer.concat([this._opad, h])) -} -module.exports = Hmac - -},{"cipher-base":303,"inherits":313,"safe-buffer":481}],310:[function(require,module,exports){ +},{"base64-js":306,"ieee754":310,"isarray":311}],309:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -135067,94 +135301,7 @@ function isUndefined(arg) { return arg === void 0; } -},{}],311:[function(require,module,exports){ -(function (Buffer){ -'use strict' -var Transform = require('stream').Transform -var inherits = require('inherits') - -function HashBase (blockSize) { - Transform.call(this) - - this._block = new Buffer(blockSize) - this._blockSize = blockSize - this._blockOffset = 0 - this._length = [0, 0, 0, 0] - - this._finalized = false -} - -inherits(HashBase, Transform) - -HashBase.prototype._transform = function (chunk, encoding, callback) { - var error = null - try { - if (encoding !== 'buffer') chunk = new Buffer(chunk, encoding) - this.update(chunk) - } catch (err) { - error = err - } - - callback(error) -} - -HashBase.prototype._flush = function (callback) { - var error = null - try { - this.push(this._digest()) - } catch (err) { - error = err - } - - callback(error) -} - -HashBase.prototype.update = function (data, encoding) { - if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer') - if (this._finalized) throw new Error('Digest already called') - if (!Buffer.isBuffer(data)) data = new Buffer(data, encoding || 'binary') - - // consume data - var block = this._block - var offset = 0 - while (this._blockOffset + data.length - offset >= this._blockSize) { - for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++] - this._update() - this._blockOffset = 0 - } - while (offset < data.length) block[this._blockOffset++] = data[offset++] - - // update length - for (var j = 0, carry = data.length * 8; carry > 0; ++j) { - this._length[j] += carry - carry = (this._length[j] / 0x0100000000) | 0 - if (carry > 0) this._length[j] -= 0x0100000000 * carry - } - - return this -} - -HashBase.prototype._update = function (data) { - throw new Error('_update is not implemented') -} - -HashBase.prototype.digest = function (encoding) { - if (this._finalized) throw new Error('Digest already called') - this._finalized = true - - var digest = this._digest() - if (encoding !== undefined) digest = digest.toString(encoding) - return digest -} - -HashBase.prototype._digest = function () { - throw new Error('_digest is not implemented') -} - -module.exports = HashBase - -}).call(this,require("buffer").Buffer) -},{"buffer":302,"inherits":313,"stream":490}],312:[function(require,module,exports){ +},{}],310:[function(require,module,exports){ exports.read = function (buffer, offset, isLE, mLen, nBytes) { var e, m var eLen = nBytes * 8 - mLen - 1 @@ -135240,62 +135387,14 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { buffer[offset + i - d] |= s * 128 } -},{}],313:[function(require,module,exports){ -if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; -} else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } -} - -},{}],314:[function(require,module,exports){ -/*! - * Determine if an object is a Buffer - * - * @author Feross Aboukhadijeh - * @license MIT - */ - -// The _isBuffer check is for Safari 5-7 support, because it's missing -// Object.prototype.constructor. Remove this eventually -module.exports = function (obj) { - return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer) -} - -function isBuffer (obj) { - return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) -} - -// For Node v0.10 support. Remove this eventually. -function isSlowBuffer (obj) { - return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0)) -} - -},{}],315:[function(require,module,exports){ +},{}],311:[function(require,module,exports){ var toString = {}.toString; module.exports = Array.isArray || function (arr) { return toString.call(arr) == '[object Array]'; }; -},{}],316:[function(require,module,exports){ +},{}],312:[function(require,module,exports){ (function(exports) { "use strict"; @@ -136964,7 +137063,7 @@ module.exports = Array.isArray || function (arr) { exports.strictDeepEqual = strictDeepEqual; })(typeof exports === "undefined" ? this.jmespath = {} : exports); -},{}],317:[function(require,module,exports){ +},{}],313:[function(require,module,exports){ var getNative = require('./_getNative'), root = require('./_root'); @@ -136973,7 +137072,7 @@ var DataView = getNative(root, 'DataView'); module.exports = DataView; -},{"./_getNative":381,"./_root":418}],318:[function(require,module,exports){ +},{"./_getNative":377,"./_root":414}],314:[function(require,module,exports){ var hashClear = require('./_hashClear'), hashDelete = require('./_hashDelete'), hashGet = require('./_hashGet'), @@ -137007,7 +137106,7 @@ Hash.prototype.set = hashSet; module.exports = Hash; -},{"./_hashClear":387,"./_hashDelete":388,"./_hashGet":389,"./_hashHas":390,"./_hashSet":391}],319:[function(require,module,exports){ +},{"./_hashClear":383,"./_hashDelete":384,"./_hashGet":385,"./_hashHas":386,"./_hashSet":387}],315:[function(require,module,exports){ var listCacheClear = require('./_listCacheClear'), listCacheDelete = require('./_listCacheDelete'), listCacheGet = require('./_listCacheGet'), @@ -137041,7 +137140,7 @@ ListCache.prototype.set = listCacheSet; module.exports = ListCache; -},{"./_listCacheClear":399,"./_listCacheDelete":400,"./_listCacheGet":401,"./_listCacheHas":402,"./_listCacheSet":403}],320:[function(require,module,exports){ +},{"./_listCacheClear":395,"./_listCacheDelete":396,"./_listCacheGet":397,"./_listCacheHas":398,"./_listCacheSet":399}],316:[function(require,module,exports){ var getNative = require('./_getNative'), root = require('./_root'); @@ -137050,7 +137149,7 @@ var Map = getNative(root, 'Map'); module.exports = Map; -},{"./_getNative":381,"./_root":418}],321:[function(require,module,exports){ +},{"./_getNative":377,"./_root":414}],317:[function(require,module,exports){ var mapCacheClear = require('./_mapCacheClear'), mapCacheDelete = require('./_mapCacheDelete'), mapCacheGet = require('./_mapCacheGet'), @@ -137084,7 +137183,7 @@ MapCache.prototype.set = mapCacheSet; module.exports = MapCache; -},{"./_mapCacheClear":404,"./_mapCacheDelete":405,"./_mapCacheGet":406,"./_mapCacheHas":407,"./_mapCacheSet":408}],322:[function(require,module,exports){ +},{"./_mapCacheClear":400,"./_mapCacheDelete":401,"./_mapCacheGet":402,"./_mapCacheHas":403,"./_mapCacheSet":404}],318:[function(require,module,exports){ var getNative = require('./_getNative'), root = require('./_root'); @@ -137093,7 +137192,7 @@ var Promise = getNative(root, 'Promise'); module.exports = Promise; -},{"./_getNative":381,"./_root":418}],323:[function(require,module,exports){ +},{"./_getNative":377,"./_root":414}],319:[function(require,module,exports){ var getNative = require('./_getNative'), root = require('./_root'); @@ -137102,7 +137201,7 @@ var Set = getNative(root, 'Set'); module.exports = Set; -},{"./_getNative":381,"./_root":418}],324:[function(require,module,exports){ +},{"./_getNative":377,"./_root":414}],320:[function(require,module,exports){ var MapCache = require('./_MapCache'), setCacheAdd = require('./_setCacheAdd'), setCacheHas = require('./_setCacheHas'); @@ -137131,7 +137230,7 @@ SetCache.prototype.has = setCacheHas; module.exports = SetCache; -},{"./_MapCache":321,"./_setCacheAdd":419,"./_setCacheHas":420}],325:[function(require,module,exports){ +},{"./_MapCache":317,"./_setCacheAdd":415,"./_setCacheHas":416}],321:[function(require,module,exports){ var ListCache = require('./_ListCache'), stackClear = require('./_stackClear'), stackDelete = require('./_stackDelete'), @@ -137160,7 +137259,7 @@ Stack.prototype.set = stackSet; module.exports = Stack; -},{"./_ListCache":319,"./_stackClear":424,"./_stackDelete":425,"./_stackGet":426,"./_stackHas":427,"./_stackSet":428}],326:[function(require,module,exports){ +},{"./_ListCache":315,"./_stackClear":420,"./_stackDelete":421,"./_stackGet":422,"./_stackHas":423,"./_stackSet":424}],322:[function(require,module,exports){ var root = require('./_root'); /** Built-in value references. */ @@ -137168,7 +137267,7 @@ var Symbol = root.Symbol; module.exports = Symbol; -},{"./_root":418}],327:[function(require,module,exports){ +},{"./_root":414}],323:[function(require,module,exports){ var root = require('./_root'); /** Built-in value references. */ @@ -137176,7 +137275,7 @@ var Uint8Array = root.Uint8Array; module.exports = Uint8Array; -},{"./_root":418}],328:[function(require,module,exports){ +},{"./_root":414}],324:[function(require,module,exports){ var getNative = require('./_getNative'), root = require('./_root'); @@ -137185,7 +137284,7 @@ var WeakMap = getNative(root, 'WeakMap'); module.exports = WeakMap; -},{"./_getNative":381,"./_root":418}],329:[function(require,module,exports){ +},{"./_getNative":377,"./_root":414}],325:[function(require,module,exports){ /** * A faster alternative to `Function#apply`, this function invokes `func` * with the `this` binding of `thisArg` and the arguments of `args`. @@ -137208,7 +137307,7 @@ function apply(func, thisArg, args) { module.exports = apply; -},{}],330:[function(require,module,exports){ +},{}],326:[function(require,module,exports){ /** * A specialized version of `_.every` for arrays without support for * iteratee shorthands. @@ -137233,7 +137332,7 @@ function arrayEvery(array, predicate) { module.exports = arrayEvery; -},{}],331:[function(require,module,exports){ +},{}],327:[function(require,module,exports){ /** * A specialized version of `_.filter` for arrays without support for * iteratee shorthands. @@ -137260,7 +137359,7 @@ function arrayFilter(array, predicate) { module.exports = arrayFilter; -},{}],332:[function(require,module,exports){ +},{}],328:[function(require,module,exports){ var baseTimes = require('./_baseTimes'), isArguments = require('./isArguments'), isArray = require('./isArray'), @@ -137311,7 +137410,7 @@ function arrayLikeKeys(value, inherited) { module.exports = arrayLikeKeys; -},{"./_baseTimes":363,"./_isIndex":392,"./isArguments":440,"./isArray":441,"./isBuffer":443,"./isTypedArray":450}],333:[function(require,module,exports){ +},{"./_baseTimes":359,"./_isIndex":388,"./isArguments":436,"./isArray":437,"./isBuffer":439,"./isTypedArray":446}],329:[function(require,module,exports){ /** * A specialized version of `_.map` for arrays without support for iteratee * shorthands. @@ -137334,7 +137433,7 @@ function arrayMap(array, iteratee) { module.exports = arrayMap; -},{}],334:[function(require,module,exports){ +},{}],330:[function(require,module,exports){ /** * Appends the elements of `values` to `array`. * @@ -137356,7 +137455,7 @@ function arrayPush(array, values) { module.exports = arrayPush; -},{}],335:[function(require,module,exports){ +},{}],331:[function(require,module,exports){ /** * A specialized version of `_.some` for arrays without support for iteratee * shorthands. @@ -137381,7 +137480,7 @@ function arraySome(array, predicate) { module.exports = arraySome; -},{}],336:[function(require,module,exports){ +},{}],332:[function(require,module,exports){ var baseAssignValue = require('./_baseAssignValue'), eq = require('./eq'); @@ -137411,7 +137510,7 @@ function assignValue(object, key, value) { module.exports = assignValue; -},{"./_baseAssignValue":339,"./eq":435}],337:[function(require,module,exports){ +},{"./_baseAssignValue":335,"./eq":431}],333:[function(require,module,exports){ var eq = require('./eq'); /** @@ -137434,7 +137533,7 @@ function assocIndexOf(array, key) { module.exports = assocIndexOf; -},{"./eq":435}],338:[function(require,module,exports){ +},{"./eq":431}],334:[function(require,module,exports){ var copyObject = require('./_copyObject'), keys = require('./keys'); @@ -137453,7 +137552,7 @@ function baseAssign(object, source) { module.exports = baseAssign; -},{"./_copyObject":368,"./keys":451}],339:[function(require,module,exports){ +},{"./_copyObject":364,"./keys":447}],335:[function(require,module,exports){ var defineProperty = require('./_defineProperty'); /** @@ -137480,7 +137579,7 @@ function baseAssignValue(object, key, value) { module.exports = baseAssignValue; -},{"./_defineProperty":373}],340:[function(require,module,exports){ +},{"./_defineProperty":369}],336:[function(require,module,exports){ var isObject = require('./isObject'); /** Built-in value references. */ @@ -137512,7 +137611,7 @@ var baseCreate = (function() { module.exports = baseCreate; -},{"./isObject":447}],341:[function(require,module,exports){ +},{"./isObject":443}],337:[function(require,module,exports){ var baseForOwn = require('./_baseForOwn'), createBaseEach = require('./_createBaseEach'); @@ -137528,7 +137627,7 @@ var baseEach = createBaseEach(baseForOwn); module.exports = baseEach; -},{"./_baseForOwn":344,"./_createBaseEach":371}],342:[function(require,module,exports){ +},{"./_baseForOwn":340,"./_createBaseEach":367}],338:[function(require,module,exports){ var baseEach = require('./_baseEach'); /** @@ -137551,7 +137650,7 @@ function baseEvery(collection, predicate) { module.exports = baseEvery; -},{"./_baseEach":341}],343:[function(require,module,exports){ +},{"./_baseEach":337}],339:[function(require,module,exports){ var createBaseFor = require('./_createBaseFor'); /** @@ -137569,7 +137668,7 @@ var baseFor = createBaseFor(); module.exports = baseFor; -},{"./_createBaseFor":372}],344:[function(require,module,exports){ +},{"./_createBaseFor":368}],340:[function(require,module,exports){ var baseFor = require('./_baseFor'), keys = require('./keys'); @@ -137587,7 +137686,7 @@ function baseForOwn(object, iteratee) { module.exports = baseForOwn; -},{"./_baseFor":343,"./keys":451}],345:[function(require,module,exports){ +},{"./_baseFor":339,"./keys":447}],341:[function(require,module,exports){ var castPath = require('./_castPath'), toKey = require('./_toKey'); @@ -137613,7 +137712,7 @@ function baseGet(object, path) { module.exports = baseGet; -},{"./_castPath":367,"./_toKey":430}],346:[function(require,module,exports){ +},{"./_castPath":363,"./_toKey":426}],342:[function(require,module,exports){ var arrayPush = require('./_arrayPush'), isArray = require('./isArray'); @@ -137635,7 +137734,7 @@ function baseGetAllKeys(object, keysFunc, symbolsFunc) { module.exports = baseGetAllKeys; -},{"./_arrayPush":334,"./isArray":441}],347:[function(require,module,exports){ +},{"./_arrayPush":330,"./isArray":437}],343:[function(require,module,exports){ var Symbol = require('./_Symbol'), getRawTag = require('./_getRawTag'), objectToString = require('./_objectToString'); @@ -137665,7 +137764,7 @@ function baseGetTag(value) { module.exports = baseGetTag; -},{"./_Symbol":326,"./_getRawTag":382,"./_objectToString":415}],348:[function(require,module,exports){ +},{"./_Symbol":322,"./_getRawTag":378,"./_objectToString":411}],344:[function(require,module,exports){ /** * The base implementation of `_.hasIn` without support for deep paths. * @@ -137680,7 +137779,7 @@ function baseHasIn(object, key) { module.exports = baseHasIn; -},{}],349:[function(require,module,exports){ +},{}],345:[function(require,module,exports){ var baseGetTag = require('./_baseGetTag'), isObjectLike = require('./isObjectLike'); @@ -137700,7 +137799,7 @@ function baseIsArguments(value) { module.exports = baseIsArguments; -},{"./_baseGetTag":347,"./isObjectLike":448}],350:[function(require,module,exports){ +},{"./_baseGetTag":343,"./isObjectLike":444}],346:[function(require,module,exports){ var baseIsEqualDeep = require('./_baseIsEqualDeep'), isObjectLike = require('./isObjectLike'); @@ -137730,7 +137829,7 @@ function baseIsEqual(value, other, bitmask, customizer, stack) { module.exports = baseIsEqual; -},{"./_baseIsEqualDeep":351,"./isObjectLike":448}],351:[function(require,module,exports){ +},{"./_baseIsEqualDeep":347,"./isObjectLike":444}],347:[function(require,module,exports){ var Stack = require('./_Stack'), equalArrays = require('./_equalArrays'), equalByTag = require('./_equalByTag'), @@ -137815,7 +137914,7 @@ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { module.exports = baseIsEqualDeep; -},{"./_Stack":325,"./_equalArrays":374,"./_equalByTag":375,"./_equalObjects":376,"./_getTag":384,"./isArray":441,"./isBuffer":443,"./isTypedArray":450}],352:[function(require,module,exports){ +},{"./_Stack":321,"./_equalArrays":370,"./_equalByTag":371,"./_equalObjects":372,"./_getTag":380,"./isArray":437,"./isBuffer":439,"./isTypedArray":446}],348:[function(require,module,exports){ var Stack = require('./_Stack'), baseIsEqual = require('./_baseIsEqual'); @@ -137879,7 +137978,7 @@ function baseIsMatch(object, source, matchData, customizer) { module.exports = baseIsMatch; -},{"./_Stack":325,"./_baseIsEqual":350}],353:[function(require,module,exports){ +},{"./_Stack":321,"./_baseIsEqual":346}],349:[function(require,module,exports){ var isFunction = require('./isFunction'), isMasked = require('./_isMasked'), isObject = require('./isObject'), @@ -137928,7 +138027,7 @@ function baseIsNative(value) { module.exports = baseIsNative; -},{"./_isMasked":396,"./_toSource":431,"./isFunction":445,"./isObject":447}],354:[function(require,module,exports){ +},{"./_isMasked":392,"./_toSource":427,"./isFunction":441,"./isObject":443}],350:[function(require,module,exports){ var baseGetTag = require('./_baseGetTag'), isLength = require('./isLength'), isObjectLike = require('./isObjectLike'); @@ -137990,7 +138089,7 @@ function baseIsTypedArray(value) { module.exports = baseIsTypedArray; -},{"./_baseGetTag":347,"./isLength":446,"./isObjectLike":448}],355:[function(require,module,exports){ +},{"./_baseGetTag":343,"./isLength":442,"./isObjectLike":444}],351:[function(require,module,exports){ var baseMatches = require('./_baseMatches'), baseMatchesProperty = require('./_baseMatchesProperty'), identity = require('./identity'), @@ -138023,7 +138122,7 @@ function baseIteratee(value) { module.exports = baseIteratee; -},{"./_baseMatches":357,"./_baseMatchesProperty":358,"./identity":439,"./isArray":441,"./property":453}],356:[function(require,module,exports){ +},{"./_baseMatches":353,"./_baseMatchesProperty":354,"./identity":435,"./isArray":437,"./property":449}],352:[function(require,module,exports){ var isPrototype = require('./_isPrototype'), nativeKeys = require('./_nativeKeys'); @@ -138055,7 +138154,7 @@ function baseKeys(object) { module.exports = baseKeys; -},{"./_isPrototype":397,"./_nativeKeys":413}],357:[function(require,module,exports){ +},{"./_isPrototype":393,"./_nativeKeys":409}],353:[function(require,module,exports){ var baseIsMatch = require('./_baseIsMatch'), getMatchData = require('./_getMatchData'), matchesStrictComparable = require('./_matchesStrictComparable'); @@ -138079,7 +138178,7 @@ function baseMatches(source) { module.exports = baseMatches; -},{"./_baseIsMatch":352,"./_getMatchData":380,"./_matchesStrictComparable":410}],358:[function(require,module,exports){ +},{"./_baseIsMatch":348,"./_getMatchData":376,"./_matchesStrictComparable":406}],354:[function(require,module,exports){ var baseIsEqual = require('./_baseIsEqual'), get = require('./get'), hasIn = require('./hasIn'), @@ -138114,7 +138213,7 @@ function baseMatchesProperty(path, srcValue) { module.exports = baseMatchesProperty; -},{"./_baseIsEqual":350,"./_isKey":394,"./_isStrictComparable":398,"./_matchesStrictComparable":410,"./_toKey":430,"./get":437,"./hasIn":438}],359:[function(require,module,exports){ +},{"./_baseIsEqual":346,"./_isKey":390,"./_isStrictComparable":394,"./_matchesStrictComparable":406,"./_toKey":426,"./get":433,"./hasIn":434}],355:[function(require,module,exports){ /** * The base implementation of `_.property` without support for deep paths. * @@ -138130,7 +138229,7 @@ function baseProperty(key) { module.exports = baseProperty; -},{}],360:[function(require,module,exports){ +},{}],356:[function(require,module,exports){ var baseGet = require('./_baseGet'); /** @@ -138148,7 +138247,7 @@ function basePropertyDeep(path) { module.exports = basePropertyDeep; -},{"./_baseGet":345}],361:[function(require,module,exports){ +},{"./_baseGet":341}],357:[function(require,module,exports){ var identity = require('./identity'), overRest = require('./_overRest'), setToString = require('./_setToString'); @@ -138167,7 +138266,7 @@ function baseRest(func, start) { module.exports = baseRest; -},{"./_overRest":417,"./_setToString":422,"./identity":439}],362:[function(require,module,exports){ +},{"./_overRest":413,"./_setToString":418,"./identity":435}],358:[function(require,module,exports){ var constant = require('./constant'), defineProperty = require('./_defineProperty'), identity = require('./identity'); @@ -138191,7 +138290,7 @@ var baseSetToString = !defineProperty ? identity : function(func, string) { module.exports = baseSetToString; -},{"./_defineProperty":373,"./constant":433,"./identity":439}],363:[function(require,module,exports){ +},{"./_defineProperty":369,"./constant":429,"./identity":435}],359:[function(require,module,exports){ /** * The base implementation of `_.times` without support for iteratee shorthands * or max array length checks. @@ -138213,7 +138312,7 @@ function baseTimes(n, iteratee) { module.exports = baseTimes; -},{}],364:[function(require,module,exports){ +},{}],360:[function(require,module,exports){ var Symbol = require('./_Symbol'), arrayMap = require('./_arrayMap'), isArray = require('./isArray'), @@ -138252,7 +138351,7 @@ function baseToString(value) { module.exports = baseToString; -},{"./_Symbol":326,"./_arrayMap":333,"./isArray":441,"./isSymbol":449}],365:[function(require,module,exports){ +},{"./_Symbol":322,"./_arrayMap":329,"./isArray":437,"./isSymbol":445}],361:[function(require,module,exports){ /** * The base implementation of `_.unary` without support for storing metadata. * @@ -138268,7 +138367,7 @@ function baseUnary(func) { module.exports = baseUnary; -},{}],366:[function(require,module,exports){ +},{}],362:[function(require,module,exports){ /** * Checks if a `cache` value for `key` exists. * @@ -138283,7 +138382,7 @@ function cacheHas(cache, key) { module.exports = cacheHas; -},{}],367:[function(require,module,exports){ +},{}],363:[function(require,module,exports){ var isArray = require('./isArray'), isKey = require('./_isKey'), stringToPath = require('./_stringToPath'), @@ -138306,7 +138405,7 @@ function castPath(value, object) { module.exports = castPath; -},{"./_isKey":394,"./_stringToPath":429,"./isArray":441,"./toString":456}],368:[function(require,module,exports){ +},{"./_isKey":390,"./_stringToPath":425,"./isArray":437,"./toString":452}],364:[function(require,module,exports){ var assignValue = require('./_assignValue'), baseAssignValue = require('./_baseAssignValue'); @@ -138348,7 +138447,7 @@ function copyObject(source, props, object, customizer) { module.exports = copyObject; -},{"./_assignValue":336,"./_baseAssignValue":339}],369:[function(require,module,exports){ +},{"./_assignValue":332,"./_baseAssignValue":335}],365:[function(require,module,exports){ var root = require('./_root'); /** Used to detect overreaching core-js shims. */ @@ -138356,7 +138455,7 @@ var coreJsData = root['__core-js_shared__']; module.exports = coreJsData; -},{"./_root":418}],370:[function(require,module,exports){ +},{"./_root":414}],366:[function(require,module,exports){ var baseRest = require('./_baseRest'), isIterateeCall = require('./_isIterateeCall'); @@ -138395,7 +138494,7 @@ function createAssigner(assigner) { module.exports = createAssigner; -},{"./_baseRest":361,"./_isIterateeCall":393}],371:[function(require,module,exports){ +},{"./_baseRest":357,"./_isIterateeCall":389}],367:[function(require,module,exports){ var isArrayLike = require('./isArrayLike'); /** @@ -138429,7 +138528,7 @@ function createBaseEach(eachFunc, fromRight) { module.exports = createBaseEach; -},{"./isArrayLike":442}],372:[function(require,module,exports){ +},{"./isArrayLike":438}],368:[function(require,module,exports){ /** * Creates a base function for methods like `_.forIn` and `_.forOwn`. * @@ -138456,7 +138555,7 @@ function createBaseFor(fromRight) { module.exports = createBaseFor; -},{}],373:[function(require,module,exports){ +},{}],369:[function(require,module,exports){ var getNative = require('./_getNative'); var defineProperty = (function() { @@ -138469,7 +138568,7 @@ var defineProperty = (function() { module.exports = defineProperty; -},{"./_getNative":381}],374:[function(require,module,exports){ +},{"./_getNative":377}],370:[function(require,module,exports){ var SetCache = require('./_SetCache'), arraySome = require('./_arraySome'), cacheHas = require('./_cacheHas'); @@ -138554,7 +138653,7 @@ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { module.exports = equalArrays; -},{"./_SetCache":324,"./_arraySome":335,"./_cacheHas":366}],375:[function(require,module,exports){ +},{"./_SetCache":320,"./_arraySome":331,"./_cacheHas":362}],371:[function(require,module,exports){ var Symbol = require('./_Symbol'), Uint8Array = require('./_Uint8Array'), eq = require('./eq'), @@ -138668,7 +138767,7 @@ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { module.exports = equalByTag; -},{"./_Symbol":326,"./_Uint8Array":327,"./_equalArrays":374,"./_mapToArray":409,"./_setToArray":421,"./eq":435}],376:[function(require,module,exports){ +},{"./_Symbol":322,"./_Uint8Array":323,"./_equalArrays":370,"./_mapToArray":405,"./_setToArray":417,"./eq":431}],372:[function(require,module,exports){ var getAllKeys = require('./_getAllKeys'); /** Used to compose bitmasks for value comparisons. */ @@ -138759,7 +138858,7 @@ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { module.exports = equalObjects; -},{"./_getAllKeys":378}],377:[function(require,module,exports){ +},{"./_getAllKeys":374}],373:[function(require,module,exports){ (function (global){ /** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; @@ -138767,7 +138866,7 @@ var freeGlobal = typeof global == 'object' && global && global.Object === Object module.exports = freeGlobal; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],378:[function(require,module,exports){ +},{}],374:[function(require,module,exports){ var baseGetAllKeys = require('./_baseGetAllKeys'), getSymbols = require('./_getSymbols'), keys = require('./keys'); @@ -138785,7 +138884,7 @@ function getAllKeys(object) { module.exports = getAllKeys; -},{"./_baseGetAllKeys":346,"./_getSymbols":383,"./keys":451}],379:[function(require,module,exports){ +},{"./_baseGetAllKeys":342,"./_getSymbols":379,"./keys":447}],375:[function(require,module,exports){ var isKeyable = require('./_isKeyable'); /** @@ -138805,7 +138904,7 @@ function getMapData(map, key) { module.exports = getMapData; -},{"./_isKeyable":395}],380:[function(require,module,exports){ +},{"./_isKeyable":391}],376:[function(require,module,exports){ var isStrictComparable = require('./_isStrictComparable'), keys = require('./keys'); @@ -138831,7 +138930,7 @@ function getMatchData(object) { module.exports = getMatchData; -},{"./_isStrictComparable":398,"./keys":451}],381:[function(require,module,exports){ +},{"./_isStrictComparable":394,"./keys":447}],377:[function(require,module,exports){ var baseIsNative = require('./_baseIsNative'), getValue = require('./_getValue'); @@ -138850,7 +138949,7 @@ function getNative(object, key) { module.exports = getNative; -},{"./_baseIsNative":353,"./_getValue":385}],382:[function(require,module,exports){ +},{"./_baseIsNative":349,"./_getValue":381}],378:[function(require,module,exports){ var Symbol = require('./_Symbol'); /** Used for built-in method references. */ @@ -138898,7 +138997,7 @@ function getRawTag(value) { module.exports = getRawTag; -},{"./_Symbol":326}],383:[function(require,module,exports){ +},{"./_Symbol":322}],379:[function(require,module,exports){ var arrayFilter = require('./_arrayFilter'), stubArray = require('./stubArray'); @@ -138930,7 +139029,7 @@ var getSymbols = !nativeGetSymbols ? stubArray : function(object) { module.exports = getSymbols; -},{"./_arrayFilter":331,"./stubArray":454}],384:[function(require,module,exports){ +},{"./_arrayFilter":327,"./stubArray":450}],380:[function(require,module,exports){ var DataView = require('./_DataView'), Map = require('./_Map'), Promise = require('./_Promise'), @@ -138990,7 +139089,7 @@ if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || module.exports = getTag; -},{"./_DataView":317,"./_Map":320,"./_Promise":322,"./_Set":323,"./_WeakMap":328,"./_baseGetTag":347,"./_toSource":431}],385:[function(require,module,exports){ +},{"./_DataView":313,"./_Map":316,"./_Promise":318,"./_Set":319,"./_WeakMap":324,"./_baseGetTag":343,"./_toSource":427}],381:[function(require,module,exports){ /** * Gets the value at `key` of `object`. * @@ -139005,7 +139104,7 @@ function getValue(object, key) { module.exports = getValue; -},{}],386:[function(require,module,exports){ +},{}],382:[function(require,module,exports){ var castPath = require('./_castPath'), isArguments = require('./isArguments'), isArray = require('./isArray'), @@ -139046,7 +139145,7 @@ function hasPath(object, path, hasFunc) { module.exports = hasPath; -},{"./_castPath":367,"./_isIndex":392,"./_toKey":430,"./isArguments":440,"./isArray":441,"./isLength":446}],387:[function(require,module,exports){ +},{"./_castPath":363,"./_isIndex":388,"./_toKey":426,"./isArguments":436,"./isArray":437,"./isLength":442}],383:[function(require,module,exports){ var nativeCreate = require('./_nativeCreate'); /** @@ -139063,7 +139162,7 @@ function hashClear() { module.exports = hashClear; -},{"./_nativeCreate":412}],388:[function(require,module,exports){ +},{"./_nativeCreate":408}],384:[function(require,module,exports){ /** * Removes `key` and its value from the hash. * @@ -139082,7 +139181,7 @@ function hashDelete(key) { module.exports = hashDelete; -},{}],389:[function(require,module,exports){ +},{}],385:[function(require,module,exports){ var nativeCreate = require('./_nativeCreate'); /** Used to stand-in for `undefined` hash values. */ @@ -139114,7 +139213,7 @@ function hashGet(key) { module.exports = hashGet; -},{"./_nativeCreate":412}],390:[function(require,module,exports){ +},{"./_nativeCreate":408}],386:[function(require,module,exports){ var nativeCreate = require('./_nativeCreate'); /** Used for built-in method references. */ @@ -139139,7 +139238,7 @@ function hashHas(key) { module.exports = hashHas; -},{"./_nativeCreate":412}],391:[function(require,module,exports){ +},{"./_nativeCreate":408}],387:[function(require,module,exports){ var nativeCreate = require('./_nativeCreate'); /** Used to stand-in for `undefined` hash values. */ @@ -139164,7 +139263,7 @@ function hashSet(key, value) { module.exports = hashSet; -},{"./_nativeCreate":412}],392:[function(require,module,exports){ +},{"./_nativeCreate":408}],388:[function(require,module,exports){ /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; @@ -139188,7 +139287,7 @@ function isIndex(value, length) { module.exports = isIndex; -},{}],393:[function(require,module,exports){ +},{}],389:[function(require,module,exports){ var eq = require('./eq'), isArrayLike = require('./isArrayLike'), isIndex = require('./_isIndex'), @@ -139220,7 +139319,7 @@ function isIterateeCall(value, index, object) { module.exports = isIterateeCall; -},{"./_isIndex":392,"./eq":435,"./isArrayLike":442,"./isObject":447}],394:[function(require,module,exports){ +},{"./_isIndex":388,"./eq":431,"./isArrayLike":438,"./isObject":443}],390:[function(require,module,exports){ var isArray = require('./isArray'), isSymbol = require('./isSymbol'); @@ -139251,7 +139350,7 @@ function isKey(value, object) { module.exports = isKey; -},{"./isArray":441,"./isSymbol":449}],395:[function(require,module,exports){ +},{"./isArray":437,"./isSymbol":445}],391:[function(require,module,exports){ /** * Checks if `value` is suitable for use as unique object key. * @@ -139268,7 +139367,7 @@ function isKeyable(value) { module.exports = isKeyable; -},{}],396:[function(require,module,exports){ +},{}],392:[function(require,module,exports){ var coreJsData = require('./_coreJsData'); /** Used to detect methods masquerading as native. */ @@ -139290,7 +139389,7 @@ function isMasked(func) { module.exports = isMasked; -},{"./_coreJsData":369}],397:[function(require,module,exports){ +},{"./_coreJsData":365}],393:[function(require,module,exports){ /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -139310,7 +139409,7 @@ function isPrototype(value) { module.exports = isPrototype; -},{}],398:[function(require,module,exports){ +},{}],394:[function(require,module,exports){ var isObject = require('./isObject'); /** @@ -139327,7 +139426,7 @@ function isStrictComparable(value) { module.exports = isStrictComparable; -},{"./isObject":447}],399:[function(require,module,exports){ +},{"./isObject":443}],395:[function(require,module,exports){ /** * Removes all key-value entries from the list cache. * @@ -139342,7 +139441,7 @@ function listCacheClear() { module.exports = listCacheClear; -},{}],400:[function(require,module,exports){ +},{}],396:[function(require,module,exports){ var assocIndexOf = require('./_assocIndexOf'); /** Used for built-in method references. */ @@ -139379,7 +139478,7 @@ function listCacheDelete(key) { module.exports = listCacheDelete; -},{"./_assocIndexOf":337}],401:[function(require,module,exports){ +},{"./_assocIndexOf":333}],397:[function(require,module,exports){ var assocIndexOf = require('./_assocIndexOf'); /** @@ -139400,7 +139499,7 @@ function listCacheGet(key) { module.exports = listCacheGet; -},{"./_assocIndexOf":337}],402:[function(require,module,exports){ +},{"./_assocIndexOf":333}],398:[function(require,module,exports){ var assocIndexOf = require('./_assocIndexOf'); /** @@ -139418,7 +139517,7 @@ function listCacheHas(key) { module.exports = listCacheHas; -},{"./_assocIndexOf":337}],403:[function(require,module,exports){ +},{"./_assocIndexOf":333}],399:[function(require,module,exports){ var assocIndexOf = require('./_assocIndexOf'); /** @@ -139446,7 +139545,7 @@ function listCacheSet(key, value) { module.exports = listCacheSet; -},{"./_assocIndexOf":337}],404:[function(require,module,exports){ +},{"./_assocIndexOf":333}],400:[function(require,module,exports){ var Hash = require('./_Hash'), ListCache = require('./_ListCache'), Map = require('./_Map'); @@ -139469,7 +139568,7 @@ function mapCacheClear() { module.exports = mapCacheClear; -},{"./_Hash":318,"./_ListCache":319,"./_Map":320}],405:[function(require,module,exports){ +},{"./_Hash":314,"./_ListCache":315,"./_Map":316}],401:[function(require,module,exports){ var getMapData = require('./_getMapData'); /** @@ -139489,7 +139588,7 @@ function mapCacheDelete(key) { module.exports = mapCacheDelete; -},{"./_getMapData":379}],406:[function(require,module,exports){ +},{"./_getMapData":375}],402:[function(require,module,exports){ var getMapData = require('./_getMapData'); /** @@ -139507,7 +139606,7 @@ function mapCacheGet(key) { module.exports = mapCacheGet; -},{"./_getMapData":379}],407:[function(require,module,exports){ +},{"./_getMapData":375}],403:[function(require,module,exports){ var getMapData = require('./_getMapData'); /** @@ -139525,7 +139624,7 @@ function mapCacheHas(key) { module.exports = mapCacheHas; -},{"./_getMapData":379}],408:[function(require,module,exports){ +},{"./_getMapData":375}],404:[function(require,module,exports){ var getMapData = require('./_getMapData'); /** @@ -139549,7 +139648,7 @@ function mapCacheSet(key, value) { module.exports = mapCacheSet; -},{"./_getMapData":379}],409:[function(require,module,exports){ +},{"./_getMapData":375}],405:[function(require,module,exports){ /** * Converts `map` to its key-value pairs. * @@ -139569,7 +139668,7 @@ function mapToArray(map) { module.exports = mapToArray; -},{}],410:[function(require,module,exports){ +},{}],406:[function(require,module,exports){ /** * A specialized version of `matchesProperty` for source values suitable * for strict equality comparisons, i.e. `===`. @@ -139591,7 +139690,7 @@ function matchesStrictComparable(key, srcValue) { module.exports = matchesStrictComparable; -},{}],411:[function(require,module,exports){ +},{}],407:[function(require,module,exports){ var memoize = require('./memoize'); /** Used as the maximum memoize cache size. */ @@ -139619,7 +139718,7 @@ function memoizeCapped(func) { module.exports = memoizeCapped; -},{"./memoize":452}],412:[function(require,module,exports){ +},{"./memoize":448}],408:[function(require,module,exports){ var getNative = require('./_getNative'); /* Built-in method references that are verified to be native. */ @@ -139627,7 +139726,7 @@ var nativeCreate = getNative(Object, 'create'); module.exports = nativeCreate; -},{"./_getNative":381}],413:[function(require,module,exports){ +},{"./_getNative":377}],409:[function(require,module,exports){ var overArg = require('./_overArg'); /* Built-in method references for those with the same name as other `lodash` methods. */ @@ -139635,7 +139734,7 @@ var nativeKeys = overArg(Object.keys, Object); module.exports = nativeKeys; -},{"./_overArg":416}],414:[function(require,module,exports){ +},{"./_overArg":412}],410:[function(require,module,exports){ var freeGlobal = require('./_freeGlobal'); /** Detect free variable `exports`. */ @@ -139659,7 +139758,7 @@ var nodeUtil = (function() { module.exports = nodeUtil; -},{"./_freeGlobal":377}],415:[function(require,module,exports){ +},{"./_freeGlobal":373}],411:[function(require,module,exports){ /** Used for built-in method references. */ var objectProto = Object.prototype; @@ -139683,7 +139782,7 @@ function objectToString(value) { module.exports = objectToString; -},{}],416:[function(require,module,exports){ +},{}],412:[function(require,module,exports){ /** * Creates a unary function that invokes `func` with its argument transformed. * @@ -139700,7 +139799,7 @@ function overArg(func, transform) { module.exports = overArg; -},{}],417:[function(require,module,exports){ +},{}],413:[function(require,module,exports){ var apply = require('./_apply'); /* Built-in method references for those with the same name as other `lodash` methods. */ @@ -139738,7 +139837,7 @@ function overRest(func, start, transform) { module.exports = overRest; -},{"./_apply":329}],418:[function(require,module,exports){ +},{"./_apply":325}],414:[function(require,module,exports){ var freeGlobal = require('./_freeGlobal'); /** Detect free variable `self`. */ @@ -139749,7 +139848,7 @@ var root = freeGlobal || freeSelf || Function('return this')(); module.exports = root; -},{"./_freeGlobal":377}],419:[function(require,module,exports){ +},{"./_freeGlobal":373}],415:[function(require,module,exports){ /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; @@ -139770,7 +139869,7 @@ function setCacheAdd(value) { module.exports = setCacheAdd; -},{}],420:[function(require,module,exports){ +},{}],416:[function(require,module,exports){ /** * Checks if `value` is in the array cache. * @@ -139786,7 +139885,7 @@ function setCacheHas(value) { module.exports = setCacheHas; -},{}],421:[function(require,module,exports){ +},{}],417:[function(require,module,exports){ /** * Converts `set` to an array of its values. * @@ -139806,7 +139905,7 @@ function setToArray(set) { module.exports = setToArray; -},{}],422:[function(require,module,exports){ +},{}],418:[function(require,module,exports){ var baseSetToString = require('./_baseSetToString'), shortOut = require('./_shortOut'); @@ -139822,7 +139921,7 @@ var setToString = shortOut(baseSetToString); module.exports = setToString; -},{"./_baseSetToString":362,"./_shortOut":423}],423:[function(require,module,exports){ +},{"./_baseSetToString":358,"./_shortOut":419}],419:[function(require,module,exports){ /** Used to detect hot functions by number of calls within a span of milliseconds. */ var HOT_COUNT = 800, HOT_SPAN = 16; @@ -139861,7 +139960,7 @@ function shortOut(func) { module.exports = shortOut; -},{}],424:[function(require,module,exports){ +},{}],420:[function(require,module,exports){ var ListCache = require('./_ListCache'); /** @@ -139878,7 +139977,7 @@ function stackClear() { module.exports = stackClear; -},{"./_ListCache":319}],425:[function(require,module,exports){ +},{"./_ListCache":315}],421:[function(require,module,exports){ /** * Removes `key` and its value from the stack. * @@ -139898,7 +139997,7 @@ function stackDelete(key) { module.exports = stackDelete; -},{}],426:[function(require,module,exports){ +},{}],422:[function(require,module,exports){ /** * Gets the stack value for `key`. * @@ -139914,7 +140013,7 @@ function stackGet(key) { module.exports = stackGet; -},{}],427:[function(require,module,exports){ +},{}],423:[function(require,module,exports){ /** * Checks if a stack value for `key` exists. * @@ -139930,7 +140029,7 @@ function stackHas(key) { module.exports = stackHas; -},{}],428:[function(require,module,exports){ +},{}],424:[function(require,module,exports){ var ListCache = require('./_ListCache'), Map = require('./_Map'), MapCache = require('./_MapCache'); @@ -139966,7 +140065,7 @@ function stackSet(key, value) { module.exports = stackSet; -},{"./_ListCache":319,"./_Map":320,"./_MapCache":321}],429:[function(require,module,exports){ +},{"./_ListCache":315,"./_Map":316,"./_MapCache":317}],425:[function(require,module,exports){ var memoizeCapped = require('./_memoizeCapped'); /** Used to match property names within property paths. */ @@ -139996,7 +140095,7 @@ var stringToPath = memoizeCapped(function(string) { module.exports = stringToPath; -},{"./_memoizeCapped":411}],430:[function(require,module,exports){ +},{"./_memoizeCapped":407}],426:[function(require,module,exports){ var isSymbol = require('./isSymbol'); /** Used as references for various `Number` constants. */ @@ -140019,7 +140118,7 @@ function toKey(value) { module.exports = toKey; -},{"./isSymbol":449}],431:[function(require,module,exports){ +},{"./isSymbol":445}],427:[function(require,module,exports){ /** Used for built-in method references. */ var funcProto = Function.prototype; @@ -140047,7 +140146,7 @@ function toSource(func) { module.exports = toSource; -},{}],432:[function(require,module,exports){ +},{}],428:[function(require,module,exports){ var assignValue = require('./_assignValue'), copyObject = require('./_copyObject'), createAssigner = require('./_createAssigner'), @@ -140107,7 +140206,7 @@ var assign = createAssigner(function(object, source) { module.exports = assign; -},{"./_assignValue":336,"./_copyObject":368,"./_createAssigner":370,"./_isPrototype":397,"./isArrayLike":442,"./keys":451}],433:[function(require,module,exports){ +},{"./_assignValue":332,"./_copyObject":364,"./_createAssigner":366,"./_isPrototype":393,"./isArrayLike":438,"./keys":447}],429:[function(require,module,exports){ /** * Creates a function that returns `value`. * @@ -140135,7 +140234,7 @@ function constant(value) { module.exports = constant; -},{}],434:[function(require,module,exports){ +},{}],430:[function(require,module,exports){ var baseAssign = require('./_baseAssign'), baseCreate = require('./_baseCreate'); @@ -140180,7 +140279,7 @@ function create(prototype, properties) { module.exports = create; -},{"./_baseAssign":338,"./_baseCreate":340}],435:[function(require,module,exports){ +},{"./_baseAssign":334,"./_baseCreate":336}],431:[function(require,module,exports){ /** * Performs a * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) @@ -140219,7 +140318,7 @@ function eq(value, other) { module.exports = eq; -},{}],436:[function(require,module,exports){ +},{}],432:[function(require,module,exports){ var arrayEvery = require('./_arrayEvery'), baseEvery = require('./_baseEvery'), baseIteratee = require('./_baseIteratee'), @@ -140277,7 +140376,7 @@ function every(collection, predicate, guard) { module.exports = every; -},{"./_arrayEvery":330,"./_baseEvery":342,"./_baseIteratee":355,"./_isIterateeCall":393,"./isArray":441}],437:[function(require,module,exports){ +},{"./_arrayEvery":326,"./_baseEvery":338,"./_baseIteratee":351,"./_isIterateeCall":389,"./isArray":437}],433:[function(require,module,exports){ var baseGet = require('./_baseGet'); /** @@ -140312,7 +140411,7 @@ function get(object, path, defaultValue) { module.exports = get; -},{"./_baseGet":345}],438:[function(require,module,exports){ +},{"./_baseGet":341}],434:[function(require,module,exports){ var baseHasIn = require('./_baseHasIn'), hasPath = require('./_hasPath'); @@ -140348,7 +140447,7 @@ function hasIn(object, path) { module.exports = hasIn; -},{"./_baseHasIn":348,"./_hasPath":386}],439:[function(require,module,exports){ +},{"./_baseHasIn":344,"./_hasPath":382}],435:[function(require,module,exports){ /** * This method returns the first argument it receives. * @@ -140371,7 +140470,7 @@ function identity(value) { module.exports = identity; -},{}],440:[function(require,module,exports){ +},{}],436:[function(require,module,exports){ var baseIsArguments = require('./_baseIsArguments'), isObjectLike = require('./isObjectLike'); @@ -140409,7 +140508,7 @@ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsAr module.exports = isArguments; -},{"./_baseIsArguments":349,"./isObjectLike":448}],441:[function(require,module,exports){ +},{"./_baseIsArguments":345,"./isObjectLike":444}],437:[function(require,module,exports){ /** * Checks if `value` is classified as an `Array` object. * @@ -140437,7 +140536,7 @@ var isArray = Array.isArray; module.exports = isArray; -},{}],442:[function(require,module,exports){ +},{}],438:[function(require,module,exports){ var isFunction = require('./isFunction'), isLength = require('./isLength'); @@ -140472,7 +140571,7 @@ function isArrayLike(value) { module.exports = isArrayLike; -},{"./isFunction":445,"./isLength":446}],443:[function(require,module,exports){ +},{"./isFunction":441,"./isLength":442}],439:[function(require,module,exports){ var root = require('./_root'), stubFalse = require('./stubFalse'); @@ -140512,7 +140611,7 @@ var isBuffer = nativeIsBuffer || stubFalse; module.exports = isBuffer; -},{"./_root":418,"./stubFalse":455}],444:[function(require,module,exports){ +},{"./_root":414,"./stubFalse":451}],440:[function(require,module,exports){ var baseKeys = require('./_baseKeys'), getTag = require('./_getTag'), isArguments = require('./isArguments'), @@ -140591,7 +140690,7 @@ function isEmpty(value) { module.exports = isEmpty; -},{"./_baseKeys":356,"./_getTag":384,"./_isPrototype":397,"./isArguments":440,"./isArray":441,"./isArrayLike":442,"./isBuffer":443,"./isTypedArray":450}],445:[function(require,module,exports){ +},{"./_baseKeys":352,"./_getTag":380,"./_isPrototype":393,"./isArguments":436,"./isArray":437,"./isArrayLike":438,"./isBuffer":439,"./isTypedArray":446}],441:[function(require,module,exports){ var baseGetTag = require('./_baseGetTag'), isObject = require('./isObject'); @@ -140630,7 +140729,7 @@ function isFunction(value) { module.exports = isFunction; -},{"./_baseGetTag":347,"./isObject":447}],446:[function(require,module,exports){ +},{"./_baseGetTag":343,"./isObject":443}],442:[function(require,module,exports){ /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; @@ -140667,7 +140766,7 @@ function isLength(value) { module.exports = isLength; -},{}],447:[function(require,module,exports){ +},{}],443:[function(require,module,exports){ /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) @@ -140700,7 +140799,7 @@ function isObject(value) { module.exports = isObject; -},{}],448:[function(require,module,exports){ +},{}],444:[function(require,module,exports){ /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". @@ -140731,7 +140830,7 @@ function isObjectLike(value) { module.exports = isObjectLike; -},{}],449:[function(require,module,exports){ +},{}],445:[function(require,module,exports){ var baseGetTag = require('./_baseGetTag'), isObjectLike = require('./isObjectLike'); @@ -140762,7 +140861,7 @@ function isSymbol(value) { module.exports = isSymbol; -},{"./_baseGetTag":347,"./isObjectLike":448}],450:[function(require,module,exports){ +},{"./_baseGetTag":343,"./isObjectLike":444}],446:[function(require,module,exports){ var baseIsTypedArray = require('./_baseIsTypedArray'), baseUnary = require('./_baseUnary'), nodeUtil = require('./_nodeUtil'); @@ -140791,7 +140890,7 @@ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedA module.exports = isTypedArray; -},{"./_baseIsTypedArray":354,"./_baseUnary":365,"./_nodeUtil":414}],451:[function(require,module,exports){ +},{"./_baseIsTypedArray":350,"./_baseUnary":361,"./_nodeUtil":410}],447:[function(require,module,exports){ var arrayLikeKeys = require('./_arrayLikeKeys'), baseKeys = require('./_baseKeys'), isArrayLike = require('./isArrayLike'); @@ -140830,7 +140929,7 @@ function keys(object) { module.exports = keys; -},{"./_arrayLikeKeys":332,"./_baseKeys":356,"./isArrayLike":442}],452:[function(require,module,exports){ +},{"./_arrayLikeKeys":328,"./_baseKeys":352,"./isArrayLike":438}],448:[function(require,module,exports){ var MapCache = require('./_MapCache'); /** Error message constants. */ @@ -140905,7 +141004,7 @@ memoize.Cache = MapCache; module.exports = memoize; -},{"./_MapCache":321}],453:[function(require,module,exports){ +},{"./_MapCache":317}],449:[function(require,module,exports){ var baseProperty = require('./_baseProperty'), basePropertyDeep = require('./_basePropertyDeep'), isKey = require('./_isKey'), @@ -140939,7 +141038,7 @@ function property(path) { module.exports = property; -},{"./_baseProperty":359,"./_basePropertyDeep":360,"./_isKey":394,"./_toKey":430}],454:[function(require,module,exports){ +},{"./_baseProperty":355,"./_basePropertyDeep":356,"./_isKey":390,"./_toKey":426}],450:[function(require,module,exports){ /** * This method returns a new empty array. * @@ -140964,7 +141063,7 @@ function stubArray() { module.exports = stubArray; -},{}],455:[function(require,module,exports){ +},{}],451:[function(require,module,exports){ /** * This method returns `false`. * @@ -140984,7 +141083,7 @@ function stubFalse() { module.exports = stubFalse; -},{}],456:[function(require,module,exports){ +},{}],452:[function(require,module,exports){ var baseToString = require('./_baseToString'); /** @@ -141014,54 +141113,7 @@ function toString(value) { module.exports = toString; -},{"./_baseToString":364}],457:[function(require,module,exports){ -(function (process){ -'use strict'; - -if (!process.version || - process.version.indexOf('v0.') === 0 || - process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) { - module.exports = nextTick; -} else { - module.exports = process.nextTick; -} - -function nextTick(fn, arg1, arg2, arg3) { - if (typeof fn !== 'function') { - throw new TypeError('"callback" argument must be a function'); - } - var len = arguments.length; - var args, i; - switch (len) { - case 0: - case 1: - return process.nextTick(fn); - case 2: - return process.nextTick(function afterTickOne() { - fn.call(null, arg1); - }); - case 3: - return process.nextTick(function afterTickTwo() { - fn.call(null, arg1, arg2); - }); - case 4: - return process.nextTick(function afterTickThree() { - fn.call(null, arg1, arg2, arg3); - }); - default: - args = new Array(len - 1); - i = 0; - while (i < args.length) { - args[i++] = arguments[i]; - } - return process.nextTick(function afterTick() { - fn.apply(null, args); - }); - } -} - -}).call(this,require('_process')) -},{"_process":458}],458:[function(require,module,exports){ +},{"./_baseToString":360}],453:[function(require,module,exports){ // shim for using process in browser var process = module.exports = {}; @@ -141247,7 +141299,7 @@ process.chdir = function (dir) { }; process.umask = function() { return 0; }; -},{}],459:[function(require,module,exports){ +},{}],454:[function(require,module,exports){ (function (global){ /*! https://mths.be/punycode v1.3.2 by @mathias */ ;(function(root) { @@ -141781,4367 +141833,336 @@ process.umask = function() { return 0; }; }(this)); }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) +},{}],455:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +},{}],456:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return map(objectKeys(obj), function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (isArray(obj[k])) { + return map(obj[k], function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; + +var isArray = Array.isArray || function (xs) { + return Object.prototype.toString.call(xs) === '[object Array]'; +}; + +function map (xs, f) { + if (xs.map) return xs.map(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + res.push(f(xs[i], i)); + } + return res; +} + +var objectKeys = Object.keys || function (obj) { + var res = []; + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); + } + return res; +}; + +},{}],457:[function(require,module,exports){ +'use strict'; + +exports.decode = exports.parse = require('./decode'); +exports.encode = exports.stringify = require('./encode'); + +},{"./decode":455,"./encode":456}],458:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +// If obj.hasOwnProperty has been overridden, then calling +// obj.hasOwnProperty(prop) will break. +// See: https://github.com/joyent/node/issues/1707 +function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); +} + +module.exports = function(qs, sep, eq, options) { + sep = sep || '&'; + eq = eq || '='; + var obj = {}; + + if (typeof qs !== 'string' || qs.length === 0) { + return obj; + } + + var regexp = /\+/g; + qs = qs.split(sep); + + var maxKeys = 1000; + if (options && typeof options.maxKeys === 'number') { + maxKeys = options.maxKeys; + } + + var len = qs.length; + // maxKeys <= 0 means that we should not limit keys count + if (maxKeys > 0 && len > maxKeys) { + len = maxKeys; + } + + for (var i = 0; i < len; ++i) { + var x = qs[i].replace(regexp, '%20'), + idx = x.indexOf(eq), + kstr, vstr, k, v; + + if (idx >= 0) { + kstr = x.substr(0, idx); + vstr = x.substr(idx + 1); + } else { + kstr = x; + vstr = ''; + } + + k = decodeURIComponent(kstr); + v = decodeURIComponent(vstr); + + if (!hasOwnProperty(obj, k)) { + obj[k] = v; + } else if (Array.isArray(obj[k])) { + obj[k].push(v); + } else { + obj[k] = [obj[k], v]; + } + } + + return obj; +}; + +},{}],459:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +'use strict'; + +var stringifyPrimitive = function(v) { + switch (typeof v) { + case 'string': + return v; + + case 'boolean': + return v ? 'true' : 'false'; + + case 'number': + return isFinite(v) ? v : ''; + + default: + return ''; + } +}; + +module.exports = function(obj, sep, eq, name) { + sep = sep || '&'; + eq = eq || '='; + if (obj === null) { + obj = undefined; + } + + if (typeof obj === 'object') { + return Object.keys(obj).map(function(k) { + var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; + if (Array.isArray(obj[k])) { + return obj[k].map(function(v) { + return ks + encodeURIComponent(stringifyPrimitive(v)); + }).join(sep); + } else { + return ks + encodeURIComponent(stringifyPrimitive(obj[k])); + } + }).join(sep); + + } + + if (!name) return ''; + return encodeURIComponent(stringifyPrimitive(name)) + eq + + encodeURIComponent(stringifyPrimitive(obj)); +}; + },{}],460:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -// If obj.hasOwnProperty has been overridden, then calling -// obj.hasOwnProperty(prop) will break. -// See: https://github.com/joyent/node/issues/1707 -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -module.exports = function(qs, sep, eq, options) { - sep = sep || '&'; - eq = eq || '='; - var obj = {}; - - if (typeof qs !== 'string' || qs.length === 0) { - return obj; - } - - var regexp = /\+/g; - qs = qs.split(sep); - - var maxKeys = 1000; - if (options && typeof options.maxKeys === 'number') { - maxKeys = options.maxKeys; - } - - var len = qs.length; - // maxKeys <= 0 means that we should not limit keys count - if (maxKeys > 0 && len > maxKeys) { - len = maxKeys; - } - - for (var i = 0; i < len; ++i) { - var x = qs[i].replace(regexp, '%20'), - idx = x.indexOf(eq), - kstr, vstr, k, v; - - if (idx >= 0) { - kstr = x.substr(0, idx); - vstr = x.substr(idx + 1); - } else { - kstr = x; - vstr = ''; - } - - k = decodeURIComponent(kstr); - v = decodeURIComponent(vstr); - - if (!hasOwnProperty(obj, k)) { - obj[k] = v; - } else if (isArray(obj[k])) { - obj[k].push(v); - } else { - obj[k] = [obj[k], v]; - } - } - - return obj; -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - -},{}],461:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -var stringifyPrimitive = function(v) { - switch (typeof v) { - case 'string': - return v; - - case 'boolean': - return v ? 'true' : 'false'; - - case 'number': - return isFinite(v) ? v : ''; - - default: - return ''; - } -}; - -module.exports = function(obj, sep, eq, name) { - sep = sep || '&'; - eq = eq || '='; - if (obj === null) { - obj = undefined; - } - - if (typeof obj === 'object') { - return map(objectKeys(obj), function(k) { - var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; - if (isArray(obj[k])) { - return map(obj[k], function(v) { - return ks + encodeURIComponent(stringifyPrimitive(v)); - }).join(sep); - } else { - return ks + encodeURIComponent(stringifyPrimitive(obj[k])); - } - }).join(sep); - - } - - if (!name) return ''; - return encodeURIComponent(stringifyPrimitive(name)) + eq + - encodeURIComponent(stringifyPrimitive(obj)); -}; - -var isArray = Array.isArray || function (xs) { - return Object.prototype.toString.call(xs) === '[object Array]'; -}; - -function map (xs, f) { - if (xs.map) return xs.map(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - res.push(f(xs[i], i)); - } - return res; -} - -var objectKeys = Object.keys || function (obj) { - var res = []; - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key); - } - return res; -}; - -},{}],462:[function(require,module,exports){ -'use strict'; - -exports.decode = exports.parse = require('./decode'); -exports.encode = exports.stringify = require('./encode'); - -},{"./decode":460,"./encode":461}],463:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -// If obj.hasOwnProperty has been overridden, then calling -// obj.hasOwnProperty(prop) will break. -// See: https://github.com/joyent/node/issues/1707 -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -module.exports = function(qs, sep, eq, options) { - sep = sep || '&'; - eq = eq || '='; - var obj = {}; - - if (typeof qs !== 'string' || qs.length === 0) { - return obj; - } - - var regexp = /\+/g; - qs = qs.split(sep); - - var maxKeys = 1000; - if (options && typeof options.maxKeys === 'number') { - maxKeys = options.maxKeys; - } - - var len = qs.length; - // maxKeys <= 0 means that we should not limit keys count - if (maxKeys > 0 && len > maxKeys) { - len = maxKeys; - } - - for (var i = 0; i < len; ++i) { - var x = qs[i].replace(regexp, '%20'), - idx = x.indexOf(eq), - kstr, vstr, k, v; - - if (idx >= 0) { - kstr = x.substr(0, idx); - vstr = x.substr(idx + 1); - } else { - kstr = x; - vstr = ''; - } - - k = decodeURIComponent(kstr); - v = decodeURIComponent(vstr); - - if (!hasOwnProperty(obj, k)) { - obj[k] = v; - } else if (Array.isArray(obj[k])) { - obj[k].push(v); - } else { - obj[k] = [obj[k], v]; - } - } - - return obj; -}; - -},{}],464:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -var stringifyPrimitive = function(v) { - switch (typeof v) { - case 'string': - return v; - - case 'boolean': - return v ? 'true' : 'false'; - - case 'number': - return isFinite(v) ? v : ''; - - default: - return ''; - } -}; - -module.exports = function(obj, sep, eq, name) { - sep = sep || '&'; - eq = eq || '='; - if (obj === null) { - obj = undefined; - } - - if (typeof obj === 'object') { - return Object.keys(obj).map(function(k) { - var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; - if (Array.isArray(obj[k])) { - return obj[k].map(function(v) { - return ks + encodeURIComponent(stringifyPrimitive(v)); - }).join(sep); - } else { - return ks + encodeURIComponent(stringifyPrimitive(obj[k])); - } - }).join(sep); - - } - - if (!name) return ''; - return encodeURIComponent(stringifyPrimitive(name)) + eq + - encodeURIComponent(stringifyPrimitive(obj)); -}; - -},{}],465:[function(require,module,exports){ -arguments[4][462][0].apply(exports,arguments) -},{"./decode":463,"./encode":464,"dup":462}],466:[function(require,module,exports){ -module.exports = require('./lib/_stream_duplex.js'); - -},{"./lib/_stream_duplex.js":467}],467:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a duplex stream is just a stream that is both readable and writable. -// Since JS doesn't have multiple prototypal inheritance, this class -// prototypally inherits from Readable, and then parasitically from -// Writable. - -'use strict'; - -/**/ - -var processNextTick = require('process-nextick-args'); -/**/ - -/**/ -var objectKeys = Object.keys || function (obj) { - var keys = []; - for (var key in obj) { - keys.push(key); - }return keys; -}; -/**/ - -module.exports = Duplex; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -var Readable = require('./_stream_readable'); -var Writable = require('./_stream_writable'); - -util.inherits(Duplex, Readable); - -var keys = objectKeys(Writable.prototype); -for (var v = 0; v < keys.length; v++) { - var method = keys[v]; - if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; -} - -function Duplex(options) { - if (!(this instanceof Duplex)) return new Duplex(options); - - Readable.call(this, options); - Writable.call(this, options); - - if (options && options.readable === false) this.readable = false; - - if (options && options.writable === false) this.writable = false; - - this.allowHalfOpen = true; - if (options && options.allowHalfOpen === false) this.allowHalfOpen = false; - - this.once('end', onend); -} - -// the no-half-open enforcer -function onend() { - // if we allow half-open state, or if the writable side ended, - // then we're ok. - if (this.allowHalfOpen || this._writableState.ended) return; - - // no more data can be written. - // But allow more writes to happen in this tick. - processNextTick(onEndNT, this); -} - -function onEndNT(self) { - self.end(); -} - -Object.defineProperty(Duplex.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined || this._writableState === undefined) { - return false; - } - return this._readableState.destroyed && this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (this._readableState === undefined || this._writableState === undefined) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - this._writableState.destroyed = value; - } -}); - -Duplex.prototype._destroy = function (err, cb) { - this.push(null); - this.end(); - - processNextTick(cb, err); -}; - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} -},{"./_stream_readable":469,"./_stream_writable":471,"core-util-is":304,"inherits":313,"process-nextick-args":457}],468:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a passthrough stream. -// basically just the most minimal sort of Transform stream. -// Every written chunk gets output as-is. - -'use strict'; - -module.exports = PassThrough; - -var Transform = require('./_stream_transform'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(PassThrough, Transform); - -function PassThrough(options) { - if (!(this instanceof PassThrough)) return new PassThrough(options); - - Transform.call(this, options); -} - -PassThrough.prototype._transform = function (chunk, encoding, cb) { - cb(null, chunk); -}; -},{"./_stream_transform":470,"core-util-is":304,"inherits":313}],469:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -/**/ - -var processNextTick = require('process-nextick-args'); -/**/ - -module.exports = Readable; - -/**/ -var isArray = require('isarray'); -/**/ - -/**/ -var Duplex; -/**/ - -Readable.ReadableState = ReadableState; - -/**/ -var EE = require('events').EventEmitter; - -var EElistenerCount = function (emitter, type) { - return emitter.listeners(type).length; -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -// TODO(bmeurer): Change this back to const once hole checks are -// properly optimized away early in Ignition+TurboFan. -/**/ -var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -/**/ - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var debugUtil = require('util'); -var debug = void 0; -if (debugUtil && debugUtil.debuglog) { - debug = debugUtil.debuglog('stream'); -} else { - debug = function () {}; -} -/**/ - -var BufferList = require('./internal/streams/BufferList'); -var destroyImpl = require('./internal/streams/destroy'); -var StringDecoder; - -util.inherits(Readable, Stream); - -var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - -function prependListener(emitter, event, fn) { - // Sadly this is not cacheable as some libraries bundle their own - // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') { - return emitter.prependListener(event, fn); - } else { - // This is a hack to make sure that our error handler is attached before any - // userland ones. NEVER DO THIS. This is here only because this code needs - // to continue to work with older versions of Node.js that do not include - // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; - } -} - -function ReadableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag. Used to make read(n) ignore n and to - // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode; - - // the point at which it stops calling _read() to fill the buffer - // Note: 0 is a valid value, means "don't call _read preemptively ever" - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // A linked list is used to store data chunks instead of an array because the - // linked list can remove elements from the beginning faster than - // array.shift() - this.buffer = new BufferList(); - this.length = 0; - this.pipes = null; - this.pipesCount = 0; - this.flowing = null; - this.ended = false; - this.endEmitted = false; - this.reading = false; - - // a flag to be able to tell if the event 'readable'/'data' is emitted - // immediately, or on a later tick. We set this to true at first, because - // any actions that shouldn't happen until "later" should generally also - // not happen before the first read call. - this.sync = true; - - // whenever we return null, then we set a flag to say - // that we're awaiting a 'readable' event emission. - this.needReadable = false; - this.emittedReadable = false; - this.readableListening = false; - this.resumeScheduled = false; - - // has it been destroyed - this.destroyed = false; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // the number of writers that are awaiting a drain event in .pipe()s - this.awaitDrain = 0; - - // if true, a maybeReadMore has been scheduled - this.readingMore = false; - - this.decoder = null; - this.encoding = null; - if (options.encoding) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this.decoder = new StringDecoder(options.encoding); - this.encoding = options.encoding; - } -} - -function Readable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - if (!(this instanceof Readable)) return new Readable(options); - - this._readableState = new ReadableState(options, this); - - // legacy - this.readable = true; - - if (options) { - if (typeof options.read === 'function') this._read = options.read; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - } - - Stream.call(this); -} - -Object.defineProperty(Readable.prototype, 'destroyed', { - get: function () { - if (this._readableState === undefined) { - return false; - } - return this._readableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._readableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._readableState.destroyed = value; - } -}); - -Readable.prototype.destroy = destroyImpl.destroy; -Readable.prototype._undestroy = destroyImpl.undestroy; -Readable.prototype._destroy = function (err, cb) { - this.push(null); - cb(err); -}; - -// Manually shove something into the read() buffer. -// This returns true if the highWaterMark has not been hit yet, -// similar to how Writable.write() returns true if you should -// write() some more. -Readable.prototype.push = function (chunk, encoding) { - var state = this._readableState; - var skipChunkCheck; - - if (!state.objectMode) { - if (typeof chunk === 'string') { - encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { - chunk = Buffer.from(chunk, encoding); - encoding = ''; - } - skipChunkCheck = true; - } - } else { - skipChunkCheck = true; - } - - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; - -// Unshift should *always* be something directly out of read() -Readable.prototype.unshift = function (chunk) { - return readableAddChunk(this, chunk, null, true, false); -}; - -function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { - var state = stream._readableState; - if (chunk === null) { - state.reading = false; - onEofChunk(stream, state); - } else { - var er; - if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { - stream.emit('error', er); - } else if (state.objectMode || chunk && chunk.length > 0) { - if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (addToFront) { - if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true); - } else if (state.ended) { - stream.emit('error', new Error('stream.push() after EOF')); - } else { - state.reading = false; - if (state.decoder && !encoding) { - chunk = state.decoder.write(chunk); - if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); - } else { - addChunk(stream, state, chunk, false); - } - } - } else if (!addToFront) { - state.reading = false; - } - } - - return needMoreData(state); -} - -function addChunk(stream, state, chunk, addToFront) { - if (state.flowing && state.length === 0 && !state.sync) { - stream.emit('data', chunk); - stream.read(0); - } else { - // update the buffer info. - state.length += state.objectMode ? 1 : chunk.length; - if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); - - if (state.needReadable) emitReadable(stream); - } - maybeReadMore(stream, state); -} - -function chunkInvalid(state, chunk) { - var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - return er; -} - -// if it's past the high water mark, we can push in some more. -// Also, if we have no data yet, we can stand some -// more bytes. This is to work around cases where hwm=0, -// such as the repl. Also, if the push() triggered a -// readable event, and the user called read(largeNumber) such that -// needReadable was set, then we ought to push more, so that another -// 'readable' event will be triggered. -function needMoreData(state) { - return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0); -} - -Readable.prototype.isPaused = function () { - return this._readableState.flowing === false; -}; - -// backwards compatibility. -Readable.prototype.setEncoding = function (enc) { - if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; - this._readableState.decoder = new StringDecoder(enc); - this._readableState.encoding = enc; - return this; -}; - -// Don't raise the hwm > 8MB -var MAX_HWM = 0x800000; -function computeNewHighWaterMark(n) { - if (n >= MAX_HWM) { - n = MAX_HWM; - } else { - // Get the next highest power of 2 to prevent increasing hwm excessively in - // tiny amounts - n--; - n |= n >>> 1; - n |= n >>> 2; - n |= n >>> 4; - n |= n >>> 8; - n |= n >>> 16; - n++; - } - return n; -} - -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function howMuchToRead(n, state) { - if (n <= 0 || state.length === 0 && state.ended) return 0; - if (state.objectMode) return 1; - if (n !== n) { - // Only flow one buffer at a time - if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } - // If we're asking for more than the current hwm, then raise the hwm. - if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; - // Don't have enough - if (!state.ended) { - state.needReadable = true; - return 0; - } - return state.length; -} - -// you can override either this method, or the async _read(n) below. -Readable.prototype.read = function (n) { - debug('read', n); - n = parseInt(n, 10); - var state = this._readableState; - var nOrig = n; - - if (n !== 0) state.emittedReadable = false; - - // if we're doing read(0) to trigger a readable event, but we - // already have a bunch of data in the buffer, then just trigger - // the 'readable' event and move on. - if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) { - debug('read: emitReadable', state.length, state.ended); - if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); - return null; - } - - n = howMuchToRead(n, state); - - // if we've ended, and we're now clear, then finish it up. - if (n === 0 && state.ended) { - if (state.length === 0) endReadable(this); - return null; - } - - // All the actual chunk generation logic needs to be - // *below* the call to _read. The reason is that in certain - // synthetic stream cases, such as passthrough streams, _read - // may be a completely synchronous operation which may change - // the state of the read buffer, providing enough data when - // before there was *not* enough. - // - // So, the steps are: - // 1. Figure out what the state of things will be after we do - // a read from the buffer. - // - // 2. If that resulting state will trigger a _read, then call _read. - // Note that this may be asynchronous, or synchronous. Yes, it is - // deeply ugly to write APIs this way, but that still doesn't mean - // that the Readable class should behave improperly, as streams are - // designed to be sync/async agnostic. - // Take note if the _read call is sync or async (ie, if the read call - // has returned yet), so that we know whether or not it's safe to emit - // 'readable' etc. - // - // 3. Actually pull the requested chunks out of the buffer and return. - - // if we need a readable event, then we need to do some reading. - var doRead = state.needReadable; - debug('need readable', doRead); - - // if we currently have less than the highWaterMark, then also read some - if (state.length === 0 || state.length - n < state.highWaterMark) { - doRead = true; - debug('length less than watermark', doRead); - } - - // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - if (state.ended || state.reading) { - doRead = false; - debug('reading or ended', doRead); - } else if (doRead) { - debug('do read'); - state.reading = true; - state.sync = true; - // if the length is currently zero, then we *need* a readable event. - if (state.length === 0) state.needReadable = true; - // call internal read method - this._read(state.highWaterMark); - state.sync = false; - // If _read pushed data synchronously, then `reading` will be false, - // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); - } - - var ret; - if (n > 0) ret = fromList(n, state);else ret = null; - - if (ret === null) { - state.needReadable = true; - n = 0; - } else { - state.length -= n; - } - - if (state.length === 0) { - // If we have nothing in the buffer, then we want to know - // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; - - // If we tried to read() past the EOF, then emit end on the next tick. - if (nOrig !== n && state.ended) endReadable(this); - } - - if (ret !== null) this.emit('data', ret); - - return ret; -}; - -function onEofChunk(stream, state) { - if (state.ended) return; - if (state.decoder) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) { - state.buffer.push(chunk); - state.length += state.objectMode ? 1 : chunk.length; - } - } - state.ended = true; - - // emit 'readable' now to make sure it gets picked up. - emitReadable(stream); -} - -// Don't emit readable right away in sync mode, because this can trigger -// another read() call => stack overflow. This way, it might trigger -// a nextTick recursion warning, but that's not so bad. -function emitReadable(stream) { - var state = stream._readableState; - state.needReadable = false; - if (!state.emittedReadable) { - debug('emitReadable', state.flowing); - state.emittedReadable = true; - if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream); - } -} - -function emitReadable_(stream) { - debug('emit readable'); - stream.emit('readable'); - flow(stream); -} - -// at this point, the user has presumably seen the 'readable' event, -// and called read() to consume some data. that may have triggered -// in turn another _read(n) call, in which case reading = true if -// it's in progress. -// However, if we're not ended, or reading, and the length < hwm, -// then go ahead and try to read some more preemptively. -function maybeReadMore(stream, state) { - if (!state.readingMore) { - state.readingMore = true; - processNextTick(maybeReadMore_, stream, state); - } -} - -function maybeReadMore_(stream, state) { - var len = state.length; - while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) { - debug('maybeReadMore read 0'); - stream.read(0); - if (len === state.length) - // didn't get any data, stop spinning. - break;else len = state.length; - } - state.readingMore = false; -} - -// abstract method. to be overridden in specific implementation classes. -// call cb(er, data) where data is <= n in length. -// for virtual (non-string, non-buffer) streams, "length" is somewhat -// arbitrary, and perhaps not very meaningful. -Readable.prototype._read = function (n) { - this.emit('error', new Error('_read() is not implemented')); -}; - -Readable.prototype.pipe = function (dest, pipeOpts) { - var src = this; - var state = this._readableState; - - switch (state.pipesCount) { - case 0: - state.pipes = dest; - break; - case 1: - state.pipes = [state.pipes, dest]; - break; - default: - state.pipes.push(dest); - break; - } - state.pipesCount += 1; - debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); - - var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; - - var endFn = doEnd ? onend : unpipe; - if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn); - - dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { - debug('onunpipe'); - if (readable === src) { - if (unpipeInfo && unpipeInfo.hasUnpiped === false) { - unpipeInfo.hasUnpiped = true; - cleanup(); - } - } - } - - function onend() { - debug('onend'); - dest.end(); - } - - // when the dest drains, it reduces the awaitDrain counter - // on the source. This would be more elegant with a .once() - // handler in flow(), but adding and removing repeatedly is - // too slow. - var ondrain = pipeOnDrain(src); - dest.on('drain', ondrain); - - var cleanedUp = false; - function cleanup() { - debug('cleanup'); - // cleanup event handlers once the pipe is broken - dest.removeListener('close', onclose); - dest.removeListener('finish', onfinish); - dest.removeListener('drain', ondrain); - dest.removeListener('error', onerror); - dest.removeListener('unpipe', onunpipe); - src.removeListener('end', onend); - src.removeListener('end', unpipe); - src.removeListener('data', ondata); - - cleanedUp = true; - - // if the reader is waiting for a drain event from this - // specific writer, then it would cause it to never start - // flowing again. - // So, if this is awaiting a drain, then we just call it now. - // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); - } - - // If the user pushes more data while we're writing to dest then we'll end up - // in ondata again. However, we only want to increase awaitDrain once because - // dest will only emit one 'drain' event for the multiple writes. - // => Introduce a guard on increasing awaitDrain. - var increasedAwaitDrain = false; - src.on('data', ondata); - function ondata(chunk) { - debug('ondata'); - increasedAwaitDrain = false; - var ret = dest.write(chunk); - if (false === ret && !increasedAwaitDrain) { - // If the user unpiped during `dest.write()`, it is possible - // to get stuck in a permanently paused state if that write - // also returned false. - // => Check whether `dest` is still a piping destination. - if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; - increasedAwaitDrain = true; - } - src.pause(); - } - } - - // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - function onerror(er) { - debug('onerror', er); - unpipe(); - dest.removeListener('error', onerror); - if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er); - } - - // Make sure our error handler is attached before userland ones. - prependListener(dest, 'error', onerror); - - // Both close and finish should trigger unpipe, but only once. - function onclose() { - dest.removeListener('finish', onfinish); - unpipe(); - } - dest.once('close', onclose); - function onfinish() { - debug('onfinish'); - dest.removeListener('close', onclose); - unpipe(); - } - dest.once('finish', onfinish); - - function unpipe() { - debug('unpipe'); - src.unpipe(dest); - } - - // tell the dest that it's being piped to - dest.emit('pipe', src); - - // start the flow if it hasn't been started already. - if (!state.flowing) { - debug('pipe resume'); - src.resume(); - } - - return dest; -}; - -function pipeOnDrain(src) { - return function () { - var state = src._readableState; - debug('pipeOnDrain', state.awaitDrain); - if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { - state.flowing = true; - flow(src); - } - }; -} - -Readable.prototype.unpipe = function (dest) { - var state = this._readableState; - var unpipeInfo = { hasUnpiped: false }; - - // if we're not piping anywhere, then do nothing. - if (state.pipesCount === 0) return this; - - // just one destination. most common case. - if (state.pipesCount === 1) { - // passed in one, but it's not the right one. - if (dest && dest !== state.pipes) return this; - - if (!dest) dest = state.pipes; - - // got a match. - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - if (dest) dest.emit('unpipe', this, unpipeInfo); - return this; - } - - // slow case. multiple pipe destinations. - - if (!dest) { - // remove all. - var dests = state.pipes; - var len = state.pipesCount; - state.pipes = null; - state.pipesCount = 0; - state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); - }return this; - } - - // try to find the right one. - var index = indexOf(state.pipes, dest); - if (index === -1) return this; - - state.pipes.splice(index, 1); - state.pipesCount -= 1; - if (state.pipesCount === 1) state.pipes = state.pipes[0]; - - dest.emit('unpipe', this, unpipeInfo); - - return this; -}; - -// set up data events if they are asked for -// Ensure readable listeners eventually get something -Readable.prototype.on = function (ev, fn) { - var res = Stream.prototype.on.call(this, ev, fn); - - if (ev === 'data') { - // Start flowing on next tick if stream isn't explicitly paused - if (this._readableState.flowing !== false) this.resume(); - } else if (ev === 'readable') { - var state = this._readableState; - if (!state.endEmitted && !state.readableListening) { - state.readableListening = state.needReadable = true; - state.emittedReadable = false; - if (!state.reading) { - processNextTick(nReadingNextTick, this); - } else if (state.length) { - emitReadable(this); - } - } - } - - return res; -}; -Readable.prototype.addListener = Readable.prototype.on; - -function nReadingNextTick(self) { - debug('readable nexttick read 0'); - self.read(0); -} - -// pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. -Readable.prototype.resume = function () { - var state = this._readableState; - if (!state.flowing) { - debug('resume'); - state.flowing = true; - resume(this, state); - } - return this; -}; - -function resume(stream, state) { - if (!state.resumeScheduled) { - state.resumeScheduled = true; - processNextTick(resume_, stream, state); - } -} - -function resume_(stream, state) { - if (!state.reading) { - debug('resume read 0'); - stream.read(0); - } - - state.resumeScheduled = false; - state.awaitDrain = 0; - stream.emit('resume'); - flow(stream); - if (state.flowing && !state.reading) stream.read(0); -} - -Readable.prototype.pause = function () { - debug('call pause flowing=%j', this._readableState.flowing); - if (false !== this._readableState.flowing) { - debug('pause'); - this._readableState.flowing = false; - this.emit('pause'); - } - return this; -}; - -function flow(stream) { - var state = stream._readableState; - debug('flow', state.flowing); - while (state.flowing && stream.read() !== null) {} -} - -// wrap an old-style stream as the async data source. -// This is *not* part of the readable stream interface. -// It is an ugly unfortunate mess of history. -Readable.prototype.wrap = function (stream) { - var state = this._readableState; - var paused = false; - - var self = this; - stream.on('end', function () { - debug('wrapped end'); - if (state.decoder && !state.ended) { - var chunk = state.decoder.end(); - if (chunk && chunk.length) self.push(chunk); - } - - self.push(null); - }); - - stream.on('data', function (chunk) { - debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); - - // don't skip over falsy values in objectMode - if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - - var ret = self.push(chunk); - if (!ret) { - paused = true; - stream.pause(); - } - }); - - // proxy all the other methods. - // important when wrapping filters and duplexes. - for (var i in stream) { - if (this[i] === undefined && typeof stream[i] === 'function') { - this[i] = function (method) { - return function () { - return stream[method].apply(stream, arguments); - }; - }(i); - } - } - - // proxy certain important events. - for (var n = 0; n < kProxyEvents.length; n++) { - stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n])); - } - - // when we try to consume some more bytes, simply unpause the - // underlying stream. - self._read = function (n) { - debug('wrapped _read', n); - if (paused) { - paused = false; - stream.resume(); - } - }; - - return self; -}; - -// exposed for testing purposes only. -Readable._fromList = fromList; - -// Pluck off n bytes from an array of buffers. -// Length is the combined lengths of all the buffers in the list. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromList(n, state) { - // nothing buffered - if (state.length === 0) return null; - - var ret; - if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) { - // read it all, truncate the list - if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length); - state.buffer.clear(); - } else { - // read part of list - ret = fromListPartial(n, state.buffer, state.decoder); - } - - return ret; -} - -// Extracts only enough buffered data to satisfy the amount requested. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function fromListPartial(n, list, hasStrings) { - var ret; - if (n < list.head.data.length) { - // slice is the same for buffers and strings - ret = list.head.data.slice(0, n); - list.head.data = list.head.data.slice(n); - } else if (n === list.head.data.length) { - // first chunk is a perfect match - ret = list.shift(); - } else { - // result spans more than one buffer - ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list); - } - return ret; -} - -// Copies a specified amount of characters from the list of buffered data -// chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBufferString(n, list) { - var p = list.head; - var c = 1; - var ret = p.data; - n -= ret.length; - while (p = p.next) { - var str = p.data; - var nb = n > str.length ? str.length : n; - if (nb === str.length) ret += str;else ret += str.slice(0, n); - n -= nb; - if (n === 0) { - if (nb === str.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = str.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -// Copies a specified amount of bytes from the list of buffered data chunks. -// This function is designed to be inlinable, so please take care when making -// changes to the function body. -function copyFromBuffer(n, list) { - var ret = Buffer.allocUnsafe(n); - var p = list.head; - var c = 1; - p.data.copy(ret); - n -= p.data.length; - while (p = p.next) { - var buf = p.data; - var nb = n > buf.length ? buf.length : n; - buf.copy(ret, ret.length - n, 0, nb); - n -= nb; - if (n === 0) { - if (nb === buf.length) { - ++c; - if (p.next) list.head = p.next;else list.head = list.tail = null; - } else { - list.head = p; - p.data = buf.slice(nb); - } - break; - } - ++c; - } - list.length -= c; - return ret; -} - -function endReadable(stream) { - var state = stream._readableState; - - // If we get here before consuming all the bytes, then that is a - // bug in node. Should never happen. - if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream'); - - if (!state.endEmitted) { - state.ended = true; - processNextTick(endReadableNT, state, stream); - } -} - -function endReadableNT(state, stream) { - // Check that we didn't get one last unshift. - if (!state.endEmitted && state.length === 0) { - state.endEmitted = true; - stream.readable = false; - stream.emit('end'); - } -} - -function forEach(xs, f) { - for (var i = 0, l = xs.length; i < l; i++) { - f(xs[i], i); - } -} - -function indexOf(xs, x) { - for (var i = 0, l = xs.length; i < l; i++) { - if (xs[i] === x) return i; - } - return -1; -} -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":467,"./internal/streams/BufferList":472,"./internal/streams/destroy":473,"./internal/streams/stream":474,"_process":458,"core-util-is":304,"events":310,"inherits":313,"isarray":315,"process-nextick-args":457,"safe-buffer":481,"string_decoder/":475,"util":301}],470:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// a transform stream is a readable/writable stream where you do -// something with the data. Sometimes it's called a "filter", -// but that's not a great name for it, since that implies a thing where -// some bits pass through, and others are simply ignored. (That would -// be a valid example of a transform, of course.) -// -// While the output is causally related to the input, it's not a -// necessarily symmetric or synchronous transformation. For example, -// a zlib stream might take multiple plain-text writes(), and then -// emit a single compressed chunk some time in the future. -// -// Here's how this works: -// -// The Transform stream has all the aspects of the readable and writable -// stream classes. When you write(chunk), that calls _write(chunk,cb) -// internally, and returns false if there's a lot of pending writes -// buffered up. When you call read(), that calls _read(n) until -// there's enough pending readable data buffered up. -// -// In a transform stream, the written data is placed in a buffer. When -// _read(n) is called, it transforms the queued up data, calling the -// buffered _write cb's as it consumes chunks. If consuming a single -// written chunk would result in multiple output chunks, then the first -// outputted bit calls the readcb, and subsequent chunks just go into -// the read buffer, and will cause it to emit 'readable' if necessary. -// -// This way, back-pressure is actually determined by the reading side, -// since _read has to be called to start processing a new chunk. However, -// a pathological inflate type of transform can cause excessive buffering -// here. For example, imagine a stream where every byte of input is -// interpreted as an integer from 0-255, and then results in that many -// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in -// 1kb of data being output. In this case, you could write a very small -// amount of input, and end up with a very large amount of output. In -// such a pathological inflating mechanism, there'd be no way to tell -// the system to stop doing the transform. A single 4MB write could -// cause the system to run out of memory. -// -// However, even in such a pathological case, only a single written chunk -// would be consumed, and then the rest would wait (un-transformed) until -// the results of the previous transformed chunk were consumed. - -'use strict'; - -module.exports = Transform; - -var Duplex = require('./_stream_duplex'); - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -util.inherits(Transform, Duplex); - -function TransformState(stream) { - this.afterTransform = function (er, data) { - return afterTransform(stream, er, data); - }; - - this.needTransform = false; - this.transforming = false; - this.writecb = null; - this.writechunk = null; - this.writeencoding = null; -} - -function afterTransform(stream, er, data) { - var ts = stream._transformState; - ts.transforming = false; - - var cb = ts.writecb; - - if (!cb) { - return stream.emit('error', new Error('write callback called multiple times')); - } - - ts.writechunk = null; - ts.writecb = null; - - if (data !== null && data !== undefined) stream.push(data); - - cb(er); - - var rs = stream._readableState; - rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { - stream._read(rs.highWaterMark); - } -} - -function Transform(options) { - if (!(this instanceof Transform)) return new Transform(options); - - Duplex.call(this, options); - - this._transformState = new TransformState(this); - - var stream = this; - - // start out asking for a readable event once data is transformed. - this._readableState.needReadable = true; - - // we have implemented the _read method, and done the other things - // that Readable wants before the first _read call, so unset the - // sync guard flag. - this._readableState.sync = false; - - if (options) { - if (typeof options.transform === 'function') this._transform = options.transform; - - if (typeof options.flush === 'function') this._flush = options.flush; - } - - // When the writable side finishes, then flush out anything remaining. - this.once('prefinish', function () { - if (typeof this._flush === 'function') this._flush(function (er, data) { - done(stream, er, data); - });else done(stream); - }); -} - -Transform.prototype.push = function (chunk, encoding) { - this._transformState.needTransform = false; - return Duplex.prototype.push.call(this, chunk, encoding); -}; - -// This is the part where you do stuff! -// override this function in implementation classes. -// 'chunk' is an input chunk. -// -// Call `push(newChunk)` to pass along transformed output -// to the readable side. You may call 'push' zero or more times. -// -// Call `cb(err)` when you are done with this chunk. If you pass -// an error, then that'll put the hurt on the whole operation. If you -// never call cb(), then you'll never get another chunk. -Transform.prototype._transform = function (chunk, encoding, cb) { - throw new Error('_transform() is not implemented'); -}; - -Transform.prototype._write = function (chunk, encoding, cb) { - var ts = this._transformState; - ts.writecb = cb; - ts.writechunk = chunk; - ts.writeencoding = encoding; - if (!ts.transforming) { - var rs = this._readableState; - if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); - } -}; - -// Doesn't matter what the args are here. -// _transform does all the work. -// That we got here means that the readable side wants more data. -Transform.prototype._read = function (n) { - var ts = this._transformState; - - if (ts.writechunk !== null && ts.writecb && !ts.transforming) { - ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); - } else { - // mark that we need a transform, so that any data that comes in - // will get processed, now that we've asked for it. - ts.needTransform = true; - } -}; - -Transform.prototype._destroy = function (err, cb) { - var _this = this; - - Duplex.prototype._destroy.call(this, err, function (err2) { - cb(err2); - _this.emit('close'); - }); -}; - -function done(stream, er, data) { - if (er) return stream.emit('error', er); - - if (data !== null && data !== undefined) stream.push(data); - - // if there's nothing in the write buffer, then that means - // that nothing more will ever be provided - var ws = stream._writableState; - var ts = stream._transformState; - - if (ws.length) throw new Error('Calling transform done when ws.length != 0'); - - if (ts.transforming) throw new Error('Calling transform done when still transforming'); - - return stream.push(null); -} -},{"./_stream_duplex":467,"core-util-is":304,"inherits":313}],471:[function(require,module,exports){ -(function (process,global){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// A bit simpler than readable streams. -// Implement an async ._write(chunk, encoding, cb), and it'll handle all -// the drain event emission and buffering. - -'use strict'; - -/**/ - -var processNextTick = require('process-nextick-args'); -/**/ - -module.exports = Writable; - -/* */ -function WriteReq(chunk, encoding, cb) { - this.chunk = chunk; - this.encoding = encoding; - this.callback = cb; - this.next = null; -} - -// It seems a linked list but it is not -// there will be only 2 of these for each stream -function CorkedRequest(state) { - var _this = this; - - this.next = null; - this.entry = null; - this.finish = function () { - onCorkedFinish(_this, state); - }; -} -/* */ - -/**/ -var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick; -/**/ - -/**/ -var Duplex; -/**/ - -Writable.WritableState = WritableState; - -/**/ -var util = require('core-util-is'); -util.inherits = require('inherits'); -/**/ - -/**/ -var internalUtil = { - deprecate: require('util-deprecate') -}; -/**/ - -/**/ -var Stream = require('./internal/streams/stream'); -/**/ - -/**/ -var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; -function _uint8ArrayToBuffer(chunk) { - return Buffer.from(chunk); -} -function _isUint8Array(obj) { - return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; -} -/**/ - -var destroyImpl = require('./internal/streams/destroy'); - -util.inherits(Writable, Stream); - -function nop() {} - -function WritableState(options, stream) { - Duplex = Duplex || require('./_stream_duplex'); - - options = options || {}; - - // object stream flag to indicate whether or not this stream - // contains buffers or objects. - this.objectMode = !!options.objectMode; - - if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode; - - // the point at which write() starts returning false - // Note: 0 is a valid value, means that we always return false if - // the entire buffer is not flushed immediately on write() - var hwm = options.highWaterMark; - var defaultHwm = this.objectMode ? 16 : 16 * 1024; - this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm; - - // cast to ints. - this.highWaterMark = Math.floor(this.highWaterMark); - - // if _final has been called - this.finalCalled = false; - - // drain event flag. - this.needDrain = false; - // at the start of calling end() - this.ending = false; - // when end() has been called, and returned - this.ended = false; - // when 'finish' is emitted - this.finished = false; - - // has it been destroyed - this.destroyed = false; - - // should we decode strings into buffers before passing to _write? - // this is here so that some node-core streams can optimize string - // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; - - // Crypto is kind of old and crusty. Historically, its default string - // encoding is 'binary' so we have to make this configurable. - // Everything else in the universe uses 'utf8', though. - this.defaultEncoding = options.defaultEncoding || 'utf8'; - - // not an actual buffer we keep track of, but a measurement - // of how much we're waiting to get pushed to some underlying - // socket or file. - this.length = 0; - - // a flag to see when we're in the middle of a write. - this.writing = false; - - // when true all writes will be buffered until .uncork() call - this.corked = 0; - - // a flag to be able to tell if the onwrite cb is called immediately, - // or on a later tick. We set this to true at first, because any - // actions that shouldn't happen until "later" should generally also - // not happen before the first write call. - this.sync = true; - - // a flag to know if we're processing previously buffered items, which - // may call the _write() callback in the same tick, so that we don't - // end up in an overlapped onwrite situation. - this.bufferProcessing = false; - - // the callback that's passed to _write(chunk,cb) - this.onwrite = function (er) { - onwrite(stream, er); - }; - - // the callback that the user supplies to write(chunk,encoding,cb) - this.writecb = null; - - // the amount that is being written when _write is called. - this.writelen = 0; - - this.bufferedRequest = null; - this.lastBufferedRequest = null; - - // number of pending user-supplied write callbacks - // this must be 0 before 'finish' can be emitted - this.pendingcb = 0; - - // emit prefinish if the only thing we're waiting for is _write cbs - // This is relevant for synchronous Transform streams - this.prefinished = false; - - // True if the error was already emitted and should not be thrown again - this.errorEmitted = false; - - // count buffered requests - this.bufferedRequestCount = 0; - - // allocate the first CorkedRequest, there is always - // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); -} - -WritableState.prototype.getBuffer = function getBuffer() { - var current = this.bufferedRequest; - var out = []; - while (current) { - out.push(current); - current = current.next; - } - return out; -}; - -(function () { - try { - Object.defineProperty(WritableState.prototype, 'buffer', { - get: internalUtil.deprecate(function () { - return this.getBuffer(); - }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') - }); - } catch (_) {} -})(); - -// Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. -var realHasInstance; -if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { - realHasInstance = Function.prototype[Symbol.hasInstance]; - Object.defineProperty(Writable, Symbol.hasInstance, { - value: function (object) { - if (realHasInstance.call(this, object)) return true; - - return object && object._writableState instanceof WritableState; - } - }); -} else { - realHasInstance = function (object) { - return object instanceof this; - }; -} - -function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); - - // Writable ctor is applied to Duplexes, too. - // `realHasInstance` is necessary because using plain `instanceof` - // would return false, as no `_writableState` property is attached. - - // Trying to use the custom `instanceof` for Writable here will also break the - // Node.js LazyTransform implementation, which has a non-trivial getter for - // `_writableState` that would lead to infinite recursion. - if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) { - return new Writable(options); - } - - this._writableState = new WritableState(options, this); - - // legacy. - this.writable = true; - - if (options) { - if (typeof options.write === 'function') this._write = options.write; - - if (typeof options.writev === 'function') this._writev = options.writev; - - if (typeof options.destroy === 'function') this._destroy = options.destroy; - - if (typeof options.final === 'function') this._final = options.final; - } - - Stream.call(this); -} - -// Otherwise people can pipe Writable streams, which is just wrong. -Writable.prototype.pipe = function () { - this.emit('error', new Error('Cannot pipe, not readable')); -}; - -function writeAfterEnd(stream, cb) { - var er = new Error('write after end'); - // TODO: defer error events consistently everywhere, not just the cb - stream.emit('error', er); - processNextTick(cb, er); -} - -// Checks that a user-supplied chunk is valid, especially for the particular -// mode the stream is in. Currently this means that `null` is never accepted -// and undefined/non-string values are only allowed in object mode. -function validChunk(stream, state, chunk, cb) { - var valid = true; - var er = false; - - if (chunk === null) { - er = new TypeError('May not write null values to stream'); - } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { - er = new TypeError('Invalid non-string/buffer chunk'); - } - if (er) { - stream.emit('error', er); - processNextTick(cb, er); - valid = false; - } - return valid; -} - -Writable.prototype.write = function (chunk, encoding, cb) { - var state = this._writableState; - var ret = false; - var isBuf = _isUint8Array(chunk) && !state.objectMode; - - if (isBuf && !Buffer.isBuffer(chunk)) { - chunk = _uint8ArrayToBuffer(chunk); - } - - if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; - - if (typeof cb !== 'function') cb = nop; - - if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { - state.pendingcb++; - ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb); - } - - return ret; -}; - -Writable.prototype.cork = function () { - var state = this._writableState; - - state.corked++; -}; - -Writable.prototype.uncork = function () { - var state = this._writableState; - - if (state.corked) { - state.corked--; - - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); - } -}; - -Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { - // node::ParseEncoding() requires lower case. - if (typeof encoding === 'string') encoding = encoding.toLowerCase(); - if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding); - this._writableState.defaultEncoding = encoding; - return this; -}; - -function decodeChunk(state, chunk, encoding) { - if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { - chunk = Buffer.from(chunk, encoding); - } - return chunk; -} - -// if we're already writing something, then just put this -// in the queue, and wait our turn. Otherwise, call _write -// If we return false, then we need a drain event, so set that flag. -function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { - if (!isBuf) { - var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { - isBuf = true; - encoding = 'buffer'; - chunk = newChunk; - } - } - var len = state.objectMode ? 1 : chunk.length; - - state.length += len; - - var ret = state.length < state.highWaterMark; - // we must ensure that previous needDrain will not be reset to false. - if (!ret) state.needDrain = true; - - if (state.writing || state.corked) { - var last = state.lastBufferedRequest; - state.lastBufferedRequest = { - chunk: chunk, - encoding: encoding, - isBuf: isBuf, - callback: cb, - next: null - }; - if (last) { - last.next = state.lastBufferedRequest; - } else { - state.bufferedRequest = state.lastBufferedRequest; - } - state.bufferedRequestCount += 1; - } else { - doWrite(stream, state, false, len, chunk, encoding, cb); - } - - return ret; -} - -function doWrite(stream, state, writev, len, chunk, encoding, cb) { - state.writelen = len; - state.writecb = cb; - state.writing = true; - state.sync = true; - if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); - state.sync = false; -} - -function onwriteError(stream, state, sync, er, cb) { - --state.pendingcb; - - if (sync) { - // defer the callback if we are being called synchronously - // to avoid piling up things on the stack - processNextTick(cb, er); - // this can emit finish, and it will always happen - // after error - processNextTick(finishMaybe, stream, state); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - } else { - // the caller expect this to happen before if - // it is async - cb(er); - stream._writableState.errorEmitted = true; - stream.emit('error', er); - // this can emit finish, but finish must - // always follow error - finishMaybe(stream, state); - } -} - -function onwriteStateUpdate(state) { - state.writing = false; - state.writecb = null; - state.length -= state.writelen; - state.writelen = 0; -} - -function onwrite(stream, er) { - var state = stream._writableState; - var sync = state.sync; - var cb = state.writecb; - - onwriteStateUpdate(state); - - if (er) onwriteError(stream, state, sync, er, cb);else { - // Check if we're actually ready to finish, but don't emit yet - var finished = needFinish(state); - - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { - clearBuffer(stream, state); - } - - if (sync) { - /**/ - asyncWrite(afterWrite, stream, state, finished, cb); - /**/ - } else { - afterWrite(stream, state, finished, cb); - } - } -} - -function afterWrite(stream, state, finished, cb) { - if (!finished) onwriteDrain(stream, state); - state.pendingcb--; - cb(); - finishMaybe(stream, state); -} - -// Must force callback to be called on nextTick, so that we don't -// emit 'drain' before the write() consumer gets the 'false' return -// value, and has a chance to attach a 'drain' listener. -function onwriteDrain(stream, state) { - if (state.length === 0 && state.needDrain) { - state.needDrain = false; - stream.emit('drain'); - } -} - -// if there's something in the buffer waiting, then process it -function clearBuffer(stream, state) { - state.bufferProcessing = true; - var entry = state.bufferedRequest; - - if (stream._writev && entry && entry.next) { - // Fast case, write everything using _writev() - var l = state.bufferedRequestCount; - var buffer = new Array(l); - var holder = state.corkedRequestsFree; - holder.entry = entry; - - var count = 0; - var allBuffers = true; - while (entry) { - buffer[count] = entry; - if (!entry.isBuf) allBuffers = false; - entry = entry.next; - count += 1; - } - buffer.allBuffers = allBuffers; - - doWrite(stream, state, true, state.length, buffer, '', holder.finish); - - // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite - state.pendingcb++; - state.lastBufferedRequest = null; - if (holder.next) { - state.corkedRequestsFree = holder.next; - holder.next = null; - } else { - state.corkedRequestsFree = new CorkedRequest(state); - } - } else { - // Slow case, write chunks one-by-one - while (entry) { - var chunk = entry.chunk; - var encoding = entry.encoding; - var cb = entry.callback; - var len = state.objectMode ? 1 : chunk.length; - - doWrite(stream, state, false, len, chunk, encoding, cb); - entry = entry.next; - // if we didn't call the onwrite immediately, then - // it means that we need to wait until it does. - // also, that means that the chunk and cb are currently - // being processed, so move the buffer counter past them. - if (state.writing) { - break; - } - } - - if (entry === null) state.lastBufferedRequest = null; - } - - state.bufferedRequestCount = 0; - state.bufferedRequest = entry; - state.bufferProcessing = false; -} - -Writable.prototype._write = function (chunk, encoding, cb) { - cb(new Error('_write() is not implemented')); -}; - -Writable.prototype._writev = null; - -Writable.prototype.end = function (chunk, encoding, cb) { - var state = this._writableState; - - if (typeof chunk === 'function') { - cb = chunk; - chunk = null; - encoding = null; - } else if (typeof encoding === 'function') { - cb = encoding; - encoding = null; - } - - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - - // .end() fully uncorks - if (state.corked) { - state.corked = 1; - this.uncork(); - } - - // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); -}; - -function needFinish(state) { - return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; -} -function callFinal(stream, state) { - stream._final(function (err) { - state.pendingcb--; - if (err) { - stream.emit('error', err); - } - state.prefinished = true; - stream.emit('prefinish'); - finishMaybe(stream, state); - }); -} -function prefinish(stream, state) { - if (!state.prefinished && !state.finalCalled) { - if (typeof stream._final === 'function') { - state.pendingcb++; - state.finalCalled = true; - processNextTick(callFinal, stream, state); - } else { - state.prefinished = true; - stream.emit('prefinish'); - } - } -} - -function finishMaybe(stream, state) { - var need = needFinish(state); - if (need) { - prefinish(stream, state); - if (state.pendingcb === 0) { - state.finished = true; - stream.emit('finish'); - } - } - return need; -} - -function endWritable(stream, state, cb) { - state.ending = true; - finishMaybe(stream, state); - if (cb) { - if (state.finished) processNextTick(cb);else stream.once('finish', cb); - } - state.ended = true; - stream.writable = false; -} - -function onCorkedFinish(corkReq, state, err) { - var entry = corkReq.entry; - corkReq.entry = null; - while (entry) { - var cb = entry.callback; - state.pendingcb--; - cb(err); - entry = entry.next; - } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } -} - -Object.defineProperty(Writable.prototype, 'destroyed', { - get: function () { - if (this._writableState === undefined) { - return false; - } - return this._writableState.destroyed; - }, - set: function (value) { - // we ignore the value if the stream - // has not been initialized yet - if (!this._writableState) { - return; - } - - // backward compatibility, the user is explicitly - // managing destroyed - this._writableState.destroyed = value; - } -}); - -Writable.prototype.destroy = destroyImpl.destroy; -Writable.prototype._undestroy = destroyImpl.undestroy; -Writable.prototype._destroy = function (err, cb) { - this.end(); - cb(err); -}; -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./_stream_duplex":467,"./internal/streams/destroy":473,"./internal/streams/stream":474,"_process":458,"core-util-is":304,"inherits":313,"process-nextick-args":457,"safe-buffer":481,"util-deprecate":493}],472:[function(require,module,exports){ -'use strict'; - -/**/ - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Buffer = require('safe-buffer').Buffer; -/**/ - -function copyBuffer(src, target, offset) { - src.copy(target, offset); -} - -module.exports = function () { - function BufferList() { - _classCallCheck(this, BufferList); - - this.head = null; - this.tail = null; - this.length = 0; - } - - BufferList.prototype.push = function push(v) { - var entry = { data: v, next: null }; - if (this.length > 0) this.tail.next = entry;else this.head = entry; - this.tail = entry; - ++this.length; - }; - - BufferList.prototype.unshift = function unshift(v) { - var entry = { data: v, next: this.head }; - if (this.length === 0) this.tail = entry; - this.head = entry; - ++this.length; - }; - - BufferList.prototype.shift = function shift() { - if (this.length === 0) return; - var ret = this.head.data; - if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next; - --this.length; - return ret; - }; - - BufferList.prototype.clear = function clear() { - this.head = this.tail = null; - this.length = 0; - }; - - BufferList.prototype.join = function join(s) { - if (this.length === 0) return ''; - var p = this.head; - var ret = '' + p.data; - while (p = p.next) { - ret += s + p.data; - }return ret; - }; - - BufferList.prototype.concat = function concat(n) { - if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; - var ret = Buffer.allocUnsafe(n >>> 0); - var p = this.head; - var i = 0; - while (p) { - copyBuffer(p.data, ret, i); - i += p.data.length; - p = p.next; - } - return ret; - }; - - return BufferList; -}(); -},{"safe-buffer":481}],473:[function(require,module,exports){ -'use strict'; - -/**/ - -var processNextTick = require('process-nextick-args'); -/**/ - -// undocumented cb() API, needed for core, not for public API -function destroy(err, cb) { - var _this = this; - - var readableDestroyed = this._readableState && this._readableState.destroyed; - var writableDestroyed = this._writableState && this._writableState.destroyed; - - if (readableDestroyed || writableDestroyed) { - if (cb) { - cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - processNextTick(emitErrorNT, this, err); - } - return; - } - - // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks - - if (this._readableState) { - this._readableState.destroyed = true; - } - - // if this is a duplex stream mark the writable part as destroyed as well - if (this._writableState) { - this._writableState.destroyed = true; - } - - this._destroy(err || null, function (err) { - if (!cb && err) { - processNextTick(emitErrorNT, _this, err); - if (_this._writableState) { - _this._writableState.errorEmitted = true; - } - } else if (cb) { - cb(err); - } - }); -} - -function undestroy() { - if (this._readableState) { - this._readableState.destroyed = false; - this._readableState.reading = false; - this._readableState.ended = false; - this._readableState.endEmitted = false; - } - - if (this._writableState) { - this._writableState.destroyed = false; - this._writableState.ended = false; - this._writableState.ending = false; - this._writableState.finished = false; - this._writableState.errorEmitted = false; - } -} - -function emitErrorNT(self, err) { - self.emit('error', err); -} - -module.exports = { - destroy: destroy, - undestroy: undestroy -}; -},{"process-nextick-args":457}],474:[function(require,module,exports){ -module.exports = require('events').EventEmitter; - -},{"events":310}],475:[function(require,module,exports){ -'use strict'; - -var Buffer = require('safe-buffer').Buffer; - -var isEncoding = Buffer.isEncoding || function (encoding) { - encoding = '' + encoding; - switch (encoding && encoding.toLowerCase()) { - case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw': - return true; - default: - return false; - } -}; - -function _normalizeEncoding(enc) { - if (!enc) return 'utf8'; - var retried; - while (true) { - switch (enc) { - case 'utf8': - case 'utf-8': - return 'utf8'; - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return 'utf16le'; - case 'latin1': - case 'binary': - return 'latin1'; - case 'base64': - case 'ascii': - case 'hex': - return enc; - default: - if (retried) return; // undefined - enc = ('' + enc).toLowerCase(); - retried = true; - } - } -}; - -// Do not cache `Buffer.isEncoding` when checking encoding names as some -// modules monkey-patch it to support additional encodings -function normalizeEncoding(enc) { - var nenc = _normalizeEncoding(enc); - if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc); - return nenc || enc; -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. -exports.StringDecoder = StringDecoder; -function StringDecoder(encoding) { - this.encoding = normalizeEncoding(encoding); - var nb; - switch (this.encoding) { - case 'utf16le': - this.text = utf16Text; - this.end = utf16End; - nb = 4; - break; - case 'utf8': - this.fillLast = utf8FillLast; - nb = 4; - break; - case 'base64': - this.text = base64Text; - this.end = base64End; - nb = 3; - break; - default: - this.write = simpleWrite; - this.end = simpleEnd; - return; - } - this.lastNeed = 0; - this.lastTotal = 0; - this.lastChar = Buffer.allocUnsafe(nb); -} - -StringDecoder.prototype.write = function (buf) { - if (buf.length === 0) return ''; - var r; - var i; - if (this.lastNeed) { - r = this.fillLast(buf); - if (r === undefined) return ''; - i = this.lastNeed; - this.lastNeed = 0; - } else { - i = 0; - } - if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i); - return r || ''; -}; - -StringDecoder.prototype.end = utf8End; - -// Returns only complete characters in a Buffer -StringDecoder.prototype.text = utf8Text; - -// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer -StringDecoder.prototype.fillLast = function (buf) { - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length); - this.lastNeed -= buf.length; -}; - -// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a -// continuation byte. -function utf8CheckByte(byte) { - if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4; - return -1; -} - -// Checks at most 3 bytes at the end of a Buffer in order to detect an -// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4) -// needed to complete the UTF-8 character (if applicable) are returned. -function utf8CheckIncomplete(self, buf, i) { - var j = buf.length - 1; - if (j < i) return 0; - var nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 1; - return nb; - } - if (--j < i) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) self.lastNeed = nb - 2; - return nb; - } - if (--j < i) return 0; - nb = utf8CheckByte(buf[j]); - if (nb >= 0) { - if (nb > 0) { - if (nb === 2) nb = 0;else self.lastNeed = nb - 3; - } - return nb; - } - return 0; -} - -// Validates as many continuation bytes for a multi-byte UTF-8 character as -// needed or are available. If we see a non-continuation byte where we expect -// one, we "replace" the validated continuation bytes we've seen so far with -// UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding -// behavior. The continuation byte check is included three times in the case -// where all of the continuation bytes for a character exist in the same buffer. -// It is also done this way as a slight performance increase instead of using a -// loop. -function utf8CheckExtraBytes(self, buf, p) { - if ((buf[0] & 0xC0) !== 0x80) { - self.lastNeed = 0; - return '\ufffd'.repeat(p); - } - if (self.lastNeed > 1 && buf.length > 1) { - if ((buf[1] & 0xC0) !== 0x80) { - self.lastNeed = 1; - return '\ufffd'.repeat(p + 1); - } - if (self.lastNeed > 2 && buf.length > 2) { - if ((buf[2] & 0xC0) !== 0x80) { - self.lastNeed = 2; - return '\ufffd'.repeat(p + 2); - } - } - } -} - -// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer. -function utf8FillLast(buf) { - var p = this.lastTotal - this.lastNeed; - var r = utf8CheckExtraBytes(this, buf, p); - if (r !== undefined) return r; - if (this.lastNeed <= buf.length) { - buf.copy(this.lastChar, p, 0, this.lastNeed); - return this.lastChar.toString(this.encoding, 0, this.lastTotal); - } - buf.copy(this.lastChar, p, 0, buf.length); - this.lastNeed -= buf.length; -} - -// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a -// partial character, the character's bytes are buffered until the required -// number of bytes are available. -function utf8Text(buf, i) { - var total = utf8CheckIncomplete(this, buf, i); - if (!this.lastNeed) return buf.toString('utf8', i); - this.lastTotal = total; - var end = buf.length - (total - this.lastNeed); - buf.copy(this.lastChar, 0, end); - return buf.toString('utf8', i, end); -} - -// For UTF-8, a replacement character for each buffered byte of a (partial) -// character needs to be added to the output. -function utf8End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed); - return r; -} - -// UTF-16LE typically needs two bytes per character, but even if we have an even -// number of bytes available, we need to check if we end on a leading/high -// surrogate. In that case, we need to wait for the next two bytes in order to -// decode the last character properly. -function utf16Text(buf, i) { - if ((buf.length - i) % 2 === 0) { - var r = buf.toString('utf16le', i); - if (r) { - var c = r.charCodeAt(r.length - 1); - if (c >= 0xD800 && c <= 0xDBFF) { - this.lastNeed = 2; - this.lastTotal = 4; - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - return r.slice(0, -1); - } - } - return r; - } - this.lastNeed = 1; - this.lastTotal = 2; - this.lastChar[0] = buf[buf.length - 1]; - return buf.toString('utf16le', i, buf.length - 1); -} - -// For UTF-16LE we do not explicitly append special replacement characters if we -// end on a partial character, we simply let v8 handle that. -function utf16End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) { - var end = this.lastTotal - this.lastNeed; - return r + this.lastChar.toString('utf16le', 0, end); - } - return r; -} - -function base64Text(buf, i) { - var n = (buf.length - i) % 3; - if (n === 0) return buf.toString('base64', i); - this.lastNeed = 3 - n; - this.lastTotal = 3; - if (n === 1) { - this.lastChar[0] = buf[buf.length - 1]; - } else { - this.lastChar[0] = buf[buf.length - 2]; - this.lastChar[1] = buf[buf.length - 1]; - } - return buf.toString('base64', i, buf.length - n); -} - -function base64End(buf) { - var r = buf && buf.length ? this.write(buf) : ''; - if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed); - return r; -} - -// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex) -function simpleWrite(buf) { - return buf.toString(this.encoding); -} - -function simpleEnd(buf) { - return buf && buf.length ? this.write(buf) : ''; -} -},{"safe-buffer":481}],476:[function(require,module,exports){ -module.exports = require('./readable').PassThrough - -},{"./readable":477}],477:[function(require,module,exports){ -exports = module.exports = require('./lib/_stream_readable.js'); -exports.Stream = exports; -exports.Readable = exports; -exports.Writable = require('./lib/_stream_writable.js'); -exports.Duplex = require('./lib/_stream_duplex.js'); -exports.Transform = require('./lib/_stream_transform.js'); -exports.PassThrough = require('./lib/_stream_passthrough.js'); - -},{"./lib/_stream_duplex.js":467,"./lib/_stream_passthrough.js":468,"./lib/_stream_readable.js":469,"./lib/_stream_transform.js":470,"./lib/_stream_writable.js":471}],478:[function(require,module,exports){ -module.exports = require('./readable').Transform - -},{"./readable":477}],479:[function(require,module,exports){ -module.exports = require('./lib/_stream_writable.js'); - -},{"./lib/_stream_writable.js":471}],480:[function(require,module,exports){ -(function (Buffer){ -'use strict' -var inherits = require('inherits') -var HashBase = require('hash-base') - -function RIPEMD160 () { - HashBase.call(this, 64) - - // state - this._a = 0x67452301 - this._b = 0xefcdab89 - this._c = 0x98badcfe - this._d = 0x10325476 - this._e = 0xc3d2e1f0 -} - -inherits(RIPEMD160, HashBase) - -RIPEMD160.prototype._update = function () { - var m = new Array(16) - for (var i = 0; i < 16; ++i) m[i] = this._block.readInt32LE(i * 4) - - var al = this._a - var bl = this._b - var cl = this._c - var dl = this._d - var el = this._e - - // Mj = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 - // K = 0x00000000 - // Sj = 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8 - al = fn1(al, bl, cl, dl, el, m[0], 0x00000000, 11); cl = rotl(cl, 10) - el = fn1(el, al, bl, cl, dl, m[1], 0x00000000, 14); bl = rotl(bl, 10) - dl = fn1(dl, el, al, bl, cl, m[2], 0x00000000, 15); al = rotl(al, 10) - cl = fn1(cl, dl, el, al, bl, m[3], 0x00000000, 12); el = rotl(el, 10) - bl = fn1(bl, cl, dl, el, al, m[4], 0x00000000, 5); dl = rotl(dl, 10) - al = fn1(al, bl, cl, dl, el, m[5], 0x00000000, 8); cl = rotl(cl, 10) - el = fn1(el, al, bl, cl, dl, m[6], 0x00000000, 7); bl = rotl(bl, 10) - dl = fn1(dl, el, al, bl, cl, m[7], 0x00000000, 9); al = rotl(al, 10) - cl = fn1(cl, dl, el, al, bl, m[8], 0x00000000, 11); el = rotl(el, 10) - bl = fn1(bl, cl, dl, el, al, m[9], 0x00000000, 13); dl = rotl(dl, 10) - al = fn1(al, bl, cl, dl, el, m[10], 0x00000000, 14); cl = rotl(cl, 10) - el = fn1(el, al, bl, cl, dl, m[11], 0x00000000, 15); bl = rotl(bl, 10) - dl = fn1(dl, el, al, bl, cl, m[12], 0x00000000, 6); al = rotl(al, 10) - cl = fn1(cl, dl, el, al, bl, m[13], 0x00000000, 7); el = rotl(el, 10) - bl = fn1(bl, cl, dl, el, al, m[14], 0x00000000, 9); dl = rotl(dl, 10) - al = fn1(al, bl, cl, dl, el, m[15], 0x00000000, 8); cl = rotl(cl, 10) - - // Mj = 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8 - // K = 0x5a827999 - // Sj = 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12 - el = fn2(el, al, bl, cl, dl, m[7], 0x5a827999, 7); bl = rotl(bl, 10) - dl = fn2(dl, el, al, bl, cl, m[4], 0x5a827999, 6); al = rotl(al, 10) - cl = fn2(cl, dl, el, al, bl, m[13], 0x5a827999, 8); el = rotl(el, 10) - bl = fn2(bl, cl, dl, el, al, m[1], 0x5a827999, 13); dl = rotl(dl, 10) - al = fn2(al, bl, cl, dl, el, m[10], 0x5a827999, 11); cl = rotl(cl, 10) - el = fn2(el, al, bl, cl, dl, m[6], 0x5a827999, 9); bl = rotl(bl, 10) - dl = fn2(dl, el, al, bl, cl, m[15], 0x5a827999, 7); al = rotl(al, 10) - cl = fn2(cl, dl, el, al, bl, m[3], 0x5a827999, 15); el = rotl(el, 10) - bl = fn2(bl, cl, dl, el, al, m[12], 0x5a827999, 7); dl = rotl(dl, 10) - al = fn2(al, bl, cl, dl, el, m[0], 0x5a827999, 12); cl = rotl(cl, 10) - el = fn2(el, al, bl, cl, dl, m[9], 0x5a827999, 15); bl = rotl(bl, 10) - dl = fn2(dl, el, al, bl, cl, m[5], 0x5a827999, 9); al = rotl(al, 10) - cl = fn2(cl, dl, el, al, bl, m[2], 0x5a827999, 11); el = rotl(el, 10) - bl = fn2(bl, cl, dl, el, al, m[14], 0x5a827999, 7); dl = rotl(dl, 10) - al = fn2(al, bl, cl, dl, el, m[11], 0x5a827999, 13); cl = rotl(cl, 10) - el = fn2(el, al, bl, cl, dl, m[8], 0x5a827999, 12); bl = rotl(bl, 10) - - // Mj = 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12 - // K = 0x6ed9eba1 - // Sj = 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5 - dl = fn3(dl, el, al, bl, cl, m[3], 0x6ed9eba1, 11); al = rotl(al, 10) - cl = fn3(cl, dl, el, al, bl, m[10], 0x6ed9eba1, 13); el = rotl(el, 10) - bl = fn3(bl, cl, dl, el, al, m[14], 0x6ed9eba1, 6); dl = rotl(dl, 10) - al = fn3(al, bl, cl, dl, el, m[4], 0x6ed9eba1, 7); cl = rotl(cl, 10) - el = fn3(el, al, bl, cl, dl, m[9], 0x6ed9eba1, 14); bl = rotl(bl, 10) - dl = fn3(dl, el, al, bl, cl, m[15], 0x6ed9eba1, 9); al = rotl(al, 10) - cl = fn3(cl, dl, el, al, bl, m[8], 0x6ed9eba1, 13); el = rotl(el, 10) - bl = fn3(bl, cl, dl, el, al, m[1], 0x6ed9eba1, 15); dl = rotl(dl, 10) - al = fn3(al, bl, cl, dl, el, m[2], 0x6ed9eba1, 14); cl = rotl(cl, 10) - el = fn3(el, al, bl, cl, dl, m[7], 0x6ed9eba1, 8); bl = rotl(bl, 10) - dl = fn3(dl, el, al, bl, cl, m[0], 0x6ed9eba1, 13); al = rotl(al, 10) - cl = fn3(cl, dl, el, al, bl, m[6], 0x6ed9eba1, 6); el = rotl(el, 10) - bl = fn3(bl, cl, dl, el, al, m[13], 0x6ed9eba1, 5); dl = rotl(dl, 10) - al = fn3(al, bl, cl, dl, el, m[11], 0x6ed9eba1, 12); cl = rotl(cl, 10) - el = fn3(el, al, bl, cl, dl, m[5], 0x6ed9eba1, 7); bl = rotl(bl, 10) - dl = fn3(dl, el, al, bl, cl, m[12], 0x6ed9eba1, 5); al = rotl(al, 10) - - // Mj = 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2 - // K = 0x8f1bbcdc - // Sj = 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12 - cl = fn4(cl, dl, el, al, bl, m[1], 0x8f1bbcdc, 11); el = rotl(el, 10) - bl = fn4(bl, cl, dl, el, al, m[9], 0x8f1bbcdc, 12); dl = rotl(dl, 10) - al = fn4(al, bl, cl, dl, el, m[11], 0x8f1bbcdc, 14); cl = rotl(cl, 10) - el = fn4(el, al, bl, cl, dl, m[10], 0x8f1bbcdc, 15); bl = rotl(bl, 10) - dl = fn4(dl, el, al, bl, cl, m[0], 0x8f1bbcdc, 14); al = rotl(al, 10) - cl = fn4(cl, dl, el, al, bl, m[8], 0x8f1bbcdc, 15); el = rotl(el, 10) - bl = fn4(bl, cl, dl, el, al, m[12], 0x8f1bbcdc, 9); dl = rotl(dl, 10) - al = fn4(al, bl, cl, dl, el, m[4], 0x8f1bbcdc, 8); cl = rotl(cl, 10) - el = fn4(el, al, bl, cl, dl, m[13], 0x8f1bbcdc, 9); bl = rotl(bl, 10) - dl = fn4(dl, el, al, bl, cl, m[3], 0x8f1bbcdc, 14); al = rotl(al, 10) - cl = fn4(cl, dl, el, al, bl, m[7], 0x8f1bbcdc, 5); el = rotl(el, 10) - bl = fn4(bl, cl, dl, el, al, m[15], 0x8f1bbcdc, 6); dl = rotl(dl, 10) - al = fn4(al, bl, cl, dl, el, m[14], 0x8f1bbcdc, 8); cl = rotl(cl, 10) - el = fn4(el, al, bl, cl, dl, m[5], 0x8f1bbcdc, 6); bl = rotl(bl, 10) - dl = fn4(dl, el, al, bl, cl, m[6], 0x8f1bbcdc, 5); al = rotl(al, 10) - cl = fn4(cl, dl, el, al, bl, m[2], 0x8f1bbcdc, 12); el = rotl(el, 10) - - // Mj = 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13 - // K = 0xa953fd4e - // Sj = 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 - bl = fn5(bl, cl, dl, el, al, m[4], 0xa953fd4e, 9); dl = rotl(dl, 10) - al = fn5(al, bl, cl, dl, el, m[0], 0xa953fd4e, 15); cl = rotl(cl, 10) - el = fn5(el, al, bl, cl, dl, m[5], 0xa953fd4e, 5); bl = rotl(bl, 10) - dl = fn5(dl, el, al, bl, cl, m[9], 0xa953fd4e, 11); al = rotl(al, 10) - cl = fn5(cl, dl, el, al, bl, m[7], 0xa953fd4e, 6); el = rotl(el, 10) - bl = fn5(bl, cl, dl, el, al, m[12], 0xa953fd4e, 8); dl = rotl(dl, 10) - al = fn5(al, bl, cl, dl, el, m[2], 0xa953fd4e, 13); cl = rotl(cl, 10) - el = fn5(el, al, bl, cl, dl, m[10], 0xa953fd4e, 12); bl = rotl(bl, 10) - dl = fn5(dl, el, al, bl, cl, m[14], 0xa953fd4e, 5); al = rotl(al, 10) - cl = fn5(cl, dl, el, al, bl, m[1], 0xa953fd4e, 12); el = rotl(el, 10) - bl = fn5(bl, cl, dl, el, al, m[3], 0xa953fd4e, 13); dl = rotl(dl, 10) - al = fn5(al, bl, cl, dl, el, m[8], 0xa953fd4e, 14); cl = rotl(cl, 10) - el = fn5(el, al, bl, cl, dl, m[11], 0xa953fd4e, 11); bl = rotl(bl, 10) - dl = fn5(dl, el, al, bl, cl, m[6], 0xa953fd4e, 8); al = rotl(al, 10) - cl = fn5(cl, dl, el, al, bl, m[15], 0xa953fd4e, 5); el = rotl(el, 10) - bl = fn5(bl, cl, dl, el, al, m[13], 0xa953fd4e, 6); dl = rotl(dl, 10) - - var ar = this._a - var br = this._b - var cr = this._c - var dr = this._d - var er = this._e - - // M'j = 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12 - // K' = 0x50a28be6 - // S'j = 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6 - ar = fn5(ar, br, cr, dr, er, m[5], 0x50a28be6, 8); cr = rotl(cr, 10) - er = fn5(er, ar, br, cr, dr, m[14], 0x50a28be6, 9); br = rotl(br, 10) - dr = fn5(dr, er, ar, br, cr, m[7], 0x50a28be6, 9); ar = rotl(ar, 10) - cr = fn5(cr, dr, er, ar, br, m[0], 0x50a28be6, 11); er = rotl(er, 10) - br = fn5(br, cr, dr, er, ar, m[9], 0x50a28be6, 13); dr = rotl(dr, 10) - ar = fn5(ar, br, cr, dr, er, m[2], 0x50a28be6, 15); cr = rotl(cr, 10) - er = fn5(er, ar, br, cr, dr, m[11], 0x50a28be6, 15); br = rotl(br, 10) - dr = fn5(dr, er, ar, br, cr, m[4], 0x50a28be6, 5); ar = rotl(ar, 10) - cr = fn5(cr, dr, er, ar, br, m[13], 0x50a28be6, 7); er = rotl(er, 10) - br = fn5(br, cr, dr, er, ar, m[6], 0x50a28be6, 7); dr = rotl(dr, 10) - ar = fn5(ar, br, cr, dr, er, m[15], 0x50a28be6, 8); cr = rotl(cr, 10) - er = fn5(er, ar, br, cr, dr, m[8], 0x50a28be6, 11); br = rotl(br, 10) - dr = fn5(dr, er, ar, br, cr, m[1], 0x50a28be6, 14); ar = rotl(ar, 10) - cr = fn5(cr, dr, er, ar, br, m[10], 0x50a28be6, 14); er = rotl(er, 10) - br = fn5(br, cr, dr, er, ar, m[3], 0x50a28be6, 12); dr = rotl(dr, 10) - ar = fn5(ar, br, cr, dr, er, m[12], 0x50a28be6, 6); cr = rotl(cr, 10) - - // M'j = 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2 - // K' = 0x5c4dd124 - // S'j = 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11 - er = fn4(er, ar, br, cr, dr, m[6], 0x5c4dd124, 9); br = rotl(br, 10) - dr = fn4(dr, er, ar, br, cr, m[11], 0x5c4dd124, 13); ar = rotl(ar, 10) - cr = fn4(cr, dr, er, ar, br, m[3], 0x5c4dd124, 15); er = rotl(er, 10) - br = fn4(br, cr, dr, er, ar, m[7], 0x5c4dd124, 7); dr = rotl(dr, 10) - ar = fn4(ar, br, cr, dr, er, m[0], 0x5c4dd124, 12); cr = rotl(cr, 10) - er = fn4(er, ar, br, cr, dr, m[13], 0x5c4dd124, 8); br = rotl(br, 10) - dr = fn4(dr, er, ar, br, cr, m[5], 0x5c4dd124, 9); ar = rotl(ar, 10) - cr = fn4(cr, dr, er, ar, br, m[10], 0x5c4dd124, 11); er = rotl(er, 10) - br = fn4(br, cr, dr, er, ar, m[14], 0x5c4dd124, 7); dr = rotl(dr, 10) - ar = fn4(ar, br, cr, dr, er, m[15], 0x5c4dd124, 7); cr = rotl(cr, 10) - er = fn4(er, ar, br, cr, dr, m[8], 0x5c4dd124, 12); br = rotl(br, 10) - dr = fn4(dr, er, ar, br, cr, m[12], 0x5c4dd124, 7); ar = rotl(ar, 10) - cr = fn4(cr, dr, er, ar, br, m[4], 0x5c4dd124, 6); er = rotl(er, 10) - br = fn4(br, cr, dr, er, ar, m[9], 0x5c4dd124, 15); dr = rotl(dr, 10) - ar = fn4(ar, br, cr, dr, er, m[1], 0x5c4dd124, 13); cr = rotl(cr, 10) - er = fn4(er, ar, br, cr, dr, m[2], 0x5c4dd124, 11); br = rotl(br, 10) - - // M'j = 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13 - // K' = 0x6d703ef3 - // S'j = 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5 - dr = fn3(dr, er, ar, br, cr, m[15], 0x6d703ef3, 9); ar = rotl(ar, 10) - cr = fn3(cr, dr, er, ar, br, m[5], 0x6d703ef3, 7); er = rotl(er, 10) - br = fn3(br, cr, dr, er, ar, m[1], 0x6d703ef3, 15); dr = rotl(dr, 10) - ar = fn3(ar, br, cr, dr, er, m[3], 0x6d703ef3, 11); cr = rotl(cr, 10) - er = fn3(er, ar, br, cr, dr, m[7], 0x6d703ef3, 8); br = rotl(br, 10) - dr = fn3(dr, er, ar, br, cr, m[14], 0x6d703ef3, 6); ar = rotl(ar, 10) - cr = fn3(cr, dr, er, ar, br, m[6], 0x6d703ef3, 6); er = rotl(er, 10) - br = fn3(br, cr, dr, er, ar, m[9], 0x6d703ef3, 14); dr = rotl(dr, 10) - ar = fn3(ar, br, cr, dr, er, m[11], 0x6d703ef3, 12); cr = rotl(cr, 10) - er = fn3(er, ar, br, cr, dr, m[8], 0x6d703ef3, 13); br = rotl(br, 10) - dr = fn3(dr, er, ar, br, cr, m[12], 0x6d703ef3, 5); ar = rotl(ar, 10) - cr = fn3(cr, dr, er, ar, br, m[2], 0x6d703ef3, 14); er = rotl(er, 10) - br = fn3(br, cr, dr, er, ar, m[10], 0x6d703ef3, 13); dr = rotl(dr, 10) - ar = fn3(ar, br, cr, dr, er, m[0], 0x6d703ef3, 13); cr = rotl(cr, 10) - er = fn3(er, ar, br, cr, dr, m[4], 0x6d703ef3, 7); br = rotl(br, 10) - dr = fn3(dr, er, ar, br, cr, m[13], 0x6d703ef3, 5); ar = rotl(ar, 10) - - // M'j = 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14 - // K' = 0x7a6d76e9 - // S'j = 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8 - cr = fn2(cr, dr, er, ar, br, m[8], 0x7a6d76e9, 15); er = rotl(er, 10) - br = fn2(br, cr, dr, er, ar, m[6], 0x7a6d76e9, 5); dr = rotl(dr, 10) - ar = fn2(ar, br, cr, dr, er, m[4], 0x7a6d76e9, 8); cr = rotl(cr, 10) - er = fn2(er, ar, br, cr, dr, m[1], 0x7a6d76e9, 11); br = rotl(br, 10) - dr = fn2(dr, er, ar, br, cr, m[3], 0x7a6d76e9, 14); ar = rotl(ar, 10) - cr = fn2(cr, dr, er, ar, br, m[11], 0x7a6d76e9, 14); er = rotl(er, 10) - br = fn2(br, cr, dr, er, ar, m[15], 0x7a6d76e9, 6); dr = rotl(dr, 10) - ar = fn2(ar, br, cr, dr, er, m[0], 0x7a6d76e9, 14); cr = rotl(cr, 10) - er = fn2(er, ar, br, cr, dr, m[5], 0x7a6d76e9, 6); br = rotl(br, 10) - dr = fn2(dr, er, ar, br, cr, m[12], 0x7a6d76e9, 9); ar = rotl(ar, 10) - cr = fn2(cr, dr, er, ar, br, m[2], 0x7a6d76e9, 12); er = rotl(er, 10) - br = fn2(br, cr, dr, er, ar, m[13], 0x7a6d76e9, 9); dr = rotl(dr, 10) - ar = fn2(ar, br, cr, dr, er, m[9], 0x7a6d76e9, 12); cr = rotl(cr, 10) - er = fn2(er, ar, br, cr, dr, m[7], 0x7a6d76e9, 5); br = rotl(br, 10) - dr = fn2(dr, er, ar, br, cr, m[10], 0x7a6d76e9, 15); ar = rotl(ar, 10) - cr = fn2(cr, dr, er, ar, br, m[14], 0x7a6d76e9, 8); er = rotl(er, 10) - - // M'j = 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11 - // K' = 0x00000000 - // S'j = 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 - br = fn1(br, cr, dr, er, ar, m[12], 0x00000000, 8); dr = rotl(dr, 10) - ar = fn1(ar, br, cr, dr, er, m[15], 0x00000000, 5); cr = rotl(cr, 10) - er = fn1(er, ar, br, cr, dr, m[10], 0x00000000, 12); br = rotl(br, 10) - dr = fn1(dr, er, ar, br, cr, m[4], 0x00000000, 9); ar = rotl(ar, 10) - cr = fn1(cr, dr, er, ar, br, m[1], 0x00000000, 12); er = rotl(er, 10) - br = fn1(br, cr, dr, er, ar, m[5], 0x00000000, 5); dr = rotl(dr, 10) - ar = fn1(ar, br, cr, dr, er, m[8], 0x00000000, 14); cr = rotl(cr, 10) - er = fn1(er, ar, br, cr, dr, m[7], 0x00000000, 6); br = rotl(br, 10) - dr = fn1(dr, er, ar, br, cr, m[6], 0x00000000, 8); ar = rotl(ar, 10) - cr = fn1(cr, dr, er, ar, br, m[2], 0x00000000, 13); er = rotl(er, 10) - br = fn1(br, cr, dr, er, ar, m[13], 0x00000000, 6); dr = rotl(dr, 10) - ar = fn1(ar, br, cr, dr, er, m[14], 0x00000000, 5); cr = rotl(cr, 10) - er = fn1(er, ar, br, cr, dr, m[0], 0x00000000, 15); br = rotl(br, 10) - dr = fn1(dr, er, ar, br, cr, m[3], 0x00000000, 13); ar = rotl(ar, 10) - cr = fn1(cr, dr, er, ar, br, m[9], 0x00000000, 11); er = rotl(er, 10) - br = fn1(br, cr, dr, er, ar, m[11], 0x00000000, 11); dr = rotl(dr, 10) - - // change state - var t = (this._b + cl + dr) | 0 - this._b = (this._c + dl + er) | 0 - this._c = (this._d + el + ar) | 0 - this._d = (this._e + al + br) | 0 - this._e = (this._a + bl + cr) | 0 - this._a = t -} - -RIPEMD160.prototype._digest = function () { - // create padding and handle blocks - this._block[this._blockOffset++] = 0x80 - if (this._blockOffset > 56) { - this._block.fill(0, this._blockOffset, 64) - this._update() - this._blockOffset = 0 - } - - this._block.fill(0, this._blockOffset, 56) - this._block.writeUInt32LE(this._length[0], 56) - this._block.writeUInt32LE(this._length[1], 60) - this._update() - - // produce result - var buffer = new Buffer(20) - buffer.writeInt32LE(this._a, 0) - buffer.writeInt32LE(this._b, 4) - buffer.writeInt32LE(this._c, 8) - buffer.writeInt32LE(this._d, 12) - buffer.writeInt32LE(this._e, 16) - return buffer -} - -function rotl (x, n) { - return (x << n) | (x >>> (32 - n)) -} - -function fn1 (a, b, c, d, e, m, k, s) { - return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0 -} - -function fn2 (a, b, c, d, e, m, k, s) { - return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0 -} - -function fn3 (a, b, c, d, e, m, k, s) { - return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0 -} - -function fn4 (a, b, c, d, e, m, k, s) { - return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0 -} - -function fn5 (a, b, c, d, e, m, k, s) { - return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0 -} - -module.exports = RIPEMD160 - -}).call(this,require("buffer").Buffer) -},{"buffer":302,"hash-base":311,"inherits":313}],481:[function(require,module,exports){ -/* eslint-disable node/no-deprecated-api */ -var buffer = require('buffer') -var Buffer = buffer.Buffer - -// alternative to using Object.keys for old browsers -function copyProps (src, dst) { - for (var key in src) { - dst[key] = src[key] - } -} -if (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) { - module.exports = buffer -} else { - // Copy properties from require('buffer') - copyProps(buffer, exports) - exports.Buffer = SafeBuffer -} - -function SafeBuffer (arg, encodingOrOffset, length) { - return Buffer(arg, encodingOrOffset, length) -} - -// Copy static methods from Buffer -copyProps(Buffer, SafeBuffer) - -SafeBuffer.from = function (arg, encodingOrOffset, length) { - if (typeof arg === 'number') { - throw new TypeError('Argument must not be a number') - } - return Buffer(arg, encodingOrOffset, length) -} - -SafeBuffer.alloc = function (size, fill, encoding) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - var buf = Buffer(size) - if (fill !== undefined) { - if (typeof encoding === 'string') { - buf.fill(fill, encoding) - } else { - buf.fill(fill) - } - } else { - buf.fill(0) - } - return buf -} - -SafeBuffer.allocUnsafe = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return Buffer(size) -} - -SafeBuffer.allocUnsafeSlow = function (size) { - if (typeof size !== 'number') { - throw new TypeError('Argument must be a number') - } - return buffer.SlowBuffer(size) -} - -},{"buffer":302}],482:[function(require,module,exports){ -var Buffer = require('safe-buffer').Buffer - -// prototype class for hash functions -function Hash (blockSize, finalSize) { - this._block = Buffer.alloc(blockSize) - this._finalSize = finalSize - this._blockSize = blockSize - this._len = 0 -} - -Hash.prototype.update = function (data, enc) { - if (typeof data === 'string') { - enc = enc || 'utf8' - data = Buffer.from(data, enc) - } - - var block = this._block - var blockSize = this._blockSize - var length = data.length - var accum = this._len - - for (var offset = 0; offset < length;) { - var assigned = accum % blockSize - var remainder = Math.min(length - offset, blockSize - assigned) - - for (var i = 0; i < remainder; i++) { - block[assigned + i] = data[offset + i] - } - - accum += remainder - offset += remainder - - if ((accum % blockSize) === 0) { - this._update(block) - } - } - - this._len += length - return this -} - -Hash.prototype.digest = function (enc) { - var rem = this._len % this._blockSize - - this._block[rem] = 0x80 - - // zero (rem + 1) trailing bits, where (rem + 1) is the smallest - // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize - this._block.fill(0, rem + 1) - - if (rem >= this._finalSize) { - this._update(this._block) - this._block.fill(0) - } - - var bits = this._len * 8 - - // uint32 - if (bits <= 0xffffffff) { - this._block.writeUInt32BE(bits, this._blockSize - 4) - - // uint64 - } else { - var lowBits = bits & 0xffffffff - var highBits = (bits - lowBits) / 0x100000000 - - this._block.writeUInt32BE(highBits, this._blockSize - 8) - this._block.writeUInt32BE(lowBits, this._blockSize - 4) - } - - this._update(this._block) - var hash = this._hash() - - return enc ? hash.toString(enc) : hash -} - -Hash.prototype._update = function () { - throw new Error('_update must be implemented by subclass') -} - -module.exports = Hash - -},{"safe-buffer":481}],483:[function(require,module,exports){ -var exports = module.exports = function SHA (algorithm) { - algorithm = algorithm.toLowerCase() - - var Algorithm = exports[algorithm] - if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)') - - return new Algorithm() -} - -exports.sha = require('./sha') -exports.sha1 = require('./sha1') -exports.sha224 = require('./sha224') -exports.sha256 = require('./sha256') -exports.sha384 = require('./sha384') -exports.sha512 = require('./sha512') - -},{"./sha":484,"./sha1":485,"./sha224":486,"./sha256":487,"./sha384":488,"./sha512":489}],484:[function(require,module,exports){ -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined - * in FIPS PUB 180-1 - * This source code is derived from sha1.js of the same repository. - * The difference between SHA-0 and SHA-1 is just a bitwise rotate left - * operation was added. - */ - -var inherits = require('inherits') -var Hash = require('./hash') -var Buffer = require('safe-buffer').Buffer - -var K = [ - 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 -] - -var W = new Array(80) - -function Sha () { - this.init() - this._w = W - - Hash.call(this, 64, 56) -} - -inherits(Sha, Hash) - -Sha.prototype.init = function () { - this._a = 0x67452301 - this._b = 0xefcdab89 - this._c = 0x98badcfe - this._d = 0x10325476 - this._e = 0xc3d2e1f0 - - return this -} - -function rotl5 (num) { - return (num << 5) | (num >>> 27) -} - -function rotl30 (num) { - return (num << 30) | (num >>> 2) -} - -function ft (s, b, c, d) { - if (s === 0) return (b & c) | ((~b) & d) - if (s === 2) return (b & c) | (b & d) | (c & d) - return b ^ c ^ d -} - -Sha.prototype._update = function (M) { - var W = this._w - - var a = this._a | 0 - var b = this._b | 0 - var c = this._c | 0 - var d = this._d | 0 - var e = this._e | 0 - - for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) - for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16] - - for (var j = 0; j < 80; ++j) { - var s = ~~(j / 20) - var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 - - e = d - d = c - c = rotl30(b) - b = a - a = t - } - - this._a = (a + this._a) | 0 - this._b = (b + this._b) | 0 - this._c = (c + this._c) | 0 - this._d = (d + this._d) | 0 - this._e = (e + this._e) | 0 -} - -Sha.prototype._hash = function () { - var H = Buffer.allocUnsafe(20) - - H.writeInt32BE(this._a | 0, 0) - H.writeInt32BE(this._b | 0, 4) - H.writeInt32BE(this._c | 0, 8) - H.writeInt32BE(this._d | 0, 12) - H.writeInt32BE(this._e | 0, 16) - - return H -} - -module.exports = Sha - -},{"./hash":482,"inherits":313,"safe-buffer":481}],485:[function(require,module,exports){ -/* - * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined - * in FIPS PUB 180-1 - * Version 2.1a Copyright Paul Johnston 2000 - 2002. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for details. - */ - -var inherits = require('inherits') -var Hash = require('./hash') -var Buffer = require('safe-buffer').Buffer - -var K = [ - 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0 -] - -var W = new Array(80) - -function Sha1 () { - this.init() - this._w = W - - Hash.call(this, 64, 56) -} - -inherits(Sha1, Hash) - -Sha1.prototype.init = function () { - this._a = 0x67452301 - this._b = 0xefcdab89 - this._c = 0x98badcfe - this._d = 0x10325476 - this._e = 0xc3d2e1f0 - - return this -} - -function rotl1 (num) { - return (num << 1) | (num >>> 31) -} - -function rotl5 (num) { - return (num << 5) | (num >>> 27) -} - -function rotl30 (num) { - return (num << 30) | (num >>> 2) -} - -function ft (s, b, c, d) { - if (s === 0) return (b & c) | ((~b) & d) - if (s === 2) return (b & c) | (b & d) | (c & d) - return b ^ c ^ d -} - -Sha1.prototype._update = function (M) { - var W = this._w - - var a = this._a | 0 - var b = this._b | 0 - var c = this._c | 0 - var d = this._d | 0 - var e = this._e | 0 - - for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) - for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]) - - for (var j = 0; j < 80; ++j) { - var s = ~~(j / 20) - var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0 - - e = d - d = c - c = rotl30(b) - b = a - a = t - } - - this._a = (a + this._a) | 0 - this._b = (b + this._b) | 0 - this._c = (c + this._c) | 0 - this._d = (d + this._d) | 0 - this._e = (e + this._e) | 0 -} - -Sha1.prototype._hash = function () { - var H = Buffer.allocUnsafe(20) - - H.writeInt32BE(this._a | 0, 0) - H.writeInt32BE(this._b | 0, 4) - H.writeInt32BE(this._c | 0, 8) - H.writeInt32BE(this._d | 0, 12) - H.writeInt32BE(this._e | 0, 16) - - return H -} - -module.exports = Sha1 - -},{"./hash":482,"inherits":313,"safe-buffer":481}],486:[function(require,module,exports){ -/** - * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined - * in FIPS 180-2 - * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * - */ - -var inherits = require('inherits') -var Sha256 = require('./sha256') -var Hash = require('./hash') -var Buffer = require('safe-buffer').Buffer - -var W = new Array(64) - -function Sha224 () { - this.init() - - this._w = W // new Array(64) - - Hash.call(this, 64, 56) -} - -inherits(Sha224, Sha256) - -Sha224.prototype.init = function () { - this._a = 0xc1059ed8 - this._b = 0x367cd507 - this._c = 0x3070dd17 - this._d = 0xf70e5939 - this._e = 0xffc00b31 - this._f = 0x68581511 - this._g = 0x64f98fa7 - this._h = 0xbefa4fa4 - - return this -} - -Sha224.prototype._hash = function () { - var H = Buffer.allocUnsafe(28) - - H.writeInt32BE(this._a, 0) - H.writeInt32BE(this._b, 4) - H.writeInt32BE(this._c, 8) - H.writeInt32BE(this._d, 12) - H.writeInt32BE(this._e, 16) - H.writeInt32BE(this._f, 20) - H.writeInt32BE(this._g, 24) - - return H -} - -module.exports = Sha224 - -},{"./hash":482,"./sha256":487,"inherits":313,"safe-buffer":481}],487:[function(require,module,exports){ -/** - * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined - * in FIPS 180-2 - * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009. - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * - */ - -var inherits = require('inherits') -var Hash = require('./hash') -var Buffer = require('safe-buffer').Buffer - -var K = [ - 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, - 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, - 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, - 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, - 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, - 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, - 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, - 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, - 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, - 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, - 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, - 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, - 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, - 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, - 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, - 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 -] - -var W = new Array(64) - -function Sha256 () { - this.init() - - this._w = W // new Array(64) - - Hash.call(this, 64, 56) -} - -inherits(Sha256, Hash) - -Sha256.prototype.init = function () { - this._a = 0x6a09e667 - this._b = 0xbb67ae85 - this._c = 0x3c6ef372 - this._d = 0xa54ff53a - this._e = 0x510e527f - this._f = 0x9b05688c - this._g = 0x1f83d9ab - this._h = 0x5be0cd19 - - return this -} - -function ch (x, y, z) { - return z ^ (x & (y ^ z)) -} - -function maj (x, y, z) { - return (x & y) | (z & (x | y)) -} - -function sigma0 (x) { - return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10) -} - -function sigma1 (x) { - return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7) -} - -function gamma0 (x) { - return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3) -} - -function gamma1 (x) { - return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10) -} - -Sha256.prototype._update = function (M) { - var W = this._w - - var a = this._a | 0 - var b = this._b | 0 - var c = this._c | 0 - var d = this._d | 0 - var e = this._e | 0 - var f = this._f | 0 - var g = this._g | 0 - var h = this._h | 0 - - for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4) - for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0 - - for (var j = 0; j < 64; ++j) { - var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0 - var T2 = (sigma0(a) + maj(a, b, c)) | 0 - - h = g - g = f - f = e - e = (d + T1) | 0 - d = c - c = b - b = a - a = (T1 + T2) | 0 - } - - this._a = (a + this._a) | 0 - this._b = (b + this._b) | 0 - this._c = (c + this._c) | 0 - this._d = (d + this._d) | 0 - this._e = (e + this._e) | 0 - this._f = (f + this._f) | 0 - this._g = (g + this._g) | 0 - this._h = (h + this._h) | 0 -} - -Sha256.prototype._hash = function () { - var H = Buffer.allocUnsafe(32) - - H.writeInt32BE(this._a, 0) - H.writeInt32BE(this._b, 4) - H.writeInt32BE(this._c, 8) - H.writeInt32BE(this._d, 12) - H.writeInt32BE(this._e, 16) - H.writeInt32BE(this._f, 20) - H.writeInt32BE(this._g, 24) - H.writeInt32BE(this._h, 28) - - return H -} - -module.exports = Sha256 - -},{"./hash":482,"inherits":313,"safe-buffer":481}],488:[function(require,module,exports){ -var inherits = require('inherits') -var SHA512 = require('./sha512') -var Hash = require('./hash') -var Buffer = require('safe-buffer').Buffer - -var W = new Array(160) - -function Sha384 () { - this.init() - this._w = W - - Hash.call(this, 128, 112) -} - -inherits(Sha384, SHA512) - -Sha384.prototype.init = function () { - this._ah = 0xcbbb9d5d - this._bh = 0x629a292a - this._ch = 0x9159015a - this._dh = 0x152fecd8 - this._eh = 0x67332667 - this._fh = 0x8eb44a87 - this._gh = 0xdb0c2e0d - this._hh = 0x47b5481d - - this._al = 0xc1059ed8 - this._bl = 0x367cd507 - this._cl = 0x3070dd17 - this._dl = 0xf70e5939 - this._el = 0xffc00b31 - this._fl = 0x68581511 - this._gl = 0x64f98fa7 - this._hl = 0xbefa4fa4 - - return this -} - -Sha384.prototype._hash = function () { - var H = Buffer.allocUnsafe(48) - - function writeInt64BE (h, l, offset) { - H.writeInt32BE(h, offset) - H.writeInt32BE(l, offset + 4) - } - - writeInt64BE(this._ah, this._al, 0) - writeInt64BE(this._bh, this._bl, 8) - writeInt64BE(this._ch, this._cl, 16) - writeInt64BE(this._dh, this._dl, 24) - writeInt64BE(this._eh, this._el, 32) - writeInt64BE(this._fh, this._fl, 40) - - return H -} - -module.exports = Sha384 - -},{"./hash":482,"./sha512":489,"inherits":313,"safe-buffer":481}],489:[function(require,module,exports){ -var inherits = require('inherits') -var Hash = require('./hash') -var Buffer = require('safe-buffer').Buffer - -var K = [ - 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, - 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, - 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, - 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, - 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, - 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, - 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, - 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, - 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, - 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, - 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, - 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, - 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, - 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, - 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, - 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, - 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, - 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, - 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, - 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, - 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, - 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, - 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, - 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, - 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, - 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, - 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, - 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, - 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, - 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, - 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, - 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, - 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, - 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, - 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, - 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, - 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, - 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, - 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, - 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 -] - -var W = new Array(160) - -function Sha512 () { - this.init() - this._w = W - - Hash.call(this, 128, 112) -} - -inherits(Sha512, Hash) - -Sha512.prototype.init = function () { - this._ah = 0x6a09e667 - this._bh = 0xbb67ae85 - this._ch = 0x3c6ef372 - this._dh = 0xa54ff53a - this._eh = 0x510e527f - this._fh = 0x9b05688c - this._gh = 0x1f83d9ab - this._hh = 0x5be0cd19 - - this._al = 0xf3bcc908 - this._bl = 0x84caa73b - this._cl = 0xfe94f82b - this._dl = 0x5f1d36f1 - this._el = 0xade682d1 - this._fl = 0x2b3e6c1f - this._gl = 0xfb41bd6b - this._hl = 0x137e2179 - - return this -} - -function Ch (x, y, z) { - return z ^ (x & (y ^ z)) -} - -function maj (x, y, z) { - return (x & y) | (z & (x | y)) -} - -function sigma0 (x, xl) { - return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25) -} - -function sigma1 (x, xl) { - return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23) -} - -function Gamma0 (x, xl) { - return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7) -} - -function Gamma0l (x, xl) { - return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25) -} - -function Gamma1 (x, xl) { - return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6) -} - -function Gamma1l (x, xl) { - return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26) -} - -function getCarry (a, b) { - return (a >>> 0) < (b >>> 0) ? 1 : 0 -} - -Sha512.prototype._update = function (M) { - var W = this._w - - var ah = this._ah | 0 - var bh = this._bh | 0 - var ch = this._ch | 0 - var dh = this._dh | 0 - var eh = this._eh | 0 - var fh = this._fh | 0 - var gh = this._gh | 0 - var hh = this._hh | 0 - - var al = this._al | 0 - var bl = this._bl | 0 - var cl = this._cl | 0 - var dl = this._dl | 0 - var el = this._el | 0 - var fl = this._fl | 0 - var gl = this._gl | 0 - var hl = this._hl | 0 - - for (var i = 0; i < 32; i += 2) { - W[i] = M.readInt32BE(i * 4) - W[i + 1] = M.readInt32BE(i * 4 + 4) - } - for (; i < 160; i += 2) { - var xh = W[i - 15 * 2] - var xl = W[i - 15 * 2 + 1] - var gamma0 = Gamma0(xh, xl) - var gamma0l = Gamma0l(xl, xh) - - xh = W[i - 2 * 2] - xl = W[i - 2 * 2 + 1] - var gamma1 = Gamma1(xh, xl) - var gamma1l = Gamma1l(xl, xh) - - // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] - var Wi7h = W[i - 7 * 2] - var Wi7l = W[i - 7 * 2 + 1] - - var Wi16h = W[i - 16 * 2] - var Wi16l = W[i - 16 * 2 + 1] - - var Wil = (gamma0l + Wi7l) | 0 - var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0 - Wil = (Wil + gamma1l) | 0 - Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0 - Wil = (Wil + Wi16l) | 0 - Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0 - - W[i] = Wih - W[i + 1] = Wil - } - - for (var j = 0; j < 160; j += 2) { - Wih = W[j] - Wil = W[j + 1] - - var majh = maj(ah, bh, ch) - var majl = maj(al, bl, cl) - - var sigma0h = sigma0(ah, al) - var sigma0l = sigma0(al, ah) - var sigma1h = sigma1(eh, el) - var sigma1l = sigma1(el, eh) - - // t1 = h + sigma1 + ch + K[j] + W[j] - var Kih = K[j] - var Kil = K[j + 1] - - var chh = Ch(eh, fh, gh) - var chl = Ch(el, fl, gl) - - var t1l = (hl + sigma1l) | 0 - var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0 - t1l = (t1l + chl) | 0 - t1h = (t1h + chh + getCarry(t1l, chl)) | 0 - t1l = (t1l + Kil) | 0 - t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0 - t1l = (t1l + Wil) | 0 - t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0 - - // t2 = sigma0 + maj - var t2l = (sigma0l + majl) | 0 - var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0 - - hh = gh - hl = gl - gh = fh - gl = fl - fh = eh - fl = el - el = (dl + t1l) | 0 - eh = (dh + t1h + getCarry(el, dl)) | 0 - dh = ch - dl = cl - ch = bh - cl = bl - bh = ah - bl = al - al = (t1l + t2l) | 0 - ah = (t1h + t2h + getCarry(al, t1l)) | 0 - } - - this._al = (this._al + al) | 0 - this._bl = (this._bl + bl) | 0 - this._cl = (this._cl + cl) | 0 - this._dl = (this._dl + dl) | 0 - this._el = (this._el + el) | 0 - this._fl = (this._fl + fl) | 0 - this._gl = (this._gl + gl) | 0 - this._hl = (this._hl + hl) | 0 - - this._ah = (this._ah + ah + getCarry(this._al, al)) | 0 - this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0 - this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0 - this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0 - this._eh = (this._eh + eh + getCarry(this._el, el)) | 0 - this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0 - this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0 - this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0 -} - -Sha512.prototype._hash = function () { - var H = Buffer.allocUnsafe(64) - - function writeInt64BE (h, l, offset) { - H.writeInt32BE(h, offset) - H.writeInt32BE(l, offset + 4) - } - - writeInt64BE(this._ah, this._al, 0) - writeInt64BE(this._bh, this._bl, 8) - writeInt64BE(this._ch, this._cl, 16) - writeInt64BE(this._dh, this._dl, 24) - writeInt64BE(this._eh, this._el, 32) - writeInt64BE(this._fh, this._fl, 40) - writeInt64BE(this._gh, this._gl, 48) - writeInt64BE(this._hh, this._hl, 56) - - return H -} - -module.exports = Sha512 - -},{"./hash":482,"inherits":313,"safe-buffer":481}],490:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -module.exports = Stream; - -var EE = require('events').EventEmitter; -var inherits = require('inherits'); - -inherits(Stream, EE); -Stream.Readable = require('readable-stream/readable.js'); -Stream.Writable = require('readable-stream/writable.js'); -Stream.Duplex = require('readable-stream/duplex.js'); -Stream.Transform = require('readable-stream/transform.js'); -Stream.PassThrough = require('readable-stream/passthrough.js'); - -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; - - - -// old-style streams. Note that the pipe method (the only relevant -// part of this class) is overridden in the Readable class. - -function Stream() { - EE.call(this); -} - -Stream.prototype.pipe = function(dest, options) { - var source = this; - - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } - - source.on('data', ondata); - - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } - - dest.on('drain', ondrain); - - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } - - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; - - dest.end(); - } - - - function onclose() { - if (didOnEnd) return; - didOnEnd = true; - - if (typeof dest.destroy === 'function') dest.destroy(); - } - - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } - - source.on('error', onerror); - dest.on('error', onerror); - - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); - - source.removeListener('end', onend); - source.removeListener('close', onclose); - - source.removeListener('error', onerror); - dest.removeListener('error', onerror); - - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); - - dest.removeListener('close', cleanup); - } - - source.on('end', cleanup); - source.on('close', cleanup); - - dest.on('close', cleanup); - - dest.emit('pipe', source); - - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; - -},{"events":310,"inherits":313,"readable-stream/duplex.js":466,"readable-stream/passthrough.js":476,"readable-stream/readable.js":477,"readable-stream/transform.js":478,"readable-stream/writable.js":479}],491:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var Buffer = require('buffer').Buffer; - -var isBufferEncoding = Buffer.isEncoding - || function(encoding) { - switch (encoding && encoding.toLowerCase()) { - case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true; - default: return false; - } - } - - -function assertEncoding(encoding) { - if (encoding && !isBufferEncoding(encoding)) { - throw new Error('Unknown encoding: ' + encoding); - } -} - -// StringDecoder provides an interface for efficiently splitting a series of -// buffers into a series of JS strings without breaking apart multi-byte -// characters. CESU-8 is handled as part of the UTF-8 encoding. -// -// @TODO Handling all encodings inside a single object makes it very difficult -// to reason about this code, so it should be split up in the future. -// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code -// points as used by CESU-8. -var StringDecoder = exports.StringDecoder = function(encoding) { - this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, ''); - assertEncoding(encoding); - switch (this.encoding) { - case 'utf8': - // CESU-8 represents each of Surrogate Pair by 3-bytes - this.surrogateSize = 3; - break; - case 'ucs2': - case 'utf16le': - // UTF-16 represents each of Surrogate Pair by 2-bytes - this.surrogateSize = 2; - this.detectIncompleteChar = utf16DetectIncompleteChar; - break; - case 'base64': - // Base-64 stores 3 bytes in 4 chars, and pads the remainder. - this.surrogateSize = 3; - this.detectIncompleteChar = base64DetectIncompleteChar; - break; - default: - this.write = passThroughWrite; - return; - } - - // Enough space to store all bytes of a single character. UTF-8 needs 4 - // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate). - this.charBuffer = new Buffer(6); - // Number of bytes received for the current incomplete multi-byte character. - this.charReceived = 0; - // Number of bytes expected for the current incomplete multi-byte character. - this.charLength = 0; -}; - - -// write decodes the given buffer and returns it as JS string that is -// guaranteed to not contain any partial multi-byte characters. Any partial -// character found at the end of the buffer is buffered up, and will be -// returned when calling write again with the remaining bytes. -// -// Note: Converting a Buffer containing an orphan surrogate to a String -// currently works, but converting a String to a Buffer (via `new Buffer`, or -// Buffer#write) will replace incomplete surrogates with the unicode -// replacement character. See https://codereview.chromium.org/121173009/ . -StringDecoder.prototype.write = function(buffer) { - var charStr = ''; - // if our last write ended with an incomplete multibyte character - while (this.charLength) { - // determine how many remaining bytes this buffer has to offer for this char - var available = (buffer.length >= this.charLength - this.charReceived) ? - this.charLength - this.charReceived : - buffer.length; - - // add the new bytes to the char buffer - buffer.copy(this.charBuffer, this.charReceived, 0, available); - this.charReceived += available; - - if (this.charReceived < this.charLength) { - // still not enough chars in this buffer? wait for more ... - return ''; - } - - // remove bytes belonging to the current character from the buffer - buffer = buffer.slice(available, buffer.length); - - // get the character that was split - charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding); - - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - var charCode = charStr.charCodeAt(charStr.length - 1); - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - this.charLength += this.surrogateSize; - charStr = ''; - continue; - } - this.charReceived = this.charLength = 0; - - // if there are no more bytes in this buffer, just emit our char - if (buffer.length === 0) { - return charStr; - } - break; - } - - // determine and set charLength / charReceived - this.detectIncompleteChar(buffer); - - var end = buffer.length; - if (this.charLength) { - // buffer the incomplete character bytes we got - buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end); - end -= this.charReceived; - } - - charStr += buffer.toString(this.encoding, 0, end); - - var end = charStr.length - 1; - var charCode = charStr.charCodeAt(end); - // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character - if (charCode >= 0xD800 && charCode <= 0xDBFF) { - var size = this.surrogateSize; - this.charLength += size; - this.charReceived += size; - this.charBuffer.copy(this.charBuffer, size, 0, size); - buffer.copy(this.charBuffer, 0, 0, size); - return charStr.substring(0, end); - } - - // or just emit the charStr - return charStr; -}; - -// detectIncompleteChar determines if there is an incomplete UTF-8 character at -// the end of the given buffer. If so, it sets this.charLength to the byte -// length that character, and sets this.charReceived to the number of bytes -// that are available for this character. -StringDecoder.prototype.detectIncompleteChar = function(buffer) { - // determine how many bytes we have to check at the end of this buffer - var i = (buffer.length >= 3) ? 3 : buffer.length; - - // Figure out if one of the last i bytes of our buffer announces an - // incomplete char. - for (; i > 0; i--) { - var c = buffer[buffer.length - i]; - - // See http://en.wikipedia.org/wiki/UTF-8#Description - - // 110XXXXX - if (i == 1 && c >> 5 == 0x06) { - this.charLength = 2; - break; - } - - // 1110XXXX - if (i <= 2 && c >> 4 == 0x0E) { - this.charLength = 3; - break; - } - - // 11110XXX - if (i <= 3 && c >> 3 == 0x1E) { - this.charLength = 4; - break; - } - } - this.charReceived = i; -}; - -StringDecoder.prototype.end = function(buffer) { - var res = ''; - if (buffer && buffer.length) - res = this.write(buffer); - - if (this.charReceived) { - var cr = this.charReceived; - var buf = this.charBuffer; - var enc = this.encoding; - res += buf.slice(0, cr).toString(enc); - } - - return res; -}; - -function passThroughWrite(buffer) { - return buffer.toString(this.encoding); -} - -function utf16DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 2; - this.charLength = this.charReceived ? 2 : 0; -} - -function base64DetectIncompleteChar(buffer) { - this.charReceived = buffer.length % 3; - this.charLength = this.charReceived ? 3 : 0; -} - -},{"buffer":302}],492:[function(require,module,exports){ +arguments[4][457][0].apply(exports,arguments) +},{"./decode":458,"./encode":459,"dup":457}],461:[function(require,module,exports){ // Copyright Joyent, Inc. and other Node contributors. // // Permission is hereby granted, free of charge, to any person obtaining a @@ -146850,87 +142871,39 @@ function isNullOrUndefined(arg) { return arg == null; } -},{"punycode":459,"querystring":462}],493:[function(require,module,exports){ -(function (global){ - -/** - * Module exports. - */ - -module.exports = deprecate; - -/** - * Mark that a method should not be used. - * Returns a modified function which warns once by default. - * - * If `localStorage.noDeprecation = true` is set, then it is a no-op. - * - * If `localStorage.throwDeprecation = true` is set, then deprecated functions - * will throw an Error when invoked. - * - * If `localStorage.traceDeprecation = true` is set, then deprecated functions - * will invoke `console.trace()` instead of `console.error()`. - * - * @param {Function} fn - the function to deprecate - * @param {String} msg - the string to print to the console when `fn` is invoked - * @returns {Function} a new "deprecated" version of `fn` - * @api public - */ - -function deprecate (fn, msg) { - if (config('noDeprecation')) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (config('throwDeprecation')) { - throw new Error(msg); - } else if (config('traceDeprecation')) { - console.trace(msg); - } else { - console.warn(msg); +},{"punycode":454,"querystring":457}],462:[function(require,module,exports){ +if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; -} - -/** - * Checks `localStorage` for boolean values for the given `name`. - * - * @param {String} name - * @returns {Boolean} - * @api private - */ - -function config (name) { - // accessing global.localStorage can trigger a DOMException in sandboxed iframes - try { - if (!global.localStorage) return false; - } catch (_) { - return false; + }); + }; +} else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + ctor.super_ = superCtor + var TempCtor = function () {} + TempCtor.prototype = superCtor.prototype + ctor.prototype = new TempCtor() + ctor.prototype.constructor = ctor } - var val = global.localStorage[name]; - if (null == val) return false; - return String(val).toLowerCase() === 'true'; } -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],494:[function(require,module,exports){ -arguments[4][313][0].apply(exports,arguments) -},{"dup":313}],495:[function(require,module,exports){ +},{}],463:[function(require,module,exports){ module.exports = function isBuffer(arg) { return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function'; } -},{}],496:[function(require,module,exports){ +},{}],464:[function(require,module,exports){ (function (process,global){ // Copyright Joyent, Inc. and other Node contributors. // @@ -147520,7 +143493,7 @@ function hasOwnProperty(obj, prop) { } }).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./support/isBuffer":495,"_process":458,"inherits":494}],497:[function(require,module,exports){ +},{"./support/isBuffer":463,"_process":453,"inherits":462}],465:[function(require,module,exports){ var v1 = require('./v1'); var v4 = require('./v4'); @@ -147530,7 +143503,7 @@ uuid.v4 = v4; module.exports = uuid; -},{"./v1":500,"./v4":501}],498:[function(require,module,exports){ +},{"./v1":468,"./v4":469}],466:[function(require,module,exports){ /** * Convert array of 16 byte values to UUID string format of the form: * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX @@ -147555,7 +143528,7 @@ function bytesToUuid(buf, offset) { module.exports = bytesToUuid; -},{}],499:[function(require,module,exports){ +},{}],467:[function(require,module,exports){ (function (global){ // Unique ID creation requires a high quality random # generator. In the // browser this is a little complicated due to unknown quality of Math.random() @@ -147592,7 +143565,7 @@ if (!rng) { module.exports = rng; }).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{}],500:[function(require,module,exports){ +},{}],468:[function(require,module,exports){ var rng = require('./lib/rng'); var bytesToUuid = require('./lib/bytesToUuid'); @@ -147694,7 +143667,7 @@ function v1(options, buf, offset) { module.exports = v1; -},{"./lib/bytesToUuid":498,"./lib/rng":499}],501:[function(require,module,exports){ +},{"./lib/bytesToUuid":466,"./lib/rng":467}],469:[function(require,module,exports){ var rng = require('./lib/rng'); var bytesToUuid = require('./lib/bytesToUuid'); @@ -147725,7 +143698,7 @@ function v4(options, buf, offset) { module.exports = v4; -},{"./lib/bytesToUuid":498,"./lib/rng":499}],502:[function(require,module,exports){ +},{"./lib/bytesToUuid":466,"./lib/rng":467}],470:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLAttribute, create; @@ -147759,7 +143732,7 @@ module.exports = v4; }).call(this); -},{"lodash/create":434}],503:[function(require,module,exports){ +},{"lodash/create":430}],471:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLBuilder, XMLDeclaration, XMLDocType, XMLElement, XMLStringifier; @@ -147830,7 +143803,7 @@ module.exports = v4; }).call(this); -},{"./XMLDeclaration":510,"./XMLDocType":511,"./XMLElement":512,"./XMLStringifier":516}],504:[function(require,module,exports){ +},{"./XMLDeclaration":478,"./XMLDocType":479,"./XMLElement":480,"./XMLStringifier":484}],472:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLCData, XMLNode, create, @@ -147881,7 +143854,7 @@ module.exports = v4; }).call(this); -},{"./XMLNode":513,"lodash/create":434}],505:[function(require,module,exports){ +},{"./XMLNode":481,"lodash/create":430}],473:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLComment, XMLNode, create, @@ -147932,7 +143905,7 @@ module.exports = v4; }).call(this); -},{"./XMLNode":513,"lodash/create":434}],506:[function(require,module,exports){ +},{"./XMLNode":481,"lodash/create":430}],474:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLDTDAttList, create; @@ -148002,7 +143975,7 @@ module.exports = v4; }).call(this); -},{"lodash/create":434}],507:[function(require,module,exports){ +},{"lodash/create":430}],475:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLDTDElement, create; @@ -148050,7 +144023,7 @@ module.exports = v4; }).call(this); -},{"lodash/create":434}],508:[function(require,module,exports){ +},{"lodash/create":430}],476:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLDTDEntity, create, isObject; @@ -148136,7 +144109,7 @@ module.exports = v4; }).call(this); -},{"lodash/create":434,"lodash/isObject":447}],509:[function(require,module,exports){ +},{"lodash/create":430,"lodash/isObject":443}],477:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLDTDNotation, create; @@ -148194,7 +144167,7 @@ module.exports = v4; }).call(this); -},{"lodash/create":434}],510:[function(require,module,exports){ +},{"lodash/create":430}],478:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLDeclaration, XMLNode, create, isObject, @@ -148261,7 +144234,7 @@ module.exports = v4; }).call(this); -},{"./XMLNode":513,"lodash/create":434,"lodash/isObject":447}],511:[function(require,module,exports){ +},{"./XMLNode":481,"lodash/create":430,"lodash/isObject":443}],479:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLCData, XMLComment, XMLDTDAttList, XMLDTDElement, XMLDTDEntity, XMLDTDNotation, XMLDocType, XMLProcessingInstruction, create, isObject; @@ -148451,7 +144424,7 @@ module.exports = v4; }).call(this); -},{"./XMLCData":504,"./XMLComment":505,"./XMLDTDAttList":506,"./XMLDTDElement":507,"./XMLDTDEntity":508,"./XMLDTDNotation":509,"./XMLProcessingInstruction":514,"lodash/create":434,"lodash/isObject":447}],512:[function(require,module,exports){ +},{"./XMLCData":472,"./XMLComment":473,"./XMLDTDAttList":474,"./XMLDTDElement":475,"./XMLDTDEntity":476,"./XMLDTDNotation":477,"./XMLProcessingInstruction":482,"lodash/create":430,"lodash/isObject":443}],480:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLAttribute, XMLElement, XMLNode, XMLProcessingInstruction, create, every, isFunction, isObject, @@ -148665,7 +144638,7 @@ module.exports = v4; }).call(this); -},{"./XMLAttribute":502,"./XMLNode":513,"./XMLProcessingInstruction":514,"lodash/create":434,"lodash/every":436,"lodash/isFunction":445,"lodash/isObject":447}],513:[function(require,module,exports){ +},{"./XMLAttribute":470,"./XMLNode":481,"./XMLProcessingInstruction":482,"lodash/create":430,"lodash/every":432,"lodash/isFunction":441,"lodash/isObject":443}],481:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLCData, XMLComment, XMLDeclaration, XMLDocType, XMLElement, XMLNode, XMLRaw, XMLText, isEmpty, isFunction, isObject, @@ -148998,7 +144971,7 @@ module.exports = v4; }).call(this); -},{"./XMLCData":504,"./XMLComment":505,"./XMLDeclaration":510,"./XMLDocType":511,"./XMLElement":512,"./XMLRaw":515,"./XMLText":517,"lodash/isEmpty":444,"lodash/isFunction":445,"lodash/isObject":447}],514:[function(require,module,exports){ +},{"./XMLCData":472,"./XMLComment":473,"./XMLDeclaration":478,"./XMLDocType":479,"./XMLElement":480,"./XMLRaw":483,"./XMLText":485,"lodash/isEmpty":440,"lodash/isFunction":441,"lodash/isObject":443}],482:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLProcessingInstruction, create; @@ -149051,7 +145024,7 @@ module.exports = v4; }).call(this); -},{"lodash/create":434}],515:[function(require,module,exports){ +},{"lodash/create":430}],483:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLNode, XMLRaw, create, @@ -149102,7 +145075,7 @@ module.exports = v4; }).call(this); -},{"./XMLNode":513,"lodash/create":434}],516:[function(require,module,exports){ +},{"./XMLNode":481,"lodash/create":430}],484:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLStringifier, @@ -149274,7 +145247,7 @@ module.exports = v4; }).call(this); -},{}],517:[function(require,module,exports){ +},{}],485:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLNode, XMLText, create, @@ -149325,7 +145298,7 @@ module.exports = v4; }).call(this); -},{"./XMLNode":513,"lodash/create":434}],518:[function(require,module,exports){ +},{"./XMLNode":481,"lodash/create":430}],486:[function(require,module,exports){ // Generated by CoffeeScript 1.9.1 (function() { var XMLBuilder, assign; @@ -149341,8 +145314,8 @@ module.exports = v4; }).call(this); -},{"./XMLBuilder":503,"lodash/assign":432}],519:[function(require,module,exports){ -// AWS SDK for JavaScript v2.182.0 +},{"./XMLBuilder":471,"lodash/assign":428}],487:[function(require,module,exports){ +// AWS SDK for JavaScript v2.183.0 // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt require('./browser_loader'); @@ -149359,5 +145332,5 @@ if (typeof self !== 'undefined') self.AWS = AWS; * browser builder will strip out this line if services are supplied on the command line. */ require('../clients/browser_default'); -},{"../clients/browser_default":168,"./browser_loader":230,"./core":233}]},{},[519]); +},{"../clients/browser_default":168,"./browser_loader":236,"./core":239}]},{},[487]); diff --git a/dist/aws-sdk.min.js b/dist/aws-sdk.min.js index b85086fea5..0656c2e37d 100644 --- a/dist/aws-sdk.min.js +++ b/dist/aws-sdk.min.js @@ -1,7 +1,7 @@ -// AWS SDK for JavaScript v2.182.0 +// AWS SDK for JavaScript v2.183.0 // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt -!function e(t,r,a){function i(n,o){if(!r[n]){if(!t[n]){var u="function"==typeof require&&require;if(!o&&u)return u(n,!0);if(s)return s(n,!0);var p=new Error("Cannot find module '"+n+"'");throw p.code="MODULE_NOT_FOUND",p}var c=r[n]={exports:{}};t[n][0].call(c.exports,function(e){var r=t[n][1][e];return i(r||e)},c,c.exports,e,t,r,a)}return r[n].exports}for(var s="function"==typeof require&&require,n=0;n `0`",state:"success"}]}}}},{}],112:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2017-01-17",endpointPrefix:"mturk-requester",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon MTurk",serviceFullName:"Amazon Mechanical Turk",signatureVersion:"v4",targetPrefix:"MTurkRequesterServiceV20170117",uid:"mturk-requester-2017-01-17"},operations:{AcceptQualificationRequest:{input:{type:"structure",required:["QualificationRequestId"],members:{QualificationRequestId:{},IntegerValue:{type:"integer"}}},output:{type:"structure",members:{}}},ApproveAssignment:{input:{type:"structure",required:["AssignmentId"],members:{AssignmentId:{},RequesterFeedback:{},OverrideRejection:{type:"boolean"}}},output:{type:"structure",members:{}},idempotent:!0},AssociateQualificationWithWorker:{input:{type:"structure",required:["QualificationTypeId","WorkerId"],members:{QualificationTypeId:{},WorkerId:{},IntegerValue:{type:"integer"},SendNotification:{type:"boolean"}}},output:{type:"structure",members:{}}},CreateAdditionalAssignmentsForHIT:{input:{type:"structure",required:["HITId","NumberOfAdditionalAssignments"],members:{HITId:{},NumberOfAdditionalAssignments:{type:"integer"},UniqueRequestToken:{}}},output:{type:"structure",members:{}}},CreateHIT:{input:{type:"structure",required:["LifetimeInSeconds","AssignmentDurationInSeconds","Reward","Title","Description"],members:{MaxAssignments:{type:"integer"},AutoApprovalDelayInSeconds:{type:"long"},LifetimeInSeconds:{type:"long"},AssignmentDurationInSeconds:{type:"long"},Reward:{},Title:{},Keywords:{},Description:{},Question:{},RequesterAnnotation:{},QualificationRequirements:{shape:"Si"},UniqueRequestToken:{},AssignmentReviewPolicy:{shape:"Sp"},HITReviewPolicy:{shape:"Sp"},HITLayoutId:{},HITLayoutParameters:{shape:"Sv"}}},output:{type:"structure",members:{HIT:{shape:"Sy"}}}},CreateHITType:{input:{type:"structure",required:["AssignmentDurationInSeconds","Reward","Title","Description"],members:{AutoApprovalDelayInSeconds:{type:"long"},AssignmentDurationInSeconds:{type:"long"},Reward:{},Title:{},Keywords:{},Description:{},QualificationRequirements:{shape:"Si"}}},output:{type:"structure",members:{HITTypeId:{}}},idempotent:!0},CreateHITWithHITType:{input:{type:"structure",required:["HITTypeId","LifetimeInSeconds"],members:{HITTypeId:{},MaxAssignments:{type:"integer"},LifetimeInSeconds:{type:"long"},Question:{},RequesterAnnotation:{},UniqueRequestToken:{},AssignmentReviewPolicy:{shape:"Sp"},HITReviewPolicy:{shape:"Sp"},HITLayoutId:{},HITLayoutParameters:{shape:"Sv"}}},output:{type:"structure",members:{HIT:{shape:"Sy"}}}},CreateQualificationType:{input:{type:"structure",required:["Name","Description","QualificationTypeStatus"],members:{Name:{},Keywords:{},Description:{},QualificationTypeStatus:{},RetryDelayInSeconds:{type:"long"},Test:{},AnswerKey:{},TestDurationInSeconds:{type:"long"},AutoGranted:{type:"boolean"},AutoGrantedValue:{type:"integer"}}},output:{type:"structure",members:{QualificationType:{shape:"S19"}}}},CreateWorkerBlock:{input:{type:"structure",required:["WorkerId","Reason"],members:{WorkerId:{},Reason:{}}},output:{type:"structure",members:{}}},DeleteHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{}}},output:{type:"structure",members:{}},idempotent:!0},DeleteQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{}}},output:{type:"structure",members:{}},idempotent:!0},DeleteWorkerBlock:{input:{type:"structure",required:["WorkerId"],members:{WorkerId:{},Reason:{}}},output:{type:"structure",members:{}},idempotent:!0},DisassociateQualificationFromWorker:{input:{type:"structure",required:["WorkerId","QualificationTypeId"],members:{WorkerId:{},QualificationTypeId:{},Reason:{}}},output:{type:"structure",members:{}}},GetAccountBalance:{input:{type:"structure",members:{}},output:{type:"structure",members:{AvailableBalance:{},OnHoldBalance:{}}},idempotent:!0},GetAssignment:{input:{type:"structure",required:["AssignmentId"],members:{AssignmentId:{}}},output:{type:"structure",members:{Assignment:{shape:"S1o"},HIT:{shape:"Sy"}}},idempotent:!0},GetFileUploadURL:{input:{type:"structure",required:["AssignmentId","QuestionIdentifier"],members:{AssignmentId:{},QuestionIdentifier:{}}},output:{type:"structure",members:{FileUploadURL:{}}},idempotent:!0},GetHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{}}},output:{type:"structure",members:{HIT:{shape:"Sy"}}},idempotent:!0},GetQualificationScore:{input:{type:"structure",required:["QualificationTypeId","WorkerId"],members:{QualificationTypeId:{},WorkerId:{}}},output:{type:"structure",members:{Qualification:{shape:"S1w"}}},idempotent:!0},GetQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{}}},output:{type:"structure",members:{QualificationType:{shape:"S19"}}},idempotent:!0},ListAssignmentsForHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{},NextToken:{},MaxResults:{type:"integer"},AssignmentStatuses:{type:"list",member:{}}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},Assignments:{type:"list",member:{shape:"S1o"}}}},idempotent:!0},ListBonusPayments:{input:{type:"structure",members:{HITId:{},AssignmentId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NumResults:{type:"integer"},NextToken:{},BonusPayments:{type:"list",member:{type:"structure",members:{WorkerId:{},BonusAmount:{},AssignmentId:{},Reason:{},GrantTime:{type:"timestamp"}}}}}},idempotent:!0},ListHITs:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},HITs:{shape:"S2c"}}},idempotent:!0},ListHITsForQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},HITs:{shape:"S2c"}}},idempotent:!0},ListQualificationRequests:{input:{type:"structure",members:{QualificationTypeId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NumResults:{type:"integer"},NextToken:{},QualificationRequests:{type:"list",member:{type:"structure",members:{QualificationRequestId:{},QualificationTypeId:{},WorkerId:{},Test:{},Answer:{},SubmitTime:{type:"timestamp"}}}}}},idempotent:!0},ListQualificationTypes:{input:{type:"structure",required:["MustBeRequestable"],members:{Query:{},MustBeRequestable:{type:"boolean"},MustBeOwnedByCaller:{type:"boolean"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NumResults:{type:"integer"},NextToken:{},QualificationTypes:{type:"list",member:{shape:"S19"}}}},idempotent:!0},ListReviewPolicyResultsForHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{},PolicyLevels:{type:"list",member:{}},RetrieveActions:{type:"boolean"},RetrieveResults:{type:"boolean"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{HITId:{},AssignmentReviewPolicy:{shape:"Sp"},HITReviewPolicy:{shape:"Sp"},AssignmentReviewReport:{shape:"S2q"},HITReviewReport:{shape:"S2q"},NextToken:{}}},idempotent:!0},ListReviewableHITs:{input:{type:"structure",members:{HITTypeId:{},Status:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},HITs:{shape:"S2c"}}},idempotent:!0},ListWorkerBlocks:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},WorkerBlocks:{type:"list",member:{type:"structure",members:{WorkerId:{},Reason:{}}}}}},idempotent:!0},ListWorkersWithQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{},Status:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},Qualifications:{type:"list",member:{shape:"S1w"}}}},idempotent:!0},NotifyWorkers:{input:{type:"structure",required:["Subject","MessageText","WorkerIds"],members:{Subject:{},MessageText:{},WorkerIds:{type:"list",member:{}}}},output:{type:"structure",members:{NotifyWorkersFailureStatuses:{type:"list",member:{type:"structure",members:{NotifyWorkersFailureCode:{},NotifyWorkersFailureMessage:{},WorkerId:{}}}}}}},RejectAssignment:{input:{type:"structure",required:["AssignmentId","RequesterFeedback"],members:{AssignmentId:{},RequesterFeedback:{}}},output:{type:"structure",members:{}},idempotent:!0},RejectQualificationRequest:{input:{type:"structure",required:["QualificationRequestId"],members:{QualificationRequestId:{},Reason:{}}},output:{type:"structure",members:{}}},SendBonus:{input:{type:"structure",required:["WorkerId","BonusAmount","AssignmentId","Reason"],members:{WorkerId:{},BonusAmount:{},AssignmentId:{},Reason:{},UniqueRequestToken:{}}},output:{type:"structure",members:{}}},SendTestEventNotification:{input:{type:"structure",required:["Notification","TestEventType"],members:{Notification:{shape:"S3j"},TestEventType:{}}},output:{type:"structure",members:{}}},UpdateExpirationForHIT:{input:{type:"structure",required:["HITId","ExpireAt"],members:{HITId:{},ExpireAt:{type:"timestamp"}}},output:{type:"structure",members:{}},idempotent:!0},UpdateHITReviewStatus:{input:{type:"structure",required:["HITId"],members:{HITId:{},Revert:{type:"boolean"}}},output:{type:"structure",members:{}},idempotent:!0},UpdateHITTypeOfHIT:{input:{type:"structure",required:["HITId","HITTypeId"],members:{HITId:{},HITTypeId:{}}},output:{type:"structure",members:{}},idempotent:!0},UpdateNotificationSettings:{input:{type:"structure",required:["HITTypeId"],members:{HITTypeId:{},Notification:{shape:"S3j"},Active:{type:"boolean"}}},output:{type:"structure",members:{}},idempotent:!0},UpdateQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{},Description:{},QualificationTypeStatus:{},Test:{},AnswerKey:{},TestDurationInSeconds:{type:"long"},RetryDelayInSeconds:{type:"long"},AutoGranted:{type:"boolean"},AutoGrantedValue:{type:"integer"}}},output:{type:"structure",members:{QualificationType:{shape:"S19"}}}}},shapes:{Si:{type:"list",member:{type:"structure",required:["QualificationTypeId","Comparator"],members:{QualificationTypeId:{},Comparator:{},IntegerValues:{type:"list",member:{type:"integer"}},LocaleValues:{type:"list",member:{shape:"Sn"}},RequiredToPreview:{type:"boolean"}}}},Sn:{type:"structure",required:["Country"],members:{Country:{},Subdivision:{}}},Sp:{type:"structure",required:["PolicyName"],members:{PolicyName:{},Parameters:{type:"list",member:{type:"structure",members:{Key:{},Values:{shape:"Ss"},MapEntries:{type:"list",member:{type:"structure",members:{Key:{},Values:{shape:"Ss"}}}}}}}}},Ss:{type:"list",member:{}},Sv:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}},Sy:{type:"structure",members:{HITId:{},HITTypeId:{},HITGroupId:{},HITLayoutId:{},CreationTime:{type:"timestamp"},Title:{},Description:{},Question:{},Keywords:{},HITStatus:{},MaxAssignments:{type:"integer"},Reward:{},AutoApprovalDelayInSeconds:{type:"long"},Expiration:{type:"timestamp"},AssignmentDurationInSeconds:{type:"long"},RequesterAnnotation:{},QualificationRequirements:{shape:"Si"},HITReviewStatus:{},NumberOfAssignmentsPending:{type:"integer"},NumberOfAssignmentsAvailable:{type:"integer"},NumberOfAssignmentsCompleted:{type:"integer"}}},S19:{type:"structure",members:{QualificationTypeId:{},CreationTime:{type:"timestamp"},Name:{},Description:{},Keywords:{},QualificationTypeStatus:{},Test:{},TestDurationInSeconds:{type:"long"},AnswerKey:{},RetryDelayInSeconds:{type:"long"},IsRequestable:{type:"boolean"},AutoGranted:{type:"boolean"},AutoGrantedValue:{type:"integer"}}},S1o:{type:"structure",members:{AssignmentId:{},WorkerId:{},HITId:{},AssignmentStatus:{},AutoApprovalTime:{type:"timestamp"},AcceptTime:{type:"timestamp"},SubmitTime:{type:"timestamp"},ApprovalTime:{type:"timestamp"},RejectionTime:{type:"timestamp"},Deadline:{type:"timestamp"},Answer:{},RequesterFeedback:{}}},S1w:{type:"structure",members:{QualificationTypeId:{},WorkerId:{},GrantTime:{type:"timestamp"},IntegerValue:{type:"integer"},LocaleValue:{shape:"Sn"},Status:{}}},S2c:{type:"list",member:{shape:"Sy"}},S2q:{type:"structure",members:{ReviewResults:{type:"list",member:{type:"structure",members:{ActionId:{},SubjectId:{},SubjectType:{},QuestionId:{},Key:{},Value:{}}}},ReviewActions:{type:"list",member:{type:"structure",members:{ActionId:{},ActionName:{},TargetId:{},TargetType:{},Status:{},CompleteTime:{type:"timestamp"},Result:{},ErrorCode:{}}}}}},S3j:{type:"structure",required:["Destination","Transport","Version","EventTypes"],members:{Destination:{},Transport:{},Version:{},EventTypes:{type:"list",member:{}}}}}}},{}],113:[function(e,t,r){t.exports={pagination:{ListAssignmentsForHIT:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListBonusPayments:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListHITs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListHITsForQualificationType:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListQualificationRequests:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListQualificationTypes:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListReviewPolicyResultsForHIT:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListReviewableHITs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListWorkerBlocks:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListWorkersWithQualificationType:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"}}}},{}],114:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-02-18",endpointPrefix:"opsworks",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS OpsWorks",signatureVersion:"v4",targetPrefix:"OpsWorks_20130218",uid:"opsworks-2013-02-18"},operations:{AssignInstance:{input:{type:"structure",required:["InstanceId","LayerIds"],members:{InstanceId:{},LayerIds:{shape:"S3"}}}},AssignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},InstanceId:{}}}},AssociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},InstanceId:{}}}},AttachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}}},CloneStack:{input:{type:"structure",required:["SourceStackId","ServiceRoleArn"],members:{SourceStackId:{},Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},ClonePermissions:{type:"boolean"},CloneAppIds:{shape:"S3"},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}}},CreateApp:{input:{type:"structure",required:["StackId","Name","Type"],members:{StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}},output:{type:"structure",members:{AppId:{}}}},CreateDeployment:{input:{type:"structure",required:["StackId","Command"],members:{StackId:{},AppId:{},InstanceIds:{shape:"S3"},LayerIds:{shape:"S3"},Command:{shape:"Ss"},Comment:{},CustomJson:{}}},output:{type:"structure",members:{DeploymentId:{}}}},CreateInstance:{input:{type:"structure",required:["StackId","LayerIds","InstanceType"],members:{StackId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},AvailabilityZone:{},VirtualizationType:{},SubnetId:{},Architecture:{},RootDeviceType:{},BlockDeviceMappings:{shape:"Sz"},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{},Tenancy:{}}},output:{type:"structure",members:{InstanceId:{}}}},CreateLayer:{input:{type:"structure",required:["StackId","Type","Name","Shortname"],members:{StackId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CloudWatchLogsConfiguration:{shape:"S19"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S1f"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1h"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1i"}}},output:{type:"structure",members:{LayerId:{}}}},CreateStack:{input:{type:"structure",required:["Name","Region","ServiceRoleArn","DefaultInstanceProfileArn"],members:{Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}}},CreateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}},output:{type:"structure",members:{IamUserArn:{}}}},DeleteApp:{input:{type:"structure",required:["AppId"],members:{AppId:{}}}},DeleteInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},DeleteElasticIp:{type:"boolean"},DeleteVolumes:{type:"boolean"}}}},DeleteLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}}},DeleteStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}}},DeleteUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{}}}},DeregisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn"],members:{EcsClusterArn:{}}}},DeregisterElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}}},DeregisterInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},DeregisterRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{}}}},DeregisterVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}}},DescribeAgentVersions:{input:{type:"structure",members:{StackId:{},ConfigurationManager:{shape:"Sa"}}},output:{type:"structure",members:{AgentVersions:{type:"list",member:{type:"structure",members:{Version:{},ConfigurationManager:{shape:"Sa"}}}}}}},DescribeApps:{input:{type:"structure",members:{StackId:{},AppIds:{shape:"S3"}}},output:{type:"structure",members:{Apps:{type:"list",member:{type:"structure",members:{AppId:{},StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},CreatedAt:{},Environment:{shape:"So"}}}}}}},DescribeCommands:{input:{type:"structure",members:{DeploymentId:{},InstanceId:{},CommandIds:{shape:"S3"}}},output:{type:"structure",members:{Commands:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},DeploymentId:{},CreatedAt:{},AcknowledgedAt:{},CompletedAt:{},Status:{},ExitCode:{type:"integer"},LogUrl:{},Type:{}}}}}}},DescribeDeployments:{input:{type:"structure",members:{StackId:{},AppId:{},DeploymentIds:{shape:"S3"}}},output:{type:"structure",members:{Deployments:{type:"list",member:{type:"structure",members:{DeploymentId:{},StackId:{},AppId:{},CreatedAt:{},CompletedAt:{},Duration:{type:"integer"},IamUserArn:{},Comment:{},Command:{shape:"Ss"},Status:{},CustomJson:{},InstanceIds:{shape:"S3"}}}}}}},DescribeEcsClusters:{input:{type:"structure",members:{EcsClusterArns:{shape:"S3"},StackId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EcsClusters:{type:"list",member:{type:"structure",members:{EcsClusterArn:{},EcsClusterName:{},StackId:{},RegisteredAt:{}}}},NextToken:{}}}},DescribeElasticIps:{input:{type:"structure",members:{InstanceId:{},StackId:{},Ips:{shape:"S3"}}},output:{type:"structure",members:{ElasticIps:{type:"list",member:{type:"structure",members:{Ip:{},Name:{},Domain:{},Region:{},InstanceId:{}}}}}}},DescribeElasticLoadBalancers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{ElasticLoadBalancers:{type:"list",member:{type:"structure",members:{ElasticLoadBalancerName:{},Region:{},DnsName:{},StackId:{},LayerId:{},VpcId:{},AvailabilityZones:{shape:"S3"},SubnetIds:{shape:"S3"},Ec2InstanceIds:{shape:"S3"}}}}}}},DescribeInstances:{input:{type:"structure",members:{StackId:{},LayerId:{},InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{Instances:{type:"list",member:{type:"structure",members:{AgentVersion:{},AmiId:{},Architecture:{},Arn:{},AutoScalingType:{},AvailabilityZone:{},BlockDeviceMappings:{shape:"Sz"},CreatedAt:{},EbsOptimized:{type:"boolean"},Ec2InstanceId:{},EcsClusterArn:{},EcsContainerInstanceArn:{},ElasticIp:{},Hostname:{},InfrastructureClass:{},InstallUpdatesOnBoot:{type:"boolean"},InstanceId:{},InstanceProfileArn:{},InstanceType:{},LastServiceErrorId:{},LayerIds:{shape:"S3"},Os:{},Platform:{},PrivateDns:{},PrivateIp:{},PublicDns:{},PublicIp:{},RegisteredBy:{},ReportedAgentVersion:{},ReportedOs:{type:"structure",members:{Family:{},Name:{},Version:{}}},RootDeviceType:{},RootDeviceVolumeId:{},SecurityGroupIds:{shape:"S3"},SshHostDsaKeyFingerprint:{},SshHostRsaKeyFingerprint:{},SshKeyName:{},StackId:{},Status:{},SubnetId:{},Tenancy:{},VirtualizationType:{}}}}}}},DescribeLayers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{Layers:{type:"list",member:{type:"structure",members:{Arn:{},StackId:{},LayerId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CloudWatchLogsConfiguration:{ -shape:"S19"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},DefaultSecurityGroupNames:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S1f"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},DefaultRecipes:{shape:"S1h"},CustomRecipes:{shape:"S1h"},CreatedAt:{},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1i"}}}}}}},DescribeLoadBasedAutoScaling:{input:{type:"structure",required:["LayerIds"],members:{LayerIds:{shape:"S3"}}},output:{type:"structure",members:{LoadBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S36"},DownScaling:{shape:"S36"}}}}}}},DescribeMyUserProfile:{output:{type:"structure",members:{UserProfile:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{}}}}}},DescribePermissions:{input:{type:"structure",members:{IamUserArn:{},StackId:{}}},output:{type:"structure",members:{Permissions:{type:"list",member:{type:"structure",members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}}}}}},DescribeRaidArrays:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayIds:{shape:"S3"}}},output:{type:"structure",members:{RaidArrays:{type:"list",member:{type:"structure",members:{RaidArrayId:{},InstanceId:{},Name:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},Device:{},MountPoint:{},AvailabilityZone:{},CreatedAt:{},StackId:{},VolumeType:{},Iops:{type:"integer"}}}}}}},DescribeRdsDbInstances:{input:{type:"structure",required:["StackId"],members:{StackId:{},RdsDbInstanceArns:{shape:"S3"}}},output:{type:"structure",members:{RdsDbInstances:{type:"list",member:{type:"structure",members:{RdsDbInstanceArn:{},DbInstanceIdentifier:{},DbUser:{},DbPassword:{},Region:{},Address:{},Engine:{},StackId:{},MissingOnRds:{type:"boolean"}}}}}}},DescribeServiceErrors:{input:{type:"structure",members:{StackId:{},InstanceId:{},ServiceErrorIds:{shape:"S3"}}},output:{type:"structure",members:{ServiceErrors:{type:"list",member:{type:"structure",members:{ServiceErrorId:{},StackId:{},InstanceId:{},Type:{},Message:{},CreatedAt:{}}}}}}},DescribeStackProvisioningParameters:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{AgentInstallerUrl:{},Parameters:{type:"map",key:{},value:{}}}}},DescribeStackSummary:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{StackSummary:{type:"structure",members:{StackId:{},Name:{},Arn:{},LayersCount:{type:"integer"},AppsCount:{type:"integer"},InstancesCount:{type:"structure",members:{Assigning:{type:"integer"},Booting:{type:"integer"},ConnectionLost:{type:"integer"},Deregistering:{type:"integer"},Online:{type:"integer"},Pending:{type:"integer"},Rebooting:{type:"integer"},Registered:{type:"integer"},Registering:{type:"integer"},Requested:{type:"integer"},RunningSetup:{type:"integer"},SetupFailed:{type:"integer"},ShuttingDown:{type:"integer"},StartFailed:{type:"integer"},Stopped:{type:"integer"},Stopping:{type:"integer"},Terminated:{type:"integer"},Terminating:{type:"integer"},Unassigning:{type:"integer"}}}}}}}},DescribeStacks:{input:{type:"structure",members:{StackIds:{shape:"S3"}}},output:{type:"structure",members:{Stacks:{type:"list",member:{type:"structure",members:{StackId:{},Name:{},Arn:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},CreatedAt:{},DefaultRootDeviceType:{},AgentVersion:{}}}}}}},DescribeTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceIds"],members:{InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{TimeBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{InstanceId:{},AutoScalingSchedule:{shape:"S46"}}}}}}},DescribeUserProfiles:{input:{type:"structure",members:{IamUserArns:{shape:"S3"}}},output:{type:"structure",members:{UserProfiles:{type:"list",member:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}}}}}},DescribeVolumes:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayId:{},VolumeIds:{shape:"S3"}}},output:{type:"structure",members:{Volumes:{type:"list",member:{type:"structure",members:{VolumeId:{},Ec2VolumeId:{},Name:{},RaidArrayId:{},InstanceId:{},Status:{},Size:{type:"integer"},Device:{},MountPoint:{},Region:{},AvailabilityZone:{},VolumeType:{},Iops:{type:"integer"}}}}}}},DetachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}}},DisassociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}}},GetHostnameSuggestion:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}},output:{type:"structure",members:{LayerId:{},Hostname:{}}}},GrantAccess:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},ValidForInMinutes:{type:"integer"}}},output:{type:"structure",members:{TemporaryCredential:{type:"structure",members:{Username:{},Password:{},ValidForInMinutes:{type:"integer"},InstanceId:{}}}}}},ListTags:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tags:{shape:"S4v"},NextToken:{}}}},RebootInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},RegisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn","StackId"],members:{EcsClusterArn:{},StackId:{}}},output:{type:"structure",members:{EcsClusterArn:{}}}},RegisterElasticIp:{input:{type:"structure",required:["ElasticIp","StackId"],members:{ElasticIp:{},StackId:{}}},output:{type:"structure",members:{ElasticIp:{}}}},RegisterInstance:{input:{type:"structure",required:["StackId"],members:{StackId:{},Hostname:{},PublicIp:{},PrivateIp:{},RsaPublicKey:{},RsaPublicKeyFingerprint:{},InstanceIdentity:{type:"structure",members:{Document:{},Signature:{}}}}},output:{type:"structure",members:{InstanceId:{}}}},RegisterRdsDbInstance:{input:{type:"structure",required:["StackId","RdsDbInstanceArn","DbUser","DbPassword"],members:{StackId:{},RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}}},RegisterVolume:{input:{type:"structure",required:["StackId"],members:{Ec2VolumeId:{},StackId:{}}},output:{type:"structure",members:{VolumeId:{}}}},SetLoadBasedAutoScaling:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S36"},DownScaling:{shape:"S36"}}}},SetPermission:{input:{type:"structure",required:["StackId","IamUserArn"],members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}}},SetTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},AutoScalingSchedule:{shape:"S46"}}}},StartInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},StartStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}}},StopInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},StopStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S4v"}}}},UnassignInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},UnassignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}}},UpdateApp:{input:{type:"structure",required:["AppId"],members:{AppId:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}}},UpdateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},Name:{}}}},UpdateInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},Architecture:{},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{}}}},UpdateLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CloudWatchLogsConfiguration:{shape:"S19"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S1f"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1h"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1i"}}}},UpdateMyUserProfile:{input:{type:"structure",members:{SshPublicKey:{}}}},UpdateRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}}},UpdateStack:{input:{type:"structure",required:["StackId"],members:{StackId:{},Name:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},UseOpsworksSecurityGroups:{type:"boolean"},AgentVersion:{}}}},UpdateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}}},UpdateVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},Name:{},MountPoint:{}}}}},shapes:{S3:{type:"list",member:{}},S8:{type:"map",key:{},value:{}},Sa:{type:"structure",members:{Name:{},Version:{}}},Sb:{type:"structure",members:{ManageBerkshelf:{type:"boolean"},BerkshelfVersion:{}}},Sd:{type:"structure",members:{Type:{},Url:{},Username:{},Password:{},SshKey:{},Revision:{}}},Si:{type:"list",member:{type:"structure",members:{Type:{},Arn:{},DatabaseName:{}}}},Sl:{type:"structure",required:["Certificate","PrivateKey"],members:{Certificate:{},PrivateKey:{},Chain:{}}},Sm:{type:"map",key:{},value:{}},So:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{},Secure:{type:"boolean"}}}},Ss:{type:"structure",required:["Name"],members:{Name:{},Args:{type:"map",key:{},value:{shape:"S3"}}}},Sz:{type:"list",member:{type:"structure",members:{DeviceName:{},NoDevice:{},VirtualName:{},Ebs:{type:"structure",members:{SnapshotId:{},Iops:{type:"integer"},VolumeSize:{type:"integer"},VolumeType:{},DeleteOnTermination:{type:"boolean"}}}}}},S17:{type:"map",key:{},value:{}},S19:{type:"structure",members:{Enabled:{type:"boolean"},LogStreams:{type:"list",member:{type:"structure",members:{LogGroupName:{},DatetimeFormat:{},TimeZone:{},File:{},FileFingerprintLines:{},MultiLineStartPattern:{},InitialPosition:{},Encoding:{},BufferDuration:{type:"integer"},BatchCount:{type:"integer"},BatchSize:{type:"integer"}}}}}},S1f:{type:"list",member:{type:"structure",required:["MountPoint","NumberOfDisks","Size"],members:{MountPoint:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},VolumeType:{},Iops:{type:"integer"}}}},S1h:{type:"structure",members:{Setup:{shape:"S3"},Configure:{shape:"S3"},Deploy:{shape:"S3"},Undeploy:{shape:"S3"},Shutdown:{shape:"S3"}}},S1i:{type:"structure",members:{Shutdown:{type:"structure",members:{ExecutionTimeout:{type:"integer"},DelayUntilElbConnectionsDrained:{type:"boolean"}}}}},S36:{type:"structure",members:{InstanceCount:{type:"integer"},ThresholdsWaitTime:{type:"integer"},IgnoreMetricsTime:{type:"integer"},CpuThreshold:{type:"double"},MemoryThreshold:{type:"double"},LoadThreshold:{type:"double"},Alarms:{shape:"S3"}}},S46:{type:"structure",members:{Monday:{shape:"S47"},Tuesday:{shape:"S47"},Wednesday:{shape:"S47"},Thursday:{shape:"S47"},Friday:{shape:"S47"},Saturday:{shape:"S47"},Sunday:{shape:"S47"}}},S47:{type:"map",key:{},value:{}},S4v:{type:"map",key:{},value:{}}}}},{}],115:[function(e,t,r){t.exports={pagination:{DescribeApps:{result_key:"Apps"},DescribeCommands:{result_key:"Commands"},DescribeDeployments:{result_key:"Deployments"},DescribeEcsClusters:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"EcsClusters"},DescribeElasticIps:{result_key:"ElasticIps"},DescribeElasticLoadBalancers:{result_key:"ElasticLoadBalancers"},DescribeInstances:{result_key:"Instances"},DescribeLayers:{result_key:"Layers"},DescribeLoadBasedAutoScaling:{result_key:"LoadBasedAutoScalingConfigurations"},DescribePermissions:{result_key:"Permissions"},DescribeRaidArrays:{result_key:"RaidArrays"},DescribeServiceErrors:{result_key:"ServiceErrors"},DescribeStacks:{result_key:"Stacks"},DescribeTimeBasedAutoScaling:{result_key:"TimeBasedAutoScalingConfigurations"},DescribeUserProfiles:{result_key:"UserProfiles"},DescribeVolumes:{result_key:"Volumes"}}}},{}],116:[function(e,t,r){t.exports={version:2,waiters:{AppExists:{delay:1,operation:"DescribeApps",maxAttempts:40,acceptors:[{expected:200,matcher:"status",state:"success"},{matcher:"status",expected:400,state:"failure"}]},DeploymentSuccessful:{delay:15,operation:"DescribeDeployments",maxAttempts:40,description:"Wait until a deployment has completed successfully",acceptors:[{expected:"successful",matcher:"pathAll",state:"success",argument:"Deployments[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"Deployments[].Status"}]},InstanceOnline:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is online.",acceptors:[{expected:"online",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"shutting_down",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopped",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminating",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceRegistered:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is registered.",acceptors:[{expected:"registered",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"shutting_down",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopped",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminating",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is stopped.",acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is terminated.",acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"ResourceNotFoundException",matcher:"error",state:"success"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]}}}},{}],117:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-06-10",endpointPrefix:"polly",protocol:"rest-json",serviceFullName:"Amazon Polly",serviceId:"Polly",signatureVersion:"v4",uid:"polly-2016-06-10"},operations:{DeleteLexicon:{http:{method:"DELETE",requestUri:"/v1/lexicons/{LexiconName}",responseCode:200},input:{type:"structure",required:["Name"],members:{Name:{shape:"S2",location:"uri",locationName:"LexiconName"}}},output:{type:"structure",members:{}}},DescribeVoices:{http:{method:"GET",requestUri:"/v1/voices",responseCode:200},input:{type:"structure",members:{LanguageCode:{location:"querystring",locationName:"LanguageCode"},NextToken:{location:"querystring",locationName:"NextToken"}}},output:{type:"structure",members:{Voices:{type:"list",member:{type:"structure",members:{Gender:{},Id:{},LanguageCode:{},LanguageName:{},Name:{}}}},NextToken:{}}}},GetLexicon:{http:{method:"GET",requestUri:"/v1/lexicons/{LexiconName}",responseCode:200},input:{type:"structure",required:["Name"],members:{Name:{shape:"S2",location:"uri",locationName:"LexiconName"}}},output:{type:"structure",members:{Lexicon:{type:"structure",members:{Content:{},Name:{shape:"S2"}}},LexiconAttributes:{shape:"Si"}}}},ListLexicons:{http:{method:"GET",requestUri:"/v1/lexicons",responseCode:200},input:{type:"structure",members:{NextToken:{location:"querystring",locationName:"NextToken"}}},output:{type:"structure",members:{Lexicons:{type:"list",member:{type:"structure",members:{Name:{shape:"S2"},Attributes:{shape:"Si"}}}},NextToken:{}}}},PutLexicon:{http:{method:"PUT",requestUri:"/v1/lexicons/{LexiconName}",responseCode:200},input:{type:"structure",required:["Name","Content"],members:{Name:{shape:"S2",location:"uri",locationName:"LexiconName"},Content:{}}},output:{type:"structure",members:{}}},SynthesizeSpeech:{http:{requestUri:"/v1/speech",responseCode:200},input:{type:"structure",required:["OutputFormat","Text","VoiceId"],members:{LexiconNames:{type:"list",member:{shape:"S2"}},OutputFormat:{},SampleRate:{},SpeechMarkTypes:{type:"list",member:{}},Text:{},TextType:{},VoiceId:{}}},output:{type:"structure",members:{AudioStream:{type:"blob",streaming:!0},ContentType:{location:"header",locationName:"Content-Type"},RequestCharacters:{location:"header",locationName:"x-amzn-RequestCharacters",type:"integer"}},payload:"AudioStream"}}},shapes:{S2:{type:"string",sensitive:!0},Si:{type:"structure",members:{Alphabet:{},LanguageCode:{},LastModified:{type:"timestamp"},LexiconArn:{},LexemesCount:{type:"integer"},Size:{type:"integer"}}}}}},{}],118:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],119:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-01-10",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2013-01-10",xmlNamespace:"http://rds.amazonaws.com/doc/2013-01-10/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S1c"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1i"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1o"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S25"},SupportedCharacterSets:{type:"list",member:{shape:"S25",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"St",locationName:"DBInstance"}}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S1c",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2f"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sk",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S11",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2f"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S1o",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S14",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{}, -ReservedDBInstances:{type:"list",member:{shape:"S3m",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S3o"}},wrapper:!0}}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2f"}}},output:{shape:"S3z",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1i"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sp"},VpcSecurityGroupMemberships:{shape:"Sq"}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1o"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S3m"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2f"}}},output:{shape:"S3z",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{Id:{},CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"}},wrapper:!0},Sp:{type:"list",member:{locationName:"DBSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sv"},VpcSecurityGroups:{shape:"Sx"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S11"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMembership:{type:"structure",members:{OptionGroupName:{},Status:{}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"}},wrapper:!0},Sv:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},Sx:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S11:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S14"},SubnetStatus:{}}}}},wrapper:!0},S14:{type:"structure",members:{Name:{},ProvisionedIopsCapable:{type:"boolean"}},wrapper:!0},S1c:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1i:{type:"list",member:{locationName:"SubnetIdentifier"}},S1o:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sv"},VpcSecurityGroupMemberships:{shape:"Sx"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S25:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2f:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3m:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S3o"}},wrapper:!0},S3o:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S3z:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],120:[function(e,t,r){t.exports={pagination:{DescribeDBEngineVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBEngineVersions"},DescribeDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBInstances"},DescribeDBParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBParameterGroups"},DescribeDBParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeDBSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSecurityGroups"},DescribeDBSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSnapshots"},DescribeDBSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"EngineDefaults.Marker",result_key:"EngineDefaults.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeOptionGroupOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupOptions"},DescribeOptionGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupsList"},DescribeOrderableDBInstanceOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OrderableDBInstanceOptions"},DescribeReservedDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstances"},DescribeReservedDBInstancesOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstancesOfferings"},ListTagsForResource:{result_key:"TagList"}}}},{}],121:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-02-12",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2013-02-12",xmlNamespace:"http://rds.amazonaws.com/doc/2013-02-12/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S1d"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1j"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1p"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S28"},SupportedCharacterSets:{type:"list",member:{shape:"S28",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"St",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S1d",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2n"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sk",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S11",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2n"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S1p",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S14",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S3w",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S3y"}},wrapper:!0}}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2n"}}},output:{shape:"S4b",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1j"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sp"},VpcSecurityGroupMemberships:{shape:"Sq"},OptionSettings:{type:"list",member:{shape:"S1t",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1p"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S3w"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2n"}}},output:{shape:"S4b",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag", -type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{}},wrapper:!0},Sp:{type:"list",member:{locationName:"DBSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sv"},VpcSecurityGroups:{shape:"Sx"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S11"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"}},wrapper:!0},Sv:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},Sx:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S11:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S14"},SubnetStatus:{}}}}},wrapper:!0},S14:{type:"structure",members:{Name:{},ProvisionedIopsCapable:{type:"boolean"}},wrapper:!0},S1d:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1j:{type:"list",member:{locationName:"SubnetIdentifier"}},S1p:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"S1t",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"Sv"},VpcSecurityGroupMemberships:{shape:"Sx"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S1t:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S28:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2n:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3w:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S3y"}},wrapper:!0},S3y:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4b:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],122:[function(e,t,r){t.exports={pagination:{DescribeDBEngineVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBEngineVersions"},DescribeDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBInstances"},DescribeDBLogFiles:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DescribeDBLogFiles"},DescribeDBParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBParameterGroups"},DescribeDBParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeDBSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSecurityGroups"},DescribeDBSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSnapshots"},DescribeDBSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"EngineDefaults.Marker",result_key:"EngineDefaults.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeOptionGroupOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupOptions"},DescribeOptionGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupsList"},DescribeOrderableDBInstanceOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OrderableDBInstanceOptions"},DescribeReservedDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstances"},DescribeReservedDBInstancesOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstancesOfferings"},DownloadDBLogFilePortion:{input_token:"Marker",limit_key:"NumberOfLines",more_results:"AdditionalDataPending",output_token:"Marker",result_key:"LogFileData"},ListTagsForResource:{result_key:"TagList"}}}},{}],123:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-09-09",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2013-09-09",xmlNamespace:"http://rds.amazonaws.com/doc/2013-09-09/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},DBSubnetGroupName:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S1f"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1l"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1r"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S2d"},SupportedCharacterSets:{type:"list",member:{shape:"S2d",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"St",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S1f",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2s"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sk",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S11",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2s"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S27"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S27"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S1r",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S14",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S41",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S43"}},wrapper:!0}}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S27"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2s"}}},output:{shape:"S4g",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1l"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sp"},VpcSecurityGroupMemberships:{shape:"Sq"},OptionSettings:{type:"list",member:{shape:"S1v",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1r"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"S9"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S41"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2s"}}},output:{shape:"S4g",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{},PercentProgress:{type:"integer"},SourceRegion:{}},wrapper:!0},Sp:{type:"list",member:{locationName:"DBSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sv"},VpcSecurityGroups:{shape:"Sx"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S11"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}}},wrapper:!0},Sv:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},Sx:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S11:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S14"},SubnetStatus:{}}}}},wrapper:!0},S14:{type:"structure",members:{Name:{},ProvisionedIopsCapable:{type:"boolean"}},wrapper:!0},S1f:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1l:{type:"list",member:{locationName:"SubnetIdentifier"}},S1r:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"S1v",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"Sv"},VpcSecurityGroupMemberships:{shape:"Sx"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S1v:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S27:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S2d:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2s:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S41:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S43"}},wrapper:!0},S43:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4g:{type:"structure",members:{ -DBParameterGroupName:{}}}}}},{}],124:[function(e,t,r){arguments[4][122][0].apply(r,arguments)},{dup:122}],125:[function(e,t,r){t.exports={version:2,waiters:{DBInstanceAvailable:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBInstanceDeleted:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]}}}},{}],126:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2014-09-01",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2014-09-01",xmlNamespace:"http://rds.amazonaws.com/doc/2014-09-01/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBParameterGroup:{input:{type:"structure",required:["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],members:{SourceDBParameterGroupIdentifier:{},TargetDBParameterGroupIdentifier:{},TargetDBParameterGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sk"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sn"}}}},CopyOptionGroup:{input:{type:"structure",required:["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],members:{SourceOptionGroupIdentifier:{},TargetOptionGroupIdentifier:{},TargetOptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"St"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S13"},VpcSecurityGroupIds:{shape:"S14"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},DBSubnetGroupName:{},StorageType:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sk"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sn"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1u"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1b"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"St"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sn"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S2h"},SupportedCharacterSets:{type:"list",member:{shape:"S2h",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"S17",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"Sk",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2w"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sn",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S1b",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2w"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S2b"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S2b"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"St",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S1e",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"},StorageType:{},SupportsIops:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S45",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S47"}},wrapper:!0}}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S2b"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"S13"},VpcSecurityGroupIds:{shape:"S14"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2w"}}},output:{shape:"S4k",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1u"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1b"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"S13"},VpcSecurityGroupMemberships:{shape:"S14"},OptionSettings:{type:"list",member:{shape:"Sx",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"St"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"S9"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S45"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2w"}}},output:{shape:"S4k",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},Sn:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{},PercentProgress:{type:"integer"},SourceRegion:{},StorageType:{},TdeCredentialArn:{}},wrapper:!0},St:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"Sx",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"Sy"},VpcSecurityGroupMemberships:{shape:"S10"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},Sx:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},Sy:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},S10:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S13:{type:"list",member:{locationName:"DBSecurityGroupName"}},S14:{type:"list",member:{locationName:"VpcSecurityGroupId"}},S17:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sy"},VpcSecurityGroups:{shape:"S10"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S1b"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{},StorageType:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}},StorageType:{},TdeCredentialArn:{}},wrapper:!0},S1b:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S1e"},SubnetStatus:{}}}}},wrapper:!0},S1e:{type:"structure",members:{Name:{}},wrapper:!0},S1u:{type:"list",member:{locationName:"SubnetIdentifier"}},S2b:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S2h:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2w:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S45:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S47"}},wrapper:!0},S47:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4k:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],127:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],128:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2014-10-31",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2014-10-31",xmlNamespace:"http://rds.amazonaws.com/doc/2014-10-31/"},operations:{AddRoleToDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","RoleArn"],members:{DBClusterIdentifier:{},RoleArn:{}}}},AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"Sa"}}}},ApplyPendingMaintenanceAction:{input:{type:"structure",required:["ResourceIdentifier","ApplyAction","OptInType"],members:{ResourceIdentifier:{},ApplyAction:{},OptInType:{}}},output:{resultWrapper:"ApplyPendingMaintenanceActionResult",type:"structure",members:{ResourcePendingMaintenanceActions:{shape:"Se"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sk"}}}},CopyDBClusterParameterGroup:{input:{type:"structure",required:["SourceDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupDescription"],members:{SourceDBClusterParameterGroupIdentifier:{},TargetDBClusterParameterGroupIdentifier:{},TargetDBClusterParameterGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CopyDBClusterParameterGroupResult",type:"structure",members:{DBClusterParameterGroup:{shape:"Sr"}}}},CopyDBClusterSnapshot:{input:{type:"structure",required:["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],members:{SourceDBClusterSnapshotIdentifier:{},TargetDBClusterSnapshotIdentifier:{},KmsKeyId:{},PreSignedUrl:{},CopyTags:{type:"boolean"},Tags:{shape:"Sa"},SourceRegion:{}}},output:{resultWrapper:"CopyDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sv"}}}},CopyDBParameterGroup:{input:{type:"structure",required:["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],members:{SourceDBParameterGroupIdentifier:{},TargetDBParameterGroupIdentifier:{},TargetDBParameterGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CopyDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S10"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},KmsKeyId:{},Tags:{shape:"Sa"},CopyTags:{type:"boolean"},PreSignedUrl:{},OptionGroupName:{},SourceRegion:{}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},CopyOptionGroup:{input:{type:"structure",required:["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],members:{SourceOptionGroupIdentifier:{},TargetOptionGroupIdentifier:{},TargetOptionGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CopyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S17"}}}},CreateDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","Engine"],members:{AvailabilityZones:{shape:"Sw"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},DBSubnetGroupName:{},Engine:{},EngineVersion:{},Port:{type:"integer"},MasterUsername:{},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},ReplicationSourceIdentifier:{},Tags:{shape:"Sa"},StorageEncrypted:{type:"boolean"},KmsKeyId:{},PreSignedUrl:{}, -EnableIAMDatabaseAuthentication:{type:"boolean"},SourceRegion:{}}},output:{resultWrapper:"CreateDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},CreateDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBClusterParameterGroupResult",type:"structure",members:{DBClusterParameterGroup:{shape:"Sr"}}}},CreateDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","DBClusterIdentifier"],members:{DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sv"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","DBInstanceClass","Engine"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S1w"},VpcSecurityGroupIds:{shape:"S1h"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"Sa"},DBClusterIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"},Timezone:{},EnableIAMDatabaseAuthentication:{type:"boolean"},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"Sa"},DBSubnetGroupName:{},StorageType:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},KmsKeyId:{},PreSignedUrl:{},EnableIAMDatabaseAuthentication:{type:"boolean"},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{},SourceRegion:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S10"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sk"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2o"},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S22"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S7"},SourceIds:{shape:"S6"},Enabled:{type:"boolean"},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S17"}}}},DeleteDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},DeleteDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{}}}},DeleteDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sv"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeAccountAttributes:{input:{type:"structure",members:{}},output:{resultWrapper:"DescribeAccountAttributesResult",type:"structure",members:{AccountQuotas:{type:"list",member:{locationName:"AccountQuota",type:"structure",members:{AccountQuotaName:{},Used:{type:"long"},Max:{type:"long"}},wrapper:!0}}}}},DescribeCertificates:{input:{type:"structure",members:{CertificateIdentifier:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCertificatesResult",type:"structure",members:{Certificates:{type:"list",member:{locationName:"Certificate",type:"structure",members:{CertificateIdentifier:{},CertificateType:{},Thumbprint:{},ValidFrom:{type:"timestamp"},ValidTill:{type:"timestamp"},CertificateArn:{}},wrapper:!0}},Marker:{}}}},DescribeDBClusterParameterGroups:{input:{type:"structure",members:{DBClusterParameterGroupName:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParameterGroupsResult",type:"structure",members:{Marker:{},DBClusterParameterGroups:{type:"list",member:{shape:"Sr",locationName:"DBClusterParameterGroup"}}}}},DescribeDBClusterParameters:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},Source:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParametersResult",type:"structure",members:{Parameters:{shape:"S3q"},Marker:{}}}},DescribeDBClusterSnapshotAttributes:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBClusterSnapshotAttributesResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3v"}}}},DescribeDBClusterSnapshots:{input:{type:"structure",members:{DBClusterIdentifier:{},DBClusterSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBClusterSnapshotsResult",type:"structure",members:{Marker:{},DBClusterSnapshots:{type:"list",member:{shape:"Sv",locationName:"DBClusterSnapshot"}}}}},DescribeDBClusters:{input:{type:"structure",members:{DBClusterIdentifier:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClustersResult",type:"structure",members:{Marker:{},DBClusters:{type:"list",member:{shape:"S1j",locationName:"DBCluster"}}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"},ListSupportedTimezones:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S49"},SupportedCharacterSets:{type:"list",member:{shape:"S49",locationName:"CharacterSet"}},ValidUpgradeTarget:{type:"list",member:{locationName:"UpgradeTarget",type:"structure",members:{Engine:{},EngineVersion:{},Description:{},AutoUpgrade:{type:"boolean"},IsMajorVersionUpgrade:{type:"boolean"}}}},SupportedTimezones:{type:"list",member:{locationName:"Timezone",type:"structure",members:{TimezoneName:{}}}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"S1y",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S10",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S3q"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sk",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshotAttributes:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBSnapshotAttributesResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4w"}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"S13",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S22",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultClusterParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultClusterParametersResult",type:"structure",members:{EngineDefaults:{shape:"S57"}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{shape:"S57"}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S3f"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S7"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S5",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S7"},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S7"},Date:{type:"timestamp"},SourceArn:{}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},OptionsConflictsWith:{type:"list",member:{locationName:"OptionConflictName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},RequiresAutoMinorEngineVersionUpgrade:{type:"boolean"},VpcOnly:{type:"boolean"},SupportsOptionVersionDowngrade:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}},OptionGroupOptionVersions:{type:"list",member:{locationName:"OptionVersion",type:"structure",members:{Version:{},IsDefault:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S3f"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S17",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S25",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"},SupportsStorageEncryption:{type:"boolean"},StorageType:{},SupportsIops:{type:"boolean"},SupportsEnhancedMonitoring:{type:"boolean"},SupportsIAMDatabaseAuthentication:{type:"boolean"},SupportsPerformanceInsights:{type:"boolean"},MinStorageSize:{type:"integer"},MaxStorageSize:{type:"integer"},MinIopsPerDbInstance:{type:"integer"},MaxIopsPerDbInstance:{type:"integer"},MinIopsPerGib:{type:"double"},MaxIopsPerGib:{type:"double"}},wrapper:!0}},Marker:{}}}},DescribePendingMaintenanceActions:{input:{type:"structure",members:{ResourceIdentifier:{},Filters:{shape:"S3f"},Marker:{},MaxRecords:{type:"integer"}}},output:{resultWrapper:"DescribePendingMaintenanceActionsResult",type:"structure",members:{PendingMaintenanceActions:{type:"list",member:{shape:"Se",locationName:"ResourcePendingMaintenanceActions"}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S6b",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S3f"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S6d"}},wrapper:!0}}}}},DescribeSourceRegions:{input:{type:"structure",members:{RegionName:{},MaxRecords:{type:"integer"},Marker:{},Filters:{shape:"S3f"}}},output:{resultWrapper:"DescribeSourceRegionsResult",type:"structure",members:{Marker:{},SourceRegions:{type:"list",member:{locationName:"SourceRegion",type:"structure",members:{RegionName:{},Endpoint:{},Status:{}}}}}}},DescribeValidDBInstanceModifications:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{}}},output:{resultWrapper:"DescribeValidDBInstanceModificationsResult",type:"structure",members:{ValidDBInstanceModificationsMessage:{type:"structure",members:{Storage:{type:"list",member:{locationName:"ValidStorageOptions",type:"structure",members:{StorageType:{},StorageSize:{shape:"S6s"},ProvisionedIops:{shape:"S6s"},IopsToStorageRatio:{type:"list",member:{locationName:"DoubleRange",type:"structure",members:{From:{type:"double"},To:{type:"double"}}}}}}}},wrapper:!0}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},FailoverDBCluster:{input:{type:"structure",members:{DBClusterIdentifier:{},TargetDBInstanceIdentifier:{}}},output:{resultWrapper:"FailoverDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S3f"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"Sa"}}}},ModifyDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},NewDBClusterIdentifier:{},ApplyImmediately:{type:"boolean"},BackupRetentionPeriod:{type:"integer"},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},Port:{type:"integer"},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"ModifyDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},ModifyDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","Parameters"],members:{DBClusterParameterGroupName:{},Parameters:{shape:"S3q"}}},output:{shape:"S75",resultWrapper:"ModifyDBClusterParameterGroupResult"}},ModifyDBClusterSnapshotAttribute:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","AttributeName"],members:{DBClusterSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S3y"},ValuesToRemove:{shape:"S3y"}}},output:{resultWrapper:"ModifyDBClusterSnapshotAttributeResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3v"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSubnetGroupName:{},DBSecurityGroups:{shape:"S1w"},VpcSecurityGroupIds:{shape:"S1h"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},CACertificateIdentifier:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},DBPortNumber:{type:"integer"},PubliclyAccessible:{type:"boolean"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"},EnableIAMDatabaseAuthentication:{type:"boolean"},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S3q"}}},output:{shape:"S7b",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{},EngineVersion:{},OptionGroupName:{}}},output:{resultWrapper:"ModifyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},ModifyDBSnapshotAttribute:{input:{type:"structure",required:["DBSnapshotIdentifier","AttributeName"],members:{DBSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S3y"},ValuesToRemove:{shape:"S3y"}}},output:{resultWrapper:"ModifyDBSnapshotAttributeResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4w"}}}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2o"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S22"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S7"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},OptionVersion:{},DBSecurityGroupMemberships:{shape:"S1w"},VpcSecurityGroupMemberships:{shape:"S1h"},OptionSettings:{type:"list",member:{shape:"S1b",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S17"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},PromoteReadReplicaDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{}}},output:{resultWrapper:"PromoteReadReplicaDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"Sa"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S6b"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},RemoveRoleFromDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","RoleArn"],members:{DBClusterIdentifier:{},RoleArn:{}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3q"}}},output:{shape:"S75",resultWrapper:"ResetDBClusterParameterGroupResult"}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3q"}}},output:{shape:"S7b",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBClusterFromS3:{input:{type:"structure",required:["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],members:{AvailabilityZones:{shape:"Sw"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},DBSubnetGroupName:{},Engine:{},EngineVersion:{},Port:{type:"integer"},MasterUsername:{},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},Tags:{shape:"Sa"},StorageEncrypted:{type:"boolean"},KmsKeyId:{},EnableIAMDatabaseAuthentication:{type:"boolean"},SourceEngine:{},SourceEngineVersion:{},S3BucketName:{},S3Prefix:{},S3IngestionRoleArn:{}}},output:{resultWrapper:"RestoreDBClusterFromS3Result",type:"structure",members:{DBCluster:{shape:"S1j"}}}},RestoreDBClusterFromSnapshot:{input:{type:"structure",required:["DBClusterIdentifier","SnapshotIdentifier","Engine"],members:{AvailabilityZones:{shape:"Sw"},DBClusterIdentifier:{},SnapshotIdentifier:{},Engine:{},EngineVersion:{},Port:{type:"integer"},DBSubnetGroupName:{},DatabaseName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},Tags:{shape:"Sa"},KmsKeyId:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"RestoreDBClusterFromSnapshotResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},RestoreDBClusterToPointInTime:{input:{type:"structure",required:["DBClusterIdentifier","SourceDBClusterIdentifier"],members:{DBClusterIdentifier:{},RestoreType:{},SourceDBClusterIdentifier:{},RestoreToTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},Port:{type:"integer"},DBSubnetGroupName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},Tags:{shape:"Sa"},KmsKeyId:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"RestoreDBClusterToPointInTimeResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"Sa"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},DomainIAMRoleName:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},RestoreDBInstanceFromS3:{input:{type:"structure",required:["DBInstanceIdentifier","DBInstanceClass","Engine","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S1w"},VpcSecurityGroupIds:{shape:"S1h"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"Sa"},StorageType:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},EnableIAMDatabaseAuthentication:{type:"boolean"},SourceEngine:{},SourceEngineVersion:{},S3BucketName:{},S3Prefix:{},S3IngestionRoleArn:{},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{}}},output:{resultWrapper:"RestoreDBInstanceFromS3Result",type:"structure",members:{DBInstance:{shape:"S1y"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},CopyTagsToSnapshot:{type:"boolean"},Tags:{shape:"Sa"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},DomainIAMRoleName:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{ -DBInstance:{shape:"S1y"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sk"}}}},StartDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{}}},output:{resultWrapper:"StartDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}},StopDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{}}},output:{resultWrapper:"StopDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1y"}}}}},shapes:{S5:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S6"},EventCategoriesList:{shape:"S7"},Enabled:{type:"boolean"},EventSubscriptionArn:{}},wrapper:!0},S6:{type:"list",member:{locationName:"SourceId"}},S7:{type:"list",member:{locationName:"EventCategory"}},Sa:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Se:{type:"structure",members:{ResourceIdentifier:{},PendingMaintenanceActionDetails:{type:"list",member:{locationName:"PendingMaintenanceAction",type:"structure",members:{Action:{},AutoAppliedAfterDate:{type:"timestamp"},ForcedApplyDate:{type:"timestamp"},OptInStatus:{},CurrentApplyDate:{type:"timestamp"},Description:{}}}}},wrapper:!0},Sk:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}},DBSecurityGroupArn:{}},wrapper:!0},Sr:{type:"structure",members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{},DBClusterParameterGroupArn:{}},wrapper:!0},Sv:{type:"structure",members:{AvailabilityZones:{shape:"Sw"},DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},VpcId:{},ClusterCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},PercentProgress:{type:"integer"},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DBClusterSnapshotArn:{},SourceDBClusterSnapshotArn:{},IAMDatabaseAuthenticationEnabled:{type:"boolean"}},wrapper:!0},Sw:{type:"list",member:{locationName:"AvailabilityZone"}},S10:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},DBParameterGroupArn:{}},wrapper:!0},S13:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{},PercentProgress:{type:"integer"},SourceRegion:{},SourceDBSnapshotIdentifier:{},StorageType:{},TdeCredentialArn:{},Encrypted:{type:"boolean"},KmsKeyId:{},DBSnapshotArn:{},Timezone:{},IAMDatabaseAuthenticationEnabled:{type:"boolean"}},wrapper:!0},S17:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionVersion:{},OptionSettings:{type:"list",member:{shape:"S1b",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"S1c"},VpcSecurityGroupMemberships:{shape:"S1e"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{},OptionGroupArn:{}},wrapper:!0},S1b:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S1c:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},S1e:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S1h:{type:"list",member:{locationName:"VpcSecurityGroupId"}},S1j:{type:"structure",members:{AllocatedStorage:{type:"integer"},AvailabilityZones:{shape:"Sw"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroup:{},DBSubnetGroup:{},Status:{},PercentProgress:{},EarliestRestorableTime:{type:"timestamp"},Endpoint:{},ReaderEndpoint:{},MultiAZ:{type:"boolean"},Engine:{},EngineVersion:{},LatestRestorableTime:{type:"timestamp"},Port:{type:"integer"},MasterUsername:{},DBClusterOptionGroupMemberships:{type:"list",member:{locationName:"DBClusterOptionGroup",type:"structure",members:{DBClusterOptionGroupName:{},Status:{}}}},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},ReplicationSourceIdentifier:{},ReadReplicaIdentifiers:{type:"list",member:{locationName:"ReadReplicaIdentifier"}},DBClusterMembers:{type:"list",member:{locationName:"DBClusterMember",type:"structure",members:{DBInstanceIdentifier:{},IsClusterWriter:{type:"boolean"},DBClusterParameterGroupStatus:{},PromotionTier:{type:"integer"}},wrapper:!0}},VpcSecurityGroups:{shape:"S1e"},HostedZoneId:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbClusterResourceId:{},DBClusterArn:{},AssociatedRoles:{type:"list",member:{locationName:"DBClusterRole",type:"structure",members:{RoleArn:{},Status:{}}}},IAMDatabaseAuthenticationEnabled:{type:"boolean"},CloneGroupId:{},ClusterCreateTime:{type:"timestamp"}},wrapper:!0},S1w:{type:"list",member:{locationName:"DBSecurityGroupName"}},S1y:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"},HostedZoneId:{}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"S1c"},VpcSecurityGroups:{shape:"S1e"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S22"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},LicenseModel:{},Iops:{type:"integer"},DBInstanceIdentifier:{},StorageType:{},CACertificateIdentifier:{},DBSubnetGroupName:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},ReadReplicaDBClusterIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBClusterIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}},StorageType:{},TdeCredentialArn:{},DbInstancePort:{type:"integer"},DBClusterIdentifier:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbiResourceId:{},CACertificateIdentifier:{},DomainMemberships:{type:"list",member:{locationName:"DomainMembership",type:"structure",members:{Domain:{},Status:{},FQDN:{},IAMRoleName:{}}}},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},EnhancedMonitoringResourceArn:{},MonitoringRoleArn:{},PromotionTier:{type:"integer"},DBInstanceArn:{},Timezone:{},IAMDatabaseAuthenticationEnabled:{type:"boolean"},PerformanceInsightsEnabled:{type:"boolean"},PerformanceInsightsKMSKeyId:{}},wrapper:!0},S22:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S25"},SubnetStatus:{}}}},DBSubnetGroupArn:{}},wrapper:!0},S25:{type:"structure",members:{Name:{}},wrapper:!0},S2o:{type:"list",member:{locationName:"SubnetIdentifier"}},S3f:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S3q:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3v:{type:"structure",members:{DBClusterSnapshotIdentifier:{},DBClusterSnapshotAttributes:{type:"list",member:{locationName:"DBClusterSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S3y"}}}}},wrapper:!0},S3y:{type:"list",member:{locationName:"AttributeValue"}},S49:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S4w:{type:"structure",members:{DBSnapshotIdentifier:{},DBSnapshotAttributes:{type:"list",member:{locationName:"DBSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S3y"}},wrapper:!0}}},wrapper:!0},S57:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S3q"}},wrapper:!0},S6b:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S6d"},ReservedDBInstanceArn:{}},wrapper:!0},S6d:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S6s:{type:"list",member:{locationName:"Range",type:"structure",members:{From:{type:"integer"},To:{type:"integer"},Step:{type:"integer"}}}},S75:{type:"structure",members:{DBClusterParameterGroupName:{}}},S7b:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],129:[function(e,t,r){arguments[4][122][0].apply(r,arguments)},{dup:122}],130:[function(e,t,r){t.exports={version:2,waiters:{DBInstanceAvailable:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBInstanceDeleted:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"DBInstanceNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBSnapshotAvailable:{delay:30,operation:"DescribeDBSnapshots",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBSnapshots[].Status"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"}]},DBSnapshotDeleted:{delay:30,operation:"DescribeDBSnapshots",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBSnapshots[].Status"},{expected:"DBSnapshotNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"}]}}}},{}],131:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2012-12-01",endpointPrefix:"redshift",protocol:"query",serviceFullName:"Amazon Redshift",signatureVersion:"v4",uid:"redshift-2012-12-01",xmlNamespace:"http://redshift.amazonaws.com/doc/2012-12-01/"},operations:{AuthorizeClusterSecurityGroupIngress:{input:{type:"structure",required:["ClusterSecurityGroupName"],members:{ClusterSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeClusterSecurityGroupIngressResult",type:"structure",members:{ClusterSecurityGroup:{shape:"S4"}}}},AuthorizeSnapshotAccess:{input:{type:"structure",required:["SnapshotIdentifier","AccountWithRestoreAccess"],members:{SnapshotIdentifier:{},SnapshotClusterIdentifier:{},AccountWithRestoreAccess:{}}},output:{resultWrapper:"AuthorizeSnapshotAccessResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},CopyClusterSnapshot:{input:{type:"structure",required:["SourceSnapshotIdentifier","TargetSnapshotIdentifier"],members:{SourceSnapshotIdentifier:{},SourceSnapshotClusterIdentifier:{},TargetSnapshotIdentifier:{}}},output:{resultWrapper:"CopyClusterSnapshotResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},CreateCluster:{input:{type:"structure",required:["ClusterIdentifier","NodeType","MasterUsername","MasterUserPassword"],members:{DBName:{},ClusterIdentifier:{},ClusterType:{},NodeType:{},MasterUsername:{},MasterUserPassword:{},ClusterSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ClusterSubnetGroupName:{},AvailabilityZone:{},PreferredMaintenanceWindow:{},ClusterParameterGroupName:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},Port:{type:"integer"},ClusterVersion:{},AllowVersionUpgrade:{type:"boolean"},NumberOfNodes:{type:"integer"},PubliclyAccessible:{type:"boolean"},Encrypted:{type:"boolean"},HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},ElasticIp:{},Tags:{shape:"S7"},KmsKeyId:{},EnhancedVpcRouting:{type:"boolean"},AdditionalInfo:{},IamRoles:{shape:"St"}}},output:{resultWrapper:"CreateClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},CreateClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName","ParameterGroupFamily","Description"],members:{ParameterGroupName:{},ParameterGroupFamily:{},Description:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterParameterGroupResult",type:"structure",members:{ClusterParameterGroup:{shape:"S1g"}}}},CreateClusterSecurityGroup:{input:{type:"structure",required:["ClusterSecurityGroupName","Description"],members:{ClusterSecurityGroupName:{},Description:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterSecurityGroupResult",type:"structure",members:{ClusterSecurityGroup:{shape:"S4"}}}},CreateClusterSnapshot:{input:{type:"structure",required:["SnapshotIdentifier","ClusterIdentifier"],members:{SnapshotIdentifier:{},ClusterIdentifier:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterSnapshotResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},CreateClusterSubnetGroup:{input:{type:"structure",required:["ClusterSubnetGroupName","Description","SubnetIds"],members:{ClusterSubnetGroupName:{},Description:{},SubnetIds:{shape:"S1m"},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterSubnetGroupResult",type:"structure",members:{ClusterSubnetGroup:{shape:"S1o"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},SourceIds:{shape:"S1t"},EventCategories:{shape:"S1u"},Severity:{},Enabled:{type:"boolean"},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S1w"}}}},CreateHsmClientCertificate:{input:{type:"structure",required:["HsmClientCertificateIdentifier"],members:{HsmClientCertificateIdentifier:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateHsmClientCertificateResult",type:"structure",members:{HsmClientCertificate:{shape:"S1z"}}}},CreateHsmConfiguration:{input:{type:"structure",required:["HsmConfigurationIdentifier","Description","HsmIpAddress","HsmPartitionName","HsmPartitionPassword","HsmServerPublicCertificate"],members:{HsmConfigurationIdentifier:{},Description:{},HsmIpAddress:{},HsmPartitionName:{},HsmPartitionPassword:{},HsmServerPublicCertificate:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateHsmConfigurationResult",type:"structure",members:{HsmConfiguration:{shape:"S22"}}}},CreateSnapshotCopyGrant:{input:{type:"structure",required:["SnapshotCopyGrantName"],members:{SnapshotCopyGrantName:{},KmsKeyId:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateSnapshotCopyGrantResult",type:"structure",members:{SnapshotCopyGrant:{shape:"S25"}}}},CreateTags:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S7"}}}},DeleteCluster:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{},SkipFinalClusterSnapshot:{type:"boolean"},FinalClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},DeleteClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName"],members:{ParameterGroupName:{}}}},DeleteClusterSecurityGroup:{input:{type:"structure",required:["ClusterSecurityGroupName"],members:{ClusterSecurityGroupName:{}}}},DeleteClusterSnapshot:{input:{type:"structure",required:["SnapshotIdentifier"],members:{SnapshotIdentifier:{},SnapshotClusterIdentifier:{}}},output:{resultWrapper:"DeleteClusterSnapshotResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},DeleteClusterSubnetGroup:{input:{type:"structure",required:["ClusterSubnetGroupName"],members:{ClusterSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}}},DeleteHsmClientCertificate:{input:{type:"structure",required:["HsmClientCertificateIdentifier"],members:{HsmClientCertificateIdentifier:{}}}},DeleteHsmConfiguration:{input:{type:"structure",required:["HsmConfigurationIdentifier"],members:{HsmConfigurationIdentifier:{}}}},DeleteSnapshotCopyGrant:{input:{type:"structure",required:["SnapshotCopyGrantName"],members:{SnapshotCopyGrantName:{}}}},DeleteTags:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{shape:"S2j"}}}},DescribeClusterParameterGroups:{input:{type:"structure",members:{ParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterParameterGroupsResult",type:"structure",members:{Marker:{},ParameterGroups:{type:"list",member:{shape:"S1g",locationName:"ClusterParameterGroup"}}}}},DescribeClusterParameters:{input:{type:"structure",required:["ParameterGroupName"],members:{ParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeClusterParametersResult",type:"structure",members:{Parameters:{shape:"S2q"},Marker:{}}}},DescribeClusterSecurityGroups:{input:{type:"structure",members:{ClusterSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterSecurityGroupsResult",type:"structure",members:{Marker:{},ClusterSecurityGroups:{type:"list",member:{shape:"S4",locationName:"ClusterSecurityGroup"}}}}},DescribeClusterSnapshots:{input:{type:"structure",members:{ClusterIdentifier:{},SnapshotIdentifier:{},SnapshotType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},MaxRecords:{type:"integer"},Marker:{},OwnerAccount:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterSnapshotsResult",type:"structure",members:{Marker:{},Snapshots:{type:"list",member:{shape:"Sd",locationName:"Snapshot"}}}}},DescribeClusterSubnetGroups:{input:{type:"structure",members:{ClusterSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterSubnetGroupsResult",type:"structure",members:{Marker:{},ClusterSubnetGroups:{type:"list",member:{shape:"S1o",locationName:"ClusterSubnetGroup"}}}}},DescribeClusterVersions:{input:{type:"structure",members:{ClusterVersion:{},ClusterParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeClusterVersionsResult",type:"structure",members:{Marker:{},ClusterVersions:{type:"list",member:{locationName:"ClusterVersion",type:"structure",members:{ClusterVersion:{},ClusterParameterGroupFamily:{},Description:{}}}}}}},DescribeClusters:{input:{type:"structure",members:{ClusterIdentifier:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClustersResult",type:"structure",members:{Marker:{},Clusters:{type:"list",member:{shape:"Sv",locationName:"Cluster"}}}}},DescribeDefaultClusterParameters:{input:{type:"structure",required:["ParameterGroupFamily"],members:{ParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDefaultClusterParametersResult",type:"structure",members:{DefaultClusterParameters:{type:"structure",members:{ParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2q"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},Events:{type:"list",member:{locationName:"EventInfoMap",type:"structure",members:{EventId:{},EventCategories:{shape:"S1u"},EventDescription:{},Severity:{}},wrapper:!0}}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S1w",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S1u"},Severity:{},Date:{type:"timestamp"},EventId:{}}}}}}},DescribeHsmClientCertificates:{input:{type:"structure",members:{HsmClientCertificateIdentifier:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeHsmClientCertificatesResult",type:"structure",members:{Marker:{},HsmClientCertificates:{type:"list",member:{shape:"S1z",locationName:"HsmClientCertificate"}}}}},DescribeHsmConfigurations:{input:{type:"structure",members:{HsmConfigurationIdentifier:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeHsmConfigurationsResult",type:"structure",members:{Marker:{},HsmConfigurations:{type:"list",member:{shape:"S22",locationName:"HsmConfiguration"}}}}},DescribeLoggingStatus:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{shape:"S3x",resultWrapper:"DescribeLoggingStatusResult"}},DescribeOrderableClusterOptions:{input:{type:"structure",members:{ClusterVersion:{},NodeType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableClusterOptionsResult",type:"structure",members:{OrderableClusterOptions:{type:"list",member:{locationName:"OrderableClusterOption",type:"structure",members:{ClusterVersion:{},ClusterType:{},NodeType:{},AvailabilityZones:{type:"list",member:{shape:"S1r",locationName:"AvailabilityZone"}}},wrapper:!0}},Marker:{}}}},DescribeReservedNodeOfferings:{input:{type:"structure",members:{ReservedNodeOfferingId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedNodeOfferingsResult",type:"structure",members:{Marker:{},ReservedNodeOfferings:{type:"list",member:{locationName:"ReservedNodeOffering",type:"structure",members:{ReservedNodeOfferingId:{},NodeType:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},OfferingType:{},RecurringCharges:{shape:"S47"}},wrapper:!0}}}}},DescribeReservedNodes:{input:{type:"structure",members:{ReservedNodeId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedNodesResult",type:"structure",members:{Marker:{},ReservedNodes:{type:"list",member:{shape:"S4c",locationName:"ReservedNode"}}}}},DescribeResize:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"DescribeResizeResult",type:"structure",members:{TargetNodeType:{},TargetNumberOfNodes:{type:"integer"},TargetClusterType:{},Status:{},ImportTablesCompleted:{type:"list",member:{}},ImportTablesInProgress:{type:"list",member:{}},ImportTablesNotStarted:{type:"list",member:{}},AvgResizeRateInMegaBytesPerSecond:{type:"double"},TotalResizeDataInMegaBytes:{type:"long"},ProgressInMegaBytes:{type:"long"},ElapsedTimeInSeconds:{type:"long"},EstimatedTimeToCompletionInSeconds:{type:"long"}}}},DescribeSnapshotCopyGrants:{input:{type:"structure",members:{SnapshotCopyGrantName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeSnapshotCopyGrantsResult",type:"structure",members:{Marker:{},SnapshotCopyGrants:{type:"list",member:{shape:"S25",locationName:"SnapshotCopyGrant"}}}}},DescribeTableRestoreStatus:{input:{type:"structure",members:{ClusterIdentifier:{},TableRestoreRequestId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeTableRestoreStatusResult",type:"structure",members:{TableRestoreStatusDetails:{type:"list",member:{shape:"S4q",locationName:"TableRestoreStatus"}},Marker:{}}}},DescribeTags:{input:{type:"structure",members:{ResourceName:{},ResourceType:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeTagsResult",type:"structure",members:{TaggedResources:{type:"list",member:{locationName:"TaggedResource",type:"structure",members:{Tag:{shape:"S8"},ResourceName:{},ResourceType:{}}}},Marker:{}}}},DisableLogging:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{shape:"S3x",resultWrapper:"DisableLoggingResult"}},DisableSnapshotCopy:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"DisableSnapshotCopyResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},EnableLogging:{input:{type:"structure",required:["ClusterIdentifier","BucketName"],members:{ClusterIdentifier:{},BucketName:{},S3KeyPrefix:{}}},output:{shape:"S3x",resultWrapper:"EnableLoggingResult"}},EnableSnapshotCopy:{input:{type:"structure",required:["ClusterIdentifier","DestinationRegion"],members:{ClusterIdentifier:{},DestinationRegion:{},RetentionPeriod:{type:"integer"},SnapshotCopyGrantName:{}}},output:{resultWrapper:"EnableSnapshotCopyResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},GetClusterCredentials:{input:{type:"structure",required:["DbUser","ClusterIdentifier"],members:{DbUser:{},DbName:{},ClusterIdentifier:{},DurationSeconds:{type:"integer"},AutoCreate:{type:"boolean"},DbGroups:{type:"list",member:{locationName:"DbGroup"}}}},output:{resultWrapper:"GetClusterCredentialsResult",type:"structure",members:{DbUser:{},DbPassword:{type:"string",sensitive:!0},Expiration:{type:"timestamp"}}}},ModifyCluster:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{},ClusterType:{},NodeType:{},NumberOfNodes:{type:"integer"},ClusterSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},MasterUserPassword:{},ClusterParameterGroupName:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},PreferredMaintenanceWindow:{},ClusterVersion:{},AllowVersionUpgrade:{type:"boolean"},HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},NewClusterIdentifier:{},PubliclyAccessible:{type:"boolean"},ElasticIp:{},EnhancedVpcRouting:{type:"boolean"}}},output:{resultWrapper:"ModifyClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},ModifyClusterIamRoles:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{},AddIamRoles:{shape:"St"},RemoveIamRoles:{shape:"St"}}},output:{resultWrapper:"ModifyClusterIamRolesResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},ModifyClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName","Parameters"],members:{ParameterGroupName:{},Parameters:{shape:"S2q"}}},output:{shape:"S5b",resultWrapper:"ModifyClusterParameterGroupResult"}},ModifyClusterSubnetGroup:{input:{type:"structure",required:["ClusterSubnetGroupName","SubnetIds"],members:{ClusterSubnetGroupName:{},Description:{},SubnetIds:{shape:"S1m"}}},output:{resultWrapper:"ModifyClusterSubnetGroupResult",type:"structure",members:{ClusterSubnetGroup:{shape:"S1o"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},SourceIds:{shape:"S1t"},EventCategories:{shape:"S1u"},Severity:{},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S1w"}}}},ModifySnapshotCopyRetentionPeriod:{input:{type:"structure",required:["ClusterIdentifier","RetentionPeriod"],members:{ClusterIdentifier:{},RetentionPeriod:{type:"integer"}}},output:{resultWrapper:"ModifySnapshotCopyRetentionPeriodResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},PurchaseReservedNodeOffering:{input:{type:"structure",required:["ReservedNodeOfferingId"],members:{ReservedNodeOfferingId:{},NodeCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedNodeOfferingResult",type:"structure",members:{ReservedNode:{shape:"S4c"}}}},RebootCluster:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"RebootClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},ResetClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName"], -members:{ParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2q"}}},output:{shape:"S5b",resultWrapper:"ResetClusterParameterGroupResult"}},RestoreFromClusterSnapshot:{input:{type:"structure",required:["ClusterIdentifier","SnapshotIdentifier"],members:{ClusterIdentifier:{},SnapshotIdentifier:{},SnapshotClusterIdentifier:{},Port:{type:"integer"},AvailabilityZone:{},AllowVersionUpgrade:{type:"boolean"},ClusterSubnetGroupName:{},PubliclyAccessible:{type:"boolean"},OwnerAccount:{},HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},ElasticIp:{},ClusterParameterGroupName:{},ClusterSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},PreferredMaintenanceWindow:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},KmsKeyId:{},NodeType:{},EnhancedVpcRouting:{type:"boolean"},AdditionalInfo:{},IamRoles:{shape:"St"}}},output:{resultWrapper:"RestoreFromClusterSnapshotResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},RestoreTableFromClusterSnapshot:{input:{type:"structure",required:["ClusterIdentifier","SnapshotIdentifier","SourceDatabaseName","SourceTableName","NewTableName"],members:{ClusterIdentifier:{},SnapshotIdentifier:{},SourceDatabaseName:{},SourceSchemaName:{},SourceTableName:{},TargetDatabaseName:{},TargetSchemaName:{},NewTableName:{}}},output:{resultWrapper:"RestoreTableFromClusterSnapshotResult",type:"structure",members:{TableRestoreStatus:{shape:"S4q"}}}},RevokeClusterSecurityGroupIngress:{input:{type:"structure",required:["ClusterSecurityGroupName"],members:{ClusterSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeClusterSecurityGroupIngressResult",type:"structure",members:{ClusterSecurityGroup:{shape:"S4"}}}},RevokeSnapshotAccess:{input:{type:"structure",required:["SnapshotIdentifier","AccountWithRestoreAccess"],members:{SnapshotIdentifier:{},SnapshotClusterIdentifier:{},AccountWithRestoreAccess:{}}},output:{resultWrapper:"RevokeSnapshotAccessResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},RotateEncryptionKey:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"RotateEncryptionKeyResult",type:"structure",members:{Cluster:{shape:"Sv"}}}}},shapes:{S4:{type:"structure",members:{ClusterSecurityGroupName:{},Description:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{},Tags:{shape:"S7"}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{},Tags:{shape:"S7"}}}},Tags:{shape:"S7"}},wrapper:!0},S7:{type:"list",member:{shape:"S8",locationName:"Tag"}},S8:{type:"structure",members:{Key:{},Value:{}}},Sd:{type:"structure",members:{SnapshotIdentifier:{},ClusterIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Status:{},Port:{type:"integer"},AvailabilityZone:{},ClusterCreateTime:{type:"timestamp"},MasterUsername:{},ClusterVersion:{},SnapshotType:{},NodeType:{},NumberOfNodes:{type:"integer"},DBName:{},VpcId:{},Encrypted:{type:"boolean"},KmsKeyId:{},EncryptedWithHSM:{type:"boolean"},AccountsWithRestoreAccess:{type:"list",member:{locationName:"AccountWithRestoreAccess",type:"structure",members:{AccountId:{},AccountAlias:{}}}},OwnerAccount:{},TotalBackupSizeInMegaBytes:{type:"double"},ActualIncrementalBackupSizeInMegaBytes:{type:"double"},BackupProgressInMegaBytes:{type:"double"},CurrentBackupRateInMegaBytesPerSecond:{type:"double"},EstimatedSecondsToCompletion:{type:"long"},ElapsedTimeInSeconds:{type:"long"},SourceRegion:{},Tags:{shape:"S7"},RestorableNodeTypes:{type:"list",member:{locationName:"NodeType"}},EnhancedVpcRouting:{type:"boolean"}},wrapper:!0},Sp:{type:"list",member:{locationName:"ClusterSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"list",member:{locationName:"IamRoleArn"}},Sv:{type:"structure",members:{ClusterIdentifier:{},NodeType:{},ClusterStatus:{},ModifyStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},ClusterCreateTime:{type:"timestamp"},AutomatedSnapshotRetentionPeriod:{type:"integer"},ClusterSecurityGroups:{type:"list",member:{locationName:"ClusterSecurityGroup",type:"structure",members:{ClusterSecurityGroupName:{},Status:{}}}},VpcSecurityGroups:{type:"list",member:{locationName:"VpcSecurityGroup",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},ClusterParameterGroups:{type:"list",member:{locationName:"ClusterParameterGroup",type:"structure",members:{ParameterGroupName:{},ParameterApplyStatus:{},ClusterParameterStatusList:{type:"list",member:{type:"structure",members:{ParameterName:{},ParameterApplyStatus:{},ParameterApplyErrorDescription:{}}}}}}},ClusterSubnetGroupName:{},VpcId:{},AvailabilityZone:{},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{MasterUserPassword:{},NodeType:{},NumberOfNodes:{type:"integer"},ClusterType:{},ClusterVersion:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},ClusterIdentifier:{},PubliclyAccessible:{type:"boolean"},EnhancedVpcRouting:{type:"boolean"}}},ClusterVersion:{},AllowVersionUpgrade:{type:"boolean"},NumberOfNodes:{type:"integer"},PubliclyAccessible:{type:"boolean"},Encrypted:{type:"boolean"},RestoreStatus:{type:"structure",members:{Status:{},CurrentRestoreRateInMegaBytesPerSecond:{type:"double"},SnapshotSizeInMegaBytes:{type:"long"},ProgressInMegaBytes:{type:"long"},ElapsedTimeInSeconds:{type:"long"},EstimatedTimeToCompletionInSeconds:{type:"long"}}},HsmStatus:{type:"structure",members:{HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},Status:{}}},ClusterSnapshotCopyStatus:{type:"structure",members:{DestinationRegion:{},RetentionPeriod:{type:"long"},SnapshotCopyGrantName:{}}},ClusterPublicKey:{},ClusterNodes:{type:"list",member:{type:"structure",members:{NodeRole:{},PrivateIPAddress:{},PublicIPAddress:{}}}},ElasticIpStatus:{type:"structure",members:{ElasticIp:{},Status:{}}},ClusterRevisionNumber:{},Tags:{shape:"S7"},KmsKeyId:{},EnhancedVpcRouting:{type:"boolean"},IamRoles:{type:"list",member:{locationName:"ClusterIamRole",type:"structure",members:{IamRoleArn:{},ApplyStatus:{}}}}},wrapper:!0},S1g:{type:"structure",members:{ParameterGroupName:{},ParameterGroupFamily:{},Description:{},Tags:{shape:"S7"}},wrapper:!0},S1m:{type:"list",member:{locationName:"SubnetIdentifier"}},S1o:{type:"structure",members:{ClusterSubnetGroupName:{},Description:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S1r"},SubnetStatus:{}}}},Tags:{shape:"S7"}},wrapper:!0},S1r:{type:"structure",members:{Name:{}},wrapper:!0},S1t:{type:"list",member:{locationName:"SourceId"}},S1u:{type:"list",member:{locationName:"EventCategory"}},S1w:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{type:"timestamp"},SourceType:{},SourceIdsList:{shape:"S1t"},EventCategoriesList:{shape:"S1u"},Severity:{},Enabled:{type:"boolean"},Tags:{shape:"S7"}},wrapper:!0},S1z:{type:"structure",members:{HsmClientCertificateIdentifier:{},HsmClientCertificatePublicKey:{},Tags:{shape:"S7"}},wrapper:!0},S22:{type:"structure",members:{HsmConfigurationIdentifier:{},Description:{},HsmIpAddress:{},HsmPartitionName:{},Tags:{shape:"S7"}},wrapper:!0},S25:{type:"structure",members:{SnapshotCopyGrantName:{},KmsKeyId:{},Tags:{shape:"S7"}},wrapper:!0},S2j:{type:"list",member:{locationName:"TagKey"}},S2l:{type:"list",member:{locationName:"TagValue"}},S2q:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},DataType:{},AllowedValues:{},ApplyType:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{}}}},S3x:{type:"structure",members:{LoggingEnabled:{type:"boolean"},BucketName:{},S3KeyPrefix:{},LastSuccessfulDeliveryTime:{type:"timestamp"},LastFailureTime:{type:"timestamp"},LastFailureMessage:{}}},S47:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4c:{type:"structure",members:{ReservedNodeId:{},ReservedNodeOfferingId:{},NodeType:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},NodeCount:{type:"integer"},State:{},OfferingType:{},RecurringCharges:{shape:"S47"}},wrapper:!0},S4q:{type:"structure",members:{TableRestoreRequestId:{},Status:{},Message:{},RequestTime:{type:"timestamp"},ProgressInMegaBytes:{type:"long"},TotalDataInMegaBytes:{type:"long"},ClusterIdentifier:{},SnapshotIdentifier:{},SourceDatabaseName:{},SourceSchemaName:{},SourceTableName:{},TargetDatabaseName:{},TargetSchemaName:{},NewTableName:{}},wrapper:!0},S5b:{type:"structure",members:{ParameterGroupName:{},ParameterGroupStatus:{}}}}}},{}],132:[function(e,t,r){t.exports={pagination:{DescribeClusterParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ParameterGroups"},DescribeClusterParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeClusterSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ClusterSecurityGroups"},DescribeClusterSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Snapshots"},DescribeClusterSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ClusterSubnetGroups"},DescribeClusterVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ClusterVersions"},DescribeClusters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Clusters"},DescribeDefaultClusterParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"DefaultClusterParameters.Marker",result_key:"DefaultClusterParameters.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeHsmClientCertificates:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"HsmClientCertificates"},DescribeHsmConfigurations:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"HsmConfigurations"},DescribeOrderableClusterOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OrderableClusterOptions"},DescribeReservedNodeOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedNodeOfferings"},DescribeReservedNodes:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedNodes"}}}},{}],133:[function(e,t,r){t.exports={version:2,waiters:{ClusterAvailable:{delay:60,operation:"DescribeClusters",maxAttempts:30,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Clusters[].ClusterStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"Clusters[].ClusterStatus"},{expected:"ClusterNotFound",matcher:"error",state:"retry"}]},ClusterDeleted:{delay:60,operation:"DescribeClusters",maxAttempts:30,acceptors:[{expected:"ClusterNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"Clusters[].ClusterStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"Clusters[].ClusterStatus"}]},ClusterRestored:{operation:"DescribeClusters",maxAttempts:30,delay:60,acceptors:[{state:"success",matcher:"pathAll",argument:"Clusters[].RestoreStatus.Status",expected:"completed"},{state:"failure",matcher:"pathAny",argument:"Clusters[].ClusterStatus",expected:"deleting"}]},SnapshotAvailable:{delay:15,operation:"DescribeClusterSnapshots",maxAttempts:20,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Snapshots[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"Snapshots[].Status"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Snapshots[].Status"}]}}}},{}],134:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-06-27",endpointPrefix:"rekognition",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Rekognition",serviceId:"Rekognition",signatureVersion:"v4",targetPrefix:"RekognitionService",uid:"rekognition-2016-06-27"},operations:{CompareFaces:{input:{type:"structure",required:["SourceImage","TargetImage"],members:{SourceImage:{shape:"S2"},TargetImage:{shape:"S2"},SimilarityThreshold:{type:"float"}}},output:{type:"structure",members:{SourceImageFace:{type:"structure",members:{BoundingBox:{shape:"Sb"},Confidence:{type:"float"}}},FaceMatches:{type:"list",member:{type:"structure",members:{Similarity:{type:"float"},Face:{shape:"Sf"}}}},UnmatchedFaces:{type:"list",member:{shape:"Sf"}},SourceImageOrientationCorrection:{},TargetImageOrientationCorrection:{}}}},CreateCollection:{input:{type:"structure",required:["CollectionId"],members:{CollectionId:{}}},output:{type:"structure",members:{StatusCode:{type:"integer"},CollectionArn:{},FaceModelVersion:{}}}},CreateStreamProcessor:{input:{type:"structure",required:["Input","Output","Name","Settings","RoleArn"],members:{Input:{shape:"Su"},Output:{shape:"Sx"},Name:{},Settings:{shape:"S11"},RoleArn:{}}},output:{type:"structure",members:{StreamProcessorArn:{}}}},DeleteCollection:{input:{type:"structure",required:["CollectionId"],members:{CollectionId:{}}},output:{type:"structure",members:{StatusCode:{type:"integer"}}}},DeleteFaces:{input:{type:"structure",required:["CollectionId","FaceIds"],members:{CollectionId:{},FaceIds:{shape:"S19"}}},output:{type:"structure",members:{DeletedFaces:{shape:"S19"}}}},DeleteStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DescribeStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},StreamProcessorArn:{},Status:{},StatusMessage:{},CreationTimestamp:{type:"timestamp"},LastUpdateTimestamp:{type:"timestamp"},Input:{shape:"Su"},Output:{shape:"Sx"},RoleArn:{},Settings:{shape:"S11"}}}},DetectFaces:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"},Attributes:{shape:"S1j"}}},output:{type:"structure",members:{FaceDetails:{type:"list",member:{shape:"S1n"}},OrientationCorrection:{}}}},DetectLabels:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"},MaxLabels:{type:"integer"},MinConfidence:{type:"float"}}},output:{type:"structure",members:{Labels:{type:"list",member:{shape:"S25"}},OrientationCorrection:{}}}},DetectModerationLabels:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"},MinConfidence:{type:"float"}}},output:{type:"structure",members:{ModerationLabels:{type:"list",member:{shape:"S29"}}}}},DetectText:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"}}},output:{type:"structure",members:{TextDetections:{type:"list",member:{type:"structure",members:{DetectedText:{},Type:{},Id:{type:"integer"},ParentId:{type:"integer"},Confidence:{type:"float"},Geometry:{type:"structure",members:{BoundingBox:{shape:"Sb"},Polygon:{type:"list",member:{type:"structure",members:{X:{type:"float"},Y:{type:"float"}}}}}}}}}}}},GetCelebrityInfo:{input:{type:"structure",required:["Id"],members:{Id:{}}},output:{type:"structure",members:{Urls:{shape:"S2l"},Name:{}}}},GetCelebrityRecognition:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Celebrities:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Celebrity:{type:"structure",members:{Urls:{shape:"S2l"},Name:{},Id:{},Confidence:{type:"float"},BoundingBox:{shape:"Sb"},Face:{shape:"S1n"}}}}}}}}},GetContentModeration:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},ModerationLabels:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},ModerationLabel:{shape:"S29"}}}},NextToken:{}}}},GetFaceDetection:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Faces:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Face:{shape:"S1n"}}}}}}},GetFaceSearch:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},NextToken:{},VideoMetadata:{shape:"S2v"},Persons:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Person:{shape:"S3f"},FaceMatches:{shape:"S3h"}}}}}}},GetLabelDetection:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Labels:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Label:{shape:"S25"}}}}}}},GetPersonTracking:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Persons:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Person:{shape:"S3f"}}}}}}},IndexFaces:{input:{type:"structure",required:["CollectionId","Image"],members:{CollectionId:{},Image:{shape:"S2"},ExternalImageId:{},DetectionAttributes:{shape:"S1j"}}},output:{type:"structure",members:{FaceRecords:{type:"list",member:{type:"structure",members:{Face:{shape:"S3j"},FaceDetail:{shape:"S1n"}}}},OrientationCorrection:{},FaceModelVersion:{}}}},ListCollections:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{CollectionIds:{type:"list",member:{}},NextToken:{},FaceModelVersions:{type:"list",member:{}}}}},ListFaces:{input:{type:"structure",required:["CollectionId"],members:{CollectionId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Faces:{type:"list",member:{shape:"S3j"}},NextToken:{},FaceModelVersion:{}}}},ListStreamProcessors:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},StreamProcessors:{type:"list",member:{type:"structure",members:{Name:{},Status:{}}}}}}},RecognizeCelebrities:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"}}},output:{type:"structure",members:{CelebrityFaces:{type:"list",member:{type:"structure",members:{Urls:{shape:"S2l"},Name:{},Id:{},Face:{shape:"Sf"},MatchConfidence:{type:"float"}}}},UnrecognizedFaces:{type:"list",member:{shape:"Sf"}},OrientationCorrection:{}}}},SearchFaces:{input:{type:"structure",required:["CollectionId","FaceId"],members:{CollectionId:{},FaceId:{},MaxFaces:{type:"integer"},FaceMatchThreshold:{type:"float"}}},output:{type:"structure",members:{SearchedFaceId:{},FaceMatches:{shape:"S3h"},FaceModelVersion:{}}}},SearchFacesByImage:{input:{type:"structure",required:["CollectionId","Image"],members:{CollectionId:{},Image:{shape:"S2"},MaxFaces:{type:"integer"},FaceMatchThreshold:{type:"float"}}},output:{type:"structure",members:{SearchedFaceBoundingBox:{shape:"Sb"},SearchedFaceConfidence:{type:"float"},FaceMatches:{shape:"S3h"},FaceModelVersion:{}}}},StartCelebrityRecognition:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartContentModeration:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},MinConfidence:{type:"float"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartFaceDetection:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},FaceAttributes:{},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartFaceSearch:{input:{type:"structure",required:["Video","CollectionId"],members:{Video:{shape:"S4n"},ClientRequestToken:{},FaceMatchThreshold:{type:"float"},CollectionId:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartLabelDetection:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},MinConfidence:{type:"float"},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartPersonTracking:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},StopStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}}},shapes:{S2:{type:"structure",members:{Bytes:{type:"blob"},S3Object:{shape:"S4"}}},S4:{type:"structure",members:{Bucket:{},Name:{},Version:{}}},Sb:{type:"structure",members:{Width:{type:"float"},Height:{type:"float"},Left:{type:"float"},Top:{type:"float"}}},Sf:{type:"structure",members:{BoundingBox:{shape:"Sb"},Confidence:{type:"float"},Landmarks:{shape:"Sg"},Pose:{shape:"Sj"},Quality:{shape:"Sl"}}},Sg:{type:"list",member:{type:"structure",members:{Type:{},X:{type:"float"},Y:{type:"float"}}}},Sj:{type:"structure",members:{Roll:{type:"float"},Yaw:{type:"float"},Pitch:{type:"float"}}},Sl:{type:"structure",members:{Brightness:{type:"float"},Sharpness:{type:"float"}}},Su:{type:"structure",members:{KinesisVideoStream:{type:"structure",members:{Arn:{}}}}},Sx:{type:"structure",members:{KinesisDataStream:{type:"structure",members:{Arn:{}}}}},S11:{type:"structure",members:{FaceSearch:{type:"structure",members:{CollectionId:{},FaceMatchThreshold:{type:"float"}}}}},S19:{type:"list",member:{}},S1j:{type:"list",member:{}},S1n:{type:"structure",members:{BoundingBox:{shape:"Sb"},AgeRange:{type:"structure",members:{Low:{type:"integer"},High:{type:"integer"}}},Smile:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Eyeglasses:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Sunglasses:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Gender:{type:"structure",members:{Value:{},Confidence:{type:"float"}}},Beard:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Mustache:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},EyesOpen:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},MouthOpen:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Emotions:{type:"list",member:{type:"structure",members:{Type:{},Confidence:{type:"float"}}}},Landmarks:{shape:"Sg"},Pose:{shape:"Sj"},Quality:{shape:"Sl"},Confidence:{type:"float"}}},S25:{type:"structure",members:{Name:{},Confidence:{type:"float"}}},S29:{type:"structure",members:{Confidence:{type:"float"},Name:{},ParentName:{}}},S2l:{type:"list",member:{}},S2v:{type:"structure",members:{Codec:{},DurationMillis:{type:"long"},Format:{},FrameRate:{type:"float"},FrameHeight:{type:"long"},FrameWidth:{type:"long"}}},S3f:{type:"structure",members:{Index:{type:"long"},BoundingBox:{shape:"Sb"},Face:{shape:"S1n"}}},S3h:{type:"list",member:{type:"structure",members:{Similarity:{type:"float"},Face:{shape:"S3j"}}}},S3j:{type:"structure",members:{FaceId:{},BoundingBox:{shape:"Sb"},ImageId:{},ExternalImageId:{},Confidence:{type:"float"}}},S4n:{type:"structure",members:{S3Object:{shape:"S4"}}},S4p:{type:"structure",required:["SNSTopicArn","RoleArn"],members:{SNSTopicArn:{},RoleArn:{}}}}}},{}],135:[function(e,t,r){t.exports={pagination:{GetCelebrityRecognition:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetContentModeration:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetFaceDetection:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetFaceSearch:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetLabelDetection:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetPersonTracking:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},ListCollections:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"CollectionIds"},ListFaces:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"Faces"},ListStreamProcessors:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"}}}},{}],136:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-04-01",endpointPrefix:"route53",globalEndpoint:"route53.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Route 53",serviceFullName:"Amazon Route 53",serviceId:"Route 53",signatureVersion:"v4",uid:"route53-2013-04-01"},operations:{AssociateVPCWithHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/associatevpc"},input:{locationName:"AssociateVPCWithHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeResourceRecordSets:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/rrset/"},input:{locationName:"ChangeResourceRecordSetsRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","ChangeBatch"],members:{HostedZoneId:{location:"uri",locationName:"Id"},ChangeBatch:{type:"structure",required:["Changes"],members:{Comment:{},Changes:{type:"list",member:{locationName:"Change",type:"structure",required:["Action","ResourceRecordSet"],members:{Action:{},ResourceRecordSet:{shape:"Sh"}}}}}}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeTagsForResource:{http:{requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{locationName:"ChangeTagsForResourceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"},AddTags:{shape:"S15"},RemoveTagKeys:{type:"list",member:{locationName:"Key"}}}},output:{type:"structure",members:{}}},CreateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck",responseCode:201},input:{locationName:"CreateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference","HealthCheckConfig"],members:{CallerReference:{},HealthCheckConfig:{shape:"S1d"}}},output:{type:"structure",required:["HealthCheck","Location"],members:{HealthCheck:{shape:"S1y"},Location:{location:"header",locationName:"Location"}}}},CreateHostedZone:{http:{requestUri:"/2013-04-01/hostedzone",responseCode:201},input:{locationName:"CreateHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","CallerReference"],members:{Name:{},VPC:{shape:"S3"},CallerReference:{},HostedZoneConfig:{shape:"S2g"},DelegationSetId:{}}},output:{type:"structure",required:["HostedZone","ChangeInfo","DelegationSet","Location"],members:{HostedZone:{shape:"S2j"},ChangeInfo:{shape:"S8"},DelegationSet:{shape:"S2l"},VPC:{shape:"S3"},Location:{location:"header",locationName:"Location"}}}},CreateQueryLoggingConfig:{http:{requestUri:"/2013-04-01/queryloggingconfig",responseCode:201},input:{locationName:"CreateQueryLoggingConfigRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","CloudWatchLogsLogGroupArn"],members:{HostedZoneId:{},CloudWatchLogsLogGroupArn:{}}},output:{type:"structure",required:["QueryLoggingConfig","Location"],members:{QueryLoggingConfig:{shape:"S2q"},Location:{location:"header",locationName:"Location"}}}},CreateReusableDelegationSet:{http:{requestUri:"/2013-04-01/delegationset",responseCode:201},input:{locationName:"CreateReusableDelegationSetRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference"],members:{CallerReference:{},HostedZoneId:{}}},output:{type:"structure",required:["DelegationSet","Location"],members:{DelegationSet:{shape:"S2l"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicy:{http:{requestUri:"/2013-04-01/trafficpolicy",responseCode:201},input:{locationName:"CreateTrafficPolicyRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","Document"],members:{Name:{},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2z"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance",responseCode:201},input:{locationName:"CreateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","Name","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{HostedZoneId:{},Name:{},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance","Location"],members:{TrafficPolicyInstance:{shape:"S34"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyVersion:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}",responseCode:201},input:{locationName:"CreateTrafficPolicyVersionRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Document"],members:{Id:{location:"uri",locationName:"Id"},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2z"},Location:{location:"header",locationName:"Location"}}}},CreateVPCAssociationAuthorization:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/authorizevpcassociation"},input:{locationName:"CreateVPCAssociationAuthorizationRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"}}},output:{type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{},VPC:{shape:"S3"}}}},DeleteHealthCheck:{http:{method:"DELETE",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",members:{}}},DeleteHostedZone:{http:{method:"DELETE",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},DeleteQueryLoggingConfig:{http:{method:"DELETE",requestUri:"/2013-04-01/queryloggingconfig/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}}, -DeleteReusableDelegationSet:{http:{method:"DELETE",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicy:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicyInstance:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteVPCAssociationAuthorization:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/deauthorizevpcassociation"},input:{locationName:"DeleteVPCAssociationAuthorizationRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"}}},output:{type:"structure",members:{}}},DisassociateVPCFromHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/disassociatevpc"},input:{locationName:"DisassociateVPCFromHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetAccountLimit:{http:{method:"GET",requestUri:"/2013-04-01/accountlimit/{Type}"},input:{type:"structure",required:["Type"],members:{Type:{location:"uri",locationName:"Type"}}},output:{type:"structure",required:["Limit","Count"],members:{Limit:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{type:"long"}}},Count:{type:"long"}}}},GetChange:{http:{method:"GET",requestUri:"/2013-04-01/change/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetCheckerIpRanges:{http:{method:"GET",requestUri:"/2013-04-01/checkeripranges"},input:{type:"structure",members:{}},output:{type:"structure",required:["CheckerIpRanges"],members:{CheckerIpRanges:{type:"list",member:{}}}}},GetGeoLocation:{http:{method:"GET",requestUri:"/2013-04-01/geolocation"},input:{type:"structure",members:{ContinentCode:{location:"querystring",locationName:"continentcode"},CountryCode:{location:"querystring",locationName:"countrycode"},SubdivisionCode:{location:"querystring",locationName:"subdivisioncode"}}},output:{type:"structure",required:["GeoLocationDetails"],members:{GeoLocationDetails:{shape:"S46"}}}},GetHealthCheck:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1y"}}}},GetHealthCheckCount:{http:{method:"GET",requestUri:"/2013-04-01/healthcheckcount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HealthCheckCount"],members:{HealthCheckCount:{type:"long"}}}},GetHealthCheckLastFailureReason:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S4h"}}}},GetHealthCheckStatus:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/status"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S4h"}}}},GetHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2j"},DelegationSet:{shape:"S2l"},VPCs:{shape:"S4p"}}}},GetHostedZoneCount:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HostedZoneCount"],members:{HostedZoneCount:{type:"long"}}}},GetHostedZoneLimit:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonelimit/{Id}/{Type}"},input:{type:"structure",required:["Type","HostedZoneId"],members:{Type:{location:"uri",locationName:"Type"},HostedZoneId:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["Limit","Count"],members:{Limit:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{type:"long"}}},Count:{type:"long"}}}},GetQueryLoggingConfig:{http:{method:"GET",requestUri:"/2013-04-01/queryloggingconfig/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["QueryLoggingConfig"],members:{QueryLoggingConfig:{shape:"S2q"}}}},GetReusableDelegationSet:{http:{method:"GET",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["DelegationSet"],members:{DelegationSet:{shape:"S2l"}}}},GetReusableDelegationSetLimit:{http:{method:"GET",requestUri:"/2013-04-01/reusabledelegationsetlimit/{Id}/{Type}"},input:{type:"structure",required:["Type","DelegationSetId"],members:{Type:{location:"uri",locationName:"Type"},DelegationSetId:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["Limit","Count"],members:{Limit:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{type:"long"}}},Count:{type:"long"}}}},GetTrafficPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2z"}}}},GetTrafficPolicyInstance:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S34"}}}},GetTrafficPolicyInstanceCount:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstancecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["TrafficPolicyInstanceCount"],members:{TrafficPolicyInstanceCount:{type:"integer"}}}},ListGeoLocations:{http:{method:"GET",requestUri:"/2013-04-01/geolocations"},input:{type:"structure",members:{StartContinentCode:{location:"querystring",locationName:"startcontinentcode"},StartCountryCode:{location:"querystring",locationName:"startcountrycode"},StartSubdivisionCode:{location:"querystring",locationName:"startsubdivisioncode"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["GeoLocationDetailsList","IsTruncated","MaxItems"],members:{GeoLocationDetailsList:{type:"list",member:{shape:"S46",locationName:"GeoLocationDetails"}},IsTruncated:{type:"boolean"},NextContinentCode:{},NextCountryCode:{},NextSubdivisionCode:{},MaxItems:{}}}},ListHealthChecks:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HealthChecks","Marker","IsTruncated","MaxItems"],members:{HealthChecks:{type:"list",member:{shape:"S1y",locationName:"HealthCheck"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZones:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"},DelegationSetId:{location:"querystring",locationName:"delegationsetid"}}},output:{type:"structure",required:["HostedZones","Marker","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S5n"},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZonesByName:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonesbyname"},input:{type:"structure",members:{DNSName:{location:"querystring",locationName:"dnsname"},HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HostedZones","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S5n"},DNSName:{},HostedZoneId:{},IsTruncated:{type:"boolean"},NextDNSName:{},NextHostedZoneId:{},MaxItems:{}}}},ListQueryLoggingConfigs:{http:{method:"GET",requestUri:"/2013-04-01/queryloggingconfig"},input:{type:"structure",members:{HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},NextToken:{location:"querystring",locationName:"nexttoken"},MaxResults:{location:"querystring",locationName:"maxresults"}}},output:{type:"structure",required:["QueryLoggingConfigs"],members:{QueryLoggingConfigs:{type:"list",member:{shape:"S2q",locationName:"QueryLoggingConfig"}},NextToken:{}}}},ListResourceRecordSets:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/rrset"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"uri",locationName:"Id"},StartRecordName:{location:"querystring",locationName:"name"},StartRecordType:{location:"querystring",locationName:"type"},StartRecordIdentifier:{location:"querystring",locationName:"identifier"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["ResourceRecordSets","IsTruncated","MaxItems"],members:{ResourceRecordSets:{type:"list",member:{shape:"Sh",locationName:"ResourceRecordSet"}},IsTruncated:{type:"boolean"},NextRecordName:{},NextRecordType:{},NextRecordIdentifier:{},MaxItems:{}}}},ListReusableDelegationSets:{http:{method:"GET",requestUri:"/2013-04-01/delegationset"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["DelegationSets","Marker","IsTruncated","MaxItems"],members:{DelegationSets:{type:"list",member:{shape:"S2l",locationName:"DelegationSet"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListTagsForResource:{http:{method:"GET",requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"}}},output:{type:"structure",required:["ResourceTagSet"],members:{ResourceTagSet:{shape:"S63"}}}},ListTagsForResources:{http:{requestUri:"/2013-04-01/tags/{ResourceType}"},input:{locationName:"ListTagsForResourcesRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceIds"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceIds:{type:"list",member:{locationName:"ResourceId"}}}},output:{type:"structure",required:["ResourceTagSets"],members:{ResourceTagSets:{type:"list",member:{shape:"S63",locationName:"ResourceTagSet"}}}}},ListTrafficPolicies:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies"},input:{type:"structure",members:{TrafficPolicyIdMarker:{location:"querystring",locationName:"trafficpolicyid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicySummaries","IsTruncated","TrafficPolicyIdMarker","MaxItems"],members:{TrafficPolicySummaries:{type:"list",member:{locationName:"TrafficPolicySummary",type:"structure",required:["Id","Name","Type","LatestVersion","TrafficPolicyCount"],members:{Id:{},Name:{},Type:{},LatestVersion:{type:"integer"},TrafficPolicyCount:{type:"integer"}}}},IsTruncated:{type:"boolean"},TrafficPolicyIdMarker:{},MaxItems:{}}}},ListTrafficPolicyInstances:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances"},input:{type:"structure",members:{HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S6e"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/hostedzone"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"querystring",locationName:"id"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S6e"},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/trafficpolicy"},input:{type:"structure",required:["TrafficPolicyId","TrafficPolicyVersion"],members:{TrafficPolicyId:{location:"querystring",locationName:"id"},TrafficPolicyVersion:{location:"querystring",locationName:"version",type:"integer"},HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S6e"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyVersions:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies/{Id}/versions"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},TrafficPolicyVersionMarker:{location:"querystring",locationName:"trafficpolicyversion"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicies","IsTruncated","TrafficPolicyVersionMarker","MaxItems"],members:{TrafficPolicies:{type:"list",member:{shape:"S2z",locationName:"TrafficPolicy"}},IsTruncated:{type:"boolean"},TrafficPolicyVersionMarker:{},MaxItems:{}}}},ListVPCAssociationAuthorizations:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/authorizevpcassociation"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"uri",locationName:"Id"},NextToken:{location:"querystring",locationName:"nexttoken"},MaxResults:{location:"querystring",locationName:"maxresults"}}},output:{type:"structure",required:["HostedZoneId","VPCs"],members:{HostedZoneId:{},NextToken:{},VPCs:{shape:"S4p"}}}},TestDNSAnswer:{http:{method:"GET",requestUri:"/2013-04-01/testdnsanswer"},input:{type:"structure",required:["HostedZoneId","RecordName","RecordType"],members:{HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},RecordName:{location:"querystring",locationName:"recordname"},RecordType:{location:"querystring",locationName:"recordtype"},ResolverIP:{location:"querystring",locationName:"resolverip"},EDNS0ClientSubnetIP:{location:"querystring",locationName:"edns0clientsubnetip"},EDNS0ClientSubnetMask:{location:"querystring",locationName:"edns0clientsubnetmask"}}},output:{type:"structure",required:["Nameserver","RecordName","RecordType","RecordData","ResponseCode","Protocol"],members:{Nameserver:{},RecordName:{},RecordType:{},RecordData:{type:"list",member:{locationName:"RecordDataEntry"}},ResponseCode:{},Protocol:{}}}},UpdateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{locationName:"UpdateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"},HealthCheckVersion:{type:"long"},IPAddress:{},Port:{type:"integer"},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},FailureThreshold:{type:"integer"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1p"},EnableSNI:{type:"boolean"},Regions:{shape:"S1r"},AlarmIdentifier:{shape:"S1t"},InsufficientDataHealthStatus:{},ResetElements:{type:"list",member:{locationName:"ResettableElementName"}}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1y"}}}},UpdateHostedZoneComment:{http:{requestUri:"/2013-04-01/hostedzone/{Id}"},input:{locationName:"UpdateHostedZoneCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},Comment:{}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2j"}}}},UpdateTrafficPolicyComment:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{locationName:"UpdateTrafficPolicyCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Version","Comment"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"},Comment:{}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2z"}}}},UpdateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{locationName:"UpdateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{Id:{location:"uri",locationName:"Id"},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S34"}}}}},shapes:{S3:{type:"structure",members:{VPCRegion:{},VPCId:{}}},S8:{type:"structure",required:["Id","Status","SubmittedAt"],members:{Id:{},Status:{},SubmittedAt:{type:"timestamp"},Comment:{}}},Sh:{type:"structure",required:["Name","Type"],members:{Name:{},Type:{},SetIdentifier:{},Weight:{type:"long"},Region:{},GeoLocation:{type:"structure",members:{ContinentCode:{},CountryCode:{},SubdivisionCode:{}}},Failover:{},MultiValueAnswer:{type:"boolean"},TTL:{type:"long"},ResourceRecords:{type:"list",member:{locationName:"ResourceRecord",type:"structure",required:["Value"],members:{Value:{}}}},AliasTarget:{type:"structure",required:["HostedZoneId","DNSName","EvaluateTargetHealth"],members:{HostedZoneId:{},DNSName:{},EvaluateTargetHealth:{type:"boolean"}}},HealthCheckId:{},TrafficPolicyInstanceId:{}}},S15:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},S1d:{type:"structure",required:["Type"],members:{IPAddress:{},Port:{type:"integer"},Type:{},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},RequestInterval:{type:"integer"},FailureThreshold:{type:"integer"},MeasureLatency:{type:"boolean"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1p"},EnableSNI:{type:"boolean"},Regions:{shape:"S1r"},AlarmIdentifier:{shape:"S1t"},InsufficientDataHealthStatus:{}}},S1p:{type:"list",member:{locationName:"ChildHealthCheck"}},S1r:{type:"list",member:{locationName:"Region"}},S1t:{type:"structure",required:["Region","Name"],members:{Region:{},Name:{}}},S1y:{type:"structure",required:["Id","CallerReference","HealthCheckConfig","HealthCheckVersion"],members:{Id:{},CallerReference:{},LinkedService:{shape:"S1z"},HealthCheckConfig:{shape:"S1d"},HealthCheckVersion:{type:"long"},CloudWatchAlarmConfiguration:{type:"structure",required:["EvaluationPeriods","Threshold","ComparisonOperator","Period","MetricName","Namespace","Statistic"],members:{EvaluationPeriods:{type:"integer"},Threshold:{type:"double"},ComparisonOperator:{},Period:{type:"integer"},MetricName:{},Namespace:{},Statistic:{},Dimensions:{type:"list",member:{locationName:"Dimension",type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}}}}},S1z:{type:"structure",members:{ServicePrincipal:{},Description:{}}},S2g:{type:"structure",members:{Comment:{},PrivateZone:{type:"boolean"}}},S2j:{type:"structure",required:["Id","Name","CallerReference"],members:{Id:{},Name:{},CallerReference:{},Config:{shape:"S2g"},ResourceRecordSetCount:{type:"long"},LinkedService:{shape:"S1z"}}},S2l:{type:"structure",required:["NameServers"],members:{Id:{},CallerReference:{},NameServers:{type:"list",member:{locationName:"NameServer"}}}},S2q:{type:"structure",required:["Id","HostedZoneId","CloudWatchLogsLogGroupArn"],members:{Id:{},HostedZoneId:{},CloudWatchLogsLogGroupArn:{}}},S2z:{type:"structure",required:["Id","Version","Name","Type","Document"],members:{Id:{},Version:{type:"integer"},Name:{},Type:{},Document:{},Comment:{}}},S34:{type:"structure",required:["Id","HostedZoneId","Name","TTL","State","Message","TrafficPolicyId","TrafficPolicyVersion","TrafficPolicyType"],members:{Id:{},HostedZoneId:{},Name:{},TTL:{type:"long"},State:{},Message:{},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"},TrafficPolicyType:{}}},S46:{type:"structure",members:{ContinentCode:{},ContinentName:{},CountryCode:{},CountryName:{},SubdivisionCode:{},SubdivisionName:{}}},S4h:{type:"list",member:{locationName:"HealthCheckObservation",type:"structure",members:{Region:{},IPAddress:{},StatusReport:{type:"structure",members:{Status:{},CheckedTime:{type:"timestamp"}}}}}},S4p:{type:"list",member:{shape:"S3",locationName:"VPC"}},S5n:{type:"list",member:{shape:"S2j",locationName:"HostedZone"}},S63:{type:"structure",members:{ResourceType:{},ResourceId:{},Tags:{shape:"S15"}}},S6e:{type:"list",member:{shape:"S34",locationName:"TrafficPolicyInstance"}}}}},{}],137:[function(e,t,r){t.exports={pagination:{ListHealthChecks:{input_token:"Marker",limit_key:"MaxItems",more_results:"IsTruncated",output_token:"NextMarker",result_key:"HealthChecks"},ListHostedZones:{input_token:"Marker",limit_key:"MaxItems",more_results:"IsTruncated",output_token:"NextMarker",result_key:"HostedZones"},ListResourceRecordSets:{input_token:["StartRecordName","StartRecordType","StartRecordIdentifier"],limit_key:"MaxItems",more_results:"IsTruncated",output_token:["NextRecordName","NextRecordType","NextRecordIdentifier"],result_key:"ResourceRecordSets"}}}},{}],138:[function(e,t,r){t.exports={version:2,waiters:{ResourceRecordSetsChanged:{delay:30,maxAttempts:60,operation:"GetChange",acceptors:[{matcher:"path",expected:"INSYNC",argument:"ChangeInfo.Status",state:"success"}]}}}},{}],139:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2014-05-15",endpointPrefix:"route53domains",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Route 53 Domains",signatureVersion:"v4",targetPrefix:"Route53Domains_v20140515",uid:"route53domains-2014-05-15"},operations:{CheckDomainAvailability:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},IdnLangCode:{}}},output:{type:"structure",required:["Availability"],members:{Availability:{}}}},CheckDomainTransferability:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AuthCode:{shape:"S7"}}},output:{type:"structure",required:["Transferability"],members:{Transferability:{type:"structure",members:{Transferable:{}}}}}},DeleteTagsForDomain:{input:{type:"structure",required:["DomainName","TagsToDelete"],members:{DomainName:{},TagsToDelete:{type:"list",member:{}}}},output:{type:"structure",members:{}}},DisableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}}},DisableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},EnableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}}},EnableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},GetContactReachabilityStatus:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},status:{}}}},GetDomainDetail:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["DomainName","Nameservers","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},Nameservers:{shape:"St"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"},RegistrarName:{},WhoIsServer:{},RegistrarUrl:{},AbuseContactEmail:{},AbuseContactPhone:{},RegistryDomainId:{},CreationDate:{type:"timestamp"},UpdatedDate:{type:"timestamp"},ExpirationDate:{type:"timestamp"},Reseller:{},DnsSec:{},StatusList:{type:"list",member:{}}}}},GetDomainSuggestions:{input:{type:"structure",required:["DomainName","SuggestionCount","OnlyAvailable"],members:{DomainName:{},SuggestionCount:{type:"integer"},OnlyAvailable:{type:"boolean"}}},output:{type:"structure",members:{SuggestionsList:{type:"list",member:{type:"structure",members:{DomainName:{},Availability:{}}}}}}},GetOperationDetail:{input:{type:"structure",required:["OperationId"],members:{OperationId:{}}},output:{type:"structure",members:{OperationId:{},Status:{},Message:{},DomainName:{},Type:{},SubmittedDate:{type:"timestamp"}}}},ListDomains:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Domains"],members:{Domains:{type:"list",member:{type:"structure",required:["DomainName"],members:{DomainName:{},AutoRenew:{type:"boolean"},TransferLock:{type:"boolean"},Expiry:{type:"timestamp"}}}},NextPageMarker:{}}}},ListOperations:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Operations"],members:{Operations:{type:"list",member:{type:"structure",required:["OperationId","Status","Type","SubmittedDate"],members:{OperationId:{},Status:{},Type:{},SubmittedDate:{type:"timestamp"}}}},NextPageMarker:{}}}},ListTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["TagList"],members:{TagList:{shape:"S29"}}}},RegisterDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},RenewDomain:{input:{type:"structure",required:["DomainName","CurrentExpiryYear"],members:{DomainName:{},DurationInYears:{type:"integer"},CurrentExpiryYear:{type:"integer"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},ResendContactReachabilityEmail:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},emailAddress:{},isAlreadyVerified:{type:"boolean"}}}},RetrieveDomainAuthCode:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["AuthCode"],members:{AuthCode:{shape:"S7"}}}},TransferDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},Nameservers:{shape:"St"},AuthCode:{shape:"S7"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateDomainContact:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateDomainContactPrivacy:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateDomainNameservers:{input:{type:"structure",required:["DomainName","Nameservers"],members:{DomainName:{},FIAuthKey:{deprecated:!0},Nameservers:{shape:"St"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},TagsToUpdate:{shape:"S29"}}},output:{type:"structure",members:{}}},ViewBilling:{input:{type:"structure",members:{Start:{type:"timestamp"},End:{type:"timestamp"},Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",members:{NextPageMarker:{},BillingRecords:{type:"list",member:{type:"structure",members:{DomainName:{},Operation:{},InvoiceId:{},BillDate:{type:"timestamp"},Price:{type:"double"}}}}}}}},shapes:{S7:{type:"string",sensitive:!0},St:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},GlueIps:{type:"list",member:{}}}}},Sz:{type:"structure",members:{FirstName:{},LastName:{},ContactType:{},OrganizationName:{},AddressLine1:{},AddressLine2:{},City:{},State:{},CountryCode:{},ZipCode:{},PhoneNumber:{},Email:{},Fax:{},ExtraParams:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}},sensitive:!0},S29:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}}},{}],140:[function(e,t,r){t.exports={pagination:{ListDomains:{input_token:"Marker",limit_key:"MaxItems",output_token:"NextPageMarker",result_key:"Domains"},ListOperations:{input_token:"Marker",limit_key:"MaxItems",output_token:"NextPageMarker",result_key:"Operations"}}}},{}],141:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-11-28",endpointPrefix:"runtime.lex",jsonVersion:"1.1",protocol:"rest-json",serviceFullName:"Amazon Lex Runtime Service",signatureVersion:"v4",signingName:"lex",uid:"runtime.lex-2016-11-28"},operations:{PostContent:{http:{requestUri:"/bot/{botName}/alias/{botAlias}/user/{userId}/content"},input:{type:"structure",required:["botName","botAlias","userId","contentType","inputStream"],members:{botName:{location:"uri",locationName:"botName"},botAlias:{location:"uri",locationName:"botAlias"},userId:{location:"uri",locationName:"userId"},sessionAttributes:{shape:"S5",jsonvalue:!0,location:"header",locationName:"x-amz-lex-session-attributes"},requestAttributes:{shape:"S5",jsonvalue:!0,location:"header",locationName:"x-amz-lex-request-attributes"}, -contentType:{location:"header",locationName:"Content-Type"},accept:{location:"header",locationName:"Accept"},inputStream:{shape:"S8"}},payload:"inputStream"},output:{type:"structure",members:{contentType:{location:"header",locationName:"Content-Type"},intentName:{location:"header",locationName:"x-amz-lex-intent-name"},slots:{jsonvalue:!0,location:"header",locationName:"x-amz-lex-slots"},sessionAttributes:{jsonvalue:!0,location:"header",locationName:"x-amz-lex-session-attributes"},message:{shape:"Sc",location:"header",locationName:"x-amz-lex-message"},dialogState:{location:"header",locationName:"x-amz-lex-dialog-state"},slotToElicit:{location:"header",locationName:"x-amz-lex-slot-to-elicit"},inputTranscript:{location:"header",locationName:"x-amz-lex-input-transcript"},audioStream:{shape:"S8"}},payload:"audioStream"},authtype:"v4-unsigned-body"},PostText:{http:{requestUri:"/bot/{botName}/alias/{botAlias}/user/{userId}/text"},input:{type:"structure",required:["botName","botAlias","userId","inputText"],members:{botName:{location:"uri",locationName:"botName"},botAlias:{location:"uri",locationName:"botAlias"},userId:{location:"uri",locationName:"userId"},sessionAttributes:{shape:"Sf"},requestAttributes:{shape:"Sf"},inputText:{shape:"Sc"}}},output:{type:"structure",members:{intentName:{},slots:{shape:"Sf"},sessionAttributes:{shape:"Sf"},message:{shape:"Sc"},dialogState:{},slotToElicit:{},responseCard:{type:"structure",members:{version:{},contentType:{},genericAttachments:{type:"list",member:{type:"structure",members:{title:{},subTitle:{},attachmentLinkUrl:{},imageUrl:{},buttons:{type:"list",member:{type:"structure",required:["text","value"],members:{text:{},value:{}}}}}}}}}}}}},shapes:{S5:{type:"string",sensitive:!0},S8:{type:"blob",streaming:!0},Sc:{type:"string",sensitive:!0},Sf:{type:"map",key:{},value:{},sensitive:!0}}}},{}],142:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],143:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2006-03-01",checksumFormat:"md5",endpointPrefix:"s3",globalEndpoint:"s3.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Amazon S3",serviceFullName:"Amazon Simple Storage Service",serviceId:"S3",signatureVersion:"s3",timestampFormat:"rfc822",uid:"s3-2006-03-01"},operations:{AbortMultipartUpload:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CompleteMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MultipartUpload:{locationName:"CompleteMultipartUpload",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{ETag:{},PartNumber:{type:"integer"}}},flattened:!0}}},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"MultipartUpload"},output:{type:"structure",members:{Location:{},Bucket:{},Key:{},Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CopyObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},MetadataDirective:{location:"header",locationName:"x-amz-metadata-directive"},TaggingDirective:{location:"header",locationName:"x-amz-tagging-directive"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1c",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},Tagging:{location:"header",locationName:"x-amz-tagging"}}},output:{type:"structure",members:{CopyObjectResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},Expiration:{location:"header",locationName:"x-amz-expiration"},CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},VersionId:{location:"header",locationName:"x-amz-version-id"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyObjectResult"},alias:"PutObjectCopy"},CreateBucket:{http:{method:"PUT",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CreateBucketConfiguration:{locationName:"CreateBucketConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LocationConstraint:{}}},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"CreateBucketConfiguration"},output:{type:"structure",members:{Location:{location:"header",locationName:"Location"}}},alias:"PutBucket"},CreateMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}?uploads"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},Tagging:{location:"header",locationName:"x-amz-tagging"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{locationName:"Bucket"},Key:{},UploadId:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}},alias:"InitiateMultipartUpload"},DeleteBucket:{http:{method:"DELETE",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketAnalyticsConfiguration:{http:{method:"DELETE",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}}},DeleteBucketCors:{http:{method:"DELETE",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketEncryption:{http:{method:"DELETE",requestUri:"/{Bucket}?encryption"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketInventoryConfiguration:{http:{method:"DELETE",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}}},DeleteBucketLifecycle:{http:{method:"DELETE",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketMetricsConfiguration:{http:{method:"DELETE",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}}},DeleteBucketPolicy:{http:{method:"DELETE",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketReplication:{http:{method:"DELETE",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketTagging:{http:{method:"DELETE",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketWebsite:{http:{method:"DELETE",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteObject:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MFA:{location:"header",locationName:"x-amz-mfa"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},VersionId:{location:"header",locationName:"x-amz-version-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},DeleteObjectTagging:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}?tagging"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"}}},output:{type:"structure",members:{VersionId:{location:"header",locationName:"x-amz-version-id"}}}},DeleteObjects:{http:{requestUri:"/{Bucket}?delete"},input:{type:"structure",required:["Bucket","Delete"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delete:{locationName:"Delete",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Objects"],members:{Objects:{locationName:"Object",type:"list",member:{type:"structure",required:["Key"],members:{Key:{},VersionId:{}}},flattened:!0},Quiet:{type:"boolean"}}},MFA:{location:"header",locationName:"x-amz-mfa"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Delete"},output:{type:"structure",members:{Deleted:{type:"list",member:{type:"structure",members:{Key:{},VersionId:{},DeleteMarker:{type:"boolean"},DeleteMarkerVersionId:{}}},flattened:!0},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},Errors:{locationName:"Error",type:"list",member:{type:"structure",members:{Key:{},VersionId:{},Code:{},Message:{}}},flattened:!0}}},alias:"DeleteMultipleObjects"},GetBucketAccelerateConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{}}}},GetBucketAcl:{http:{method:"GET",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Owner:{shape:"S2v"},Grants:{shape:"S2y",locationName:"AccessControlList"}}}},GetBucketAnalyticsConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}},output:{type:"structure",members:{AnalyticsConfiguration:{shape:"S37"}},payload:"AnalyticsConfiguration"}},GetBucketCors:{http:{method:"GET",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{CORSRules:{shape:"S3n",locationName:"CORSRule"}}}},GetBucketEncryption:{http:{method:"GET",requestUri:"/{Bucket}?encryption"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{ServerSideEncryptionConfiguration:{shape:"S40"}},payload:"ServerSideEncryptionConfiguration"}},GetBucketInventoryConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}},output:{type:"structure",members:{InventoryConfiguration:{shape:"S46"}},payload:"InventoryConfiguration"}},GetBucketLifecycle:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S4m",locationName:"Rule"}}},deprecated:!0},GetBucketLifecycleConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S51",locationName:"Rule"}}}},GetBucketLocation:{http:{method:"GET",requestUri:"/{Bucket}?location"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LocationConstraint:{}}}},GetBucketLogging:{http:{method:"GET",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LoggingEnabled:{shape:"S5b"}}}},GetBucketMetricsConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}},output:{type:"structure",members:{MetricsConfiguration:{shape:"S5j"}},payload:"MetricsConfiguration"}},GetBucketNotification:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S5m"},output:{shape:"S5n"},deprecated:!0},GetBucketNotificationConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S5m"},output:{shape:"S5y"}},GetBucketPolicy:{http:{method:"GET",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Policy:{}},payload:"Policy"}},GetBucketReplication:{http:{method:"GET",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{ReplicationConfiguration:{shape:"S6h"}},payload:"ReplicationConfiguration"}},GetBucketRequestPayment:{http:{method:"GET",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Payer:{}}}},GetBucketTagging:{http:{method:"GET",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",required:["TagSet"],members:{TagSet:{shape:"S3d"}}}},GetBucketVersioning:{http:{method:"GET",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{},MFADelete:{locationName:"MfaDelete"}}}},GetBucketWebsite:{http:{method:"GET",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{RedirectAllRequestsTo:{shape:"S75"},IndexDocument:{shape:"S78"},ErrorDocument:{shape:"S7a"},RoutingRules:{shape:"S7b"}}}},GetObject:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},ResponseCacheControl:{location:"querystring",locationName:"response-cache-control"},ResponseContentDisposition:{location:"querystring",locationName:"response-content-disposition"},ResponseContentEncoding:{location:"querystring",locationName:"response-content-encoding"},ResponseContentLanguage:{location:"querystring",locationName:"response-content-language"},ResponseContentType:{location:"querystring",locationName:"response-content-type"},ResponseExpires:{location:"querystring",locationName:"response-expires",type:"timestamp"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentRange:{location:"header",locationName:"Content-Range"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"},PartsCount:{location:"header",locationName:"x-amz-mp-parts-count",type:"integer"},TagCount:{location:"header",locationName:"x-amz-tagging-count",type:"integer"}},payload:"Body"}},GetObjectAcl:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Owner:{shape:"S2v"},Grants:{shape:"S2y",locationName:"AccessControlList"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},GetObjectTagging:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?tagging"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"}}},output:{type:"structure",required:["TagSet"],members:{VersionId:{location:"header",locationName:"x-amz-version-id"},TagSet:{shape:"S3d"}}}},GetObjectTorrent:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?torrent"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"Body"}},HeadBucket:{http:{method:"HEAD",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},HeadObject:{http:{method:"HEAD",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"},PartsCount:{location:"header",locationName:"x-amz-mp-parts-count",type:"integer"}}}},ListBucketAnalyticsConfigurations:{http:{method:"GET",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContinuationToken:{location:"querystring",locationName:"continuation-token"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},ContinuationToken:{},NextContinuationToken:{},AnalyticsConfigurationList:{locationName:"AnalyticsConfiguration",type:"list",member:{shape:"S37"},flattened:!0}}}},ListBucketInventoryConfigurations:{http:{method:"GET",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContinuationToken:{location:"querystring",locationName:"continuation-token"}}},output:{type:"structure",members:{ContinuationToken:{},InventoryConfigurationList:{locationName:"InventoryConfiguration",type:"list",member:{shape:"S46"},flattened:!0},IsTruncated:{type:"boolean"},NextContinuationToken:{}}}},ListBucketMetricsConfigurations:{http:{method:"GET",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContinuationToken:{location:"querystring",locationName:"continuation-token"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},ContinuationToken:{},NextContinuationToken:{},MetricsConfigurationList:{locationName:"MetricsConfiguration",type:"list",member:{shape:"S5j"},flattened:!0}}}},ListBuckets:{http:{method:"GET"},output:{type:"structure",members:{Buckets:{type:"list",member:{locationName:"Bucket",type:"structure",members:{Name:{},CreationDate:{type:"timestamp"}}}},Owner:{shape:"S2v"}}},alias:"GetService"},ListMultipartUploads:{http:{method:"GET",requestUri:"/{Bucket}?uploads"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxUploads:{location:"querystring",locationName:"max-uploads",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},UploadIdMarker:{location:"querystring",locationName:"upload-id-marker"}}},output:{type:"structure",members:{Bucket:{},KeyMarker:{},UploadIdMarker:{},NextKeyMarker:{},Prefix:{},Delimiter:{},NextUploadIdMarker:{},MaxUploads:{type:"integer"},IsTruncated:{type:"boolean"},Uploads:{locationName:"Upload",type:"list",member:{type:"structure",members:{UploadId:{},Key:{},Initiated:{type:"timestamp"},StorageClass:{},Owner:{shape:"S2v"},Initiator:{shape:"S97"}}},flattened:!0},CommonPrefixes:{shape:"S98"},EncodingType:{}}}},ListObjectVersions:{http:{method:"GET",requestUri:"/{Bucket}?versions"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},VersionIdMarker:{location:"querystring",locationName:"version-id-marker"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},KeyMarker:{},VersionIdMarker:{},NextKeyMarker:{},NextVersionIdMarker:{},Versions:{locationName:"Version",type:"list",member:{type:"structure",members:{ETag:{},Size:{type:"integer"},StorageClass:{},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"},Owner:{shape:"S2v"}}},flattened:!0},DeleteMarkers:{locationName:"DeleteMarker",type:"list",member:{type:"structure",members:{Owner:{shape:"S2v"},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"}}}, -flattened:!0},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S98"},EncodingType:{}}},alias:"GetBucketObjectVersions"},ListObjects:{http:{method:"GET",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},Marker:{location:"querystring",locationName:"marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Marker:{},NextMarker:{},Contents:{shape:"S9q"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S98"},EncodingType:{}}},alias:"GetBucket"},ListObjectsV2:{http:{method:"GET",requestUri:"/{Bucket}?list-type=2"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},ContinuationToken:{location:"querystring",locationName:"continuation-token"},FetchOwner:{location:"querystring",locationName:"fetch-owner",type:"boolean"},StartAfter:{location:"querystring",locationName:"start-after"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Contents:{shape:"S9q"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S98"},EncodingType:{},KeyCount:{type:"integer"},ContinuationToken:{},NextContinuationToken:{},StartAfter:{}}}},ListParts:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MaxParts:{location:"querystring",locationName:"max-parts",type:"integer"},PartNumberMarker:{location:"querystring",locationName:"part-number-marker",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{},Key:{},UploadId:{},PartNumberMarker:{type:"integer"},NextPartNumberMarker:{type:"integer"},MaxParts:{type:"integer"},IsTruncated:{type:"boolean"},Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{PartNumber:{type:"integer"},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"}}},flattened:!0},Initiator:{shape:"S97"},Owner:{shape:"S2v"},StorageClass:{},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutBucketAccelerateConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket","AccelerateConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},AccelerateConfiguration:{locationName:"AccelerateConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Status:{}}}},payload:"AccelerateConfiguration"}},PutBucketAcl:{http:{method:"PUT",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"Sa8",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"AccessControlPolicy"}},PutBucketAnalyticsConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket","Id","AnalyticsConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"},AnalyticsConfiguration:{shape:"S37",locationName:"AnalyticsConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"AnalyticsConfiguration"}},PutBucketCors:{http:{method:"PUT",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket","CORSConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},CORSConfiguration:{locationName:"CORSConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["CORSRules"],members:{CORSRules:{shape:"S3n",locationName:"CORSRule"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"CORSConfiguration"}},PutBucketEncryption:{http:{method:"PUT",requestUri:"/{Bucket}?encryption"},input:{type:"structure",required:["Bucket","ServerSideEncryptionConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ServerSideEncryptionConfiguration:{shape:"S40",locationName:"ServerSideEncryptionConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"ServerSideEncryptionConfiguration"}},PutBucketInventoryConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket","Id","InventoryConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"},InventoryConfiguration:{shape:"S46",locationName:"InventoryConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"InventoryConfiguration"}},PutBucketLifecycle:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S4m",locationName:"Rule"}}}},payload:"LifecycleConfiguration"},deprecated:!0},PutBucketLifecycleConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S51",locationName:"Rule"}}}},payload:"LifecycleConfiguration"}},PutBucketLogging:{http:{method:"PUT",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket","BucketLoggingStatus"],members:{Bucket:{location:"uri",locationName:"Bucket"},BucketLoggingStatus:{locationName:"BucketLoggingStatus",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LoggingEnabled:{shape:"S5b"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"BucketLoggingStatus"}},PutBucketMetricsConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket","Id","MetricsConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"},MetricsConfiguration:{shape:"S5j",locationName:"MetricsConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"MetricsConfiguration"}},PutBucketNotification:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},NotificationConfiguration:{shape:"S5n",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"},deprecated:!0},PutBucketNotificationConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},NotificationConfiguration:{shape:"S5y",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"}},PutBucketPolicy:{http:{method:"PUT",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket","Policy"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ConfirmRemoveSelfBucketAccess:{location:"header",locationName:"x-amz-confirm-remove-self-bucket-access",type:"boolean"},Policy:{}},payload:"Policy"}},PutBucketReplication:{http:{method:"PUT",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket","ReplicationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ReplicationConfiguration:{shape:"S6h",locationName:"ReplicationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"ReplicationConfiguration"}},PutBucketRequestPayment:{http:{method:"PUT",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket","RequestPaymentConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},RequestPaymentConfiguration:{locationName:"RequestPaymentConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Payer"],members:{Payer:{}}}},payload:"RequestPaymentConfiguration"}},PutBucketTagging:{http:{method:"PUT",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket","Tagging"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},Tagging:{shape:"Sau",locationName:"Tagging",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"Tagging"}},PutBucketVersioning:{http:{method:"PUT",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket","VersioningConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},MFA:{location:"header",locationName:"x-amz-mfa"},VersioningConfiguration:{locationName:"VersioningConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{MFADelete:{locationName:"MfaDelete"},Status:{}}}},payload:"VersioningConfiguration"}},PutBucketWebsite:{http:{method:"PUT",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket","WebsiteConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},WebsiteConfiguration:{locationName:"WebsiteConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{ErrorDocument:{shape:"S7a"},IndexDocument:{shape:"S78"},RedirectAllRequestsTo:{shape:"S75"},RoutingRules:{shape:"S7b"}}}},payload:"WebsiteConfiguration"}},PutObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ContentMD5:{location:"header",locationName:"Content-MD5"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},Tagging:{location:"header",locationName:"x-amz-tagging"}},payload:"Body"},output:{type:"structure",members:{Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{location:"header",locationName:"ETag"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutObjectAcl:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"Sa8",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},VersionId:{location:"querystring",locationName:"versionId"}},payload:"AccessControlPolicy"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutObjectTagging:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}?tagging"},input:{type:"structure",required:["Bucket","Key","Tagging"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},ContentMD5:{location:"header",locationName:"Content-MD5"},Tagging:{shape:"Sau",locationName:"Tagging",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"Tagging"},output:{type:"structure",members:{VersionId:{location:"header",locationName:"x-amz-version-id"}}}},RestoreObject:{http:{requestUri:"/{Bucket}/{Key+}?restore"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RestoreRequest:{locationName:"RestoreRequest",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Days:{type:"integer"},GlacierJobParameters:{type:"structure",required:["Tier"],members:{Tier:{}}},Type:{},Tier:{},Description:{},SelectParameters:{type:"structure",required:["InputSerialization","ExpressionType","Expression","OutputSerialization"],members:{InputSerialization:{type:"structure",members:{CSV:{type:"structure",members:{FileHeaderInfo:{},Comments:{},QuoteEscapeCharacter:{},RecordDelimiter:{},FieldDelimiter:{},QuoteCharacter:{}}}}},ExpressionType:{},Expression:{},OutputSerialization:{type:"structure",members:{CSV:{type:"structure",members:{QuoteFields:{},QuoteEscapeCharacter:{},RecordDelimiter:{},FieldDelimiter:{},QuoteCharacter:{}}}}}}},OutputLocation:{type:"structure",members:{S3:{type:"structure",required:["BucketName","Prefix"],members:{BucketName:{},Prefix:{},Encryption:{type:"structure",required:["EncryptionType"],members:{EncryptionType:{},KMSKeyId:{shape:"Sj"},KMSContext:{}}},CannedACL:{},AccessControlList:{shape:"S2y"},Tagging:{shape:"Sau"},UserMetadata:{type:"list",member:{locationName:"MetadataEntry",type:"structure",members:{Name:{},Value:{}}}},StorageClass:{}}}}}}},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"RestoreRequest"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"},RestoreOutputPath:{location:"header",locationName:"x-amz-restore-output-path"}}},alias:"PostObjectRestore"},UploadPart:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","PartNumber","UploadId"],members:{Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ContentMD5:{location:"header",locationName:"Content-MD5"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Body"},output:{type:"structure",members:{ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},ETag:{location:"header",locationName:"ETag"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},UploadPartCopy:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key","PartNumber","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},CopySourceRange:{location:"header",locationName:"x-amz-copy-source-range"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1c",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},CopyPartResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyPartResult"}}},shapes:{Sj:{type:"string",sensitive:!0},S11:{type:"map",key:{},value:{}},S19:{type:"blob",sensitive:!0},S1c:{type:"blob",sensitive:!0},S2v:{type:"structure",members:{DisplayName:{},ID:{}}},S2y:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S30"},Permission:{}}}},S30:{type:"structure",required:["Type"],members:{DisplayName:{},EmailAddress:{},ID:{},Type:{locationName:"xsi:type",xmlAttribute:!0},URI:{}},xmlNamespace:{prefix:"xsi",uri:"http://www.w3.org/2001/XMLSchema-instance"}},S37:{type:"structure",required:["Id","StorageClassAnalysis"],members:{Id:{},Filter:{type:"structure",members:{Prefix:{},Tag:{shape:"S3a"},And:{type:"structure",members:{Prefix:{},Tags:{shape:"S3d",flattened:!0,locationName:"Tag"}}}}},StorageClassAnalysis:{type:"structure",members:{DataExport:{type:"structure",required:["OutputSchemaVersion","Destination"],members:{OutputSchemaVersion:{},Destination:{type:"structure",required:["S3BucketDestination"],members:{S3BucketDestination:{type:"structure",required:["Format","Bucket"],members:{Format:{},BucketAccountId:{},Bucket:{},Prefix:{}}}}}}}}}}},S3a:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},S3d:{type:"list",member:{shape:"S3a",locationName:"Tag"}},S3n:{type:"list",member:{type:"structure",required:["AllowedMethods","AllowedOrigins"],members:{AllowedHeaders:{locationName:"AllowedHeader",type:"list",member:{},flattened:!0},AllowedMethods:{locationName:"AllowedMethod",type:"list",member:{},flattened:!0},AllowedOrigins:{locationName:"AllowedOrigin",type:"list",member:{},flattened:!0},ExposeHeaders:{locationName:"ExposeHeader",type:"list",member:{},flattened:!0},MaxAgeSeconds:{type:"integer"}}},flattened:!0},S40:{type:"structure",required:["Rules"],members:{Rules:{locationName:"Rule",type:"list",member:{type:"structure",members:{ApplyServerSideEncryptionByDefault:{type:"structure",required:["SSEAlgorithm"],members:{SSEAlgorithm:{},KMSMasterKeyID:{shape:"Sj"}}}}},flattened:!0}}},S46:{type:"structure",required:["Destination","IsEnabled","Id","IncludedObjectVersions","Schedule"],members:{Destination:{type:"structure",required:["S3BucketDestination"],members:{S3BucketDestination:{type:"structure",required:["Bucket","Format"],members:{AccountId:{},Bucket:{},Format:{},Prefix:{},Encryption:{type:"structure",members:{SSES3:{locationName:"SSE-S3",type:"structure",members:{}},SSEKMS:{locationName:"SSE-KMS",type:"structure",required:["KeyId"],members:{KeyId:{shape:"Sj"}}}}}}}}},IsEnabled:{type:"boolean"},Filter:{type:"structure",required:["Prefix"],members:{Prefix:{}}},Id:{},IncludedObjectVersions:{},OptionalFields:{type:"list",member:{locationName:"Field"}},Schedule:{type:"structure",required:["Frequency"],members:{Frequency:{}}}}},S4m:{type:"list",member:{type:"structure",required:["Prefix","Status"],members:{Expiration:{shape:"S4o"},ID:{},Prefix:{},Status:{},Transition:{shape:"S4t"},NoncurrentVersionTransition:{shape:"S4v"},NoncurrentVersionExpiration:{shape:"S4w"},AbortIncompleteMultipartUpload:{shape:"S4x"}}},flattened:!0},S4o:{type:"structure",members:{Date:{shape:"S4p"},Days:{type:"integer"},ExpiredObjectDeleteMarker:{type:"boolean"}}},S4p:{type:"timestamp",timestampFormat:"iso8601"},S4t:{type:"structure",members:{Date:{shape:"S4p"},Days:{type:"integer"},StorageClass:{}}},S4v:{type:"structure",members:{NoncurrentDays:{type:"integer"},StorageClass:{}}},S4w:{type:"structure",members:{NoncurrentDays:{type:"integer"}}},S4x:{type:"structure",members:{DaysAfterInitiation:{type:"integer"}}},S51:{type:"list",member:{type:"structure",required:["Status"],members:{Expiration:{shape:"S4o"},ID:{},Prefix:{deprecated:!0},Filter:{type:"structure",members:{Prefix:{},Tag:{shape:"S3a"},And:{type:"structure",members:{Prefix:{},Tags:{shape:"S3d",flattened:!0,locationName:"Tag"}}}}},Status:{},Transitions:{locationName:"Transition",type:"list",member:{shape:"S4t"},flattened:!0},NoncurrentVersionTransitions:{locationName:"NoncurrentVersionTransition",type:"list",member:{shape:"S4v"},flattened:!0},NoncurrentVersionExpiration:{shape:"S4w"},AbortIncompleteMultipartUpload:{shape:"S4x"}}},flattened:!0},S5b:{type:"structure",members:{TargetBucket:{},TargetGrants:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S30"},Permission:{}}}},TargetPrefix:{}}},S5j:{type:"structure",required:["Id"],members:{Id:{},Filter:{type:"structure",members:{Prefix:{},Tag:{shape:"S3a"},And:{type:"structure",members:{Prefix:{},Tags:{shape:"S3d",flattened:!0,locationName:"Tag"}}}}}}},S5m:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},S5n:{type:"structure",members:{TopicConfiguration:{type:"structure",members:{Id:{},Events:{shape:"S5q",locationName:"Event"},Event:{deprecated:!0},Topic:{}}},QueueConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S5q",locationName:"Event"},Queue:{}}},CloudFunctionConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S5q",locationName:"Event"},CloudFunction:{},InvocationRole:{}}}}},S5q:{type:"list",member:{},flattened:!0},S5y:{type:"structure",members:{TopicConfigurations:{locationName:"TopicConfiguration",type:"list",member:{type:"structure",required:["TopicArn","Events"],members:{Id:{},TopicArn:{locationName:"Topic"},Events:{shape:"S5q",locationName:"Event"},Filter:{shape:"S61"}}},flattened:!0},QueueConfigurations:{locationName:"QueueConfiguration",type:"list",member:{type:"structure",required:["QueueArn","Events"],members:{Id:{},QueueArn:{locationName:"Queue"},Events:{shape:"S5q",locationName:"Event"},Filter:{shape:"S61"}}},flattened:!0},LambdaFunctionConfigurations:{locationName:"CloudFunctionConfiguration",type:"list",member:{type:"structure",required:["LambdaFunctionArn","Events"],members:{Id:{},LambdaFunctionArn:{locationName:"CloudFunction"},Events:{shape:"S5q",locationName:"Event"},Filter:{shape:"S61"}}},flattened:!0}}},S61:{type:"structure",members:{Key:{locationName:"S3Key",type:"structure",members:{FilterRules:{locationName:"FilterRule",type:"list",member:{type:"structure",members:{Name:{},Value:{}}},flattened:!0}}}}},S6h:{type:"structure",required:["Role","Rules"],members:{Role:{},Rules:{locationName:"Rule",type:"list",member:{type:"structure",required:["Prefix","Status","Destination"],members:{ID:{},Prefix:{},Status:{},SourceSelectionCriteria:{type:"structure",members:{SseKmsEncryptedObjects:{type:"structure",required:["Status"],members:{Status:{}}}}},Destination:{type:"structure",required:["Bucket"],members:{Bucket:{},Account:{},StorageClass:{},AccessControlTranslation:{type:"structure",required:["Owner"],members:{Owner:{}}},EncryptionConfiguration:{type:"structure",members:{ReplicaKmsKeyID:{}}}}}}},flattened:!0}}},S75:{type:"structure",required:["HostName"],members:{HostName:{},Protocol:{}}},S78:{type:"structure",required:["Suffix"],members:{Suffix:{}}},S7a:{type:"structure",required:["Key"],members:{Key:{}}},S7b:{type:"list",member:{locationName:"RoutingRule",type:"structure",required:["Redirect"],members:{Condition:{type:"structure",members:{HttpErrorCodeReturnedEquals:{},KeyPrefixEquals:{}}},Redirect:{type:"structure",members:{HostName:{},HttpRedirectCode:{},Protocol:{},ReplaceKeyPrefixWith:{},ReplaceKeyWith:{}}}}}},S97:{type:"structure",members:{ID:{},DisplayName:{}}},S98:{type:"list",member:{type:"structure",members:{Prefix:{}}},flattened:!0},S9q:{type:"list",member:{type:"structure",members:{Key:{},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"},StorageClass:{},Owner:{shape:"S2v"}}},flattened:!0},Sa8:{type:"structure",members:{Grants:{shape:"S2y",locationName:"AccessControlList"},Owner:{shape:"S2v"}}},Sau:{type:"structure",required:["TagSet"],members:{TagSet:{shape:"S3d"}}}}}},{}],144:[function(e,t,r){t.exports={pagination:{ListBuckets:{result_key:"Buckets"},ListMultipartUploads:{input_token:["KeyMarker","UploadIdMarker"],limit_key:"MaxUploads",more_results:"IsTruncated",output_token:["NextKeyMarker","NextUploadIdMarker"],result_key:["Uploads","CommonPrefixes"]},ListObjectVersions:{input_token:["KeyMarker","VersionIdMarker"],limit_key:"MaxKeys",more_results:"IsTruncated",output_token:["NextKeyMarker","NextVersionIdMarker"],result_key:["Versions","DeleteMarkers","CommonPrefixes"]},ListObjects:{input_token:"Marker",limit_key:"MaxKeys",more_results:"IsTruncated",output_token:"NextMarker || Contents[-1].Key",result_key:["Contents","CommonPrefixes"]},ListObjectsV2:{input_token:"ContinuationToken",limit_key:"MaxKeys",output_token:"NextContinuationToken",result_key:["Contents","CommonPrefixes"]},ListParts:{input_token:"PartNumberMarker",limit_key:"MaxParts",more_results:"IsTruncated",output_token:"NextPartNumberMarker",result_key:"Parts"}}}},{}],145:[function(e,t,r){t.exports={version:2,waiters:{BucketExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:301,matcher:"status",state:"success"},{expected:403,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},BucketNotExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]},ObjectExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},ObjectNotExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]}}}},{}],146:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2015-12-10",endpointPrefix:"servicecatalog",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Service Catalog",signatureVersion:"v4",targetPrefix:"AWS242ServiceCatalogService",uid:"servicecatalog-2015-12-10"},operations:{AcceptPortfolioShare:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{}}},output:{type:"structure",members:{}}},AssociatePrincipalWithPortfolio:{input:{type:"structure",required:["PortfolioId","PrincipalARN","PrincipalType"],members:{AcceptLanguage:{},PortfolioId:{},PrincipalARN:{},PrincipalType:{}}},output:{type:"structure",members:{}}},AssociateProductWithPortfolio:{input:{type:"structure",required:["ProductId","PortfolioId"],members:{AcceptLanguage:{},ProductId:{},PortfolioId:{},SourcePortfolioId:{}}},output:{type:"structure",members:{}}},AssociateTagOptionWithResource:{input:{type:"structure",required:["ResourceId","TagOptionId"],members:{ResourceId:{},TagOptionId:{}}},output:{type:"structure",members:{}}},CopyProduct:{input:{type:"structure", -required:["SourceProductArn","IdempotencyToken"],members:{AcceptLanguage:{},SourceProductArn:{},TargetProductId:{},TargetProductName:{},SourceProvisioningArtifactIdentifiers:{type:"list",member:{type:"map",key:{},value:{}}},CopyOptions:{type:"list",member:{}},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{CopyProductToken:{}}}},CreateConstraint:{input:{type:"structure",required:["PortfolioId","ProductId","Parameters","Type","IdempotencyToken"],members:{AcceptLanguage:{},PortfolioId:{},ProductId:{},Parameters:{},Type:{},Description:{},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ConstraintDetail:{shape:"Sv"},ConstraintParameters:{},Status:{}}}},CreatePortfolio:{input:{type:"structure",required:["DisplayName","ProviderName","IdempotencyToken"],members:{AcceptLanguage:{},DisplayName:{},Description:{},ProviderName:{},Tags:{shape:"S12"},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{PortfolioDetail:{shape:"S17"},Tags:{shape:"S1a"}}}},CreatePortfolioShare:{input:{type:"structure",required:["PortfolioId","AccountId"],members:{AcceptLanguage:{},PortfolioId:{},AccountId:{}}},output:{type:"structure",members:{}}},CreateProduct:{input:{type:"structure",required:["Name","Owner","ProductType","ProvisioningArtifactParameters","IdempotencyToken"],members:{AcceptLanguage:{},Name:{},Owner:{},Description:{},Distributor:{},SupportDescription:{},SupportEmail:{},SupportUrl:{},ProductType:{},Tags:{shape:"S12"},ProvisioningArtifactParameters:{shape:"S1k"},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ProductViewDetail:{shape:"S1s"},ProvisioningArtifactDetail:{shape:"S1x"},Tags:{shape:"S1a"}}}},CreateProvisioningArtifact:{input:{type:"structure",required:["ProductId","Parameters","IdempotencyToken"],members:{AcceptLanguage:{},ProductId:{},Parameters:{shape:"S1k"},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ProvisioningArtifactDetail:{shape:"S1x"},Info:{shape:"S1n"},Status:{}}}},CreateTagOption:{input:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},output:{type:"structure",members:{TagOptionDetail:{shape:"S25"}}}},DeleteConstraint:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{}}},DeletePortfolio:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{}}},DeletePortfolioShare:{input:{type:"structure",required:["PortfolioId","AccountId"],members:{AcceptLanguage:{},PortfolioId:{},AccountId:{}}},output:{type:"structure",members:{}}},DeleteProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{}}},DeleteProvisioningArtifact:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{}}},output:{type:"structure",members:{}}},DescribeConstraint:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ConstraintDetail:{shape:"Sv"},ConstraintParameters:{},Status:{}}}},DescribeCopyProductStatus:{input:{type:"structure",required:["CopyProductToken"],members:{AcceptLanguage:{},CopyProductToken:{}}},output:{type:"structure",members:{CopyProductStatus:{},TargetProductId:{},StatusDetail:{}}}},DescribePortfolio:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{PortfolioDetail:{shape:"S17"},Tags:{shape:"S1a"},TagOptions:{shape:"S2p"}}}},DescribeProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProductViewSummary:{shape:"S1t"},ProvisioningArtifacts:{shape:"S2s"}}}},DescribeProductAsAdmin:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProductViewDetail:{shape:"S1s"},ProvisioningArtifactSummaries:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Description:{},CreatedTime:{type:"timestamp"},ProvisioningArtifactMetadata:{shape:"S1n"}}}},Tags:{shape:"S1a"},TagOptions:{shape:"S2p"}}}},DescribeProductView:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProductViewSummary:{shape:"S1t"},ProvisioningArtifacts:{shape:"S2s"}}}},DescribeProvisionedProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProvisionedProductDetail:{shape:"S33"}}}},DescribeProvisioningArtifact:{input:{type:"structure",required:["ProvisioningArtifactId","ProductId"],members:{AcceptLanguage:{},ProvisioningArtifactId:{},ProductId:{},Verbose:{type:"boolean"}}},output:{type:"structure",members:{ProvisioningArtifactDetail:{shape:"S1x"},Info:{shape:"S1n"},Status:{}}}},DescribeProvisioningParameters:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{},PathId:{}}},output:{type:"structure",members:{ProvisioningArtifactParameters:{type:"list",member:{type:"structure",members:{ParameterKey:{},DefaultValue:{},ParameterType:{},IsNoEcho:{type:"boolean"},Description:{},ParameterConstraints:{type:"structure",members:{AllowedValues:{type:"list",member:{}}}}}}},ConstraintSummaries:{shape:"S3p"},UsageInstructions:{type:"list",member:{type:"structure",members:{Type:{},Value:{}}}},TagOptions:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}}}}},DescribeRecord:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"},RecordOutputs:{type:"list",member:{type:"structure",members:{OutputKey:{},OutputValue:{},Description:{}}}},NextPageToken:{}}}},DescribeTagOption:{input:{type:"structure",required:["Id"],members:{Id:{}}},output:{type:"structure",members:{TagOptionDetail:{shape:"S25"}}}},DisassociatePrincipalFromPortfolio:{input:{type:"structure",required:["PortfolioId","PrincipalARN"],members:{AcceptLanguage:{},PortfolioId:{},PrincipalARN:{}}},output:{type:"structure",members:{}}},DisassociateProductFromPortfolio:{input:{type:"structure",required:["ProductId","PortfolioId"],members:{AcceptLanguage:{},ProductId:{},PortfolioId:{}}},output:{type:"structure",members:{}}},DisassociateTagOptionFromResource:{input:{type:"structure",required:["ResourceId","TagOptionId"],members:{ResourceId:{},TagOptionId:{}}},output:{type:"structure",members:{}}},ListAcceptedPortfolioShares:{input:{type:"structure",members:{AcceptLanguage:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{PortfolioDetails:{shape:"S4t"},NextPageToken:{}}}},ListConstraintsForPortfolio:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{},ProductId:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{ConstraintDetails:{type:"list",member:{shape:"Sv"}},NextPageToken:{}}}},ListLaunchPaths:{input:{type:"structure",required:["ProductId"],members:{AcceptLanguage:{},ProductId:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{LaunchPathSummaries:{type:"list",member:{type:"structure",members:{Id:{},ConstraintSummaries:{shape:"S3p"},Tags:{shape:"S1a"},Name:{}}}},NextPageToken:{}}}},ListPortfolioAccess:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{}}},output:{type:"structure",members:{AccountIds:{type:"list",member:{}},NextPageToken:{}}}},ListPortfolios:{input:{type:"structure",members:{AcceptLanguage:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{PortfolioDetails:{shape:"S4t"},NextPageToken:{}}}},ListPortfoliosForProduct:{input:{type:"structure",required:["ProductId"],members:{AcceptLanguage:{},ProductId:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{PortfolioDetails:{shape:"S4t"},NextPageToken:{}}}},ListPrincipalsForPortfolio:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{Principals:{type:"list",member:{type:"structure",members:{PrincipalARN:{},PrincipalType:{}}}},NextPageToken:{}}}},ListProvisioningArtifacts:{input:{type:"structure",required:["ProductId"],members:{AcceptLanguage:{},ProductId:{}}},output:{type:"structure",members:{ProvisioningArtifactDetails:{type:"list",member:{shape:"S1x"}},NextPageToken:{}}}},ListRecordHistory:{input:{type:"structure",members:{AcceptLanguage:{},AccessLevelFilter:{shape:"S5h"},SearchFilter:{type:"structure",members:{Key:{},Value:{}}},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{RecordDetails:{type:"list",member:{shape:"S42"}},NextPageToken:{}}}},ListResourcesForTagOption:{input:{type:"structure",required:["TagOptionId"],members:{TagOptionId:{},ResourceType:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{ResourceDetails:{type:"list",member:{type:"structure",members:{Id:{},ARN:{},Name:{},Description:{},CreatedTime:{type:"timestamp"}}}},PageToken:{}}}},ListTagOptions:{input:{type:"structure",members:{Filters:{type:"structure",members:{Key:{},Value:{},Active:{type:"boolean"}}},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{TagOptionDetails:{shape:"S2p"},PageToken:{}}}},ProvisionProduct:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId","ProvisionedProductName","ProvisionToken"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{},PathId:{},ProvisionedProductName:{},ProvisioningParameters:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},Tags:{shape:"S1a"},NotificationArns:{type:"list",member:{}},ProvisionToken:{idempotencyToken:!0}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"}}}},RejectPortfolioShare:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{}}},output:{type:"structure",members:{}}},ScanProvisionedProducts:{input:{type:"structure",members:{AcceptLanguage:{},AccessLevelFilter:{shape:"S5h"},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{ProvisionedProducts:{type:"list",member:{shape:"S33"}},NextPageToken:{}}}},SearchProducts:{input:{type:"structure",members:{AcceptLanguage:{},Filters:{shape:"S6f"},PageSize:{type:"integer"},SortBy:{},SortOrder:{},PageToken:{}}},output:{type:"structure",members:{ProductViewSummaries:{type:"list",member:{shape:"S1t"}},ProductViewAggregations:{type:"map",key:{},value:{type:"list",member:{type:"structure",members:{Value:{},ApproximateCount:{type:"integer"}}}}},NextPageToken:{}}}},SearchProductsAsAdmin:{input:{type:"structure",members:{AcceptLanguage:{},PortfolioId:{},Filters:{shape:"S6f"},SortBy:{},SortOrder:{},PageToken:{},PageSize:{type:"integer"},ProductSource:{}}},output:{type:"structure",members:{ProductViewDetails:{type:"list",member:{shape:"S1s"}},NextPageToken:{}}}},TerminateProvisionedProduct:{input:{type:"structure",required:["TerminateToken"],members:{ProvisionedProductName:{},ProvisionedProductId:{},TerminateToken:{idempotencyToken:!0},IgnoreErrors:{type:"boolean"},AcceptLanguage:{}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"}}}},UpdateConstraint:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},Description:{}}},output:{type:"structure",members:{ConstraintDetail:{shape:"Sv"},ConstraintParameters:{},Status:{}}}},UpdatePortfolio:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},DisplayName:{},Description:{},ProviderName:{},AddTags:{shape:"S12"},RemoveTags:{shape:"S73"}}},output:{type:"structure",members:{PortfolioDetail:{shape:"S17"},Tags:{shape:"S1a"}}}},UpdateProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},Name:{},Owner:{},Description:{},Distributor:{},SupportDescription:{},SupportEmail:{},SupportUrl:{},AddTags:{shape:"S12"},RemoveTags:{shape:"S73"}}},output:{type:"structure",members:{ProductViewDetail:{shape:"S1s"},Tags:{shape:"S1a"}}}},UpdateProvisionedProduct:{input:{type:"structure",required:["UpdateToken"],members:{AcceptLanguage:{},ProvisionedProductName:{},ProvisionedProductId:{},ProductId:{},ProvisioningArtifactId:{},PathId:{},ProvisioningParameters:{type:"list",member:{type:"structure",members:{Key:{},Value:{},UsePreviousValue:{type:"boolean"}}}},UpdateToken:{idempotencyToken:!0}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"}}}},UpdateProvisioningArtifact:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{},Name:{},Description:{},Active:{type:"boolean"}}},output:{type:"structure",members:{ProvisioningArtifactDetail:{shape:"S1x"},Info:{shape:"S1n"},Status:{}}}},UpdateTagOption:{input:{type:"structure",required:["Id"],members:{Id:{},Value:{},Active:{type:"boolean"}}},output:{type:"structure",members:{TagOptionDetail:{shape:"S25"}}}}},shapes:{Sv:{type:"structure",members:{ConstraintId:{},Type:{},Description:{},Owner:{}}},S12:{type:"list",member:{shape:"S13"}},S13:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},S17:{type:"structure",members:{Id:{},ARN:{},DisplayName:{},Description:{},CreatedTime:{type:"timestamp"},ProviderName:{}}},S1a:{type:"list",member:{shape:"S13"}},S1k:{type:"structure",required:["Info"],members:{Name:{},Description:{},Info:{shape:"S1n"},Type:{}}},S1n:{type:"map",key:{},value:{}},S1s:{type:"structure",members:{ProductViewSummary:{shape:"S1t"},Status:{},ProductARN:{},CreatedTime:{type:"timestamp"}}},S1t:{type:"structure",members:{Id:{},ProductId:{},Name:{},Owner:{},ShortDescription:{},Type:{},Distributor:{},HasDefaultPath:{type:"boolean"},SupportEmail:{},SupportDescription:{},SupportUrl:{}}},S1x:{type:"structure",members:{Id:{},Name:{},Description:{},Type:{},CreatedTime:{type:"timestamp"},Active:{type:"boolean"}}},S25:{type:"structure",members:{Key:{},Value:{},Active:{type:"boolean"},Id:{}}},S2p:{type:"list",member:{shape:"S25"}},S2s:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Description:{},CreatedTime:{type:"timestamp"}}}},S33:{type:"structure",members:{Name:{},Arn:{},Type:{},Id:{},Status:{},StatusMessage:{},CreatedTime:{type:"timestamp"},IdempotencyToken:{},LastRecordId:{}}},S3p:{type:"list",member:{type:"structure",members:{Type:{},Description:{}}}},S42:{type:"structure",members:{RecordId:{},ProvisionedProductName:{},Status:{},CreatedTime:{type:"timestamp"},UpdatedTime:{type:"timestamp"},ProvisionedProductType:{},RecordType:{},ProvisionedProductId:{},ProductId:{},ProvisioningArtifactId:{},PathId:{},RecordErrors:{type:"list",member:{type:"structure",members:{Code:{},Description:{}}}},RecordTags:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}},S4t:{type:"list",member:{shape:"S17"}},S5h:{type:"structure",members:{Key:{},Value:{}}},S6f:{type:"map",key:{},value:{type:"list",member:{}}},S73:{type:"list",member:{}}}}},{}],147:[function(e,t,r){t.exports={pagination:{ListAcceptedPortfolioShares:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListConstraintsForPortfolio:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListLaunchPaths:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListPortfolios:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListPortfoliosForProduct:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListPrincipalsForPortfolio:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListResourcesForTagOption:{input_token:"PageToken",output_token:"PageToken",limit_key:"PageSize"},ListTagOptions:{input_token:"PageToken",output_token:"PageToken",limit_key:"PageSize"},SearchProducts:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},SearchProductsAsAdmin:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"}}}},{}],148:[function(e,t,r){t.exports={version:"2.0",metadata:{uid:"sns-2010-03-31",apiVersion:"2010-03-31",endpointPrefix:"sns",protocol:"query",serviceAbbreviation:"Amazon SNS",serviceFullName:"Amazon Simple Notification Service",signatureVersion:"v4",xmlNamespace:"http://sns.amazonaws.com/doc/2010-03-31/"},operations:{AddPermission:{input:{type:"structure",required:["TopicArn","Label","AWSAccountId","ActionName"],members:{TopicArn:{},Label:{},AWSAccountId:{type:"list",member:{}},ActionName:{type:"list",member:{}}}}},CheckIfPhoneNumberIsOptedOut:{input:{type:"structure",required:["phoneNumber"],members:{phoneNumber:{}}},output:{resultWrapper:"CheckIfPhoneNumberIsOptedOutResult",type:"structure",members:{isOptedOut:{type:"boolean"}}}},ConfirmSubscription:{input:{type:"structure",required:["TopicArn","Token"],members:{TopicArn:{},Token:{},AuthenticateOnUnsubscribe:{}}},output:{resultWrapper:"ConfirmSubscriptionResult",type:"structure",members:{SubscriptionArn:{}}}},CreatePlatformApplication:{input:{type:"structure",required:["Name","Platform","Attributes"],members:{Name:{},Platform:{},Attributes:{shape:"Sj"}}},output:{resultWrapper:"CreatePlatformApplicationResult",type:"structure",members:{PlatformApplicationArn:{}}}},CreatePlatformEndpoint:{input:{type:"structure",required:["PlatformApplicationArn","Token"],members:{PlatformApplicationArn:{},Token:{},CustomUserData:{},Attributes:{shape:"Sj"}}},output:{resultWrapper:"CreatePlatformEndpointResult",type:"structure",members:{EndpointArn:{}}}},CreateTopic:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{resultWrapper:"CreateTopicResult",type:"structure",members:{TopicArn:{}}}},DeleteEndpoint:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}}},DeletePlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}}},DeleteTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}}},GetEndpointAttributes:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},output:{resultWrapper:"GetEndpointAttributesResult",type:"structure",members:{Attributes:{shape:"Sj"}}}},GetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}},output:{resultWrapper:"GetPlatformApplicationAttributesResult",type:"structure",members:{Attributes:{shape:"Sj"}}}},GetSMSAttributes:{input:{type:"structure",members:{attributes:{type:"list",member:{}}}},output:{resultWrapper:"GetSMSAttributesResult",type:"structure",members:{attributes:{shape:"Sj"}}}},GetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}},output:{resultWrapper:"GetSubscriptionAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}}},GetTopicAttributes:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}},output:{resultWrapper:"GetTopicAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}}},ListEndpointsByPlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{},NextToken:{}}},output:{resultWrapper:"ListEndpointsByPlatformApplicationResult",type:"structure",members:{Endpoints:{type:"list",member:{type:"structure",members:{EndpointArn:{},Attributes:{shape:"Sj"}}}},NextToken:{}}}},ListPhoneNumbersOptedOut:{input:{type:"structure",members:{nextToken:{}}},output:{resultWrapper:"ListPhoneNumbersOptedOutResult",type:"structure",members:{phoneNumbers:{type:"list",member:{}},nextToken:{}}}},ListPlatformApplications:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListPlatformApplicationsResult",type:"structure",members:{PlatformApplications:{type:"list",member:{type:"structure",members:{PlatformApplicationArn:{},Attributes:{shape:"Sj"}}}},NextToken:{}}}},ListSubscriptions:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListSubscriptionsResult",type:"structure",members:{Subscriptions:{shape:"S1n"},NextToken:{}}}},ListSubscriptionsByTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{},NextToken:{}}},output:{resultWrapper:"ListSubscriptionsByTopicResult",type:"structure",members:{Subscriptions:{shape:"S1n"},NextToken:{}}}},ListTopics:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListTopicsResult",type:"structure",members:{Topics:{type:"list",member:{type:"structure",members:{TopicArn:{}}}},NextToken:{}}}},OptInPhoneNumber:{input:{type:"structure",required:["phoneNumber"],members:{phoneNumber:{}}},output:{resultWrapper:"OptInPhoneNumberResult",type:"structure",members:{}}},Publish:{input:{type:"structure",required:["Message"],members:{TopicArn:{},TargetArn:{},PhoneNumber:{},Message:{},Subject:{},MessageStructure:{},MessageAttributes:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{DataType:{},StringValue:{},BinaryValue:{type:"blob"}}}}}},output:{resultWrapper:"PublishResult",type:"structure",members:{MessageId:{}}}},RemovePermission:{input:{type:"structure",required:["TopicArn","Label"],members:{TopicArn:{},Label:{}}}},SetEndpointAttributes:{input:{type:"structure",required:["EndpointArn","Attributes"],members:{EndpointArn:{},Attributes:{shape:"Sj"}}}},SetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn","Attributes"],members:{PlatformApplicationArn:{},Attributes:{shape:"Sj"}}}},SetSMSAttributes:{input:{type:"structure",required:["attributes"],members:{attributes:{shape:"Sj"}}},output:{resultWrapper:"SetSMSAttributesResult",type:"structure",members:{}}},SetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn","AttributeName"],members:{SubscriptionArn:{},AttributeName:{},AttributeValue:{}}}},SetTopicAttributes:{input:{type:"structure",required:["TopicArn","AttributeName"],members:{TopicArn:{},AttributeName:{},AttributeValue:{}}}},Subscribe:{input:{type:"structure",required:["TopicArn","Protocol"],members:{TopicArn:{},Protocol:{},Endpoint:{}}},output:{resultWrapper:"SubscribeResult",type:"structure",members:{SubscriptionArn:{}}}},Unsubscribe:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}}}},shapes:{Sj:{type:"map",key:{},value:{}},S1n:{type:"list",member:{type:"structure",members:{SubscriptionArn:{},Owner:{},Protocol:{},Endpoint:{},TopicArn:{}}}}}}},{}],149:[function(e,t,r){t.exports={pagination:{ListEndpointsByPlatformApplication:{input_token:"NextToken",output_token:"NextToken",result_key:"Endpoints"},ListPlatformApplications:{input_token:"NextToken",output_token:"NextToken",result_key:"PlatformApplications"},ListSubscriptions:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListSubscriptionsByTopic:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListTopics:{input_token:"NextToken",output_token:"NextToken",result_key:"Topics"}}}},{}],150:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2012-11-05",endpointPrefix:"sqs",protocol:"query",serviceAbbreviation:"Amazon SQS",serviceFullName:"Amazon Simple Queue Service",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"}}},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:"St"}}},output:{resultWrapper:"GetQueueAttributesResult",type:"structure",members:{Attributes:{shape:"Sh",locationName:"Attribute"}}}},GetQueueUrl:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},QueueOwnerAWSAccountId:{}}},output:{resultWrapper:"GetQueueUrlResult",type:"structure",members:{QueueUrl:{}}}},ListDeadLetterSourceQueues:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListDeadLetterSourceQueuesResult",type:"structure",required:["queueUrls"],members:{queueUrls:{shape:"Sz"}}}},ListQueueTags:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListQueueTagsResult",type:"structure",members:{Tags:{shape:"S12",locationName:"Tag"}}}},ListQueues:{input:{type:"structure",members:{QueueNamePrefix:{}}},output:{resultWrapper:"ListQueuesResult",type:"structure",members:{QueueUrls:{shape:"Sz"}}}},PurgeQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}}},ReceiveMessage:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"St"},MessageAttributeNames:{type:"list",member:{locationName:"MessageAttributeName"},flattened:!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"},MessageDeduplicationId:{},MessageGroupId:{}}},output:{resultWrapper:"SendMessageResult",type:"structure",members:{MD5OfMessageBody:{},MD5OfMessageAttributes:{},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"},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:{},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:"S12"}}}},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"},St:{type:"list",member:{locationName:"AttributeName"},flattened:!0},Sz:{type:"list",member:{locationName:"QueueUrl"},flattened:!0},S12:{type:"map",key:{locationName:"Key"},value:{locationName:"Value"},flattened:!0,locationName:"Tag"},S1g:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{StringValue:{},BinaryValue:{type:"blob"},StringListValues:{flattened:!0,locationName:"StringListValue",type:"list",member:{locationName:"StringListValue"}},BinaryListValues:{flattened:!0,locationName:"BinaryListValue",type:"list",member:{locationName:"BinaryListValue",type:"blob"}},DataType:{}}},flattened:!0}}}},{}],151:[function(e,t,r){t.exports={pagination:{ListQueues:{result_key:"QueueUrls"}}}},{}],152:[function(e,t,r){t.exports={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:{}}},CreateActivation:{input:{type:"structure",required:["IamRole"],members:{Description:{},DefaultInstanceName:{},IamRole:{},RegistrationLimit:{type:"integer"},ExpirationDate:{type:"timestamp"}}},output:{type:"structure",members:{ActivationId:{},ActivationCode:{}}}},CreateAssociation:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{},InstanceId:{},Parameters:{shape:"Sq"},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},AssociationName:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},CreateAssociationBatch:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{shape:"S1l"}}}},output:{type:"structure",members:{Successful:{type:"list",member:{shape:"S17"}},Failed:{type:"list",member:{type:"structure",members:{Entry:{shape:"S1l"},Message:{},Fault:{}}}}}}},CreateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Name:{},DocumentType:{},DocumentFormat:{},TargetType:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"S1y"}}}},CreateMaintenanceWindow:{input:{type:"structure",required:["Name","Schedule","Duration","Cutoff","AllowUnassociatedTargets"],members:{Name:{}, -Description:{shape:"S2h"},Schedule:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{WindowId:{}}}},CreatePatchBaseline:{input:{type:"structure",required:["Name"],members:{OperatingSystem:{},Name:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},Description:{},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{BaselineId:{}}}},CreateResourceDataSync:{input:{type:"structure",required:["SyncName","S3Destination"],members:{SyncName:{},S3Destination:{shape:"S3a"}}},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:{}}},output:{type:"structure",members:{}}},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:"S3t"}}},output:{type:"structure",members:{DeletedParameters:{shape:"S3t"},InvalidParameters:{shape:"S3t"}}}},DeletePatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{}}}},DeleteResourceDataSync:{input:{type:"structure",required:["SyncName"],members:{SyncName:{}}},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"}}}},NextToken:{}}}},DescribeAssociation:{input:{type:"structure",members:{Name:{},InstanceId:{},AssociationId:{},AssociationVersion:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},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:"S52"},Mode:{},ParentAutomationExecutionId:{},CurrentStepName:{},CurrentAction:{},FailureMessage:{},TargetParameterName:{},Targets:{shape:"Su"},ResolvedTargets:{shape:"S57"},MaxConcurrency:{},MaxErrors:{},Target:{}}}},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:"S5i"},NextToken:{}}}},DescribeAvailablePatches:{input:{type:"structure",members:{Filters:{shape:"S5q"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Patches:{type:"list",member:{shape:"S5y"}},NextToken:{}}}},DescribeDocument:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{}}},output:{type:"structure",members:{Document:{shape:"S1y"}}}},DescribeDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{}}},output:{type:"structure",members:{AccountIds:{shape:"S6f"}}}},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:"S5y"},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:"S75"}}}},Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{shape:"S75"}}}},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:"S7p"}},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:"S7p"}},NextToken:{}}}},DescribeInstancePatches:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},Filters:{shape:"S5q"},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:{}}}},DescribeMaintenanceWindowExecutionTaskInvocations:{input:{type:"structure",required:["WindowExecutionId","TaskId"],members:{WindowExecutionId:{},TaskId:{},Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowExecutionTaskInvocationIdentities:{type:"list",member:{type:"structure",members:{WindowExecutionId:{},TaskExecutionId:{},InvocationId:{},ExecutionId:{},TaskType:{},Parameters:{shape:"S8s"},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},OwnerInformation:{shape:"S7r"},WindowTargetId:{}}}},NextToken:{}}}},DescribeMaintenanceWindowExecutionTasks:{input:{type:"structure",required:["WindowExecutionId"],members:{WindowExecutionId:{},Filters:{shape:"S8g"},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:"S8g"},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:{}}}},DescribeMaintenanceWindowTargets:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Targets:{type:"list",member:{type:"structure",members:{WindowId:{},WindowTargetId:{},ResourceType:{},Targets:{shape:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"}}}},NextToken:{}}}},DescribeMaintenanceWindowTasks:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tasks:{type:"list",member:{type:"structure",members:{WindowId:{},WindowTaskId:{},TaskArn:{},Type:{},Targets:{shape:"Su"},TaskParameters:{shape:"S9e"},Priority:{type:"integer"},LoggingInfo:{shape:"S9k"},ServiceRoleArn:{},MaxConcurrency:{},MaxErrors:{},Name:{},Description:{shape:"S2h"}}}},NextToken:{}}}},DescribeMaintenanceWindows:{input:{type:"structure",members:{Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowIdentities:{type:"list",member:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S2h"},Enabled:{type:"boolean"},Duration:{type:"integer"},Cutoff:{type:"integer"}}}},NextToken:{}}}},DescribeParameters:{input:{type:"structure",members:{Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}},ParameterFilters:{shape:"S9x"},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"}}}},NextToken:{}}}},DescribePatchBaselines:{input:{type:"structure",members:{Filters:{shape:"S5q"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{BaselineIdentities:{type:"list",member:{shape:"Sae"}},NextToken:{}}}},DescribePatchGroupState:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{}}},output:{type:"structure",members:{Instances:{type:"integer"},InstancesWithInstalledPatches:{type:"integer"},InstancesWithInstalledOtherPatches:{type:"integer"},InstancesWithMissingPatches:{type:"integer"},InstancesWithFailedPatches:{type:"integer"},InstancesWithNotApplicablePatches:{type:"integer"}}}},DescribePatchGroups:{input:{type:"structure",members:{MaxResults:{type:"integer"},Filters:{shape:"S5q"},NextToken:{}}},output:{type:"structure",members:{Mappings:{type:"list",member:{type:"structure",members:{PatchGroup:{},BaselineIdentity:{shape:"Sae"}}}},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:"S5i"},StepExecutionsTruncated:{type:"boolean"},Parameters:{shape:"S52"},Outputs:{shape:"S52"},FailureMessage:{},Mode:{},ParentAutomationExecutionId:{},ExecutedBy:{},CurrentStepName:{},CurrentAction:{},TargetParameterName:{},Targets:{shape:"Su"},ResolvedTargets:{shape:"S57"},MaxConcurrency:{},MaxErrors:{},Target:{}}}}}},GetCommandInvocation:{input:{type:"structure",required:["CommandId","InstanceId"],members:{CommandId:{},InstanceId:{},PluginName:{}}},output:{type:"structure",members:{CommandId:{},InstanceId:{},Comment:{},DocumentName:{},PluginName:{},ResponseCode:{type:"integer"},ExecutionStartDateTime:{},ExecutionElapsedTime:{},ExecutionEndDateTime:{},Status:{},StatusDetails:{},StandardOutputContent:{},StandardOutputUrl:{},StandardErrorContent:{},StandardErrorUrl:{}}}},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:{},DocumentVersion:{},DocumentFormat:{}}},output:{type:"structure",members:{Name:{},DocumentVersion:{},Content:{},DocumentType:{},DocumentFormat:{}}}},GetInventory:{input:{type:"structure",members:{Filters:{shape:"Sb8"},Aggregators:{shape:"Sbe"},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:"Sbu"}}}}}}},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:"S2h"},Schedule:{},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:"S9e"},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:"S8s"},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},OwnerInformation:{shape:"S7r"},WindowTargetId:{}}}},GetMaintenanceWindowTask:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskType:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"}}}},GetParameter:{input:{type:"structure",required:["Name"],members:{Name:{},WithDecryption:{type:"boolean"}}},output:{type:"structure",members:{Parameter:{shape:"Sd5"}}}},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"}}}},NextToken:{}}}},GetParameters:{input:{type:"structure",required:["Names"],members:{Names:{shape:"S3t"},WithDecryption:{type:"boolean"}}},output:{type:"structure",members:{Parameters:{shape:"Sdd"},InvalidParameters:{shape:"S3t"}}}},GetParametersByPath:{input:{type:"structure",required:["Path"],members:{Path:{},Recursive:{type:"boolean"},ParameterFilters:{shape:"S9x"},WithDecryption:{type:"boolean"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Parameters:{shape:"Sdd"},NextToken:{}}}},GetPatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{},Name:{},OperatingSystem:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},PatchGroups:{type:"list",member:{}},CreatedDate:{type:"timestamp"},ModifiedDate:{type:"timestamp"},Description:{}}}},GetPatchBaselineForPatchGroup:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{},OperatingSystem:{}}},output:{type:"structure",members:{BaselineId:{},PatchGroup:{},OperatingSystem:{}}}},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:"Sq"},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},AssociationName:{}}}},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:"Su"},LastExecutionDate:{type:"timestamp"},Overview:{shape:"S1e"},ScheduleExpression:{},AssociationName:{}}}},NextToken:{}}}},ListCommandInvocations:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"Se0"},Details:{type:"boolean"}}},output:{type:"structure",members:{CommandInvocations:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},InstanceName:{},Comment:{},DocumentName:{},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:"Scp"}}}},NextToken:{}}}},ListCommands:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"Se0"}}},output:{type:"structure",members:{Commands:{type:"list",member:{shape:"Seg"}},NextToken:{}}}},ListComplianceItems:{input:{type:"structure",members:{Filters:{shape:"Sem"},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:"Sf4"},Details:{shape:"Sf7"}}}},NextToken:{}}}},ListComplianceSummaries:{input:{type:"structure",members:{Filters:{shape:"Sem"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ComplianceSummaryItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},CompliantSummary:{shape:"Sfc"},NonCompliantSummary:{shape:"Sff"}}}},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:{},CreatedDate:{type:"timestamp"},IsDefaultVersion:{type:"boolean"},DocumentFormat:{}}}},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:{},PlatformTypes:{shape:"S2c"},DocumentVersion:{},DocumentType:{},SchemaVersion:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"}}}},NextToken:{}}}},ListInventoryEntries:{input:{type:"structure",required:["InstanceId","TypeName"],members:{InstanceId:{},TypeName:{},Filters:{shape:"Sb8"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{TypeName:{},InstanceId:{},SchemaVersion:{},CaptureTime:{},Entries:{shape:"Sbu"},NextToken:{}}}},ListResourceComplianceSummaries:{input:{type:"structure",members:{Filters:{shape:"Sem"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ResourceComplianceSummaryItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},ResourceType:{},ResourceId:{},Status:{},OverallSeverity:{},ExecutionSummary:{shape:"Sf4"},CompliantSummary:{shape:"Sfc"},NonCompliantSummary:{shape:"Sff"}}}},NextToken:{}}}},ListResourceDataSync:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ResourceDataSyncItems:{type:"list",member:{type:"structure",members:{SyncName:{},S3Destination:{shape:"S3a"},LastSyncTime:{type:"timestamp"},LastSuccessfulSyncTime:{type:"timestamp"},LastStatus:{},SyncCreatedTime:{type:"timestamp"}}}},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:"S6f"},AccountIdsToRemove:{shape:"S6f"}}},output:{type:"structure",members:{}}},PutComplianceItems:{input:{type:"structure",required:["ResourceId","ResourceType","ComplianceType","ExecutionSummary","Items"],members:{ResourceId:{},ResourceType:{},ComplianceType:{},ExecutionSummary:{shape:"Sf4"},Items:{type:"list",member:{type:"structure",required:["Severity","Status"],members:{Id:{},Title:{},Severity:{},Status:{},Details:{shape:"Sf7"}}}},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:"Sbu"},Context:{type:"map",key:{},value:{}}}}}}},output:{type:"structure",members:{}}},PutParameter:{input:{type:"structure",required:["Name","Value","Type"],members:{Name:{},Description:{},Value:{},Type:{},KeyId:{},Overwrite:{type:"boolean"},AllowedPattern:{}}},output:{type:"structure",members:{Version:{type:"long"}}}},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:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{WindowTargetId:{}}}},RegisterTaskWithMaintenanceWindow:{input:{type:"structure",required:["WindowId","Targets","TaskArn","ServiceRoleArn","TaskType","MaxConcurrency","MaxErrors"],members:{WindowId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskType:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"},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:{}}},SendAutomationSignal:{input:{type:"structure",required:["AutomationExecutionId","SignalType"],members:{AutomationExecutionId:{},SignalType:{},Payload:{shape:"S52"}}},output:{type:"structure",members:{}}},SendCommand:{input:{type:"structure",required:["DocumentName"],members:{InstanceIds:{shape:"Sb"},Targets:{shape:"Su"},DocumentName:{},DocumentHash:{},DocumentHashType:{},TimeoutSeconds:{type:"integer"},Comment:{},Parameters:{shape:"Sq"},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{},MaxConcurrency:{},MaxErrors:{},ServiceRoleArn:{},NotificationConfig:{shape:"Scp"}}},output:{type:"structure",members:{Command:{shape:"Seg"}}}},StartAutomationExecution:{input:{type:"structure",required:["DocumentName"],members:{DocumentName:{},DocumentVersion:{},Parameters:{shape:"S52"},ClientToken:{},Mode:{},TargetParameterName:{},Targets:{shape:"Su"},MaxConcurrency:{},MaxErrors:{}}},output:{type:"structure",members:{AutomationExecutionId:{}}}},StopAutomationExecution:{input:{type:"structure",required:["AutomationExecutionId"],members:{AutomationExecutionId:{},Type:{}}},output:{type:"structure",members:{}}},UpdateAssociation:{input:{type:"structure",required:["AssociationId"],members:{AssociationId:{},Parameters:{shape:"Sq"},DocumentVersion:{},ScheduleExpression:{},OutputLocation:{shape:"S10"},Name:{},Targets:{shape:"Su"},AssociationName:{},AssociationVersion:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},UpdateAssociationStatus:{input:{type:"structure",required:["Name","InstanceId","AssociationStatus"],members:{Name:{},InstanceId:{},AssociationStatus:{shape:"S1a"}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},UpdateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Name:{},DocumentVersion:{},DocumentFormat:{},TargetType:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"S1y"}}}},UpdateDocumentDefaultVersion:{input:{type:"structure",required:["Name","DocumentVersion"],members:{Name:{},DocumentVersion:{}}},output:{type:"structure",members:{Description:{type:"structure",members:{Name:{},DefaultVersion:{}}}}}},UpdateMaintenanceWindow:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Name:{},Description:{shape:"S2h"},Schedule:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S2h"},Schedule:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"}}}},UpdateMaintenanceWindowTarget:{input:{type:"structure",required:["WindowId","WindowTargetId"],members:{WindowId:{},WindowTargetId:{},Targets:{shape:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTargetId:{},Targets:{shape:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"}}}},UpdateMaintenanceWindowTask:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"}}}},UpdateManagedInstanceRole:{input:{type:"structure",required:["InstanceId","IamRole"],members:{InstanceId:{},IamRole:{}}},output:{type:"structure",members:{}}},UpdatePatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{},Name:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},Description:{}}},output:{type:"structure",members:{BaselineId:{},Name:{},OperatingSystem:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},CreatedDate:{type:"timestamp"},ModifiedDate:{type:"timestamp"},Description:{}}}}},shapes:{S4:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},Sb:{type:"list",member:{}},Sq:{type:"map",key:{},value:{type:"list",member:{}}},Su:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S10:{type:"structure",members:{S3Location:{type:"structure",members:{OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}}},S17:{type:"structure",members:{Name:{},InstanceId:{},AssociationVersion:{},Date:{type:"timestamp"},LastUpdateAssociationDate:{type:"timestamp"},Status:{shape:"S1a"},Overview:{shape:"S1e"},DocumentVersion:{},Parameters:{shape:"Sq"}, -AssociationId:{},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},LastExecutionDate:{type:"timestamp"},LastSuccessfulExecutionDate:{type:"timestamp"},AssociationName:{}}},S1a:{type:"structure",required:["Date","Name","Message"],members:{Date:{type:"timestamp"},Name:{},Message:{},AdditionalInfo:{}}},S1e:{type:"structure",members:{Status:{},DetailedStatus:{},AssociationStatusAggregatedCount:{type:"map",key:{},value:{type:"integer"}}}},S1l:{type:"structure",required:["Name"],members:{Name:{},InstanceId:{},Parameters:{shape:"Sq"},DocumentVersion:{},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},AssociationName:{}}},S1y:{type:"structure",members:{Sha1:{},Hash:{},HashType:{},Name:{},Owner:{},CreatedDate:{type:"timestamp"},Status:{},DocumentVersion:{},Description:{},Parameters:{type:"list",member:{type:"structure",members:{Name:{},Type:{},Description:{},DefaultValue:{}}}},PlatformTypes:{shape:"S2c"},DocumentType:{},SchemaVersion:{},LatestVersion:{},DefaultVersion:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"}}},S2c:{type:"list",member:{}},S2h:{type:"string",sensitive:!0},S2s:{type:"structure",required:["PatchFilters"],members:{PatchFilters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}}}},S2y:{type:"structure",required:["PatchRules"],members:{PatchRules:{type:"list",member:{type:"structure",required:["PatchFilterGroup","ApproveAfterDays"],members:{PatchFilterGroup:{shape:"S2s"},ComplianceLevel:{},ApproveAfterDays:{type:"integer"}}}}}},S33:{type:"list",member:{}},S3a:{type:"structure",required:["BucketName","SyncFormat","Region"],members:{BucketName:{},Prefix:{},SyncFormat:{},Region:{},AWSKMSKeyARN:{}}},S3t:{type:"list",member:{}},S52:{type:"map",key:{},value:{type:"list",member:{}}},S57:{type:"structure",members:{ParameterValues:{type:"list",member:{}},Truncated:{type:"boolean"}}},S5i:{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:"S52"},Response:{},FailureMessage:{},FailureDetails:{type:"structure",members:{FailureStage:{},FailureType:{},Details:{shape:"S52"}}},StepExecutionId:{},OverriddenParameters:{shape:"S52"}}}},S5q:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S5y:{type:"structure",members:{Id:{},ReleaseDate:{type:"timestamp"},Title:{},Description:{},ContentUrl:{},Vendor:{},ProductFamily:{},Product:{},Classification:{},MsrcSeverity:{},KbNumber:{},MsrcNumber:{},Language:{}}},S6f:{type:"list",member:{}},S75:{type:"list",member:{}},S7p:{type:"structure",required:["InstanceId","PatchGroup","BaselineId","OperationStartTime","OperationEndTime","Operation"],members:{InstanceId:{},PatchGroup:{},BaselineId:{},SnapshotId:{},OwnerInformation:{shape:"S7r"},InstalledCount:{type:"integer"},InstalledOtherCount:{type:"integer"},MissingCount:{type:"integer"},FailedCount:{type:"integer"},NotApplicableCount:{type:"integer"},OperationStartTime:{type:"timestamp"},OperationEndTime:{type:"timestamp"},Operation:{}}},S7r:{type:"string",sensitive:!0},S8g:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S8s:{type:"string",sensitive:!0},S9e:{type:"map",key:{},value:{type:"structure",members:{Values:{type:"list",member:{type:"string",sensitive:!0},sensitive:!0}},sensitive:!0},sensitive:!0},S9k:{type:"structure",required:["S3BucketName","S3Region"],members:{S3BucketName:{},S3KeyPrefix:{},S3Region:{}}},S9x:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Option:{},Values:{type:"list",member:{}}}}},Sae:{type:"structure",members:{BaselineId:{},BaselineName:{},OperatingSystem:{},BaselineDescription:{},DefaultBaseline:{type:"boolean"}}},Sb8:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sbe:{type:"list",member:{type:"structure",members:{Expression:{},Aggregators:{shape:"Sbe"}}}},Sbu:{type:"list",member:{type:"map",key:{},value:{}}},Scn:{type:"structure",members:{RunCommand:{type:"structure",members:{Comment:{},DocumentHash:{},DocumentHashType:{},NotificationConfig:{shape:"Scp"},OutputS3BucketName:{},OutputS3KeyPrefix:{},Parameters:{shape:"Sq"},ServiceRoleArn:{},TimeoutSeconds:{type:"integer"}}},Automation:{type:"structure",members:{DocumentVersion:{},Parameters:{shape:"S52"}}},StepFunctions:{type:"structure",members:{Input:{type:"string",sensitive:!0},Name:{}}},Lambda:{type:"structure",members:{ClientContext:{},Qualifier:{},Payload:{type:"blob",sensitive:!0}}}}},Scp:{type:"structure",members:{NotificationArn:{},NotificationEvents:{type:"list",member:{}},NotificationType:{}}},Sd5:{type:"structure",members:{Name:{},Type:{},Value:{},Version:{type:"long"}}},Sdd:{type:"list",member:{shape:"Sd5"}},Se0:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},Seg:{type:"structure",members:{CommandId:{},DocumentName:{},Comment:{},ExpiresAfter:{type:"timestamp"},Parameters:{shape:"Sq"},InstanceIds:{shape:"Sb"},Targets:{shape:"Su"},RequestedDateTime:{type:"timestamp"},Status:{},StatusDetails:{},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{},MaxConcurrency:{},MaxErrors:{},TargetCount:{type:"integer"},CompletedCount:{type:"integer"},ErrorCount:{type:"integer"},ServiceRole:{},NotificationConfig:{shape:"Scp"}}},Sem:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sf4:{type:"structure",required:["ExecutionTime"],members:{ExecutionTime:{type:"timestamp"},ExecutionId:{},ExecutionType:{}}},Sf7:{type:"map",key:{},value:{}},Sfc:{type:"structure",members:{CompliantCount:{type:"integer"},SeveritySummary:{shape:"Sfe"}}},Sfe:{type:"structure",members:{CriticalCount:{type:"integer"},HighCount:{type:"integer"},MediumCount:{type:"integer"},LowCount:{type:"integer"},InformationalCount:{type:"integer"},UnspecifiedCount:{type:"integer"}}},Sff:{type:"structure",members:{NonCompliantCount:{type:"integer"},SeveritySummary:{shape:"Sfe"}}}}}},{}],153:[function(e,t,r){t.exports={pagination:{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"}}}},{}],154:[function(e,t,r){t.exports={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:{}}},output:{type:"structure",members:{GatewayARN:{}}}},AddCache:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sh"}}},output:{type:"structure",members:{ResourceARN:{}}}},AddUploadBuffer:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddWorkingStorage:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}}},CancelArchival:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},CancelRetrieval:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},CreateCachediSCSIVolume:{input:{type:"structure",required:["GatewayARN","VolumeSizeInBytes","TargetName","NetworkInterfaceId","ClientToken"],members:{GatewayARN:{},VolumeSizeInBytes:{type:"long"},SnapshotId:{},TargetName:{},SourceVolumeARN:{},NetworkInterfaceId:{},ClientToken:{}}},output:{type:"structure",members:{VolumeARN:{},TargetARN:{}}}},CreateNFSFileShare:{input:{type:"structure",required:["ClientToken","GatewayARN","Role","LocationARN"],members:{ClientToken:{},NFSFileShareDefaults:{shape:"S15"},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Role:{},LocationARN:{},DefaultStorageClass:{},ClientList:{shape:"S1d"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{}}}},CreateSnapshot:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{VolumeARN:{},SnapshotId:{}}}},CreateSnapshotFromVolumeRecoveryPoint:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{SnapshotId:{},VolumeARN:{},VolumeRecoveryPointTime:{}}}},CreateStorediSCSIVolume:{input:{type:"structure",required:["GatewayARN","DiskId","PreserveExistingData","TargetName","NetworkInterfaceId"],members:{GatewayARN:{},DiskId:{},SnapshotId:{},PreserveExistingData:{type:"boolean"},TargetName:{},NetworkInterfaceId:{}}},output:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},TargetARN:{}}}},CreateTapeWithBarcode:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","TapeBarcode"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},TapeBarcode:{}}},output:{type:"structure",members:{TapeARN:{}}}},CreateTapes:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","ClientToken","NumTapesToCreate","TapeBarcodePrefix"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},ClientToken:{},NumTapesToCreate:{type:"integer"},TapeBarcodePrefix:{}}},output:{type:"structure",members:{TapeARNs:{shape:"S1z"}}}},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:{}}}},DescribeBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}}},DescribeCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},CacheAllocatedInBytes:{type:"long"},CacheUsedPercentage:{type:"double"},CacheDirtyPercentage:{type:"double"},CacheHitPercentage:{type:"double"},CacheMissPercentage:{type:"double"}}}},DescribeCachediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2q"}}},output:{type:"structure",members:{CachediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},SourceSnapshotId:{},VolumeiSCSIAttributes:{shape:"S2y"},CreatedDate:{type:"timestamp"},VolumeUsedInBytes:{type:"long"}}}}}}},DescribeChapCredentials:{input:{type:"structure",required:["TargetARN"],members:{TargetARN:{}}},output:{type:"structure",members:{ChapCredentials:{type:"list",member:{type:"structure",members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}}}}}},DescribeGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayId:{},GatewayName:{},GatewayTimezone:{},GatewayState:{},GatewayNetworkInterfaces:{type:"list",member:{type:"structure",members:{Ipv4Address:{},MacAddress:{},Ipv6Address:{}}}},GatewayType:{},NextUpdateAvailabilityDate:{},LastSoftwareUpdate:{}}}},DescribeMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"},Timezone:{}}}},DescribeNFSFileShares:{input:{type:"structure",required:["FileShareARNList"],members:{FileShareARNList:{type:"list",member:{}}}},output:{type:"structure",members:{NFSFileShareInfoList:{type:"list",member:{type:"structure",members:{NFSFileShareDefaults:{shape:"S15"},FileShareARN:{},FileShareId:{},FileShareStatus:{},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Path:{},Role:{},LocationARN:{},DefaultStorageClass:{},ClientList:{shape:"S1d"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"}}}}}}},DescribeSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{},Timezone:{}}}},DescribeStorediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2q"}}},output:{type:"structure",members:{StorediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},VolumeDiskId:{},SourceSnapshotId:{},PreservedExistingData:{type:"boolean"},VolumeiSCSIAttributes:{shape:"S2y"},CreatedDate:{type:"timestamp"},VolumeUsedInBytes:{type:"long"}}}}}}},DescribeTapeArchives:{input:{type:"structure",members:{TapeARNs:{shape:"S1z"},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"}}}},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:"S1z"},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"}}}},Marker:{}}}},DescribeUploadBuffer:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},UploadBufferUsedInBytes:{type:"long"},UploadBufferAllocatedInBytes:{type:"long"}}}},DescribeVTLDevices:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},VTLDeviceARNs:{type:"list",member:{}},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},VTLDevices:{type:"list",member:{type:"structure",members:{VTLDeviceARN:{},VTLDeviceType:{},VTLDeviceVendor:{},VTLDeviceProductIdentifier:{},DeviceiSCSIAttributes:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},Marker:{}}}},DescribeWorkingStorage:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},WorkingStorageUsedInBytes:{type:"long"},WorkingStorageAllocatedInBytes:{type:"long"}}}},DisableGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},ListFileShares:{input:{type:"structure",members:{GatewayARN:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Marker:{},NextMarker:{},FileShareInfoList:{type:"list",member:{type:"structure",members:{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:{}}}},Marker:{}}}},ListLocalDisks:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},Disks:{type:"list",member:{type:"structure",members:{DiskId:{},DiskPath:{},DiskNode:{},DiskStatus:{},DiskSizeInBytes:{type:"long"},DiskAllocationType:{},DiskAllocationResource:{}}}}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ResourceARN:{},Marker:{},Tags:{shape:"Sh"}}}},ListTapes:{input:{type:"structure",members:{TapeARNs:{shape:"S1z"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},GatewayARN:{}}}},Marker:{}}}},ListVolumeInitiators:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{Initiators:{type:"list",member:{}}}}},ListVolumeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},VolumeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},VolumeUsageInBytes:{type:"long"},VolumeRecoveryPointTime:{}}}}}}},ListVolumes:{input:{type:"structure",members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},Marker:{},VolumeInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},GatewayARN:{},GatewayId:{},VolumeType:{},VolumeSizeInBytes:{type:"long"}}}}}}},NotifyWhenUploaded:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{}}},output:{type:"structure",members:{FileShareARN:{},NotificationId:{}}}},RefreshCache:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{}}},output:{type:"structure",members:{FileShareARN:{}}}},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:{}}}},ShutdownGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},StartGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateChapCredentials:{input:{type:"structure",required:["TargetARN","SecretToAuthenticateInitiator","InitiatorName"],members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}}},UpdateGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},GatewayName:{},GatewayTimezone:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayName:{}}}},UpdateGatewaySoftwareNow:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN","HourOfDay","MinuteOfHour","DayOfWeek"],members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateNFSFileShare:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},NFSFileShareDefaults:{shape:"S15"},DefaultStorageClass:{},ClientList:{shape:"S1d"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{}}}},UpdateSnapshotSchedule:{input:{type:"structure",required:["VolumeARN","StartAt","RecurrenceInHours"],members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{}}},output:{type:"structure",members:{VolumeARN:{}}}},UpdateVTLDeviceType:{input:{type:"structure",required:["VTLDeviceARN","DeviceType"],members:{VTLDeviceARN:{},DeviceType:{}}},output:{type:"structure",members:{VTLDeviceARN:{}}}}},shapes:{Sc:{type:"list",member:{}},Sh:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S15:{type:"structure",members:{FileMode:{},DirectoryMode:{},GroupId:{type:"long"},OwnerId:{type:"long"}}},S1d:{type:"list",member:{}},S1z:{type:"list",member:{}},S2q:{type:"list",member:{}},S2y:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},LunNumber:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},{}],155:[function(e,t,r){t.exports={pagination:{DescribeCachediSCSIVolumes:{result_key:"CachediSCSIVolumes"},DescribeStorediSCSIVolumes:{result_key:"StorediSCSIVolumes"},DescribeTapeArchives:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeArchives"},DescribeTapeRecoveryPoints:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeRecoveryPointInfos"},DescribeTapes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Tapes"},DescribeVTLDevices:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VTLDevices"},ListGateways:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Gateways"},ListLocalDisks:{result_key:"Disks"},ListVolumeRecoveryPoints:{result_key:"VolumeRecoveryPointInfos"},ListVolumes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VolumeInfos"}}}},{}],156:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2012-08-10",endpointPrefix:"streams.dynamodb",jsonVersion:"1.0",protocol:"json",serviceFullName:"Amazon DynamoDB Streams",signatureVersion:"v4",signingName:"dynamodb",targetPrefix:"DynamoDBStreams_20120810",uid:"streams-dynamodb-2012-08-10"},operations:{DescribeStream:{input:{type:"structure",required:["StreamArn"],members:{StreamArn:{},Limit:{type:"integer"},ExclusiveStartShardId:{}}},output:{type:"structure",members:{StreamDescription:{type:"structure",members:{StreamArn:{},StreamLabel:{},StreamStatus:{},StreamViewType:{},CreationRequestDateTime:{type:"timestamp"},TableName:{},KeySchema:{type:"list",member:{type:"structure",required:["AttributeName","KeyType"],members:{AttributeName:{},KeyType:{}}}},Shards:{type:"list",member:{type:"structure",members:{ShardId:{},SequenceNumberRange:{type:"structure",members:{StartingSequenceNumber:{},EndingSequenceNumber:{}}},ParentShardId:{}}}},LastEvaluatedShardId:{}}}}}},GetRecords:{input:{type:"structure",required:["ShardIterator"],members:{ShardIterator:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Records:{type:"list",member:{type:"structure",members:{eventID:{},eventName:{},eventVersion:{},eventSource:{},awsRegion:{},dynamodb:{type:"structure",members:{ApproximateCreationDateTime:{type:"timestamp"},Keys:{shape:"Sr"},NewImage:{shape:"Sr"},OldImage:{shape:"Sr"},SequenceNumber:{},SizeBytes:{type:"long"},StreamViewType:{}}},userIdentity:{type:"structure",members:{PrincipalId:{},Type:{}}}}}},NextShardIterator:{}}}},GetShardIterator:{input:{type:"structure",required:["StreamArn","ShardId","ShardIteratorType"],members:{StreamArn:{},ShardId:{},ShardIteratorType:{},SequenceNumber:{}}},output:{type:"structure",members:{ShardIterator:{}}}},ListStreams:{input:{type:"structure",members:{TableName:{},Limit:{type:"integer"},ExclusiveStartStreamArn:{}}},output:{type:"structure",members:{Streams:{type:"list",member:{type:"structure",members:{StreamArn:{},TableName:{},StreamLabel:{}}}},LastEvaluatedStreamArn:{}}}}},shapes:{Sr:{type:"map",key:{},value:{shape:"St"}},St:{type:"structure",members:{S:{},N:{},B:{type:"blob"},SS:{type:"list",member:{}},NS:{type:"list",member:{}},BS:{type:"list",member:{type:"blob"}},M:{type:"map",key:{},value:{shape:"St"}},L:{type:"list",member:{shape:"St"}},NULL:{type:"boolean"},BOOL:{type:"boolean"}}}}}},{}],157:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],158:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2011-06-15",endpointPrefix:"sts",globalEndpoint:"sts.amazonaws.com",protocol:"query",serviceAbbreviation:"AWS STS",serviceFullName:"AWS Security Token Service",signatureVersion:"v4",uid:"sts-2011-06-15",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/"},operations:{AssumeRole:{input:{type:"structure",required:["RoleArn","RoleSessionName"],members:{RoleArn:{},RoleSessionName:{},Policy:{},DurationSeconds:{type:"integer"},ExternalId:{},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"AssumeRoleResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"}}}},AssumeRoleWithSAML:{input:{type:"structure",required:["RoleArn","PrincipalArn","SAMLAssertion"],members:{RoleArn:{},PrincipalArn:{},SAMLAssertion:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithSAMLResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Subject:{},SubjectType:{},Issuer:{},Audience:{},NameQualifier:{}}}},AssumeRoleWithWebIdentity:{input:{type:"structure",required:["RoleArn","RoleSessionName","WebIdentityToken"],members:{RoleArn:{},RoleSessionName:{},WebIdentityToken:{},ProviderId:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithWebIdentityResult",type:"structure",members:{Credentials:{shape:"Sa"},SubjectFromWebIdentityToken:{},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Provider:{},Audience:{}}}},DecodeAuthorizationMessage:{input:{type:"structure",required:["EncodedMessage"],members:{EncodedMessage:{}}},output:{resultWrapper:"DecodeAuthorizationMessageResult",type:"structure",members:{DecodedMessage:{}}}},GetCallerIdentity:{input:{type:"structure",members:{}},output:{resultWrapper:"GetCallerIdentityResult",type:"structure",members:{UserId:{},Account:{},Arn:{}}}},GetFederationToken:{input:{type:"structure",required:["Name"],members:{Name:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"GetFederationTokenResult",type:"structure",members:{Credentials:{shape:"Sa"},FederatedUser:{type:"structure",required:["FederatedUserId","Arn"],members:{FederatedUserId:{},Arn:{}}},PackedPolicySize:{type:"integer"}}}},GetSessionToken:{input:{type:"structure",members:{DurationSeconds:{type:"integer"},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"GetSessionTokenResult",type:"structure",members:{Credentials:{shape:"Sa"}}}}},shapes:{Sa:{type:"structure",required:["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{},Expiration:{type:"timestamp"}}},Sf:{type:"structure",required:["AssumedRoleId","Arn"],members:{AssumedRoleId:{},Arn:{}}}}}},{}],159:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],160:[function(e,t,r){t.exports={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:{}}},output:{type:"structure",members:{Rule:{shape:"Sy"},ChangeToken:{}}}},CreateRegexMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{RegexMatchSet:{shape:"S15"},ChangeToken:{}}}},CreateRegexPatternSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{RegexPatternSet:{shape:"S1a"},ChangeToken:{}}}},CreateRule:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{}}},output:{type:"structure",members:{Rule:{shape:"S1f"},ChangeToken:{}}}},CreateRuleGroup:{input:{type:"structure", -required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{}}},output:{type:"structure",members:{RuleGroup:{shape:"S1i"},ChangeToken:{}}}},CreateSizeConstraintSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"S1l"},ChangeToken:{}}}},CreateSqlInjectionMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S1s"},ChangeToken:{}}}},CreateWebACL:{input:{type:"structure",required:["Name","MetricName","DefaultAction","ChangeToken"],members:{Name:{},MetricName:{},DefaultAction:{shape:"S1w"},ChangeToken:{}}},output:{type:"structure",members:{WebACL:{shape:"S1z"},ChangeToken:{}}}},CreateXssMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S28"},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:{}}}},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"}}}},GetRateBasedRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"Sy"}}}},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:"S15"}}}},GetRegexPatternSet:{input:{type:"structure",required:["RegexPatternSetId"],members:{RegexPatternSetId:{}}},output:{type:"structure",members:{RegexPatternSet:{shape:"S1a"}}}},GetRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"S1f"}}}},GetRuleGroup:{input:{type:"structure",required:["RuleGroupId"],members:{RuleGroupId:{}}},output:{type:"structure",members:{RuleGroup:{shape:"S1i"}}}},GetSampledRequests:{input:{type:"structure",required:["WebAclId","RuleId","TimeWindow","MaxItems"],members:{WebAclId:{},RuleId:{},TimeWindow:{shape:"S3q"},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:"S3q"}}}},GetSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId"],members:{SizeConstraintSetId:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"S1l"}}}},GetSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId"],members:{SqlInjectionMatchSetId:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S1s"}}}},GetWebACL:{input:{type:"structure",required:["WebACLId"],members:{WebACLId:{}}},output:{type:"structure",members:{WebACL:{shape:"S1z"}}}},GetXssMatchSet:{input:{type:"structure",required:["XssMatchSetId"],members:{XssMatchSetId:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S28"}}}},ListActivatedRulesInRuleGroup:{input:{type:"structure",members:{RuleGroupId:{},NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},ActivatedRules:{shape:"S20"}}}},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:{}}}}}}},ListRateBasedRules:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Rules:{shape:"S4y"}}}},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:"S4y"}}}},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:{}}}}}}},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:{}}}}}}},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:"S6c"},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:"S17"}}}},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:"S6c"}}},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:"S21"}}}},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:"S1n"}}}}}},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:"S1u"}}}}}},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:"S21"}}}},DefaultAction:{shape:"S1w"}}},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:"S2a"}}}}}},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:{}}},Sy:{type:"structure",required:["RuleId","MatchPredicates","RateKey","RateLimit"],members:{RuleId:{},Name:{},MetricName:{},MatchPredicates:{shape:"Sz"},RateKey:{},RateLimit:{type:"long"}}},Sz:{type:"list",member:{shape:"S10"}},S10:{type:"structure",required:["Negated","Type","DataId"],members:{Negated:{type:"boolean"},Type:{},DataId:{}}},S15:{type:"structure",members:{RegexMatchSetId:{},Name:{},RegexMatchTuples:{type:"list",member:{shape:"S17"}}}},S17:{type:"structure",required:["FieldToMatch","TextTransformation","RegexPatternSetId"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},RegexPatternSetId:{}}},S1a:{type:"structure",required:["RegexPatternSetId","RegexPatternStrings"],members:{RegexPatternSetId:{},Name:{},RegexPatternStrings:{type:"list",member:{}}}},S1f:{type:"structure",required:["RuleId","Predicates"],members:{RuleId:{},Name:{},MetricName:{},Predicates:{shape:"Sz"}}},S1i:{type:"structure",required:["RuleGroupId"],members:{RuleGroupId:{},Name:{},MetricName:{}}},S1l:{type:"structure",required:["SizeConstraintSetId","SizeConstraints"],members:{SizeConstraintSetId:{},Name:{},SizeConstraints:{type:"list",member:{shape:"S1n"}}}},S1n:{type:"structure",required:["FieldToMatch","TextTransformation","ComparisonOperator","Size"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},ComparisonOperator:{},Size:{type:"long"}}},S1s:{type:"structure",required:["SqlInjectionMatchSetId","SqlInjectionMatchTuples"],members:{SqlInjectionMatchSetId:{},Name:{},SqlInjectionMatchTuples:{type:"list",member:{shape:"S1u"}}}},S1u:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S1w:{type:"structure",required:["Type"],members:{Type:{}}},S1z:{type:"structure",required:["WebACLId","DefaultAction","Rules"],members:{WebACLId:{},Name:{},MetricName:{},DefaultAction:{shape:"S1w"},Rules:{shape:"S20"}}},S20:{type:"list",member:{shape:"S21"}},S21:{type:"structure",required:["Priority","RuleId"],members:{Priority:{type:"integer"},RuleId:{},Action:{shape:"S1w"},OverrideAction:{type:"structure",required:["Type"],members:{Type:{}}},Type:{}}},S28:{type:"structure",required:["XssMatchSetId","XssMatchTuples"],members:{XssMatchSetId:{},Name:{},XssMatchTuples:{type:"list",member:{shape:"S2a"}}}},S2a:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S3q:{type:"structure",required:["StartTime","EndTime"],members:{StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}},S4y:{type:"list",member:{type:"structure",required:["RuleId","Name"],members:{RuleId:{},Name:{}}}},S6c:{type:"list",member:{type:"structure",required:["Action","Predicate"],members:{Action:{},Predicate:{shape:"S10"}}}}}}},{}],161:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],162:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-05-01",endpointPrefix:"workdocs",jsonVersion:"1.1",protocol:"rest-json",serviceFullName:"Amazon WorkDocs",signatureVersion:"v4",uid:"workdocs-2016-05-01"},operations:{AbortDocumentVersionUpload:{http:{method:"DELETE",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}",responseCode:204},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"}}}},ActivateUser:{http:{requestUri:"/api/v1/users/{UserId}/activation",responseCode:200},input:{type:"structure",required:["UserId"],members:{UserId:{location:"uri",locationName:"UserId"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{User:{shape:"S8"}}}},AddResourcePermissions:{http:{requestUri:"/api/v1/resources/{ResourceId}/permissions",responseCode:201},input:{type:"structure",required:["ResourceId","Principals"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},Principals:{type:"list",member:{type:"structure",required:["Id","Type","Role"],members:{Id:{},Type:{},Role:{}}}},NotificationOptions:{type:"structure",members:{SendEmail:{type:"boolean"},EmailMessage:{shape:"St"}}}}},output:{type:"structure",members:{ShareResults:{type:"list",member:{type:"structure",members:{PrincipalId:{},Role:{},Status:{},ShareId:{},StatusMessage:{shape:"St"}}}}}}},CreateComment:{http:{requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}/comment",responseCode:201},input:{type:"structure",required:["DocumentId","VersionId","Text"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},ParentId:{},ThreadId:{},Text:{shape:"S10"},Visibility:{},NotifyCollaborators:{type:"boolean"}}},output:{type:"structure",members:{Comment:{shape:"S13"}}}},CreateCustomMetadata:{http:{method:"PUT",requestUri:"/api/v1/resources/{ResourceId}/customMetadata",responseCode:200},input:{type:"structure",required:["ResourceId","CustomMetadata"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},VersionId:{location:"querystring",locationName:"versionid"},CustomMetadata:{shape:"S16"}}},output:{type:"structure",members:{}}},CreateFolder:{http:{requestUri:"/api/v1/folders",responseCode:201},input:{type:"structure",required:["ParentFolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Name:{},ParentFolderId:{}}},output:{type:"structure",members:{Metadata:{shape:"S1d"}}}},CreateLabels:{http:{method:"PUT",requestUri:"/api/v1/resources/{ResourceId}/labels",responseCode:200},input:{type:"structure",required:["ResourceId","Labels"],members:{ResourceId:{location:"uri",locationName:"ResourceId"},Labels:{shape:"S1g"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{}}},CreateNotificationSubscription:{http:{requestUri:"/api/v1/organizations/{OrganizationId}/subscriptions",responseCode:200},input:{type:"structure",required:["OrganizationId","Endpoint","Protocol","SubscriptionType"],members:{OrganizationId:{location:"uri",locationName:"OrganizationId"},Endpoint:{},Protocol:{},SubscriptionType:{}}},output:{type:"structure",members:{Subscription:{shape:"S1p"}}}},CreateUser:{http:{requestUri:"/api/v1/users",responseCode:201},input:{type:"structure",required:["Username","GivenName","Surname","Password"],members:{OrganizationId:{},Username:{},EmailAddress:{},GivenName:{},Surname:{},Password:{type:"string",sensitive:!0},TimeZoneId:{},StorageRule:{shape:"Sj"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{User:{shape:"S8"}}}},DeactivateUser:{http:{method:"DELETE",requestUri:"/api/v1/users/{UserId}/activation",responseCode:204},input:{type:"structure",required:["UserId"],members:{UserId:{location:"uri",locationName:"UserId"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}}},DeleteComment:{http:{method:"DELETE",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}/comment/{CommentId}",responseCode:204},input:{type:"structure",required:["DocumentId","VersionId","CommentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},CommentId:{location:"uri",locationName:"CommentId"}}}},DeleteCustomMetadata:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/customMetadata",responseCode:200},input:{type:"structure",required:["ResourceId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},VersionId:{location:"querystring",locationName:"versionId"},Keys:{location:"querystring",locationName:"keys",type:"list",member:{}},DeleteAll:{location:"querystring",locationName:"deleteAll",type:"boolean"}}},output:{type:"structure",members:{}}},DeleteDocument:{http:{method:"DELETE",requestUri:"/api/v1/documents/{DocumentId}",responseCode:204},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"}}}},DeleteFolder:{http:{method:"DELETE",requestUri:"/api/v1/folders/{FolderId}",responseCode:204},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"}}}},DeleteFolderContents:{http:{method:"DELETE",requestUri:"/api/v1/folders/{FolderId}/contents",responseCode:204},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"}}}},DeleteLabels:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/labels",responseCode:200},input:{type:"structure",required:["ResourceId"],members:{ResourceId:{location:"uri",locationName:"ResourceId"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Labels:{shape:"S1g",location:"querystring",locationName:"labels"},DeleteAll:{location:"querystring",locationName:"deleteAll",type:"boolean"}}},output:{type:"structure",members:{}}},DeleteNotificationSubscription:{http:{method:"DELETE",requestUri:"/api/v1/organizations/{OrganizationId}/subscriptions/{SubscriptionId}",responseCode:200},input:{type:"structure",required:["SubscriptionId","OrganizationId"],members:{SubscriptionId:{location:"uri",locationName:"SubscriptionId"},OrganizationId:{location:"uri",locationName:"OrganizationId"}}}},DeleteUser:{http:{method:"DELETE",requestUri:"/api/v1/users/{UserId}",responseCode:204},input:{type:"structure",required:["UserId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},UserId:{location:"uri",locationName:"UserId"}}}},DescribeActivities:{http:{method:"GET",requestUri:"/api/v1/activities",responseCode:200},input:{type:"structure",members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},StartTime:{location:"querystring",locationName:"startTime",type:"timestamp"},EndTime:{location:"querystring",locationName:"endTime",type:"timestamp"},OrganizationId:{location:"querystring",locationName:"organizationId"},UserId:{location:"querystring",locationName:"userId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{UserActivities:{type:"list",member:{type:"structure",members:{Type:{},TimeStamp:{type:"timestamp"},OrganizationId:{},Initiator:{shape:"S2c"},Participants:{type:"structure",members:{Users:{type:"list",member:{shape:"S2c"}},Groups:{shape:"S2f"}}},ResourceMetadata:{shape:"S2i"},OriginalParent:{shape:"S2i"},CommentMetadata:{type:"structure",members:{CommentId:{},Contributor:{shape:"S8"},CreatedTimestamp:{type:"timestamp"},CommentStatus:{},RecipientId:{}}}}}},Marker:{}}}},DescribeComments:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}/comments",responseCode:200},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Comments:{type:"list",member:{shape:"S13"}},Marker:{}}}},DescribeDocumentVersions:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/versions",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Include:{location:"querystring",locationName:"include"},Fields:{location:"querystring",locationName:"fields"}}},output:{type:"structure",members:{DocumentVersions:{type:"list",member:{shape:"S2t"}},Marker:{}}}},DescribeFolderContents:{http:{method:"GET",requestUri:"/api/v1/folders/{FolderId}/contents",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},Sort:{location:"querystring",locationName:"sort"},Order:{location:"querystring",locationName:"order"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"},Type:{location:"querystring",locationName:"type"},Include:{location:"querystring",locationName:"include"}}},output:{type:"structure",members:{Folders:{shape:"S36"},Documents:{type:"list",member:{shape:"S38"}},Marker:{}}}},DescribeGroups:{http:{method:"GET",requestUri:"/api/v1/groups",responseCode:200},input:{type:"structure",required:["SearchQuery"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},SearchQuery:{shape:"S3a",location:"querystring",locationName:"searchQuery"},OrganizationId:{location:"querystring",locationName:"organizationId"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"}}},output:{type:"structure",members:{Groups:{shape:"S2f"},Marker:{}}}},DescribeNotificationSubscriptions:{http:{method:"GET",requestUri:"/api/v1/organizations/{OrganizationId}/subscriptions",responseCode:200},input:{type:"structure",required:["OrganizationId"],members:{OrganizationId:{location:"uri",locationName:"OrganizationId"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"}}},output:{type:"structure",members:{Subscriptions:{type:"list",member:{shape:"S1p"}},Marker:{}}}},DescribeResourcePermissions:{http:{method:"GET",requestUri:"/api/v1/resources/{ResourceId}/permissions",responseCode:200},input:{type:"structure",required:["ResourceId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},PrincipalId:{location:"querystring",locationName:"principalId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Principals:{type:"list",member:{type:"structure",members:{Id:{},Type:{},Roles:{type:"list",member:{type:"structure",members:{Role:{},Type:{}}}}}}},Marker:{}}}},DescribeRootFolders:{http:{method:"GET",requestUri:"/api/v1/me/root",responseCode:200},input:{type:"structure",required:["AuthenticationToken"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Folders:{shape:"S36"},Marker:{}}}},DescribeUsers:{http:{method:"GET",requestUri:"/api/v1/users",responseCode:200},input:{type:"structure",members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},OrganizationId:{location:"querystring",locationName:"organizationId"},UserIds:{location:"querystring",locationName:"userIds"},Query:{shape:"S3a",location:"querystring",locationName:"query"},Include:{location:"querystring",locationName:"include"},Order:{location:"querystring",locationName:"order"},Sort:{location:"querystring",locationName:"sort"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Fields:{location:"querystring",locationName:"fields"}}},output:{type:"structure",members:{Users:{type:"list",member:{shape:"S8"}},TotalNumberOfUsers:{deprecated:!0,type:"long"},Marker:{}}}},GetCurrentUser:{http:{method:"GET",requestUri:"/api/v1/me",responseCode:200},input:{type:"structure",required:["AuthenticationToken"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{User:{shape:"S8"}}}},GetDocument:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},IncludeCustomMetadata:{location:"querystring",locationName:"includeCustomMetadata",type:"boolean"}}},output:{type:"structure",members:{Metadata:{shape:"S38"},CustomMetadata:{shape:"S16"}}}},GetDocumentPath:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/path",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Fields:{location:"querystring",locationName:"fields"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Path:{shape:"S41"}}}},GetDocumentVersion:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}",responseCode:200},input:{type:"structure", -required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},Fields:{location:"querystring",locationName:"fields"},IncludeCustomMetadata:{location:"querystring",locationName:"includeCustomMetadata",type:"boolean"}}},output:{type:"structure",members:{Metadata:{shape:"S2t"},CustomMetadata:{shape:"S16"}}}},GetFolder:{http:{method:"GET",requestUri:"/api/v1/folders/{FolderId}",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},IncludeCustomMetadata:{location:"querystring",locationName:"includeCustomMetadata",type:"boolean"}}},output:{type:"structure",members:{Metadata:{shape:"S1d"},CustomMetadata:{shape:"S16"}}}},GetFolderPath:{http:{method:"GET",requestUri:"/api/v1/folders/{FolderId}/path",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Fields:{location:"querystring",locationName:"fields"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Path:{shape:"S41"}}}},InitiateDocumentVersionUpload:{http:{requestUri:"/api/v1/documents",responseCode:201},input:{type:"structure",required:["ParentFolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Id:{},Name:{},ContentCreatedTimestamp:{type:"timestamp"},ContentModifiedTimestamp:{type:"timestamp"},ContentType:{},DocumentSizeInBytes:{type:"long"},ParentFolderId:{}}},output:{type:"structure",members:{Metadata:{shape:"S38"},UploadMetadata:{type:"structure",members:{UploadUrl:{shape:"S2y"},SignedHeaders:{type:"map",key:{},value:{}}}}}}},RemoveAllResourcePermissions:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/permissions",responseCode:204},input:{type:"structure",required:["ResourceId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"}}}},RemoveResourcePermission:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/permissions/{PrincipalId}",responseCode:204},input:{type:"structure",required:["ResourceId","PrincipalId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},PrincipalId:{location:"uri",locationName:"PrincipalId"},PrincipalType:{location:"querystring",locationName:"type"}}}},UpdateDocument:{http:{method:"PATCH",requestUri:"/api/v1/documents/{DocumentId}",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},Name:{},ParentFolderId:{},ResourceState:{}}}},UpdateDocumentVersion:{http:{method:"PATCH",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}",responseCode:200},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},VersionStatus:{}}}},UpdateFolder:{http:{method:"PATCH",requestUri:"/api/v1/folders/{FolderId}",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},Name:{},ParentFolderId:{},ResourceState:{}}}},UpdateUser:{http:{method:"PATCH",requestUri:"/api/v1/users/{UserId}",responseCode:200},input:{type:"structure",required:["UserId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},UserId:{location:"uri",locationName:"UserId"},GivenName:{},Surname:{},Type:{},StorageRule:{shape:"Sj"},TimeZoneId:{},Locale:{},GrantPoweruserPrivileges:{}}},output:{type:"structure",members:{User:{shape:"S8"}}}}},shapes:{S2:{type:"string",sensitive:!0},S8:{type:"structure",members:{Id:{},Username:{},EmailAddress:{},GivenName:{},Surname:{},OrganizationId:{},RootFolderId:{},RecycleBinFolderId:{},Status:{},Type:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},TimeZoneId:{},Locale:{},Storage:{type:"structure",members:{StorageUtilizedInBytes:{type:"long"},StorageRule:{shape:"Sj"}}}}},Sj:{type:"structure",members:{StorageAllocatedInBytes:{type:"long"},StorageType:{}}},St:{type:"string",sensitive:!0},S10:{type:"string",sensitive:!0},S13:{type:"structure",required:["CommentId"],members:{CommentId:{},ParentId:{},ThreadId:{},Text:{shape:"S10"},Contributor:{shape:"S8"},CreatedTimestamp:{type:"timestamp"},Status:{},Visibility:{},RecipientId:{}}},S16:{type:"map",key:{},value:{}},S1d:{type:"structure",members:{Id:{},Name:{},CreatorId:{},ParentFolderId:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},ResourceState:{},Signature:{},Labels:{shape:"S1g"},Size:{type:"long"},LatestVersionSize:{type:"long"}}},S1g:{type:"list",member:{}},S1p:{type:"structure",members:{SubscriptionId:{},EndPoint:{},Protocol:{}}},S2c:{type:"structure",members:{Id:{},Username:{},GivenName:{},Surname:{},EmailAddress:{}}},S2f:{type:"list",member:{type:"structure",members:{Id:{},Name:{}}}},S2i:{type:"structure",members:{Type:{},Name:{},OriginalName:{},Id:{},VersionId:{},Owner:{shape:"S2c"},ParentId:{}}},S2t:{type:"structure",members:{Id:{},Name:{},ContentType:{},Size:{type:"long"},Signature:{},Status:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},ContentCreatedTimestamp:{type:"timestamp"},ContentModifiedTimestamp:{type:"timestamp"},CreatorId:{},Thumbnail:{type:"map",key:{},value:{shape:"S2y"}},Source:{type:"map",key:{},value:{shape:"S2y"}}}},S2y:{type:"string",sensitive:!0},S36:{type:"list",member:{shape:"S1d"}},S38:{type:"structure",members:{Id:{},CreatorId:{},ParentFolderId:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},LatestVersionMetadata:{shape:"S2t"},ResourceState:{},Labels:{shape:"S1g"}}},S3a:{type:"string",sensitive:!0},S41:{type:"structure",members:{Components:{type:"list",member:{type:"structure",members:{Id:{},Name:{}}}}}}}}},{}],163:[function(e,t,r){t.exports={pagination:{DescribeDocumentVersions:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"DocumentVersions"},DescribeFolderContents:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:["Folders","Documents"]},DescribeUsers:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Users"}}}},{}],164:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.acm={},a.ACM=i.defineService("acm",["2015-12-08"]),Object.defineProperty(s.services.acm,"2015-12-08",{get:function(){var t=e("../apis/acm-2015-12-08.min.json");return t.paginators=e("../apis/acm-2015-12-08.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ACM},{"../apis/acm-2015-12-08.min.json":1,"../apis/acm-2015-12-08.paginators.json":2,"../lib/core":233,"../lib/node_loader":230}],165:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.apigateway={},a.APIGateway=i.defineService("apigateway",["2015-07-09"]),e("../lib/services/apigateway"),Object.defineProperty(s.services.apigateway,"2015-07-09",{get:function(){var t=e("../apis/apigateway-2015-07-09.min.json");return t.paginators=e("../apis/apigateway-2015-07-09.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.APIGateway},{"../apis/apigateway-2015-07-09.min.json":3,"../apis/apigateway-2015-07-09.paginators.json":4,"../lib/core":233,"../lib/node_loader":230,"../lib/services/apigateway":274}],166:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.applicationautoscaling={},a.ApplicationAutoScaling=i.defineService("applicationautoscaling",["2016-02-06"]),Object.defineProperty(s.services.applicationautoscaling,"2016-02-06",{get:function(){var t=e("../apis/application-autoscaling-2016-02-06.min.json");return t.paginators=e("../apis/application-autoscaling-2016-02-06.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ApplicationAutoScaling},{"../apis/application-autoscaling-2016-02-06.min.json":5,"../apis/application-autoscaling-2016-02-06.paginators.json":6,"../lib/core":233,"../lib/node_loader":230}],167:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.autoscaling={},a.AutoScaling=i.defineService("autoscaling",["2011-01-01"]),Object.defineProperty(s.services.autoscaling,"2011-01-01",{get:function(){var t=e("../apis/autoscaling-2011-01-01.min.json");return t.paginators=e("../apis/autoscaling-2011-01-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.AutoScaling},{"../apis/autoscaling-2011-01-01.min.json":7,"../apis/autoscaling-2011-01-01.paginators.json":8,"../lib/core":233,"../lib/node_loader":230}],168:[function(e,t,r){e("../lib/node_loader"),t.exports={ACM:e("./acm"),APIGateway:e("./apigateway"),ApplicationAutoScaling:e("./applicationautoscaling"),AutoScaling:e("./autoscaling"),CloudFormation:e("./cloudformation"),CloudFront:e("./cloudfront"),CloudHSM:e("./cloudhsm"),CloudTrail:e("./cloudtrail"),CloudWatch:e("./cloudwatch"),CloudWatchEvents:e("./cloudwatchevents"),CloudWatchLogs:e("./cloudwatchlogs"),CodeCommit:e("./codecommit"),CodeDeploy:e("./codedeploy"),CodePipeline:e("./codepipeline"),CognitoIdentity:e("./cognitoidentity"),CognitoIdentityServiceProvider:e("./cognitoidentityserviceprovider"),CognitoSync:e("./cognitosync"),ConfigService:e("./configservice"),CUR:e("./cur"),DeviceFarm:e("./devicefarm"),DirectConnect:e("./directconnect"),DynamoDB:e("./dynamodb"),DynamoDBStreams:e("./dynamodbstreams"),EC2:e("./ec2"),ECR:e("./ecr"),ECS:e("./ecs"),EFS:e("./efs"),ElastiCache:e("./elasticache"),ElasticBeanstalk:e("./elasticbeanstalk"),ELB:e("./elb"),ELBv2:e("./elbv2"),EMR:e("./emr"),ElasticTranscoder:e("./elastictranscoder"),Firehose:e("./firehose"),GameLift:e("./gamelift"),Inspector:e("./inspector"),Iot:e("./iot"),IotData:e("./iotdata"),Kinesis:e("./kinesis"),KMS:e("./kms"),Lambda:e("./lambda"),LexRuntime:e("./lexruntime"),MachineLearning:e("./machinelearning"),MarketplaceCommerceAnalytics:e("./marketplacecommerceanalytics"),MTurk:e("./mturk"),MobileAnalytics:e("./mobileanalytics"),OpsWorks:e("./opsworks"),Polly:e("./polly"),RDS:e("./rds"),Redshift:e("./redshift"),Rekognition:e("./rekognition"),Route53:e("./route53"),Route53Domains:e("./route53domains"),S3:e("./s3"),ServiceCatalog:e("./servicecatalog"),SES:e("./ses"),SNS:e("./sns"),SQS:e("./sqs"),SSM:e("./ssm"),StorageGateway:e("./storagegateway"),STS:e("./sts"),WAF:e("./waf"),WorkDocs:e("./workdocs"),LexModelBuildingService:e("./lexmodelbuildingservice")}},{"../lib/node_loader":230,"./acm":164,"./apigateway":165,"./applicationautoscaling":166,"./autoscaling":167,"./cloudformation":169,"./cloudfront":170,"./cloudhsm":171,"./cloudtrail":172,"./cloudwatch":173,"./cloudwatchevents":174,"./cloudwatchlogs":175,"./codecommit":176,"./codedeploy":177,"./codepipeline":178,"./cognitoidentity":179,"./cognitoidentityserviceprovider":180,"./cognitosync":181,"./configservice":182,"./cur":183,"./devicefarm":184,"./directconnect":185,"./dynamodb":186,"./dynamodbstreams":187,"./ec2":188,"./ecr":189,"./ecs":190,"./efs":191,"./elasticache":192,"./elasticbeanstalk":193,"./elastictranscoder":194,"./elb":195,"./elbv2":196,"./emr":197,"./firehose":198,"./gamelift":199,"./inspector":200,"./iot":201,"./iotdata":202,"./kinesis":203,"./kms":204,"./lambda":205,"./lexmodelbuildingservice":206,"./lexruntime":207,"./machinelearning":208,"./marketplacecommerceanalytics":209,"./mobileanalytics":210,"./mturk":211,"./opsworks":212,"./polly":213,"./rds":214,"./redshift":215,"./rekognition":216,"./route53":217,"./route53domains":218,"./s3":219,"./servicecatalog":220,"./ses":221,"./sns":222,"./sqs":223,"./ssm":224,"./storagegateway":225,"./sts":226,"./waf":227,"./workdocs":228}],169:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudformation={},a.CloudFormation=i.defineService("cloudformation",["2010-05-15"]),Object.defineProperty(s.services.cloudformation,"2010-05-15",{get:function(){var t=e("../apis/cloudformation-2010-05-15.min.json");return t.paginators=e("../apis/cloudformation-2010-05-15.paginators.json").pagination,t.waiters=e("../apis/cloudformation-2010-05-15.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CloudFormation},{"../apis/cloudformation-2010-05-15.min.json":9,"../apis/cloudformation-2010-05-15.paginators.json":10,"../apis/cloudformation-2010-05-15.waiters2.json":11,"../lib/core":233,"../lib/node_loader":230}],170:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudfront={},a.CloudFront=i.defineService("cloudfront",["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","2016-11-25*","2017-03-25"]),e("../lib/services/cloudfront"),Object.defineProperty(s.services.cloudfront,"2016-11-25",{get:function(){var t=e("../apis/cloudfront-2016-11-25.min.json");return t.paginators=e("../apis/cloudfront-2016-11-25.paginators.json").pagination,t.waiters=e("../apis/cloudfront-2016-11-25.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.cloudfront,"2017-03-25",{get:function(){var t=e("../apis/cloudfront-2017-03-25.min.json");return t.paginators=e("../apis/cloudfront-2017-03-25.paginators.json").pagination,t.waiters=e("../apis/cloudfront-2017-03-25.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CloudFront},{"../apis/cloudfront-2016-11-25.min.json":12,"../apis/cloudfront-2016-11-25.paginators.json":13,"../apis/cloudfront-2016-11-25.waiters2.json":14,"../apis/cloudfront-2017-03-25.min.json":15,"../apis/cloudfront-2017-03-25.paginators.json":16,"../apis/cloudfront-2017-03-25.waiters2.json":17,"../lib/core":233,"../lib/node_loader":230,"../lib/services/cloudfront":275}],171:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudhsm={},a.CloudHSM=i.defineService("cloudhsm",["2014-05-30"]),Object.defineProperty(s.services.cloudhsm,"2014-05-30",{get:function(){var t=e("../apis/cloudhsm-2014-05-30.min.json");return t.paginators=e("../apis/cloudhsm-2014-05-30.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudHSM},{"../apis/cloudhsm-2014-05-30.min.json":18,"../apis/cloudhsm-2014-05-30.paginators.json":19,"../lib/core":233,"../lib/node_loader":230}],172:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudtrail={},a.CloudTrail=i.defineService("cloudtrail",["2013-11-01"]),Object.defineProperty(s.services.cloudtrail,"2013-11-01",{get:function(){var t=e("../apis/cloudtrail-2013-11-01.min.json");return t.paginators=e("../apis/cloudtrail-2013-11-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudTrail},{"../apis/cloudtrail-2013-11-01.min.json":20,"../apis/cloudtrail-2013-11-01.paginators.json":21,"../lib/core":233,"../lib/node_loader":230}],173:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudwatch={},a.CloudWatch=i.defineService("cloudwatch",["2010-08-01"]),Object.defineProperty(s.services.cloudwatch,"2010-08-01",{get:function(){var t=e("../apis/monitoring-2010-08-01.min.json");return t.paginators=e("../apis/monitoring-2010-08-01.paginators.json").pagination,t.waiters=e("../apis/monitoring-2010-08-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CloudWatch},{"../apis/monitoring-2010-08-01.min.json":109,"../apis/monitoring-2010-08-01.paginators.json":110,"../apis/monitoring-2010-08-01.waiters2.json":111,"../lib/core":233,"../lib/node_loader":230}],174:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudwatchevents={},a.CloudWatchEvents=i.defineService("cloudwatchevents",["2014-02-03*","2015-10-07"]),Object.defineProperty(s.services.cloudwatchevents,"2015-10-07",{get:function(){var t=e("../apis/events-2015-10-07.min.json");return t.paginators=e("../apis/events-2015-10-07.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudWatchEvents},{"../apis/events-2015-10-07.min.json":78,"../apis/events-2015-10-07.paginators.json":79,"../lib/core":233,"../lib/node_loader":230}],175:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cloudwatchlogs={},a.CloudWatchLogs=i.defineService("cloudwatchlogs",["2014-03-28"]),Object.defineProperty(s.services.cloudwatchlogs,"2014-03-28",{get:function(){var t=e("../apis/logs-2014-03-28.min.json");return t.paginators=e("../apis/logs-2014-03-28.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudWatchLogs},{"../apis/logs-2014-03-28.min.json":100,"../apis/logs-2014-03-28.paginators.json":101,"../lib/core":233,"../lib/node_loader":230}],176:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.codecommit={},a.CodeCommit=i.defineService("codecommit",["2015-04-13"]),Object.defineProperty(s.services.codecommit,"2015-04-13",{get:function(){var t=e("../apis/codecommit-2015-04-13.min.json");return t.paginators=e("../apis/codecommit-2015-04-13.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CodeCommit},{"../apis/codecommit-2015-04-13.min.json":22,"../apis/codecommit-2015-04-13.paginators.json":23,"../lib/core":233,"../lib/node_loader":230}],177:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.codedeploy={},a.CodeDeploy=i.defineService("codedeploy",["2014-10-06"]),Object.defineProperty(s.services.codedeploy,"2014-10-06",{get:function(){var t=e("../apis/codedeploy-2014-10-06.min.json");return t.paginators=e("../apis/codedeploy-2014-10-06.paginators.json").pagination,t.waiters=e("../apis/codedeploy-2014-10-06.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CodeDeploy},{"../apis/codedeploy-2014-10-06.min.json":24,"../apis/codedeploy-2014-10-06.paginators.json":25,"../apis/codedeploy-2014-10-06.waiters2.json":26,"../lib/core":233,"../lib/node_loader":230}],178:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.codepipeline={},a.CodePipeline=i.defineService("codepipeline",["2015-07-09"]),Object.defineProperty(s.services.codepipeline,"2015-07-09",{get:function(){var t=e("../apis/codepipeline-2015-07-09.min.json");return t.paginators=e("../apis/codepipeline-2015-07-09.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CodePipeline},{"../apis/codepipeline-2015-07-09.min.json":27,"../apis/codepipeline-2015-07-09.paginators.json":28,"../lib/core":233,"../lib/node_loader":230}],179:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cognitoidentity={},a.CognitoIdentity=i.defineService("cognitoidentity",["2014-06-30"]),e("../lib/services/cognitoidentity"),Object.defineProperty(s.services.cognitoidentity,"2014-06-30",{get:function(){var t=e("../apis/cognito-identity-2014-06-30.min.json");return t.paginators=e("../apis/cognito-identity-2014-06-30.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CognitoIdentity},{"../apis/cognito-identity-2014-06-30.min.json":29,"../apis/cognito-identity-2014-06-30.paginators.json":30,"../lib/core":233,"../lib/node_loader":230,"../lib/services/cognitoidentity":276}],180:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cognitoidentityserviceprovider={},a.CognitoIdentityServiceProvider=i.defineService("cognitoidentityserviceprovider",["2016-04-18"]),Object.defineProperty(s.services.cognitoidentityserviceprovider,"2016-04-18",{get:function(){var t=e("../apis/cognito-idp-2016-04-18.min.json");return t.paginators=e("../apis/cognito-idp-2016-04-18.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CognitoIdentityServiceProvider},{"../apis/cognito-idp-2016-04-18.min.json":31,"../apis/cognito-idp-2016-04-18.paginators.json":32,"../lib/core":233,"../lib/node_loader":230}],181:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cognitosync={},a.CognitoSync=i.defineService("cognitosync",["2014-06-30"]),Object.defineProperty(s.services.cognitosync,"2014-06-30",{get:function(){return e("../apis/cognito-sync-2014-06-30.min.json")},enumerable:!0,configurable:!0}),t.exports=a.CognitoSync},{"../apis/cognito-sync-2014-06-30.min.json":33,"../lib/core":233,"../lib/node_loader":230}],182:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.configservice={},a.ConfigService=i.defineService("configservice",["2014-11-12"]),Object.defineProperty(s.services.configservice,"2014-11-12",{get:function(){var t=e("../apis/config-2014-11-12.min.json");return t.paginators=e("../apis/config-2014-11-12.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ConfigService},{"../apis/config-2014-11-12.min.json":34,"../apis/config-2014-11-12.paginators.json":35,"../lib/core":233,"../lib/node_loader":230}],183:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.cur={},a.CUR=i.defineService("cur",["2017-01-06"]),Object.defineProperty(s.services.cur,"2017-01-06",{get:function(){var t=e("../apis/cur-2017-01-06.min.json");return t.paginators=e("../apis/cur-2017-01-06.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CUR},{"../apis/cur-2017-01-06.min.json":36,"../apis/cur-2017-01-06.paginators.json":37,"../lib/core":233,"../lib/node_loader":230}],184:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.devicefarm={},a.DeviceFarm=i.defineService("devicefarm",["2015-06-23"]),Object.defineProperty(s.services.devicefarm,"2015-06-23",{get:function(){var t=e("../apis/devicefarm-2015-06-23.min.json");return t.paginators=e("../apis/devicefarm-2015-06-23.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.DeviceFarm},{"../apis/devicefarm-2015-06-23.min.json":38,"../apis/devicefarm-2015-06-23.paginators.json":39,"../lib/core":233,"../lib/node_loader":230}],185:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.directconnect={},a.DirectConnect=i.defineService("directconnect",["2012-10-25"]),Object.defineProperty(s.services.directconnect,"2012-10-25",{get:function(){var t=e("../apis/directconnect-2012-10-25.min.json");return t.paginators=e("../apis/directconnect-2012-10-25.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.DirectConnect},{"../apis/directconnect-2012-10-25.min.json":40,"../apis/directconnect-2012-10-25.paginators.json":41,"../lib/core":233,"../lib/node_loader":230}],186:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.dynamodb={},a.DynamoDB=i.defineService("dynamodb",["2011-12-05","2012-08-10"]),e("../lib/services/dynamodb"),Object.defineProperty(s.services.dynamodb,"2011-12-05",{get:function(){var t=e("../apis/dynamodb-2011-12-05.min.json");return t.paginators=e("../apis/dynamodb-2011-12-05.paginators.json").pagination,t.waiters=e("../apis/dynamodb-2011-12-05.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.dynamodb,"2012-08-10",{get:function(){var t=e("../apis/dynamodb-2012-08-10.min.json");return t.paginators=e("../apis/dynamodb-2012-08-10.paginators.json").pagination,t.waiters=e("../apis/dynamodb-2012-08-10.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.DynamoDB},{"../apis/dynamodb-2011-12-05.min.json":42,"../apis/dynamodb-2011-12-05.paginators.json":43,"../apis/dynamodb-2011-12-05.waiters2.json":44,"../apis/dynamodb-2012-08-10.min.json":45,"../apis/dynamodb-2012-08-10.paginators.json":46,"../apis/dynamodb-2012-08-10.waiters2.json":47,"../lib/core":233,"../lib/node_loader":230,"../lib/services/dynamodb":277}],187:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.dynamodbstreams={},a.DynamoDBStreams=i.defineService("dynamodbstreams",["2012-08-10"]),Object.defineProperty(s.services.dynamodbstreams,"2012-08-10",{get:function(){var t=e("../apis/streams.dynamodb-2012-08-10.min.json");return t.paginators=e("../apis/streams.dynamodb-2012-08-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.DynamoDBStreams},{"../apis/streams.dynamodb-2012-08-10.min.json":156,"../apis/streams.dynamodb-2012-08-10.paginators.json":157,"../lib/core":233,"../lib/node_loader":230}],188:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.ec2={},a.EC2=i.defineService("ec2",["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*","2016-11-15"]),e("../lib/services/ec2"),Object.defineProperty(s.services.ec2,"2016-11-15",{get:function(){var t=e("../apis/ec2-2016-11-15.min.json");return t.paginators=e("../apis/ec2-2016-11-15.paginators.json").pagination,t.waiters=e("../apis/ec2-2016-11-15.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.EC2},{"../apis/ec2-2016-11-15.min.json":48,"../apis/ec2-2016-11-15.paginators.json":49,"../apis/ec2-2016-11-15.waiters2.json":50,"../lib/core":233,"../lib/node_loader":230,"../lib/services/ec2":278}],189:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.ecr={},a.ECR=i.defineService("ecr",["2015-09-21"]),Object.defineProperty(s.services.ecr,"2015-09-21",{get:function(){var t=e("../apis/ecr-2015-09-21.min.json");return t.paginators=e("../apis/ecr-2015-09-21.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ECR},{"../apis/ecr-2015-09-21.min.json":51,"../apis/ecr-2015-09-21.paginators.json":52,"../lib/core":233,"../lib/node_loader":230}],190:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.ecs={},a.ECS=i.defineService("ecs",["2014-11-13"]),Object.defineProperty(s.services.ecs,"2014-11-13",{get:function(){var t=e("../apis/ecs-2014-11-13.min.json");return t.paginators=e("../apis/ecs-2014-11-13.paginators.json").pagination,t.waiters=e("../apis/ecs-2014-11-13.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ECS},{"../apis/ecs-2014-11-13.min.json":53,"../apis/ecs-2014-11-13.paginators.json":54,"../apis/ecs-2014-11-13.waiters2.json":55,"../lib/core":233,"../lib/node_loader":230}],191:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.efs={},a.EFS=i.defineService("efs",["2015-02-01"]),Object.defineProperty(s.services.efs,"2015-02-01",{get:function(){var t=e("../apis/elasticfilesystem-2015-02-01.min.json");return t.paginators=e("../apis/elasticfilesystem-2015-02-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.EFS},{"../apis/elasticfilesystem-2015-02-01.min.json":61,"../apis/elasticfilesystem-2015-02-01.paginators.json":62,"../lib/core":233,"../lib/node_loader":230}],192:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.elasticache={},a.ElastiCache=i.defineService("elasticache",["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*","2015-02-02"]),Object.defineProperty(s.services.elasticache,"2015-02-02",{get:function(){var t=e("../apis/elasticache-2015-02-02.min.json");return t.paginators=e("../apis/elasticache-2015-02-02.paginators.json").pagination,t.waiters=e("../apis/elasticache-2015-02-02.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ElastiCache},{"../apis/elasticache-2015-02-02.min.json":56,"../apis/elasticache-2015-02-02.paginators.json":57,"../apis/elasticache-2015-02-02.waiters2.json":58,"../lib/core":233,"../lib/node_loader":230}],193:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.elasticbeanstalk={},a.ElasticBeanstalk=i.defineService("elasticbeanstalk",["2010-12-01"]),Object.defineProperty(s.services.elasticbeanstalk,"2010-12-01",{get:function(){var t=e("../apis/elasticbeanstalk-2010-12-01.min.json");return t.paginators=e("../apis/elasticbeanstalk-2010-12-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ElasticBeanstalk},{"../apis/elasticbeanstalk-2010-12-01.min.json":59,"../apis/elasticbeanstalk-2010-12-01.paginators.json":60,"../lib/core":233,"../lib/node_loader":230}],194:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.elastictranscoder={},a.ElasticTranscoder=i.defineService("elastictranscoder",["2012-09-25"]),Object.defineProperty(s.services.elastictranscoder,"2012-09-25",{get:function(){var t=e("../apis/elastictranscoder-2012-09-25.min.json");return t.paginators=e("../apis/elastictranscoder-2012-09-25.paginators.json").pagination,t.waiters=e("../apis/elastictranscoder-2012-09-25.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ElasticTranscoder},{"../apis/elastictranscoder-2012-09-25.min.json":72,"../apis/elastictranscoder-2012-09-25.paginators.json":73,"../apis/elastictranscoder-2012-09-25.waiters2.json":74,"../lib/core":233,"../lib/node_loader":230}],195:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.elb={},a.ELB=i.defineService("elb",["2012-06-01"]),Object.defineProperty(s.services.elb,"2012-06-01",{get:function(){var t=e("../apis/elasticloadbalancing-2012-06-01.min.json");return t.paginators=e("../apis/elasticloadbalancing-2012-06-01.paginators.json").pagination,t.waiters=e("../apis/elasticloadbalancing-2012-06-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ELB},{"../apis/elasticloadbalancing-2012-06-01.min.json":63,"../apis/elasticloadbalancing-2012-06-01.paginators.json":64,"../apis/elasticloadbalancing-2012-06-01.waiters2.json":65,"../lib/core":233,"../lib/node_loader":230}],196:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.elbv2={},a.ELBv2=i.defineService("elbv2",["2015-12-01"]),Object.defineProperty(s.services.elbv2,"2015-12-01",{get:function(){var t=e("../apis/elasticloadbalancingv2-2015-12-01.min.json");return t.paginators=e("../apis/elasticloadbalancingv2-2015-12-01.paginators.json").pagination,t.waiters=e("../apis/elasticloadbalancingv2-2015-12-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ELBv2},{"../apis/elasticloadbalancingv2-2015-12-01.min.json":66,"../apis/elasticloadbalancingv2-2015-12-01.paginators.json":67,"../apis/elasticloadbalancingv2-2015-12-01.waiters2.json":68,"../lib/core":233,"../lib/node_loader":230}],197:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.emr={},a.EMR=i.defineService("emr",["2009-03-31"]),Object.defineProperty(s.services.emr,"2009-03-31",{get:function(){var t=e("../apis/elasticmapreduce-2009-03-31.min.json") -;return t.paginators=e("../apis/elasticmapreduce-2009-03-31.paginators.json").pagination,t.waiters=e("../apis/elasticmapreduce-2009-03-31.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.EMR},{"../apis/elasticmapreduce-2009-03-31.min.json":69,"../apis/elasticmapreduce-2009-03-31.paginators.json":70,"../apis/elasticmapreduce-2009-03-31.waiters2.json":71,"../lib/core":233,"../lib/node_loader":230}],198:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.firehose={},a.Firehose=i.defineService("firehose",["2015-08-04"]),Object.defineProperty(s.services.firehose,"2015-08-04",{get:function(){var t=e("../apis/firehose-2015-08-04.min.json");return t.paginators=e("../apis/firehose-2015-08-04.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Firehose},{"../apis/firehose-2015-08-04.min.json":80,"../apis/firehose-2015-08-04.paginators.json":81,"../lib/core":233,"../lib/node_loader":230}],199:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.gamelift={},a.GameLift=i.defineService("gamelift",["2015-10-01"]),Object.defineProperty(s.services.gamelift,"2015-10-01",{get:function(){var t=e("../apis/gamelift-2015-10-01.min.json");return t.paginators=e("../apis/gamelift-2015-10-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.GameLift},{"../apis/gamelift-2015-10-01.min.json":82,"../apis/gamelift-2015-10-01.paginators.json":83,"../lib/core":233,"../lib/node_loader":230}],200:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.inspector={},a.Inspector=i.defineService("inspector",["2015-08-18*","2016-02-16"]),Object.defineProperty(s.services.inspector,"2016-02-16",{get:function(){var t=e("../apis/inspector-2016-02-16.min.json");return t.paginators=e("../apis/inspector-2016-02-16.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Inspector},{"../apis/inspector-2016-02-16.min.json":84,"../apis/inspector-2016-02-16.paginators.json":85,"../lib/core":233,"../lib/node_loader":230}],201:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.iot={},a.Iot=i.defineService("iot",["2015-05-28"]),Object.defineProperty(s.services.iot,"2015-05-28",{get:function(){var t=e("../apis/iot-2015-05-28.min.json");return t.paginators=e("../apis/iot-2015-05-28.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Iot},{"../apis/iot-2015-05-28.min.json":86,"../apis/iot-2015-05-28.paginators.json":87,"../lib/core":233,"../lib/node_loader":230}],202:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.iotdata={},a.IotData=i.defineService("iotdata",["2015-05-28"]),e("../lib/services/iotdata"),Object.defineProperty(s.services.iotdata,"2015-05-28",{get:function(){return e("../apis/iot-data-2015-05-28.min.json")},enumerable:!0,configurable:!0}),t.exports=a.IotData},{"../apis/iot-data-2015-05-28.min.json":88,"../lib/core":233,"../lib/node_loader":230,"../lib/services/iotdata":279}],203:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.kinesis={},a.Kinesis=i.defineService("kinesis",["2013-12-02"]),Object.defineProperty(s.services.kinesis,"2013-12-02",{get:function(){var t=e("../apis/kinesis-2013-12-02.min.json");return t.paginators=e("../apis/kinesis-2013-12-02.paginators.json").pagination,t.waiters=e("../apis/kinesis-2013-12-02.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.Kinesis},{"../apis/kinesis-2013-12-02.min.json":89,"../apis/kinesis-2013-12-02.paginators.json":90,"../apis/kinesis-2013-12-02.waiters2.json":91,"../lib/core":233,"../lib/node_loader":230}],204:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.kms={},a.KMS=i.defineService("kms",["2014-11-01"]),Object.defineProperty(s.services.kms,"2014-11-01",{get:function(){var t=e("../apis/kms-2014-11-01.min.json");return t.paginators=e("../apis/kms-2014-11-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.KMS},{"../apis/kms-2014-11-01.min.json":92,"../apis/kms-2014-11-01.paginators.json":93,"../lib/core":233,"../lib/node_loader":230}],205:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.lambda={},a.Lambda=i.defineService("lambda",["2014-11-11","2015-03-31"]),e("../lib/services/lambda"),Object.defineProperty(s.services.lambda,"2014-11-11",{get:function(){var t=e("../apis/lambda-2014-11-11.min.json");return t.paginators=e("../apis/lambda-2014-11-11.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.lambda,"2015-03-31",{get:function(){var t=e("../apis/lambda-2015-03-31.min.json");return t.paginators=e("../apis/lambda-2015-03-31.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Lambda},{"../apis/lambda-2014-11-11.min.json":94,"../apis/lambda-2014-11-11.paginators.json":95,"../apis/lambda-2015-03-31.min.json":96,"../apis/lambda-2015-03-31.paginators.json":97,"../lib/core":233,"../lib/node_loader":230,"../lib/services/lambda":280}],206:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.lexmodelbuildingservice={},a.LexModelBuildingService=i.defineService("lexmodelbuildingservice",["2017-04-19"]),Object.defineProperty(s.services.lexmodelbuildingservice,"2017-04-19",{get:function(){var t=e("../apis/lex-models-2017-04-19.min.json");return t.paginators=e("../apis/lex-models-2017-04-19.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.LexModelBuildingService},{"../apis/lex-models-2017-04-19.min.json":98,"../apis/lex-models-2017-04-19.paginators.json":99,"../lib/core":233,"../lib/node_loader":230}],207:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.lexruntime={},a.LexRuntime=i.defineService("lexruntime",["2016-11-28"]),Object.defineProperty(s.services.lexruntime,"2016-11-28",{get:function(){var t=e("../apis/runtime.lex-2016-11-28.min.json");return t.paginators=e("../apis/runtime.lex-2016-11-28.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.LexRuntime},{"../apis/runtime.lex-2016-11-28.min.json":141,"../apis/runtime.lex-2016-11-28.paginators.json":142,"../lib/core":233,"../lib/node_loader":230}],208:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.machinelearning={},a.MachineLearning=i.defineService("machinelearning",["2014-12-12"]),e("../lib/services/machinelearning"),Object.defineProperty(s.services.machinelearning,"2014-12-12",{get:function(){var t=e("../apis/machinelearning-2014-12-12.min.json");return t.paginators=e("../apis/machinelearning-2014-12-12.paginators.json").pagination,t.waiters=e("../apis/machinelearning-2014-12-12.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.MachineLearning},{"../apis/machinelearning-2014-12-12.min.json":102,"../apis/machinelearning-2014-12-12.paginators.json":103,"../apis/machinelearning-2014-12-12.waiters2.json":104,"../lib/core":233,"../lib/node_loader":230,"../lib/services/machinelearning":281}],209:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.marketplacecommerceanalytics={},a.MarketplaceCommerceAnalytics=i.defineService("marketplacecommerceanalytics",["2015-07-01"]),Object.defineProperty(s.services.marketplacecommerceanalytics,"2015-07-01",{get:function(){var t=e("../apis/marketplacecommerceanalytics-2015-07-01.min.json");return t.paginators=e("../apis/marketplacecommerceanalytics-2015-07-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.MarketplaceCommerceAnalytics},{"../apis/marketplacecommerceanalytics-2015-07-01.min.json":105,"../apis/marketplacecommerceanalytics-2015-07-01.paginators.json":106,"../lib/core":233,"../lib/node_loader":230}],210:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.mobileanalytics={},a.MobileAnalytics=i.defineService("mobileanalytics",["2014-06-05"]),Object.defineProperty(s.services.mobileanalytics,"2014-06-05",{get:function(){return e("../apis/mobileanalytics-2014-06-05.min.json")},enumerable:!0,configurable:!0}),t.exports=a.MobileAnalytics},{"../apis/mobileanalytics-2014-06-05.min.json":108,"../lib/core":233,"../lib/node_loader":230}],211:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.mturk={},a.MTurk=i.defineService("mturk",["2017-01-17"]),Object.defineProperty(s.services.mturk,"2017-01-17",{get:function(){var t=e("../apis/mturk-requester-2017-01-17.min.json");return t.paginators=e("../apis/mturk-requester-2017-01-17.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.MTurk},{"../apis/mturk-requester-2017-01-17.min.json":112,"../apis/mturk-requester-2017-01-17.paginators.json":113,"../lib/core":233,"../lib/node_loader":230}],212:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.opsworks={},a.OpsWorks=i.defineService("opsworks",["2013-02-18"]),Object.defineProperty(s.services.opsworks,"2013-02-18",{get:function(){var t=e("../apis/opsworks-2013-02-18.min.json");return t.paginators=e("../apis/opsworks-2013-02-18.paginators.json").pagination,t.waiters=e("../apis/opsworks-2013-02-18.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.OpsWorks},{"../apis/opsworks-2013-02-18.min.json":114,"../apis/opsworks-2013-02-18.paginators.json":115,"../apis/opsworks-2013-02-18.waiters2.json":116,"../lib/core":233,"../lib/node_loader":230}],213:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.polly={},a.Polly=i.defineService("polly",["2016-06-10"]),e("../lib/services/polly"),Object.defineProperty(s.services.polly,"2016-06-10",{get:function(){var t=e("../apis/polly-2016-06-10.min.json");return t.paginators=e("../apis/polly-2016-06-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Polly},{"../apis/polly-2016-06-10.min.json":117,"../apis/polly-2016-06-10.paginators.json":118,"../lib/core":233,"../lib/node_loader":230,"../lib/services/polly":282}],214:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.rds={},a.RDS=i.defineService("rds",["2013-01-10","2013-02-12","2013-09-09","2014-09-01","2014-09-01*","2014-10-31"]),e("../lib/services/rds"),Object.defineProperty(s.services.rds,"2013-01-10",{get:function(){var t=e("../apis/rds-2013-01-10.min.json");return t.paginators=e("../apis/rds-2013-01-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.rds,"2013-02-12",{get:function(){var t=e("../apis/rds-2013-02-12.min.json");return t.paginators=e("../apis/rds-2013-02-12.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.rds,"2013-09-09",{get:function(){var t=e("../apis/rds-2013-09-09.min.json");return t.paginators=e("../apis/rds-2013-09-09.paginators.json").pagination,t.waiters=e("../apis/rds-2013-09-09.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.rds,"2014-09-01",{get:function(){var t=e("../apis/rds-2014-09-01.min.json");return t.paginators=e("../apis/rds-2014-09-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(s.services.rds,"2014-10-31",{get:function(){var t=e("../apis/rds-2014-10-31.min.json");return t.paginators=e("../apis/rds-2014-10-31.paginators.json").pagination,t.waiters=e("../apis/rds-2014-10-31.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.RDS},{"../apis/rds-2013-01-10.min.json":119,"../apis/rds-2013-01-10.paginators.json":120,"../apis/rds-2013-02-12.min.json":121,"../apis/rds-2013-02-12.paginators.json":122,"../apis/rds-2013-09-09.min.json":123,"../apis/rds-2013-09-09.paginators.json":124,"../apis/rds-2013-09-09.waiters2.json":125,"../apis/rds-2014-09-01.min.json":126,"../apis/rds-2014-09-01.paginators.json":127,"../apis/rds-2014-10-31.min.json":128,"../apis/rds-2014-10-31.paginators.json":129,"../apis/rds-2014-10-31.waiters2.json":130,"../lib/core":233,"../lib/node_loader":230,"../lib/services/rds":283}],215:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.redshift={},a.Redshift=i.defineService("redshift",["2012-12-01"]),Object.defineProperty(s.services.redshift,"2012-12-01",{get:function(){var t=e("../apis/redshift-2012-12-01.min.json");return t.paginators=e("../apis/redshift-2012-12-01.paginators.json").pagination,t.waiters=e("../apis/redshift-2012-12-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.Redshift},{"../apis/redshift-2012-12-01.min.json":131,"../apis/redshift-2012-12-01.paginators.json":132,"../apis/redshift-2012-12-01.waiters2.json":133,"../lib/core":233,"../lib/node_loader":230}],216:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.rekognition={},a.Rekognition=i.defineService("rekognition",["2016-06-27"]),Object.defineProperty(s.services.rekognition,"2016-06-27",{get:function(){var t=e("../apis/rekognition-2016-06-27.min.json");return t.paginators=e("../apis/rekognition-2016-06-27.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Rekognition},{"../apis/rekognition-2016-06-27.min.json":134,"../apis/rekognition-2016-06-27.paginators.json":135,"../lib/core":233,"../lib/node_loader":230}],217:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.route53={},a.Route53=i.defineService("route53",["2013-04-01"]),e("../lib/services/route53"),Object.defineProperty(s.services.route53,"2013-04-01",{get:function(){var t=e("../apis/route53-2013-04-01.min.json");return t.paginators=e("../apis/route53-2013-04-01.paginators.json").pagination,t.waiters=e("../apis/route53-2013-04-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.Route53},{"../apis/route53-2013-04-01.min.json":136,"../apis/route53-2013-04-01.paginators.json":137,"../apis/route53-2013-04-01.waiters2.json":138,"../lib/core":233,"../lib/node_loader":230,"../lib/services/route53":284}],218:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.route53domains={},a.Route53Domains=i.defineService("route53domains",["2014-05-15"]),Object.defineProperty(s.services.route53domains,"2014-05-15",{get:function(){var t=e("../apis/route53domains-2014-05-15.min.json");return t.paginators=e("../apis/route53domains-2014-05-15.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Route53Domains},{"../apis/route53domains-2014-05-15.min.json":139,"../apis/route53domains-2014-05-15.paginators.json":140,"../lib/core":233,"../lib/node_loader":230}],219:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.s3={},a.S3=i.defineService("s3",["2006-03-01"]),e("../lib/services/s3"),Object.defineProperty(s.services.s3,"2006-03-01",{get:function(){var t=e("../apis/s3-2006-03-01.min.json");return t.paginators=e("../apis/s3-2006-03-01.paginators.json").pagination,t.waiters=e("../apis/s3-2006-03-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.S3},{"../apis/s3-2006-03-01.min.json":143,"../apis/s3-2006-03-01.paginators.json":144,"../apis/s3-2006-03-01.waiters2.json":145,"../lib/core":233,"../lib/node_loader":230,"../lib/services/s3":285}],220:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.servicecatalog={},a.ServiceCatalog=i.defineService("servicecatalog",["2015-12-10"]),Object.defineProperty(s.services.servicecatalog,"2015-12-10",{get:function(){var t=e("../apis/servicecatalog-2015-12-10.min.json");return t.paginators=e("../apis/servicecatalog-2015-12-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ServiceCatalog},{"../apis/servicecatalog-2015-12-10.min.json":146,"../apis/servicecatalog-2015-12-10.paginators.json":147,"../lib/core":233,"../lib/node_loader":230}],221:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.ses={},a.SES=i.defineService("ses",["2010-12-01"]),Object.defineProperty(s.services.ses,"2010-12-01",{get:function(){var t=e("../apis/email-2010-12-01.min.json");return t.paginators=e("../apis/email-2010-12-01.paginators.json").pagination,t.waiters=e("../apis/email-2010-12-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.SES},{"../apis/email-2010-12-01.min.json":75,"../apis/email-2010-12-01.paginators.json":76,"../apis/email-2010-12-01.waiters2.json":77,"../lib/core":233,"../lib/node_loader":230}],222:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.sns={},a.SNS=i.defineService("sns",["2010-03-31"]),Object.defineProperty(s.services.sns,"2010-03-31",{get:function(){var t=e("../apis/sns-2010-03-31.min.json");return t.paginators=e("../apis/sns-2010-03-31.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.SNS},{"../apis/sns-2010-03-31.min.json":148,"../apis/sns-2010-03-31.paginators.json":149,"../lib/core":233,"../lib/node_loader":230}],223:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.sqs={},a.SQS=i.defineService("sqs",["2012-11-05"]),e("../lib/services/sqs"),Object.defineProperty(s.services.sqs,"2012-11-05",{get:function(){var t=e("../apis/sqs-2012-11-05.min.json");return t.paginators=e("../apis/sqs-2012-11-05.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.SQS},{"../apis/sqs-2012-11-05.min.json":150,"../apis/sqs-2012-11-05.paginators.json":151,"../lib/core":233,"../lib/node_loader":230,"../lib/services/sqs":286}],224:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.ssm={},a.SSM=i.defineService("ssm",["2014-11-06"]),Object.defineProperty(s.services.ssm,"2014-11-06",{get:function(){var t=e("../apis/ssm-2014-11-06.min.json");return t.paginators=e("../apis/ssm-2014-11-06.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.SSM},{"../apis/ssm-2014-11-06.min.json":152,"../apis/ssm-2014-11-06.paginators.json":153,"../lib/core":233,"../lib/node_loader":230}],225:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.storagegateway={},a.StorageGateway=i.defineService("storagegateway",["2013-06-30"]),Object.defineProperty(s.services.storagegateway,"2013-06-30",{get:function(){var t=e("../apis/storagegateway-2013-06-30.min.json");return t.paginators=e("../apis/storagegateway-2013-06-30.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.StorageGateway},{"../apis/storagegateway-2013-06-30.min.json":154,"../apis/storagegateway-2013-06-30.paginators.json":155,"../lib/core":233,"../lib/node_loader":230}],226:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.sts={},a.STS=i.defineService("sts",["2011-06-15"]),e("../lib/services/sts"),Object.defineProperty(s.services.sts,"2011-06-15",{get:function(){var t=e("../apis/sts-2011-06-15.min.json");return t.paginators=e("../apis/sts-2011-06-15.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.STS},{"../apis/sts-2011-06-15.min.json":158,"../apis/sts-2011-06-15.paginators.json":159,"../lib/core":233,"../lib/node_loader":230,"../lib/services/sts":287}],227:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.waf={},a.WAF=i.defineService("waf",["2015-08-24"]),Object.defineProperty(s.services.waf,"2015-08-24",{get:function(){var t=e("../apis/waf-2015-08-24.min.json");return t.paginators=e("../apis/waf-2015-08-24.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.WAF},{"../apis/waf-2015-08-24.min.json":160,"../apis/waf-2015-08-24.paginators.json":161,"../lib/core":233,"../lib/node_loader":230}],228:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),i=a.Service,s=a.apiLoader;s.services.workdocs={},a.WorkDocs=i.defineService("workdocs",["2016-05-01"]),Object.defineProperty(s.services.workdocs,"2016-05-01",{get:function(){var t=e("../apis/workdocs-2016-05-01.min.json");return t.paginators=e("../apis/workdocs-2016-05-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.WorkDocs},{"../apis/workdocs-2016-05-01.min.json":162,"../apis/workdocs-2016-05-01.paginators.json":163,"../lib/core":233,"../lib/node_loader":230}],229:[function(e,t,r){function a(e,t){if(!a.services.hasOwnProperty(e))throw new Error("InvalidService: Failed to load api for "+e);return a.services[e][t]}a.services={},t.exports=a},{}],230:[function(e,t,r){(function(r){var a=e("./util");a.crypto.lib={createHash:e("create-hash"),createHmac:e("create-hmac"),createSign:function(){throw new Error("createSign is not implemented in the browser")}},a.Buffer=e("buffer/").Buffer,a.url=e("url/"),a.querystring=e("querystring/"),a.environment="js";var i=e("./core");t.exports=i,e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/web_identity_credentials"),e("./credentials/cognito_identity_credentials"),e("./credentials/saml_credentials"),i.XML.Parser=e("./xml/browser_parser"),e("./http/xhr"),void 0===r&&(r={browser:!0})}).call(this,e("_process"))},{"./core":233,"./credentials":234,"./credentials/cognito_identity_credentials":235,"./credentials/credential_provider_chain":236,"./credentials/saml_credentials":237,"./credentials/temporary_credentials":238,"./credentials/web_identity_credentials":239,"./http/xhr":248,"./util":297,"./xml/browser_parser":298,_process:458,"buffer/":302,"create-hash":305,"create-hmac":308,"querystring/":465,"url/":492}],231:[function(e,t,r){var a=e("../core"),i=a.util.url,s=a.util.crypto.lib,n=a.util.base64.encode,o=a.util.inherit,u=function(e){var t={"+":"-","=":"_","/":"~"};return e.replace(/[\+=\/]/g,function(e){return t[e]})},p=function(e,t){var r=s.createSign("RSA-SHA1");return r.write(e),u(r.sign(t,"base64"))},c=function(e,t,r,a){var i=JSON.stringify({Statement:[{Resource:e,Condition:{DateLessThan:{"AWS:EpochTime":t}}}]});return{Expires:t,"Key-Pair-Id":r,Signature:p(i.toString(),a)}},m=function(e,t,r){return e=e.replace(/\s/gm,e),{Policy:u(n(e)),"Key-Pair-Id":t,Signature:p(e,r)}},l=function(e){var t=e.split("://");if(t.length<2)throw new Error("Invalid URL.");return t[0].replace("*","")},d=function(e){var t=i.parse(e);return t.path.replace(/^\//,"")+(t.hash||"")},y=function(e){switch(l(e)){case"http":case"https":return e;case"rtmp":return d(e);default:throw new Error("Invalid URI scheme. Scheme must be one of http, https, or rtmp")}},b=function(e,t){if(!t||"function"!=typeof t)throw e;t(e)},h=function(e,t){if(!t||"function"!=typeof t)return e;t(null,e)};a.CloudFront.Signer=o({constructor:function(e,t){if(void 0===e||void 0===t)throw new Error("A key pair ID and private key are required");this.keyPairId=e,this.privateKey=t},getSignedCookie:function(e,t){var r="policy"in e?m(e.policy,this.keyPairId,this.privateKey):c(e.url,e.expires,this.keyPairId,this.privateKey),a={};for(var i in r)Object.prototype.hasOwnProperty.call(r,i)&&(a["CloudFront-"+i]=r[i]);return h(a,t)},getSignedUrl:function(e,t){try{var r=y(e.url)}catch(e){return b(e,t)}var a=i.parse(e.url,!0),s=Object.prototype.hasOwnProperty.call(e,"policy")?m(e.policy,this.keyPairId,this.privateKey):c(r,e.expires,this.keyPairId,this.privateKey);a.search=null;for(var n in s)Object.prototype.hasOwnProperty.call(s,n)&&(a.query[n]=s[n]);try{var o="rtmp"===l(e.url)?d(i.format(a)):i.format(a)}catch(e){return b(e,t)}return h(o,t)}}),t.exports=a.CloudFront.Signer},{"../core":233}],232:[function(e,t,r){var a=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var i;a.Config=a.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),a.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:i.credentials)}function r(e,t){return new a.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,a){e&&(e=r("Could not load credentials from any providers",e)),i.credentials=a,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),a.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||a.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(a.util.readFileSync(e)),r=new a.FileSystemCredentials(e),i=new a.CredentialProviderChain;return i.providers.unshift(r),i.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){a.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]="function"==typeof r?r.call(this):r):"httpOptions"===e&&this[e]?this[e]=a.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=a.util.copy(e),e.credentials=new a.Credentials(e)),e},setPromisesDependency:function(e){i=e,null===e&&"function"==typeof Promise&&(i=Promise);var t=[a.Request,a.Credentials,a.CredentialProviderChain];a.S3&&a.S3.ManagedUpload&&t.push(a.S3.ManagedUpload),a.util.addPromises(t,i)},getPromisesDependency:function(){return i}}),a.config=new a.Config},{"./core":233,"./credentials":234,"./credentials/credential_provider_chain":236}],233:[function(e,t,r){var a={util:e("./util")};({}).toString(),t.exports=a,a.util.update(a,{VERSION:"2.182.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")}),e("./service"),e("./config"),e("./http"),e("./sequential_executor"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),a.events=new a.SequentialExecutor},{"./api_loader":229,"./config":232,"./event_listeners":246,"./http":247,"./json/builder":249,"./json/parser":250,"./model/api":251,"./model/operation":253,"./model/paginator":254,"./model/resource_waiter":255,"./model/shape":256,"./param_validator":257,"./protocol/json":259,"./protocol/query":260,"./protocol/rest":261,"./protocol/rest_json":262,"./protocol/rest_xml":263,"./request":268,"./resource_waiter":269,"./response":270,"./sequential_executor":272,"./service":273,"./signers/request_signer":289,"./util":297,"./xml/builder":299}],234:[function(e,t,r){var a=e("./core");a.Credentials=a.util.inherit({constructor:function(){if(a.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=a.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(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()}}),a.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=a.util.promisifyMethod("get",e),this.prototype.refreshPromise=a.util.promisifyMethod("refresh",e)},a.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},a.util.addPromises(a.Credentials)},{"./core":233}],235:[function(e,t,r){var a=e("../core"),i=e("../../clients/cognitoidentity"),s=e("../../clients/sts");a.CognitoIdentityCredentials=a.util.inherit(a.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e,t){a.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=a.util.copy(t||{}),this.loadCachedId();var r=this;Object.defineProperty(this,"identityId",{get:function(){return r.loadCachedId(),r._identityId||r.params.IdentityId},set:function(e){r._identityId=e}})},refresh:function(e){var t=this;t.createClients(),t.data=null,t._identityId=null,t.getId(function(r){r?(t.clearIdOnNotAuthorized(r),e(r)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)})},clearCachedId:function(){this._identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},clearIdOnNotAuthorized:function(e){var t=this;"NotAuthorizedException"==e.code&&t.clearCachedId()},getId:function(e){var t=this;if("string"==typeof t.params.IdentityId)return e(null,t.params.IdentityId);t.cognito.getId(function(r,a){!r&&a.IdentityId?(t.params.IdentityId=a.IdentityId,e(null,a.IdentityId)):e(r)})},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity(function(r,a){r?t.clearIdOnNotAuthorized(r):(t.cacheId(a),t.data=a,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,a){r?(t.clearIdOnNotAuthorized(r),e(r)):(t.cacheId(a),t.params.WebIdentityToken=a.Token,t.webIdentityCredentials.refresh(function(r){r||(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(r)}))})},loadCachedId:function(){var e=this;if(a.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage("id");if(t&&e.params.Logins){var r=Object.keys(e.params.Logins);0!==(e.getStorage("providers")||"").split(",").filter(function(e){return-1!==r.indexOf(e)}).length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){var e=this._clientConfig;if(this.webIdentityCredentials=this.webIdentityCredentials||new a.WebIdentityCredentials(this.params,e),!this.cognito){var t=a.util.merge({},e);t.params=this.params,this.cognito=new i(t)}this.sts=this.sts||new s(e) -},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,a.util.isBrowser()&&(this.setStorage("id",e.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]=t}catch(e){}},storage:function(){try{var e=a.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{};return e["aws.test-storage"]="foobar",delete e["aws.test-storage"],e}catch(e){return{}}}()})},{"../../clients/cognitoidentity":179,"../../clients/sts":226,"../core":233}],236:[function(e,t,r){var a=e("../core");a.CredentialProviderChain=a.util.inherit(a.Credentials,{constructor:function(e){this.providers=e||a.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(e){function t(i,s){if(!i&&s||r===a.length)return void e(i,s);var n=a[r++];s="function"==typeof n?n.call():n,s.get?s.get(function(e){t(e,e?null:s)}):t(null,s)}if(0===this.providers.length)return e(new Error("No providers")),this;var r=0,a=this.providers.slice(0);return t(),this}}),a.CredentialProviderChain.defaultProviders=[],a.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=a.util.promisifyMethod("resolve",e)},a.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},a.util.addPromises(a.CredentialProviderChain)},{"../core":233}],237:[function(e,t,r){var a=e("../core"),i=e("../../clients/sts");a.SAMLCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithSAML(function(r,a){r||t.service.credentialsFrom(a,t),e(r)})},createClients:function(){this.service=this.service||new i({params:this.params})}})},{"../../clients/sts":226,"../core":233}],238:[function(e,t,r){var a=e("../core"),i=e("../../clients/sts");a.TemporaryCredentials=a.util.inherit(a.Credentials,{constructor:function(e,t){a.Credentials.call(this),this.loadMasterCredentials(t),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.masterCredentials.get(function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,function(r,a){r||t.service.credentialsFrom(a,t),e(r)})})},loadMasterCredentials:function(e){for(this.masterCredentials=e||a.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;"function"!=typeof this.masterCredentials.get&&(this.masterCredentials=new a.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new i({params:this.params})}})},{"../../clients/sts":226,"../core":233}],239:[function(e,t,r){var a=e("../core"),i=e("../../clients/sts");a.WebIdentityCredentials=a.util.inherit(a.Credentials,{constructor:function(e,t){a.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null,this._clientConfig=a.util.copy(t||{})},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithWebIdentity(function(r,a){t.data=null,r||(t.data=a,t.service.credentialsFrom(a,t)),e(r)})},createClients:function(){if(!this.service){var e=a.util.merge({},this._clientConfig);e.params=this.params,this.service=new i(e)}}})},{"../../clients/sts":226,"../core":233}],240:[function(e,t,r){function a(e,t){for(var r={L:[]},a=0;a=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();i.util.computeSha256(s,function(r,a){r?t(r):(e.httpRequest.headers["X-Amz-Content-Sha256"]=a,t())})}else t()}}),e("SET_CONTENT_LENGTH","afterBuild",function(e){var t=a(e);if(void 0===e.httpRequest.headers["Content-Length"]&&-1===t.indexOf("unsigned-body")){var r=i.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=r}}),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):n()}):n()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r,a){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=a,r.httpResponse.headers=t,r.httpResponse.body=new i.util.Buffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var s=t.date||t.Date,n=r.request.service;if(s){var o=Date.parse(s);n.config.correctClockSkew&&n.isClockSkewed(o)&&n.applyClockOffset(o)}}),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"],a={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[a,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=this.HEADERS_RECEIVED&&!m&&(u.statusCode=c.status,u.headers=n.parseHeaders(c.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers,c.statusText),m=!0),this.readyState===this.DONE&&n.finishRequest(c,u)},!1),c.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),c.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),c.addEventListener("timeout",function(){s(a.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),c.addEventListener("error",function(){s(a.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),c.addEventListener("abort",function(){s(a.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))},!1),r(u),c.open(e.method,p,!1!==t.xhrAsync),a.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&c.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(c.timeout=t.timeout),t.xhrWithCredentials&&(c.withCredentials=!0);try{c.responseType="arraybuffer"}catch(e){}try{e.body?c.send(e.body):c.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;c.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return a.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],a=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=a)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var i=e.response;r=new a.util.Buffer(i.byteLength);for(var s=new Uint8Array(i),n=0;n-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 l(){s.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function d(){s.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function y(){s.apply(this,arguments),this.toType=g.base64.decode,this.toWireFormat=g.base64.encode}function b(){y.apply(this,arguments)}function h(){s.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null===e||void 0===e?null:"true"===e}}var S=e("./collection"),g=e("../util");s.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},s.types={structure:o,list:u,map:p,boolean:h,timestamp:c,float:l,integer:d,string:m,base64:b,binary:y},s.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},s.create=function(e,t,r){if(e.isShape)return e;var a=s.resolve(e,t);if(a){var i=Object.keys(e);t.documentation||(i=i.filter(function(e){return!e.match(/documentation/)}));var n=function(){a.constructor.call(this,e,t,r)};return n.prototype=a,new n}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var o=e.type;if(s.normalizedTypes[e.type]&&(e.type=s.normalizedTypes[e.type]),s.types[e.type])return new s.types[e.type](e,t,r);throw new Error("Unrecognized shape type: "+o)},s.shapes={StructureShape:o,ListShape:u,MapShape:p,StringShape:m,BooleanShape:h,Base64Shape:b},t.exports=s},{"../util":297,"./collection":252}],257:[function(e,t,r){var a=e("./core");a.ParamValidator=a.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,a.util.error(new Error(i),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(a.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var a,i=0;e.required&&i= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+a+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+r)},validateType:function(e,t,r,i){if(null===e||void 0===e)return!1;for(var s=!1,n=0;n0)try{var a=JSON.parse(r.body.toString());(a.__type||a.code)&&(t.code=(a.__type||a.code).split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=a.message||a.Message||null}catch(a){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=n.error(new Error,t)}function s(e){var t=e.httpResponse.body.toString()||"{}";if(!1===e.request.service.config.convertResponseTypes)e.data=JSON.parse(t);else{var r=e.request.service.api.operations[e.request.operation],a=r.output||{},i=new u;e.data=i.parse(t,a)}}var n=e("../util"),o=e("../json/builder"),u=e("../json/parser");t.exports={buildRequest:a,extractError:i,extractData:s}},{"../json/builder":249,"../json/parser":250,"../util":297}],260:[function(e,t,r){function a(e){var t=e.service.api.operations[e.operation],r=e.httpRequest;r.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",r.params={Version:e.service.api.apiVersion,Action:t.name},(new u).serialize(e.params,t.input,function(e,t){r.params[e]=t}),r.body=o.queryParamsToString(r.params)}function i(e){var t,r=e.httpResponse.body.toString();if(r.match("=0?"&":"?";var o=[];c.arrayEach(Object.keys(s).sort(),function(e){Array.isArray(s[e])||(s[e]=[s[e]]);for(var t=0;t0){t=new o.XML.Parser;var m=t.parse(a.toString(),s);u.update(e.data,m)}}var o=e("../core"),u=e("../util"),p=e("./rest");t.exports={buildRequest:i,extractError:s,extractData:n}},{"../core":233,"../util":297,"./rest":261}],264:[function(e,t,r){function a(){}function i(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function s(e,t,r,a){p.each(r.members,function(r,s){var n=t[r];if(null!==n&&void 0!==n){var o=i(s);o=e?e+"."+o:o,u(o,n,s,a)}})}function n(e,t,r,a){var i=1;p.each(t,function(t,s){var n=r.flattened?".":".entry.",o=n+i+++".",p=o+(r.key.name||"key"),c=o+(r.value.name||"value");u(e+p,t,r.key,a),u(e+c,s,r.value,a)})}function o(e,t,r,a){var s=r.member||{};if(0===t.length)return void a.call(this,e,null);p.arrayEach(t,function(t,n){var o="."+(n+1);if("ec2"===r.api.protocol)o+="";else if(r.flattened){if(s.name){var p=e.split(".");p.pop(),p.push(i(s)),e=p.join(".")}}else o="."+(s.name?s.name:"member")+o;u(e+o,t,s,a)})}function u(e,t,r,a){null!==t&&void 0!==t&&("structure"===r.type?s(e,t,r,a):"list"===r.type?o(e,t,r,a):"map"===r.type?n(e,t,r,a):a(e,r.toWireFormat(t).toString()))}var p=e("../util");a.prototype.serialize=function(e,t,r){s("",e,t,r)},t.exports=a},{"../util":297}],265:[function(e,t,r){var a=e("../core"),i=null,s={signatureVersion:"v4",signingName:"rds-db"},n={region:"string",hostname:"string",port:"number",username:"string"};a.RDS.Signer=a.util.inherit({constructor:function(e){this.options=e||{}},convertUrlToAuthToken:function(e){if(0===e.indexOf("https://"))return e.substring("https://".length)},getAuthToken:function(e,t){"function"==typeof e&&void 0===t&&(t=e,e={});var r=this,n="function"==typeof t;e=a.util.merge(this.options,e);var o=this.validateAuthTokenOptions(e);if(!0!==o){if(n)return t(o,null);throw o}var u={region:e.region,endpoint:new a.Endpoint(e.hostname+":"+e.port),paramValidation:!1,signatureVersion:"v4"};e.credentials&&(u.credentials=e.credentials),i=new a.Service(u),i.api=s;var p=i.makeRequest();if(this.modifyRequestForAuthToken(p,e),!n){var c=p.presign(900);return this.convertUrlToAuthToken(c)}p.presign(900,function(e,a){a&&(a=r.convertUrlToAuthToken(a)),t(e,a)})},modifyRequestForAuthToken:function(e,t){e.on("build",e.buildAsGet),e.httpRequest.body=a.util.queryParamsToString({Action:"connect",DBUser:t.username})},validateAuthTokenOptions:function(e){var t="";e=e||{};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&typeof e[r]!==n[r]&&(t+="option '"+r+"' should have been type '"+n[r]+"', was '"+typeof e[r]+"'.\n");return!t.length||a.util.error(new Error,{code:"InvalidParameter",message:t})}})},{"../core":233}],266:[function(e,t,r){function a(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}function i(e){var t=e.config.region,r=a(t),i=e.api.endpointPrefix;return[[t,i],[r,i],[t,"*"],[r,"*"],["*",i],["*","*"]].map(function(e){return e[0]&&e[1]?e.join("/"):null})}function s(e,t){o.each(t,function(t,r){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function n(e){for(var t=i(e),r=0;r=0){u=!0;var p=0}var c=function(){u&&p!==o?i.emit("error",a.util.error(new Error("Stream content length mismatch. Received "+p+" of "+o+" bytes."),{code:"StreamContentLengthMismatch"})):2===a.HttpClient.streamsApiVersion?i.end():i.emit("end")},m=n.httpResponse.createUnbufferedStream();if(2===a.HttpClient.streamsApiVersion)if(u){var l=new e.PassThrough;l._write=function(t){return t&&t.length&&(p+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},l.on("end",c),i.on("error",function(e){u=!1,m.unpipe(l),l.emit("end"),l.end()}),m.pipe(l).pipe(i,{end:!1})}else m.pipe(i);else u&&m.on("data",function(e){e&&e.length&&(p+=e.length)}),m.on("data",function(e){i.emit("data",e)}),m.on("end",c);m.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)),a.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 a.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this.removeListener("validate",a.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",a.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),a.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()})}},a.Request.deletePromisesFromClass=function(){delete this.prototype.promise},a.util.addPromises(a.Request),a.util.mixin(a.Request,a.SequentialExecutor)}).call(this,e("_process"))},{"./core":233,"./state_machine":296,_process:458,jmespath:316}],269:[function(e,t,r){function a(e){var t=e.request._waiter,r=t.config.acceptors,a=!1,i="retry";r.forEach(function(r){if(!a){var s=t.matchers[r.matcher];s&&s(e,r.expected,r.argument)&&(a=!0,i=r.state)}}),!a&&e.error&&(i="failure"),"success"===i?t.setSuccess(e):t.setError(e,"retry"===i)}var i=e("./core"),s=i.util.inherit,n=e("jmespath");i.ResourceWaiter=s({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,r){try{var a=n.search(e.data,r)}catch(e){return!1}return n.strictDeepEqual(a,t)},pathAll:function(e,t,r){try{var a=n.search(e.data,r)}catch(e){return!1}Array.isArray(a)||(a=[a]);var i=a.length;if(!i)return!1;for(var s=0;s=1&&t.doneParts===t.numParts&&t.finishMultiPart()}))}r&&t.fillQueue.call(t)},abort:function(){this.cleanup(a.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 a.util.Buffer(e.body);else if(!e.body)throw new Error("params.Body is required");e.sliceFn=a.util.arraySliceFn(e.body)},bindServiceObject:function(e){e=e||{};var t=this;if(t.service){var r=t.service,i=a.util.copy(r.config);i.signatureVersion=r.getSignatureVersion(),t.service=new r.constructor.__super__(i),t.service.config.params=a.util.merge(t.service.config.params||{},e)}else t.service=new a.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]:s.concat(e.partBuffers);if(e.partBuffers=[],e.partBufferLength=0,r.length>e.partSize){var a=r.slice(e.partSize);e.partBuffers.push(a),e.partBufferLength+=a.length,r=r.slice(0,e.partSize)}e.nextChunk(r)}e.isDoneChunking&&!e.isDoneSending&&(r=1===e.partBuffers.length?e.partBuffers[0]:s.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 s=t.service.putObject(i);return s._managedUpload=t,s.on("httpUploadProgress",t.progress).send(t.finishSinglePart),null}if(t.service.config.params.ContentMD5){var n=a.util.error(new Error("The Content-MD5 you specified is invalid for multi-part uploads."),{code:"InvalidDigest",retryable:!1});return t.cleanup(n),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-1&&r.splice(i,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var a=this.listeners(e),i=a.length;return this.callListeners(a,t,r),i>0},callListeners:function(e,t,r,i){function s(i){if(i&&(o=a.util.error(o||new Error,i),n._haltHandlersOnError))return r.call(n,o);n.callListeners(e,t,r,o)}for(var n=this,o=i||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(n,t.concat([s]));try{u.apply(n,t)}catch(e){o=a.util.error(o||new Error,e)}if(o&&n._haltHandlersOnError)return void r.call(n,o)}r.call(n,o)},addListeners:function(e){var t=this;return e._events&&(e=e._events),a.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),a.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r){return this[e]=r,this.addListener(t,r),this},addNamedAsyncListener:function(e,t,r){return r._isAsync=!0,this.addNamedListener(e,t,r)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),a.SequentialExecutor.prototype.addListener=a.SequentialExecutor.prototype.on,t.exports=a.SequentialExecutor},{"./core":233}],273:[function(e,t,r){var a=e("./core"),i=e("./model/api"),s=e("./region_config"),n=a.util.inherit,o=0;a.Service=n({constructor:function(e){if(!this.loadServiceClass)throw a.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var r=a.util.copy(e),i=new t(e);return Object.defineProperty(i,"_originalConfig",{get:function(){return r},enumerable:!1,configurable:!0}),i._clientId=++o,i}this.initialize(e)},initialize:function(e){var t=a.config[this.serviceIdentifier];this.config=new a.Config(a.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||s(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(e){var t=e;if(a.util.isEmpty(this.api)){if(t.apiConfig)return a.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new a.Config(a.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&a.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?a.util.isType(e,Date)&&(e=a.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,i=t.length-1;i>=0;i--)if("*"!==t[i][t[i].length-1]&&(r=t[i]),t[i].substr(0,10)<=e)return r;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+e+"'")},api:{},defaultRetryCount:3,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=a.util.copy(t),a.util.each(this.config.params,function(e,r){i.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var s=new a.Request(this,e,t);return this.addAllRequestListeners(s),r&&s.send(r),s},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var a=this.makeRequest(e,t).toUnauthenticated();return r?a.send(r):a},waitFor:function(e,t,r){return new a.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[a.events,a.EventListeners.Core,this.serviceInterface(),a.EventListeners.CorePost],r=0;r=500)))},networkingError:function(e){return"NetworkingError"===e.code},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":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new a.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var i=new Error;throw a.util.error(i,"No pagination configuration for "+e)}return null}return r}}),a.util.update(a.Service,{defineMethods:function(e){a.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){"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){a.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var i=n(a.Service,r||{});if("string"==typeof e){a.Service.addVersions(i,t);var s=i.serviceIdentifier||e;i.serviceIdentifier=s}else i.prototype.api=e,a.Service.defineMethods(i);return i},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r=0){throw a.util.error(new Error,{name:"InvalidEndpoint",message:"AWS.IotData requires an explicit `endpoint' configuration option."})}},setupRequestListeners:function(e){e.addListener("validateResponse",this.validateResponseBody),i.indexOf(e.operation)>-1&&e.addListener("extractData",a.util.convertPayloadToString)},validateResponseBody:function(e){var t=e.httpResponse.body.toString()||"{}",r=t.trim();r&&"{"===r.charAt(0)||(e.httpResponse.body="")}})},{"../core":233}],280:[function(e,t,r){var a=e("../core");a.util.update(a.Lambda.prototype,{setupRequestListeners:function(e){"invoke"===e.operation&&e.addListener("extractData",a.util.convertPayloadToString)}})},{"../core":233}],281:[function(e,t,r){var a=e("../core");a.util.update(a.MachineLearning.prototype,{setupRequestListeners:function(e){"predict"===e.operation&&e.addListener("build",this.buildEndpoint)},buildEndpoint:function(e){var t=e.params.PredictEndpoint;t&&(e.httpRequest.endpoint=new a.Endpoint(t))}})},{"../core":233}],282:[function(e,t,r){e("../polly/presigner")},{"../polly/presigner":258}],283:[function(e,t,r){var a=e("../core");e("../rds/signer");var i=["copyDBSnapshot","createDBInstanceReadReplica","createDBCluster","copyDBClusterSnapshot"];a.util.update(a.RDS.prototype,{setupRequestListeners:function(e){if(-1!==i.indexOf(e.operation)&&e.params.SourceRegion)if(e.params=a.util.copy(e.params),e.params.PreSignedUrl||e.params.SourceRegion===this.config.region)delete e.params.SourceRegion;else{var t=!!this.config.paramValidation;t&&e.removeListener("validate",a.EventListeners.Core.VALIDATE_PARAMETERS),e.onAsync("validate",this.buildCrossRegionPresignedUrl),t&&e.addListener("validate",a.EventListeners.Core.VALIDATE_PARAMETERS)}},buildCrossRegionPresignedUrl:function(e,t){var r=a.util.copy(e.service.config);r.region=e.params.SourceRegion,delete e.params.SourceRegion,delete r.endpoint,delete r.params,r.signatureVersion="v4";var i=e.service.config.region,s=new e.service.constructor(r),n=s[e.operation](a.util.copy(e.params));n.on("build",function(e){var t=e.httpRequest;t.params.DestinationRegion=i,t.body=a.util.queryParamsToString(t.params)}),n.presign(function(r,a){r?t(r):(e.params.PreSignedUrl=a,t())})}})},{"../core":233,"../rds/signer":265}],284:[function(e,t,r){var a=e("../core");a.util.update(a.Route53.prototype,{setupRequestListeners:function(e){e.on("build",this.sanitizeUrl)},sanitizeUrl:function(e){var t=e.httpRequest.path;e.httpRequest.path=t.replace(/\/%2F\w+%2F/,"/")},retryableError:function(e){return"PriorRequestNotComplete"===e.code&&400===e.statusCode||a.Service.prototype.retryableError.call(this,e)}})},{"../core":233}],285:[function(e,t,r){var a=e("../core"),i=e("../signers/v4_credentials");e("../s3/managed_upload");var s={completeMultipartUpload:!0,copyObject:!0,uploadPartCopy:!0},n=["AuthorizationHeaderMalformed","BadRequest","PermanentRedirect",301];a.util.update(a.S3.prototype,{getSignatureVersion:function(e){var t=this.api.signatureVersion,r=this._originalConfig?this._originalConfig.signatureVersion:null,a=this.config.signatureVersion,i=!!e&&e.isPresigned();return r?r="v2"===r?"s3":r:(!0!==i?t="v4":a&&(t=a),t)},getSignerClass:function(e){var t=this.getSignatureVersion(e);return a.Signers.RequestSigner.getVersion(t)},validateService:function(){var e,t=[];if(this.config.region||(this.config.region="us-east-1"),!this.config.endpoint&&this.config.s3BucketEndpoint&&t.push("An endpoint must be provided when configuring `s3BucketEndpoint` to true."),1===t.length?e=t[0]:t.length>1&&(e="Multiple configuration errors:\n"+t.join("\n")),e)throw a.util.error(new Error,{name:"InvalidEndpoint",message:e})},shouldDisableBodySigning:function(e){var t=this.getSignerClass();return!0===this.config.s3DisableBodySigning&&t===a.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),e.addListener("build",this.addContentType),e.addListener("build",this.populateURI),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("afterBuild",this.addExpect100Continue),e.removeListener("validate",a.EventListeners.Core.VALIDATE_REGION),e.addListener("extractError",this.extractError),e.onAsync("extractError",this.requestBucketRegion),e.addListener("extractData",this.extractData),e.addListener("extractData",a.util.hoistPayloadMember),e.addListener("beforePresign",this.prepareSignedUrl),a.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError),this.shouldDisableBodySigning(e)&&(e.removeListener("afterBuild",a.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 a.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 a.util.error(new Error,{code:"ConfigError",message:"Cannot send requests to root API with `s3BucketEndpoint` set."})}},validateBucketName:function(e){if("v4"===e.service.getSignatureVersion(e)){var t=e.params&&e.params.Bucket,r=e.params&&e.params.Key,i=t&&t.indexOf("/");if(t&&i>=0){if("string"!=typeof r){var s="Bucket names cannot contain forward slashes. Bucket: "+t;throw a.util.error(new Error,{code:"InvalidBucket",message:s})}e.params=a.util.copy(e.params);var n=t.substr(i+1)||"";e.params.Key=n+"/"+r,e.params.Bucket=t.substr(0,i)}}},isValidAccelerateOperation:function(e){return-1===["createBucket","deleteBucket","listBuckets"].indexOf(e)},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,a=e.service,i=t.endpoint;if(r&&!a.pathStyleBucketName(r)){a.config.useAccelerateEndpoint&&a.isValidAccelerateOperation(e.operation)?a.config.useDualstack?i.hostname=r+".s3-accelerate.dualstack.amazonaws.com":i.hostname=r+".s3-accelerate.amazonaws.com":a.config.s3BucketEndpoint||(i.hostname=r+"."+i.hostname);var s=i.port;i.host=80!==s&&443!==s?i.hostname+":"+i.port:i.hostname,t.virtualHostedBucket=r,a.removeVirtualHostedBucketFromPath(e)}},removeVirtualHostedBucketFromPath:function(e){var t=e.httpRequest,r=t.virtualHostedBucket;r&&t.path&&(t.path=t.path.replace(new RegExp("/"+r),""),"/"!==t.path[0]&&(t.path="/"+t.path))},addExpect100Continue:function(e){var t=e.httpRequest.headers["Content-Length"];a.util.isNode()&&t>=1048576&&(e.httpRequest.headers.Expect="100-continue")},addContentType:function(e){var t=e.httpRequest;if("GET"===t.method||"HEAD"===t.method)return void delete t.headers["Content-Type"];t.headers["Content-Type"]||(t.headers["Content-Type"]="application/octet-stream");var r=t.headers["Content-Type"];if(a.util.isBrowser())if("string"!=typeof t.body||r.match(/;\s*charset=/)){var i=function(e,t,r){return t+r.toUpperCase()};t.headers["Content-Type"]=r.replace(/(;\s*charset=)(.+)$/,i)}else{t.headers["Content-Type"]+="; charset=UTF-8"}},computableChecksumOperations:{putBucketCors:!0,putBucketLifecycle:!0,putBucketLifecycleConfiguration:!0,putBucketTagging:!0,deleteObjects:!0,putBucketReplication:!0},willComputeChecksums:function(e){if(this.computableChecksumOperations[e.operation])return!0;if(!this.config.computeChecksums)return!1;if(!a.util.Buffer.isBuffer(e.httpRequest.body)&&"string"!=typeof e.httpRequest.body)return!1;var t=e.service.api.operations[e.operation].input.members;return!(!e.service.shouldDisableBodySigning(e)||Object.prototype.hasOwnProperty.call(e.httpRequest.headers,"presigned-expires")||!t.ContentMD5||e.params.ContentMD5)||!(e.service.getSignerClass(e)===a.Signers.V4&&t.ContentMD5&&!t.ContentMD5.required)&&(!(!t.ContentMD5||e.params.ContentMD5)||void 0)},computeContentMd5:function(e){if(e.service.willComputeChecksums(e)){var t=a.util.crypto.md5(e.httpRequest.body,"base64");e.httpRequest.headers["Content-MD5"]=t}},computeSseCustomerKeyMd5:function(e){var t={SSECustomerKey:"x-amz-server-side-encryption-customer-key-MD5",CopySourceSSECustomerKey:"x-amz-copy-source-server-side-encryption-customer-key-MD5"};a.util.each(t,function(t,r){if(e.params[t]){var i=a.util.crypto.md5(e.params[t],"base64");e.httpRequest.headers[r]=i}})},pathStyleBucketName:function(e){return!!this.config.s3ForcePathStyle||!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]$/),a=new RegExp(/(\d+\.){3}\d+/),i=new RegExp(/\.\./);return!(!t.match(r)||t.match(a)||t.match(i))},successfulResponse:function(e){var t=e.request,r=e.httpResponse;return(!s[t.operation]||!r.body.toString().match(""))&&r.statusCode<300},retryableError:function(e,t){return!(!s[t.operation]||200!==e.statusCode)||(!t._requestRegionForBucket||!t.service.bucketRegionCache[t._requestRegionForBucket])&&(!(!e||"RequestTimeout"!==e.code)||(e&&-1!=n.indexOf(e.code)&&e.region&&e.region!=t.httpRequest.region?(t.httpRequest.region=e.region,301===e.statusCode&&t.service.updateReqBucketRegion(t),!0):a.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,s=i.config,n=s.s3BucketEndpoint;n&&delete s.s3BucketEndpoint;var o=a.util.copy(s);delete o.endpoint,o.region=r.region,r.endpoint=new a.S3(o).endpoint,i.populateURI(e),s.s3BucketEndpoint=n,r.headers.Host=r.endpoint.host,"validate"===e._asm.currentState&&(e.removeListener("build",i.populateURI),e.addListener("build",i.removeVirtualHostedBucketFromPath))}},extractData:function(e){var t=e.request;if("getBucketLocation"===t.operation){var r=e.httpResponse.body.toString().match(/>(.+)<\/Location/);delete e.data._,e.data.LocationConstraint=r?r[1]:""}var a=t.params.Bucket||null;if("deleteBucket"!==t.operation||"string"!=typeof a||e.error){var i=e.httpResponse.headers||{},s=i["x-amz-bucket-region"]||null;if(!s&&"createBucket"===t.operation&&!e.error){var n=t.params.CreateBucketConfiguration;s=n?"EU"===n.LocationConstraint?"eu-west-1":n.LocationConstraint:"us-east-1"}s&&a&&s!==t.service.bucketRegionCache[a]&&(t.service.bucketRegionCache[a]=s)}else t.service.clearBucketRegionCache(a);t.service.extractRequestIds(e)},extractError:function(e){var t={304:"NotModified",403:"Forbidden",400:"BadRequest",404:"NotFound"},r=e.request,i=e.httpResponse.statusCode,s=e.httpResponse.body||"",n=e.httpResponse.headers||{},o=n["x-amz-bucket-region"]||null,u=r.params.Bucket||null,p=r.service.bucketRegionCache;o&&u&&o!==p[u]&&(p[u]=o);var c;if(t[i]&&0===s.length)u&&!o&&(c=p[u]||null)!==r.httpRequest.region&&(o=c),e.error=a.util.error(new Error,{code:t[i],message:null,region:o});else{var m=(new a.XML.Parser).parse(s.toString());m.Region&&!o?(o=m.Region,u&&o!==p[u]&&(p[u]=o)):!u||o||m.Region||(c=p[u]||null)!==r.httpRequest.region&&(o=c),e.error=a.util.error(new Error,{code:m.Code||i,message:m.Message||null,region:o})}r.service.extractRequestIds(e)},requestBucketRegion:function(e,t){var r=e.error,i=e.request,s=i.params.Bucket||null;if(!r||!s||r.region||"listObjects"===i.operation||a.util.isNode()&&"headBucket"===i.operation||400===r.statusCode&&"headObject"!==i.operation||-1===n.indexOf(r.code))return t();var o=a.util.isNode()?"headBucket":"listObjects",u={Bucket:s};"listObjects"===o&&(u.MaxKeys=0) -;var p=i.service[o](u);p._requestRegionForBucket=s,p.send(function(){var e=i.service.bucketRegionCache[s]||null;r.region=e,t()})},reqRegionForNetworkingError:function(e,t){if(!a.util.isBrowser())return t();var r=e.error,i=e.request,s=i.params.Bucket;if(!r||"NetworkingError"!==r.code||!s||"us-east-1"===i.httpRequest.region)return t();var n=i.service,o=n.bucketRegionCache,u=o[s]||null;if(u&&u!==i.httpRequest.region)n.updateReqBucketRegion(i,u),t();else if(n.dnsCompatibleBucketName(s))if(i.httpRequest.virtualHostedBucket){var p=n.listObjects({Bucket:s,MaxKeys:0});n.updateReqBucketRegion(p,"us-east-1"),p._requestRegionForBucket=s,p.send(function(){var e=n.bucketRegionCache[s]||null;e&&e!==i.httpRequest.region&&n.updateReqBucketRegion(i,e),t()})}else t();else n.updateReqBucketRegion(i,"us-east-1"),"us-east-1"!==o[s]&&(o[s]="us-east-1"),t()},bucketRegionCache:{},clearBucketRegionCache:function(e){var t=this.bucketRegionCache;e?"string"==typeof e&&(e=[e]):e=Object.keys(t);for(var r=0;r0&&t.throwInvalidChecksumError(e,s,"Invalid messages: "+i.join(", "))}},verifyReceiveMessageChecksum:function(e){if(e.data){var t=this.service,r=[];a.util.arrayEach(e.data.Messages,function(e){var a=e.MD5OfBody,i=e.Body;t.isChecksumValid(a,i)||r.push(e.MessageId)}),r.length>0&&t.throwInvalidChecksumError(e,r,"Invalid messages: "+r.join(", "))}},throwInvalidChecksumError:function(e,t,r){e.error=a.util.error(new Error,{retryable:!0,code:"InvalidChecksum",messageIds:t,message:e.request.operation+" returned an invalid MD5 response. "+r})},isChecksumValid:function(e,t){return this.calculateChecksum(t)===e},calculateChecksum:function(e){return a.util.crypto.md5(e,"hex")},buildEndpoint:function(e){var t=e.httpRequest.params.QueueUrl;if(t){e.httpRequest.endpoint=new a.Endpoint(t);var r=e.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);r&&(e.httpRequest.region=r[1])}}})},{"../core":233}],287:[function(e,t,r){var a=e("../core");a.util.update(a.STS.prototype,{credentialsFrom:function(e,t){return e?(t||(t=new a.TemporaryCredentials),t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretAccessKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration,t):null},assumeRoleWithWebIdentity:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithWebIdentity",e,t)},assumeRoleWithSAML:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithSAML",e,t)}})},{"../core":233}],288:[function(e,t,r){function a(e){var t=e.httpRequest.headers[o],r=e.service.getSignerClass(e);if(delete e.httpRequest.headers["User-Agent"],delete e.httpRequest.headers["X-Amz-User-Agent"],r===s.Signers.V4){if(t>604800){throw s.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[o]=t}else{if(r!==s.Signers.S3)throw s.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var a=e.service?e.service.getSkewCorrectedDate():s.util.date.getDate();e.httpRequest.headers[o]=parseInt(s.util.date.unixTimestamp(a)+t,10).toString()}}function i(e){var t=e.httpRequest.endpoint,r=s.util.urlParse(e.httpRequest.path),a={};r.search&&(a=s.util.queryStringParse(r.search.substr(1)));var i=e.httpRequest.headers.Authorization.split(" ");if("AWS"===i[0])i=i[1].split(":"),a.AWSAccessKeyId=i[0],a.Signature=i[1],s.util.each(e.httpRequest.headers,function(e,t){e===o&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete a[e],e=e.toLowerCase()),a[e]=t}),delete e.httpRequest.headers[o],delete a.Authorization,delete a.Host;else if("AWS4-HMAC-SHA256"===i[0]){i.shift();var n=i.join(" "),u=n.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];a["X-Amz-Signature"]=u,delete a.Expires}t.pathname=r.pathname,t.search=s.util.queryParamsToString(a)}var s=e("../core"),n=s.util.inherit,o="presigned-expires";s.Signers.Presign=n({sign:function(e,t,r){if(e.httpRequest.headers[o]=t||3600,e.on("build",a),e.on("sign",i),e.removeListener("afterBuild",s.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",s.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return s.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,s.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=s.Signers.Presign},{"../core":233}],289:[function(e,t,r){var a=e("../core"),i=a.util.inherit;a.Signers.RequestSigner=i({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),a.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return a.Signers.V2;case"v3":return a.Signers.V3;case"v4":return a.Signers.V4;case"s3":return a.Signers.S3;case"v3https":return a.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":233,"./presign":288,"./s3":290,"./v2":291,"./v3":292,"./v3https":293,"./v4":294}],290:[function(e,t,r){var a=e("../core"),i=a.util.inherit;a.Signers.S3=i(a.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"]=a.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),i="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=i},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];a.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()=0?"&":"?";this.request.path+=s+a.util.queryParamsToString(i)},authorization:function(e,t){var r=[],a=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+a),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=i.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return a.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&&(t=a.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];a.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete i[s.shift()]),d},emptyCache:function(){i={},s=[]}}},{"../core":233}],296:[function(e,t,r){function a(e,t){this.currentState=t||null,this.states=e||{}}a.prototype.runTo=function(e,t,r,a){"function"==typeof e&&(a=r,r=t,t=e,e=null);var i=this,s=i.states[i.currentState];s.fn.call(r||i,a,function(a){if(a){if(!s.fail)return t?t.call(r,a):null;i.currentState=s.fail}else{if(!s.accept)return t?t.call(r):null;i.currentState=s.accept}if(i.currentState===e)return t?t.call(r,a):null;i.runTo(e,t,r,a)})},a.prototype.addState=function(e,t,r,a){return"function"==typeof t?(a=t,t=null,r=null):"function"==typeof r&&(a=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:a},this},t.exports=a},{}],297:[function(e,t,r){(function(r){var a,i={environment:"nodejs",engine:function(){if(i.isBrowser()&&"undefined"!=typeof navigator)return navigator.userAgent;var e=r.platform+"/"+r.version;return r.env.AWS_EXECUTION_ENV&&(e+=" exec-env/"+r.env.AWS_EXECUTION_ENV),e},userAgent:function(){var t=i.environment,r="aws-sdk-"+t+"/"+e("./core").VERSION;return"nodejs"===t&&(r+=" "+i.engine()),r},isBrowser:function(){return r&&r.browser},isNode:function(){return!i.isBrowser()},uriEscape:function(e){var t=encodeURIComponent(e);return t=t.replace(/[^A-Za-z0-9_.~\-%]+/g,escape),t=t.replace(/[*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})},uriEscapePath:function(e){var t=[];return i.arrayEach(e.split("/"),function(e){t.push(i.uriEscape(e))}),t.join("/")},urlParse:function(e){return i.url.parse(e)},urlFormat:function(e){return i.url.format(e)},queryStringParse:function(e){return i.querystring.parse(e)},queryParamsToString:function(e){var t=[],r=i.uriEscape,a=Object.keys(e).sort();return i.arrayEach(a,function(a){var s=e[a],n=r(a),o=n+"=";if(Array.isArray(s)){var u=[];i.arrayEach(s,function(e){u.push(r(e))}),o=n+"="+u.sort().join("&"+n+"=")}else void 0!==s&&null!==s&&(o=n+"="+r(s));t.push(o)}),t.join("&")},readFileSync:function(t){return i.isBrowser()?null:e("fs").readFileSync(t,"utf-8")},base64:{encode:function(e){if("number"==typeof e)throw i.error(new Error("Cannot base64 encode number "+e));return null===e||void 0===e?e:("function"==typeof i.Buffer.from&&i.Buffer.from!==Uint8Array.from?i.Buffer.from(e):new i.Buffer(e)).toString("base64")},decode:function(e){if("number"==typeof e)throw i.error(new Error("Cannot base64 decode number "+e));return null===e||void 0===e?e:"function"==typeof i.Buffer.from&&i.Buffer.from!==Uint8Array.from?i.Buffer.from(e,"base64"):new i.Buffer(e,"base64")}},buffer:{toStream:function(e){i.Buffer.isBuffer(e)||(e=new i.Buffer(e));var t=new i.stream.Readable,r=0;return t._read=function(a){if(r>=e.length)return t.push(null);var i=r+a;i>e.length&&(i=e.length),t.push(e.slice(r,i)),r=i},t},concat:function(e){var t,r=0,a=0,s=null;for(t=0;t>>8^t[255&(r^e.readUInt8(a))]}return(-1^r)>>>0},hmac:function(e,t,r,a){return r||(r="binary"),"buffer"===r&&(r=void 0),a||(a="sha256"),"string"==typeof t&&(t=new i.Buffer(t)),i.crypto.lib.createHmac(a,e).update(t).digest(r)},md5:function(e,t,r){return i.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return i.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,a){var s=i.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=new i.Buffer(t));var n=i.arraySliceFn(t),o=i.Buffer.isBuffer(t);if(i.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(o=!0),a&&"object"==typeof t&&"function"==typeof t.on&&!o)t.on("data",function(e){s.update(e)}),t.on("error",function(e){a(e)}),t.on("end",function(){a(null,s.digest(r))});else{if(!a||!n||o||"undefined"==typeof FileReader){i.isBrowser()&&"object"==typeof t&&!o&&(t=new i.Buffer(new Uint8Array(t)));var u=s.update(t).digest(r);return a&&a(null,u),u}var p=0,c=new FileReader;c.onerror=function(){a(new Error("Failed to read data."))},c.onload=function(){var e=new i.Buffer(new Uint8Array(c.result));s.update(e),p+=e.length,c._continueReading()},c._continueReading=function(){if(p>=t.size)return void a(null,s.digest(r));var e=p+524288;e>t.size&&(e=t.size),c.readAsArrayBuffer(n.call(t,p,e))},c._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),a.config.isClockSkewed},applyClockOffset:function(e){e&&(a.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){if(void 0===t&&a&&a.config&&(t=a.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t)var r=!0;Array.isArray(e)||(e=[e]);for(var i=0;i=500||429===a});s&&n.retryable&&(n.retryAfter=s),u(n)}})},u)};a.util.defer(p)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,a=t.service.api.operations[r].output||{};a.payload&&e.data[a.payload]&&(e.data[a.payload]=e.data[a.payload].toString())},defer:function(e){"object"==typeof r&&"function"==typeof r.nextTick?r.nextTick(e):"function"==typeof setImmediate?setImmediate(e):setTimeout(e,0)},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE"};t.exports=i}).call(this,e("_process"))},{"../apis/metadata.json":107,"./core":233,_process:458,fs:301,uuid:497}],298:[function(e,t,r){function a(){}function i(e,t){switch(t||(t={}),t.type){case"structure":return s(e,t);case"map":return n(e,t);case"list":return o(e,t);case void 0:case null:return p(e);default:return u(e,t)}}function s(e,t){var r={};return null===e?r:(c.each(t.members,function(t,a){if(a.isXmlAttribute){if(Object.prototype.hasOwnProperty.call(e.attributes,a.name)){var s=e.attributes[a.name].value;r[t]=i({textContent:s},a)}}else{var n=a.flattened?e:e.getElementsByTagName(a.name)[0];n?r[t]=i(n,a):a.flattened||"list"!==a.type||(r[t]=a.defaultValue)}}),r)}function n(e,t){for(var r={},a=t.key.name||"key",s=t.value.name||"value",n=t.flattened?t.name:"entry",o=e.firstElementChild;o;){if(o.nodeName===n){var u=o.getElementsByTagName(a)[0].textContent,p=o.getElementsByTagName(s)[0];r[u]=i(p,t.value)}o=o.nextElementSibling}return r}function o(e,t){for(var r=[],a=t.flattened?t.name:t.member.name||"member",s=e.firstElementChild;s;)s.nodeName===a&&r.push(i(s,t.member)),s=s.nextElementSibling;return r}function u(e,t){if(e.getAttribute){var r=e.getAttribute("encoding");"base64"===r&&(t=new m.create({type:r}))}var a=e.textContent;return""===a&&(a=null),"function"==typeof t.toType?t.toType(a):a}function p(e){if(void 0===e||null===e)return"";if(!e.firstElementChild)return null===e.parentNode.parentNode?{}:0===e.childNodes.length?"":e.textContent;for(var t={type:"structure",members:{}},r=e.firstElementChild;r;){var a=r.nodeName;Object.prototype.hasOwnProperty.call(t.members,a)?t.members[a].type="list":t.members[a]={name:a},r=r.nextElementSibling}return s(e,t)}var c=e("../util"),m=e("../model/shape");a.prototype.parse=function(e,t){if(""===e.replace(/^\s+/,""))return{};var r,a;try{if(window.DOMParser){try{r=(new DOMParser).parseFromString(e,"text/xml")}catch(e){throw c.error(new Error("Parse error in document"),{originalError:e,code:"XMLParserError",retryable:!0})}if(null===r.documentElement)throw c.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var s=r.getElementsByTagName("parsererror")[0];if(s&&(s.parentNode===r||"body"===s.parentNode.nodeName||s.parentNode.parentNode===r||"body"===s.parentNode.parentNode.nodeName)){var n=s.getElementsByTagName("div")[0]||s;throw c.error(new Error(n.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(r=new window.ActiveXObject("Microsoft.XMLDOM"),r.async=!1,!r.loadXML(e))throw c.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(e){a=e}if(r&&r.documentElement&&!a){var o=i(r.documentElement,t),u=r.getElementsByTagName("ResponseMetadata")[0];return u&&(o.ResponseMetadata=i(u,{})),o}if(a)throw c.error(a||new Error,{code:"XMLParserError",retryable:!0});return{}},t.exports=a},{"../model/shape":256,"../util":297}],299:[function(e,t,r){function a(){}function i(e,t,r){switch(r.type){case"structure":return s(e,t,r);case"map":return n(e,t,r);case"list":return o(e,t,r);default:return u(e,t,r)}}function s(e,t,r){c.arrayEach(r.memberNames,function(a){var s=r.members[a];if("body"===s.location){var n=t[a],o=s.name;if(void 0!==n&&null!==n)if(s.isXmlAttribute)e.att(o,n);else if(s.flattened)i(e,n,s);else{var u=e.ele(o);p(u,s),i(u,n,s)}}})}function n(e,t,r){var a=r.key.name||"key",s=r.value.name||"value";c.each(t,function(t,n){var o=e.ele(r.flattened?r.name:"entry");i(o.ele(a),t,r.key),i(o.ele(s),n,r.value)})}function o(e,t,r){r.flattened?c.arrayEach(t,function(t){var a=r.member.name||r.name;i(e.ele(a),t,r.member)}):c.arrayEach(t,function(t){var a=r.member.name||"member";i(e.ele(a),t,r.member)})}function u(e,t,r){e.txt(r.toWireFormat(t))}function p(e,t){var r,a="xmlns";t.xmlNamespaceUri?(r=t.xmlNamespaceUri,t.xmlNamespacePrefix&&(a+=":"+t.xmlNamespacePrefix)):e.isRoot&&t.api.xmlNamespaceUri&&(r=t.api.xmlNamespaceUri),r&&e.att(a,r)}var c=e("../util"),m=e("xmlbuilder");a.prototype.toXML=function(e,t,r,a){var s=m.create(r);return p(s,t),i(s,e,t),s.children.length>0||a?s.root().toString():""},t.exports=a},{"../util":297,xmlbuilder:518}],300:[function(e,t,r){"use strict";function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function i(e){return 3*e.length/4-a(e)}function s(e){var t,r,i,s,n,o=e.length;s=a(e),n=new m(3*o/4-s),r=s>0?o-4:o;var u=0;for(t=0;t>16&255,n[u++]=i>>8&255,n[u++]=255&i;return 2===s?(i=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,n[u++]=255&i):1===s&&(i=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,n[u++]=i>>8&255,n[u++]=255&i),n}function n(e){return p[e>>18&63]+p[e>>12&63]+p[e>>6&63]+p[63&e]}function o(e,t,r){for(var a,i=[],s=t;su?u:n+16383));return 1===a?(t=e[r-1],i+=p[t>>2],i+=p[t<<4&63],i+="=="):2===a&&(t=(e[r-2]<<8)+e[r-1],i+=p[t>>10],i+=p[t>>4&63],i+=p[t<<2&63],i+="="),s.push(i),s.join("")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=u;for(var p=[],c=[],m="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,y=l.length;d=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function b(e){return+e!=e&&(e=0),s.alloc(+e)}function h(e,t){if(s.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 a=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(a)return W(e).length;t=(""+t).toLowerCase(),a=!0}}function S(e,t,r){var a=!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 E(this,t,r);case"utf8":case"utf-8":return A(this,t,r);case"ascii":return P(this,t,r);case"latin1":case"binary":return x(this,t,r);case"base64":return R(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function g(e,t,r){var a=e[t];e[t]=e[r],e[r]=a}function f(e,t,r,a,i){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0){if(!i)return-1;r=0}if("string"==typeof t&&(t=s.from(t,a)),s.isBuffer(t))return 0===t.length?-1:I(e,t,r,a,i);if("number"==typeof t)return t&=255,s.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):I(e,[t],r,a,i);throw new TypeError("val must be string, number or Buffer")}function I(e,t,r,a,i){function s(e,t){return 1===n?e[t]:e.readUInt16BE(t*n)}var n=1,o=e.length,u=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;n=2,o/=2,u/=2,r/=2}var p;if(i){var c=-1;for(p=r;po&&(r=o-u),p=r;p>=0;p--){for(var m=!0,l=0;li&&(a=i):a=i;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");a>s/2&&(a=s/2);for(var n=0;n239?4:s>223?3:s>191?2:1;if(i+o<=r){var u,p,c,m;switch(o){case 1:s<128&&(n=s);break;case 2:u=e[i+1],128==(192&u)&&(m=(31&s)<<6|63&u)>127&&(n=m);break;case 3:u=e[i+1],p=e[i+2],128==(192&u)&&128==(192&p)&&(m=(15&s)<<12|(63&u)<<6|63&p)>2047&&(m<55296||m>57343)&&(n=m);break;case 4:u=e[i+1],p=e[i+2],c=e[i+3],128==(192&u)&&128==(192&p)&&128==(192&c)&&(m=(15&s)<<18|(63&u)<<12|(63&p)<<6|63&c)>65535&&m<1114112&&(n=m)}}null===n?(n=65533,o=1):n>65535&&(n-=65536,a.push(n>>>10&1023|55296),n=56320|1023&n),a.push(n),i+=o}return q(a)}function q(e){var t=e.length;if(t<=$)return String.fromCharCode.apply(String,e);for(var r="",a=0;aa)&&(r=a);for(var i="",s=t;sr)throw new RangeError("Trying to access beyond buffer length")}function _(e,t,r,a,i,n){if(!s.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}function w(e,t,r,a){t<0&&(t=65535+t+1);for(var i=0,s=Math.min(e.length-r,2);i>>8*(a?i:1-i)}function L(e,t,r,a){t<0&&(t=4294967295+t+1);for(var i=0,s=Math.min(e.length-r,4);i>>8*(a?i:3-i)&255}function G(e,t,r,a,i,s){if(r+a>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(e,t,r,a,i){return i||G(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(e,t,r,a,23,4),r+4}function V(e,t,r,a,i){return i||G(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(e,t,r,a,52,8),r+8}function O(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 j(e){return e<16?"0"+e.toString(16):e.toString(16)}function W(e,t){t=t||1/0;for(var r,a=e.length,i=null,s=[],n=0;n55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(n+1===a){(t-=3)>-1&&s.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(t-=3)>-1&&s.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.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;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function z(e){for(var t=[],r=0;r>8,i=r%256,s.push(i),s.push(a);return s}function H(e){return J.toByteArray(O(e))}function Z(e,t,r,a){for(var i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function Q(e){return e!==e}var J=e("base64-js"),X=e("ieee754"),Y=e("isarray");r.Buffer=s,r.SlowBuffer=b,r.INSPECT_MAX_BYTES=50,s.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=a(),s.poolSize=8192,s._augment=function(e){return e.__proto__=s.prototype,e},s.from=function(e,t,r){return n(null,e,t,r)},s.TYPED_ARRAY_SUPPORT&&(s.prototype.__proto__=Uint8Array.prototype,s.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&s[Symbol.species]===s&&Object.defineProperty(s,Symbol.species,{value:null,configurable:!0})),s.alloc=function(e,t,r){return u(null,e,t,r)},s.allocUnsafe=function(e){return p(null,e)},s.allocUnsafeSlow=function(e){return p(null,e)},s.isBuffer=function(e){return!(null==e||!e._isBuffer)},s.compare=function(e,t){if(!s.isBuffer(e)||!s.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,a=t.length,i=0,n=Math.min(r,a);i0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},s.prototype.compare=function(e,t,r,a,i){if(!s.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===a&&(a=0),void 0===i&&(i=this.length),t<0||r>e.length||a<0||i>this.length)throw new RangeError("out of range index");if(a>=i&&t>=r)return 0;if(a>=i)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,a>>>=0,i>>>=0,this===e)return 0;for(var n=i-a,o=r-t,u=Math.min(n,o),p=this.slice(a,i),c=e.slice(t,r),m=0;mi)&&(r=i),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");a||(a="utf8");for(var s=!1;;)switch(a){case"hex":return N(this,e,t,r);case"utf8":case"utf-8":return v(this,e,t,r);case"ascii":return T(this,e,t,r);case"latin1":case"binary":return C(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),s=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;s.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);)a+=this[e+--t]*i;return a},s.prototype.readUInt8=function(e,t){return t||B(e,1,this.length),this[e]},s.prototype.readUInt16LE=function(e,t){return t||B(e,2,this.length),this[e]|this[e+1]<<8},s.prototype.readUInt16BE=function(e,t){return t||B(e,2,this.length),this[e]<<8|this[e+1]},s.prototype.readUInt32LE=function(e,t){return t||B(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},s.prototype.readUInt32BE=function(e,t){return t||B(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},s.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||B(e,t,this.length);for(var a=this[e],i=1,s=0;++s=i&&(a-=Math.pow(2,8*t)),a},s.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||B(e,t,this.length);for(var a=t,i=1,s=this[e+--a];a>0&&(i*=256);)s+=this[e+--a]*i;return i*=128,s>=i&&(s-=Math.pow(2,8*t)),s},s.prototype.readInt8=function(e,t){return t||B(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},s.prototype.readInt16LE=function(e,t){t||B(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt16BE=function(e,t){t||B(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},s.prototype.readInt32LE=function(e,t){return t||B(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},s.prototype.readInt32BE=function(e,t){return t||B(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},s.prototype.readFloatLE=function(e,t){return t||B(e,4,this.length),X.read(this,e,!0,23,4)},s.prototype.readFloatBE=function(e,t){return t||B(e,4,this.length),X.read(this,e,!1,23,4)},s.prototype.readDoubleLE=function(e,t){return t||B(e,8,this.length),X.read(this,e,!0,52,8)},s.prototype.readDoubleBE=function(e,t){return t||B(e,8,this.length),X.read(this,e,!1,52,8)},s.prototype.writeUIntLE=function(e,t,r,a){if(e=+e,t|=0,r|=0,!a){_(this,e,t,r,Math.pow(2,8*r)-1,0)}var i=1,s=0;for(this[t]=255&e;++s=0&&(s*=256);)this[t+i]=e/s&255;return t+r},s.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,1,255,0),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},s.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):w(this,e,t,!0),t+2},s.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,65535,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):w(this,e,t,!1),t+2},s.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):L(this,e,t,!0),t+4},s.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,4294967295,0),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},s.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t|=0,!a){var i=Math.pow(2,8*r-1);_(this,e,t,r,i-1,-i)}var s=0,n=1,o=0;for(this[t]=255&e;++s>0)-o&255;return t+r},s.prototype.writeIntBE=function(e,t,r,a){if(e=+e,t|=0,!a){var i=Math.pow(2,8*r-1);_(this,e,t,r,i-1,-i)}var s=r-1,n=1,o=0;for(this[t+s]=255&e;--s>=0&&(n*=256);)e<0&&0===o&&0!==this[t+s+1]&&(o=1),this[t+s]=(e/n>>0)-o&255;return t+r},s.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,1,127,-128),s.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},s.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):w(this,e,t,!0),t+2},s.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,2,32767,-32768),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):w(this,e,t,!1),t+2},s.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,2147483647,-2147483648),s.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):L(this,e,t,!0),t+4},s.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||_(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),s.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):L(this,e,t,!1),t+4},s.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},s.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},s.prototype.writeDoubleLE=function(e,t,r){return V(this,e,t,!0,r)},s.prototype.writeDoubleBE=function(e,t,r){return V(this,e,t,!1,r)},s.prototype.copy=function(e,t,r,a){if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("sourceStart out of bounds");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t=0;--i)e[i+t]=this[i+r];else if(n<1e3||!s.TYPED_ARRAY_SUPPORT)for(i=0;i>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var n;if("number"==typeof e)for(n=t;n>>2),n=0,o=0;n>5]|=128<>>9<<4)]=t;for(var r=1732584193,a=-271733879,i=-1732584194,c=271733878,m=0;m>16)+(t>>16)+(r>>16)<<16|65535&r}function c(e,t){return e<>>32-t}var m=e("./make-hash");t.exports=function(e){return m(e,a)}},{"./make-hash":306}],308:[function(e,t,r){"use strict";function a(e,t){n.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var r="sha512"===e||"sha384"===e?128:64;if(this._alg=e,this._key=t,t.length>r){t=("rmd160"===e?new p:c(e)).update(t).digest()}else t.lengthu?t=e(t):t.length0&&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},a.prototype.on=a.prototype.addListener,a.prototype.once=function(e,t){function r(){this.removeListener(e,r),a||(a=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var a=!1;return r.listener=t,this.on(e,r),this},a.prototype.removeListener=function(e,t){var r,a,s,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,a=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(r)){for(o=s;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){a=o;break}if(a<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},a.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},a.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},a.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},a.listenerCount=function(e,t){return e.listenerCount(t)}},{}],311:[function(e,t,r){(function(r){"use strict";function a(e){i.call(this),this._block=new r(e),this._blockSize=e,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}var i=e("stream").Transform;e("inherits")(a,i),a.prototype._transform=function(e,t,a){var i=null;try{"buffer"!==t&&(e=new r(e,t)),this.update(e)}catch(e){i=e}a(i)},a.prototype._flush=function(e){var t=null;try{this.push(this._digest())}catch(e){t=e}e(t)},a.prototype.update=function(e,t){if(!r.isBuffer(e)&&"string"!=typeof e)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");r.isBuffer(e)||(e=new r(e,t||"binary"));for(var a=this._block,i=0;this._blockOffset+e.length-i>=this._blockSize;){for(var s=this._blockOffset;s0;++n)this._length[n]+=o,(o=this._length[n]/4294967296|0)>0&&(this._length[n]-=4294967296*o);return this},a.prototype._update=function(e){throw new Error("_update is not implemented")},a.prototype.digest=function(e){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var t=this._digest();return void 0!==e&&(t=t.toString(e)),t},a.prototype._digest=function(){throw new Error("_digest is not implemented")},t.exports=a}).call(this,e("buffer").Buffer)},{buffer:302,inherits:313,stream:490}],312:[function(e,t,r){r.read=function(e,t,r,a,i){var s,n,o=8*i-a-1,u=(1<>1,c=-7,m=r?i-1:0,l=r?-1:1,d=e[t+m];for(m+=l,s=d&(1<<-c)-1,d>>=-c,c+=o;c>0;s=256*s+e[t+m],m+=l,c-=8);for(n=s&(1<<-c)-1,s>>=-c,c+=a;c>0;n=256*n+e[t+m],m+=l,c-=8);if(0===s)s=1-p;else{if(s===u)return n?NaN:1/0*(d?-1:1);n+=Math.pow(2,a),s-=p}return(d?-1:1)*n*Math.pow(2,s-a)},r.write=function(e,t,r,a,i,s){var n,o,u,p=8*s-i-1,c=(1<>1,l=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=a?0:s-1,y=a?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,n=c):(n=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-n))<1&&(n--,u*=2),t+=n+m>=1?l/u:l*Math.pow(2,1-m),t*u>=2&&(n++,u/=2),n+m>=c?(o=0,n=c):n+m>=1?(o=(t*u-1)*Math.pow(2,i),n+=m):(o=t*Math.pow(2,m-1)*Math.pow(2,i),n=0));i>=8;e[r+d]=255&o,d+=y,o/=256,i-=8);for(n=n<0;e[r+d]=255&n,d+=y,n/=256,p-=8);e[r+d-y]|=128*b}},{}],313:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],314:[function(e,t,r){function a(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&a(e.slice(0,0))}t.exports=function(e){return null!=e&&(a(e)||i(e)||!!e._isBuffer)}},{}],315:[function(e,t,r){var a={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},{}],316:[function(e,t,r){!function(e){"use strict";function t(e){return null!==e&&"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function a(e,i){if(e===i)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(i))return!1;if(!0===t(e)){if(e.length!==i.length)return!1;for(var s=0;s="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function o(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 p(){}function c(){}function m(e){this.runtime=e}function l(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[S]}]},avg:{_func:this._functionAvg,_signature:[{types:[T]}]},ceil:{_func:this._functionCeil,_signature:[{types:[S]}]},contains:{_func:this._functionContains,_signature:[{types:[f,I]},{types:[g]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[f]},{types:[f]}]},floor:{_func:this._functionFloor,_signature:[{types:[S]}]},length:{_func:this._functionLength,_signature:[{types:[f,I,N]}]},map:{_func:this._functionMap,_signature:[{types:[v]},{types:[I]}]},max:{_func:this._functionMax,_signature:[{types:[T,C]}]},merge:{_func:this._functionMerge,_signature:[{types:[N],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[I]},{types:[v]}]},sum:{_func:this._functionSum,_signature:[{types:[T]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[f]},{types:[f]}]},min:{_func:this._functionMin,_signature:[{types:[T,C]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[I]},{types:[v]}]},type:{_func:this._functionType,_signature:[{types:[g]}]},keys:{_func:this._functionKeys,_signature:[{types:[N]}]},values:{_func:this._functionValues,_signature:[{types:[N]}]},sort:{_func:this._functionSort,_signature:[{types:[C,T]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[I]},{types:[v]}]},join:{_func:this._functionJoin,_signature:[{types:[f]},{types:[C]}]},reverse:{_func:this._functionReverse,_signature:[{types:[f,I]}]},to_array:{_func:this._functionToArray,_signature:[{types:[g]}]},to_string:{_func:this._functionToString,_signature:[{types:[g]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[g]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[g],variadic:!0}]}}}function d(e){return(new c).parse(e)}function y(e){return(new p).tokenize(e)}function b(e,t){var r=new c,a=new l,i=new m(a);a._interpreter=i;var s=r.parse(t);return i.search(s,e)}var h;h="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var S=0,g=1,f=2,I=3,N=4,v=6,T=8,C=9,D={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},k={"<":!0,">":!0,"=":!0,"!":!0},R={" ":!0,"\t":!0,"\n":!0};p.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,a,i;this._current"===r?"="===e[this._current]?(this._current++,{type:"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,a=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(a.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var A={};A.EOF=0,A.UnquotedIdentifier=0,A.QuotedIdentifier=0,A.Rbracket=0,A.Rparen=0,A.Comma=0,A.Rbrace=0,A.Number=0,A.Current=0,A.Expref=0,A.Pipe=1,A.Or=2,A.And=3,A.EQ=5,A.GT=5,A.LT=5,A.GTE=5,A.LTE=5,A.NE=5,A.Flatten=9,A.Star=20,A.Filter=21,A.Dot=40,A.Not=45,A.Lbrace=50,A.Lbracket=55,A.Lparen=60,c.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),a=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw a.name="ParserError",a}return t},_loadTokens:function(e){var t=new p,r=t.tokenize(e);r.push({type:"EOF",value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),a=this._lookahead(0);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(A[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),a=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw a.name="ParserError",a}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,a,i=[],s=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),s.indexOf(e.type)<0)throw new Error("Expecting an identifier token, got: "+e.type);if(t=e.value,this._advance(),this._match("Colon"),r=this.expression(0),a={type:"KeyValuePair",name:t,value:r},i.push(a),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:i}}},m.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,n){var o,u,p,c,m,l,d,y,b;switch(e.type){case"Field":return null===n?null:r(n)?(l=n[e.name],void 0===l?null:l):null;case"Subexpression":for(p=this.visit(e.children[0],n),b=1;b0)for(b=f;bI;b+=N)p.push(n[b]);return p;case"Projection":var v=this.visit(e.children[0],n);if(!t(v))return null;for(y=[],b=0;bm;break;case"GTE":p=c>=m;break;case"LT":p=c=e&&(t=r<0?e-1:e),t}},l.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var a;if(r[r.length-1].variadic){if(t.length=0;a--)r+=t[a];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],a=0;a=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,a=e[0],i=e[1],s=0;s0){if(this._getTypeName(e[0][0])===S)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],a=1;a0){if(this._getTypeName(e[0][0])===S)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],a=1;ao?1:nn&&(n=r,t=i[o]);return t},_functionMinBy:function(e){for(var t,r,a=e[1],i=e[0],s=this.createKeyFunction(a,[S,f]),n=1/0,o=0;o1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(n=e.length>3&&"function"==typeof n?(i--,n):void 0,o&&s(r[0],r[1],o)&&(n=i<3?void 0:n,i=1),t=Object(t);++al))return!1;var y=c.get(e);if(y&&c.get(t))return y==t;var b=-1,h=!0,S=r&u?new i:void 0;for(c.set(e,t),c.set(t,e);++b-1&&e%1==0&&e-1}var i=e("./_assocIndexOf");t.exports=a},{"./_assocIndexOf":337}],403:[function(e,t,r){function a(e,t){var r=this.__data__,a=i(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}var i=e("./_assocIndexOf");t.exports=a},{"./_assocIndexOf":337}],404:[function(e,t,r){function a(){this.size=0,this.__data__={hash:new i,map:new(n||s),string:new i}}var i=e("./_Hash"),s=e("./_ListCache"),n=e("./_Map");t.exports=a},{"./_Hash":318,"./_ListCache":319,"./_Map":320}],405:[function(e,t,r){function a(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=e("./_getMapData");t.exports=a},{"./_getMapData":379}],406:[function(e,t,r){function a(e){return i(this,e).get(e)}var i=e("./_getMapData");t.exports=a},{"./_getMapData":379}],407:[function(e,t,r){function a(e){return i(this,e).has(e)}var i=e("./_getMapData");t.exports=a},{"./_getMapData":379}],408:[function(e,t,r){function a(e,t){var r=i(this,e),a=r.size;return r.set(e,t),this.size+=r.size==a?0:1,this}var i=e("./_getMapData");t.exports=a},{"./_getMapData":379}],409:[function(e,t,r){function a(e){var t=-1,r=Array(e.size);return e.forEach(function(e,a){r[++t]=[a,e]}),r}t.exports=a},{}],410:[function(e,t,r){function a(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}t.exports=a},{}],411:[function(e,t,r){function a(e){var t=i(e,function(e){return r.size===s&&r.clear(),e}),r=t.cache;return t}var i=e("./memoize"),s=500;t.exports=a},{"./memoize":452}],412:[function(e,t,r){var a=e("./_getNative"),i=a(Object,"create");t.exports=i},{"./_getNative":381}],413:[function(e,t,r){var a=e("./_overArg"),i=a(Object.keys,Object);t.exports=i},{"./_overArg":416}],414:[function(e,t,r){var a=e("./_freeGlobal"),i="object"==typeof r&&r&&!r.nodeType&&r,s=i&&"object"==typeof t&&t&&!t.nodeType&&t,n=s&&s.exports===i,o=n&&a.process,u=function(){try{return o&&o.binding&&o.binding("util")}catch(e){}}();t.exports=u},{"./_freeGlobal":377}],415:[function(e,t,r){function a(e){return s.call(e)}var i=Object.prototype,s=i.toString;t.exports=a},{}],416:[function(e,t,r){function a(e,t){return function(r){return e(t(r))}}t.exports=a},{}],417:[function(e,t,r){function a(e,t,r){return t=s(void 0===t?e.length-1:t,0),function(){for(var a=arguments,n=-1,o=s(a.length-t,0),u=Array(o);++n0){if(++t>=i)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var i=800,s=16,n=Date.now;t.exports=a},{}],424:[function(e,t,r){function a(){this.__data__=new i,this.size=0}var i=e("./_ListCache");t.exports=a},{"./_ListCache":319}],425:[function(e,t,r){function a(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}t.exports=a},{}],426:[function(e,t,r){function a(e){return this.__data__.get(e)}t.exports=a},{}],427:[function(e,t,r){function a(e){return this.__data__.has(e)}t.exports=a},{}],428:[function(e,t,r){function a(e,t){var r=this.__data__;if(r instanceof i){var a=r.__data__;if(!s||a.length-1&&e%1==0&&e<=i}var i=9007199254740991;t.exports=a},{}],447:[function(e,t,r){function a(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}t.exports=a},{}],448:[function(e,t,r){function a(e){return null!=e&&"object"==typeof e}t.exports=a},{}],449:[function(e,t,r){function a(e){return"symbol"==typeof e||s(e)&&i(e)==n}var i=e("./_baseGetTag"),s=e("./isObjectLike"),n="[object Symbol]";t.exports=a},{"./_baseGetTag":347,"./isObjectLike":448}],450:[function(e,t,r){var a=e("./_baseIsTypedArray"),i=e("./_baseUnary"),s=e("./_nodeUtil"),n=s&&s.isTypedArray,o=n?i(n):a;t.exports=o},{"./_baseIsTypedArray":354,"./_baseUnary":365,"./_nodeUtil":414}],451:[function(e,t,r){function a(e){return n(e)?i(e):s(e)}var i=e("./_arrayLikeKeys"),s=e("./_baseKeys"),n=e("./isArrayLike");t.exports=a},{"./_arrayLikeKeys":332,"./_baseKeys":356,"./isArrayLike":442}],452:[function(e,t,r){function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(s);var r=function(){var a=arguments,i=t?t.apply(this,a):a[0],s=r.cache;if(s.has(i))return s.get(i);var n=e.apply(this,a);return r.cache=s.set(i,n)||s,n};return r.cache=new(a.Cache||i),r}var i=e("./_MapCache"),s="Expected a function";a.Cache=i,t.exports=a},{"./_MapCache":321}],453:[function(e,t,r){function a(e){return n(e)?i(o(e)):s(e)}var i=e("./_baseProperty"),s=e("./_basePropertyDeep"),n=e("./_isKey"),o=e("./_toKey");t.exports=a},{"./_baseProperty":359,"./_basePropertyDeep":360,"./_isKey":394,"./_toKey":430}],454:[function(e,t,r){function a(){return[]}t.exports=a},{}],455:[function(e,t,r){function a(){return!1}t.exports=a},{}],456:[function(e,t,r){function a(e){return null==e?"":i(e)}var i=e("./_baseToString");t.exports=a},{"./_baseToString":364}],457:[function(e,t,r){(function(e){"use strict";function r(t,r,a,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var s,n,o=arguments.length;switch(o){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,r)});case 3:return e.nextTick(function(){t.call(null,r,a)});case 4:return e.nextTick(function(){t.call(null,r,a,i)});default:for(s=new Array(o-1), -n=0;n1)for(var r=1;r1&&(a=r[0]+"@",e=r[1]),e=e.replace(E,"."),a+s(e.split("."),t).join(".")}function o(e){for(var t,r,a=[],i=0,s=e.length;i=55296&&t<=56319&&i65535&&(e-=65536,t+=w(e>>>10&1023|55296),e=56320|1023&e),t+=w(e)}).join("")}function p(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:v}function c(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function m(e,t,r){var a=0;for(e=r?_(e/k):e>>1,e+=_(e/t);e>B*C>>1;a+=v)e=_(e/B);return _(a+(B+1)*e/(e+D))}function l(e){var t,r,a,s,n,o,c,l,d,y,b=[],h=e.length,S=0,g=A,f=R;for(r=e.lastIndexOf(q),r<0&&(r=0),a=0;a=128&&i("not-basic"),b.push(e.charCodeAt(a));for(s=r>0?r+1:0;s=h&&i("invalid-input"),l=p(e.charCodeAt(s++)),(l>=v||l>_((N-S)/o))&&i("overflow"),S+=l*o,d=c<=f?T:c>=f+C?C:c-f,!(l_(N/y)&&i("overflow"),o*=y;t=b.length+1,f=m(S-n,t,0==n),_(S/t)>N-g&&i("overflow"),g+=_(S/t),S%=t,b.splice(S++,0,g)}return u(b)}function d(e){var t,r,a,s,n,u,p,l,d,y,b,h,S,g,f,I=[];for(e=o(e),h=e.length,t=A,r=0,n=R,u=0;u=t&&b_((N-r)/S)&&i("overflow"),r+=(p-t)*S,t=p,u=0;uN&&i("overflow"),b==t){for(l=r,d=v;y=d<=n?T:d>=n+C?C:d-n,!(l= 0x80 (not a basic code point)","invalid-input":"Invalid input"},B=v-T,_=Math.floor,w=String.fromCharCode;if(f={version:"1.3.2",ucs2:{decode:o,encode:u},decode:l,encode:d,toASCII:b,toUnicode:y},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return f});else if(h&&S)if(t.exports==h)S.exports=f;else for(I in f)f.hasOwnProperty(I)&&(h[I]=f[I]);else a.punycode=f}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],460:[function(e,t,r){"use strict";function a(e,t){return Object.prototype.hasOwnProperty.call(e,t)}t.exports=function(e,t,r,s){t=t||"&",r=r||"=";var n={};if("string"!=typeof e||0===e.length)return n;var o=/\+/g;e=e.split(t);var u=1e3;s&&"number"==typeof s.maxKeys&&(u=s.maxKeys);var p=e.length;u>0&&p>u&&(p=u);for(var c=0;c=0?(m=b.substr(0,h),l=b.substr(h+1)):(m=b,l=""),d=decodeURIComponent(m),y=decodeURIComponent(l),a(n,d)?i(n[d])?n[d].push(y):n[d]=[n[d],y]:n[d]=y}return n};var i=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],461:[function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a0&&u>o&&(u=o);for(var p=0;p=0?(c=y.substr(0,b),m=y.substr(b+1)):(c=y,m=""),l=decodeURIComponent(c),d=decodeURIComponent(m),a(s,l)?Array.isArray(s[l])?s[l].push(d):s[l]=[s[l],d]:s[l]=d}return s}},{}],464:[function(e,t,r){"use strict";var a=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 s=encodeURIComponent(a(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return s+encodeURIComponent(a(e))}).join(t):s+encodeURIComponent(a(e[i]))}).join(t):i?encodeURIComponent(a(i))+r+encodeURIComponent(a(e)):""}},{}],465:[function(e,t,r){arguments[4][462][0].apply(r,arguments)},{"./decode":463,"./encode":464,dup:462}],466:[function(e,t,r){t.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":467}],467:[function(e,t,r){"use strict";function a(e){if(!(this instanceof a))return new a(e);p.call(this,e),c.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",i)}function i(){this.allowHalfOpen||this._writableState.ended||n(s,this)}function s(e){e.end()}var n=e("process-nextick-args"),o=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=a;var u=e("core-util-is");u.inherits=e("inherits");var p=e("./_stream_readable"),c=e("./_stream_writable");u.inherits(a,p);for(var m=o(c.prototype),l=0;l0?("string"==typeof t||n.objectMode||Object.getPrototypeOf(t)===L.prototype||(t=i(t)),a?n.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):c(e,n,t,!0):n.ended?e.emit("error",new Error("stream.push() after EOF")):(n.reading=!1,n.decoder&&!r?(t=n.decoder.write(t),n.objectMode||0!==t.length?c(e,n,t,!1):g(e,n)):c(e,n,t,!1))):a||(n.reading=!1)}return l(n)}function c(e,t,r,a){t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,a?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&h(e)),g(e,t)}function m(e,t){var r;return s(t)||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}function l(e){return!e.ended&&(e.needReadable||e.length=K?e=K:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function y(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=d(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function b(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,h(e)}}function h(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(O("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?E(S,e):S(e))}function S(e){O("emit readable"),e.emit("readable"),C(e)}function g(e,t){t.readingMore||(t.readingMore=!0,E(f,e,t))}function f(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=k(e,t.buffer,t.decoder),r}function k(e,t,r){var a;return es.length?s.length:e;if(n===s.length?i+=s:i+=s.slice(0,e),0===(e-=n)){n===s.length?(++a,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(n));break}++a}return t.length-=a,i}function A(e,t){var r=L.allocUnsafe(e),a=t.head,i=1;for(a.data.copy(r),e-=a.data.length;a=a.next;){var s=a.data,n=e>s.length?s.length:e;if(s.copy(r,r.length-e,0,n),0===(e-=n)){n===s.length?(++i,a.next?t.head=a.next:t.head=t.tail=null):(t.head=a,a.data=s.slice(n));break}++i}return t.length-=i,r}function q(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,E(P,t,e))}function P(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function x(e,t){for(var r=0,a=e.length;r=t.highWaterMark||t.ended))return O("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?q(this):h(this),null;if(0===(e=y(e,t))&&t.ended)return 0===t.length&&q(this),null;var a=t.needReadable;O("need readable",a),(0===t.length||t.length-e0?D(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&q(this)),null!==i&&this.emit("data",i),i},u.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},u.prototype.pipe=function(e,t){function a(e,t){O("onunpipe"),e===l&&t&&!1===t.hasUnpiped&&(t.hasUnpiped=!0,s())}function i(){O("onend"),e.end()}function s(){O("cleanup"),e.removeListener("close",p),e.removeListener("finish",c),e.removeListener("drain",h),e.removeListener("error",u),e.removeListener("unpipe",a),l.removeListener("end",i),l.removeListener("end",m),l.removeListener("data",o),S=!0,!d.awaitDrain||e._writableState&&!e._writableState.needDrain||h()}function o(t){O("ondata"),g=!1,!1!==e.write(t)||g||((1===d.pipesCount&&d.pipes===e||d.pipesCount>1&&-1!==x(d.pipes,e))&&!S&&(O("false write response, pause",l._readableState.awaitDrain),l._readableState.awaitDrain++,g=!0),l.pause())}function u(t){O("onerror",t),m(),e.removeListener("error",u),0===_(e,"error")&&e.emit("error",t)}function p(){e.removeListener("finish",c),m()}function c(){O("onfinish"),e.removeListener("close",p),m()}function m(){O("unpipe"),l.unpipe(e)}var l=this,d=this._readableState;switch(d.pipesCount){case 0:d.pipes=e;break;case 1:d.pipes=[d.pipes,e];break;default:d.pipes.push(e)}d.pipesCount+=1,O("pipe count=%d opts=%j",d.pipesCount,t);var y=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr,b=y?i:m;d.endEmitted?E(b):l.once("end",b),e.on("unpipe",a);var h=I(l);e.on("drain",h);var S=!1,g=!1;return l.on("data",o),n(e,"error",u),e.once("close",p),e.once("finish",c),e.emit("pipe",l),d.flowing||(O("pipe resume"),l.resume()),e},u.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var a=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s-1?setImmediate:R;p.WritableState=u;var P=e("core-util-is");P.inherits=e("inherits");var x={deprecate:e("util-deprecate")},E=e("./internal/streams/stream"),M=e("safe-buffer").Buffer,B=a.Uint8Array||function(){},_=e("./internal/streams/destroy");P.inherits(p,E),u.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(u.prototype,"buffer",{get:x.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var w;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(w=Function.prototype[Symbol.hasInstance],Object.defineProperty(p,Symbol.hasInstance,{value:function(e){return!!w.call(this,e)||e&&e._writableState instanceof u}})):w=function(e){return e instanceof this},p.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},p.prototype.write=function(e,t,r){var a=this._writableState,i=!1,u=n(e)&&!a.objectMode;return u&&!M.isBuffer(e)&&(e=s(e)),"function"==typeof t&&(r=t,t=null),u?t="buffer":t||(t=a.defaultEncoding),"function"!=typeof r&&(r=o),a.ended?c(this,r):(u||m(this,a,e,r))&&(a.pendingcb++,i=d(this,a,u,e,t,r)),i},p.prototype.cork=function(){this._writableState.corked++},p.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||I(this,e))},p.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},p.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},p.prototype._writev=null,p.prototype.end=function(e,t,r){var a=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),a.corked&&(a.corked=1,this.uncork()),a.ending||a.finished||D(this,a,r)},Object.defineProperty(p.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),p.prototype.destroy=_.destroy,p.prototype._undestroy=_.undestroy,p.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./_stream_duplex":467,"./internal/streams/destroy":473,"./internal/streams/stream":474,_process:458,"core-util-is":304,inherits:313,"process-nextick-args":457,"safe-buffer":481,"util-deprecate":493}],472:[function(e,t,r){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,r){e.copy(t,r)}var s=e("safe-buffer").Buffer;t.exports=function(){function e(){a(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return s.alloc(0);if(1===this.length)return this.head.data;for(var t=s.allocUnsafe(e>>>0),r=this.head,a=0;r;)i(r.data,t,a),a+=r.data.length,r=r.next;return t},e}()},{"safe-buffer":481}],473:[function(e,t,r){"use strict";function a(e,t){var r=this,a=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;if(a||i)return void(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||n(s,this,e));this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(n(s,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e)})}function i(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function s(e,t){e.emit("error",t)}var n=e("process-nextick-args");t.exports={destroy:a,undestroy:i}},{"process-nextick-args":457}],474:[function(e,t,r){t.exports=e("events").EventEmitter},{events:310}],475:[function(e,t,r){"use strict";function a(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return -;e=(""+e).toLowerCase(),t=!0}}function i(e){var t=a(e);if("string"!=typeof t&&(g.isEncoding===f||!f(e)))throw new Error("Unknown encoding: "+e);return t||e}function s(e){this.encoding=i(e);var t;switch(this.encoding){case"utf16le":this.text=l,this.end=d,t=4;break;case"utf8":this.fillLast=p,t=4;break;case"base64":this.text=y,this.end=b,t=3;break;default:return this.write=h,void(this.end=S)}this.lastNeed=0,this.lastTotal=0,this.lastChar=g.allocUnsafe(t)}function n(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function o(e,t,r){var a=t.length-1;if(a=0?(i>0&&(e.lastNeed=i-1),i):--a=0?(i>0&&(e.lastNeed=i-2),i):--a=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0)}function u(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"�".repeat(r);if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�".repeat(r+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�".repeat(r+2)}}function p(e){var t=this.lastTotal-this.lastNeed,r=u(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){var r=o(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var a=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,a),e.toString("utf8",t,a)}function m(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�".repeat(this.lastTotal-this.lastNeed):t}function l(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var a=r.charCodeAt(r.length-1);if(a>=55296&&a<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function d(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function y(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function b(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function h(e){return e.toString(this.encoding)}function S(e){return e&&e.length?this.write(e):""}var g=e("safe-buffer").Buffer,f=g.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};r.StringDecoder=s,s.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>>32-t}function s(e,t,r,a,s,n,o,u){return i(e+(t^r^a)+n+o|0,u)+s|0}function n(e,t,r,a,s,n,o,u){return i(e+(t&r|~t&a)+n+o|0,u)+s|0}function o(e,t,r,a,s,n,o,u){return i(e+((t|~r)^a)+n+o|0,u)+s|0}function u(e,t,r,a,s,n,o,u){return i(e+(t&a|r&~a)+n+o|0,u)+s|0}function p(e,t,r,a,s,n,o,u){return i(e+(t^(r|~a))+n+o|0,u)+s|0}var c=e("inherits"),m=e("hash-base");c(a,m),a.prototype._update=function(){for(var e=new Array(16),t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var r=this._a,a=this._b,c=this._c,m=this._d,l=this._e;r=s(r,a,c,m,l,e[0],0,11),c=i(c,10),l=s(l,r,a,c,m,e[1],0,14),a=i(a,10),m=s(m,l,r,a,c,e[2],0,15),r=i(r,10),c=s(c,m,l,r,a,e[3],0,12),l=i(l,10),a=s(a,c,m,l,r,e[4],0,5),m=i(m,10),r=s(r,a,c,m,l,e[5],0,8),c=i(c,10),l=s(l,r,a,c,m,e[6],0,7),a=i(a,10),m=s(m,l,r,a,c,e[7],0,9),r=i(r,10),c=s(c,m,l,r,a,e[8],0,11),l=i(l,10),a=s(a,c,m,l,r,e[9],0,13),m=i(m,10),r=s(r,a,c,m,l,e[10],0,14),c=i(c,10),l=s(l,r,a,c,m,e[11],0,15),a=i(a,10),m=s(m,l,r,a,c,e[12],0,6),r=i(r,10),c=s(c,m,l,r,a,e[13],0,7),l=i(l,10),a=s(a,c,m,l,r,e[14],0,9),m=i(m,10),r=s(r,a,c,m,l,e[15],0,8),c=i(c,10),l=n(l,r,a,c,m,e[7],1518500249,7),a=i(a,10),m=n(m,l,r,a,c,e[4],1518500249,6),r=i(r,10),c=n(c,m,l,r,a,e[13],1518500249,8),l=i(l,10),a=n(a,c,m,l,r,e[1],1518500249,13),m=i(m,10),r=n(r,a,c,m,l,e[10],1518500249,11),c=i(c,10),l=n(l,r,a,c,m,e[6],1518500249,9),a=i(a,10),m=n(m,l,r,a,c,e[15],1518500249,7),r=i(r,10),c=n(c,m,l,r,a,e[3],1518500249,15),l=i(l,10),a=n(a,c,m,l,r,e[12],1518500249,7),m=i(m,10),r=n(r,a,c,m,l,e[0],1518500249,12),c=i(c,10),l=n(l,r,a,c,m,e[9],1518500249,15),a=i(a,10),m=n(m,l,r,a,c,e[5],1518500249,9),r=i(r,10),c=n(c,m,l,r,a,e[2],1518500249,11),l=i(l,10),a=n(a,c,m,l,r,e[14],1518500249,7),m=i(m,10),r=n(r,a,c,m,l,e[11],1518500249,13),c=i(c,10),l=n(l,r,a,c,m,e[8],1518500249,12),a=i(a,10),m=o(m,l,r,a,c,e[3],1859775393,11),r=i(r,10),c=o(c,m,l,r,a,e[10],1859775393,13),l=i(l,10),a=o(a,c,m,l,r,e[14],1859775393,6),m=i(m,10),r=o(r,a,c,m,l,e[4],1859775393,7),c=i(c,10),l=o(l,r,a,c,m,e[9],1859775393,14),a=i(a,10),m=o(m,l,r,a,c,e[15],1859775393,9),r=i(r,10),c=o(c,m,l,r,a,e[8],1859775393,13),l=i(l,10),a=o(a,c,m,l,r,e[1],1859775393,15),m=i(m,10),r=o(r,a,c,m,l,e[2],1859775393,14),c=i(c,10),l=o(l,r,a,c,m,e[7],1859775393,8),a=i(a,10),m=o(m,l,r,a,c,e[0],1859775393,13),r=i(r,10),c=o(c,m,l,r,a,e[6],1859775393,6),l=i(l,10),a=o(a,c,m,l,r,e[13],1859775393,5),m=i(m,10),r=o(r,a,c,m,l,e[11],1859775393,12),c=i(c,10),l=o(l,r,a,c,m,e[5],1859775393,7),a=i(a,10),m=o(m,l,r,a,c,e[12],1859775393,5),r=i(r,10),c=u(c,m,l,r,a,e[1],2400959708,11),l=i(l,10),a=u(a,c,m,l,r,e[9],2400959708,12),m=i(m,10),r=u(r,a,c,m,l,e[11],2400959708,14),c=i(c,10),l=u(l,r,a,c,m,e[10],2400959708,15),a=i(a,10),m=u(m,l,r,a,c,e[0],2400959708,14),r=i(r,10),c=u(c,m,l,r,a,e[8],2400959708,15),l=i(l,10),a=u(a,c,m,l,r,e[12],2400959708,9),m=i(m,10),r=u(r,a,c,m,l,e[4],2400959708,8),c=i(c,10),l=u(l,r,a,c,m,e[13],2400959708,9),a=i(a,10),m=u(m,l,r,a,c,e[3],2400959708,14),r=i(r,10),c=u(c,m,l,r,a,e[7],2400959708,5),l=i(l,10),a=u(a,c,m,l,r,e[15],2400959708,6),m=i(m,10),r=u(r,a,c,m,l,e[14],2400959708,8),c=i(c,10),l=u(l,r,a,c,m,e[5],2400959708,6),a=i(a,10),m=u(m,l,r,a,c,e[6],2400959708,5),r=i(r,10),c=u(c,m,l,r,a,e[2],2400959708,12),l=i(l,10),a=p(a,c,m,l,r,e[4],2840853838,9),m=i(m,10),r=p(r,a,c,m,l,e[0],2840853838,15),c=i(c,10),l=p(l,r,a,c,m,e[5],2840853838,5),a=i(a,10),m=p(m,l,r,a,c,e[9],2840853838,11),r=i(r,10),c=p(c,m,l,r,a,e[7],2840853838,6),l=i(l,10),a=p(a,c,m,l,r,e[12],2840853838,8),m=i(m,10),r=p(r,a,c,m,l,e[2],2840853838,13),c=i(c,10),l=p(l,r,a,c,m,e[10],2840853838,12),a=i(a,10),m=p(m,l,r,a,c,e[14],2840853838,5),r=i(r,10),c=p(c,m,l,r,a,e[1],2840853838,12),l=i(l,10),a=p(a,c,m,l,r,e[3],2840853838,13),m=i(m,10),r=p(r,a,c,m,l,e[8],2840853838,14),c=i(c,10),l=p(l,r,a,c,m,e[11],2840853838,11),a=i(a,10),m=p(m,l,r,a,c,e[6],2840853838,8),r=i(r,10),c=p(c,m,l,r,a,e[15],2840853838,5),l=i(l,10),a=p(a,c,m,l,r,e[13],2840853838,6),m=i(m,10);var d=this._a,y=this._b,b=this._c,h=this._d,S=this._e;d=p(d,y,b,h,S,e[5],1352829926,8),b=i(b,10),S=p(S,d,y,b,h,e[14],1352829926,9),y=i(y,10),h=p(h,S,d,y,b,e[7],1352829926,9),d=i(d,10),b=p(b,h,S,d,y,e[0],1352829926,11),S=i(S,10),y=p(y,b,h,S,d,e[9],1352829926,13),h=i(h,10),d=p(d,y,b,h,S,e[2],1352829926,15),b=i(b,10),S=p(S,d,y,b,h,e[11],1352829926,15),y=i(y,10),h=p(h,S,d,y,b,e[4],1352829926,5),d=i(d,10),b=p(b,h,S,d,y,e[13],1352829926,7),S=i(S,10),y=p(y,b,h,S,d,e[6],1352829926,7),h=i(h,10),d=p(d,y,b,h,S,e[15],1352829926,8),b=i(b,10),S=p(S,d,y,b,h,e[8],1352829926,11),y=i(y,10),h=p(h,S,d,y,b,e[1],1352829926,14),d=i(d,10),b=p(b,h,S,d,y,e[10],1352829926,14),S=i(S,10),y=p(y,b,h,S,d,e[3],1352829926,12),h=i(h,10),d=p(d,y,b,h,S,e[12],1352829926,6),b=i(b,10),S=u(S,d,y,b,h,e[6],1548603684,9),y=i(y,10),h=u(h,S,d,y,b,e[11],1548603684,13),d=i(d,10),b=u(b,h,S,d,y,e[3],1548603684,15),S=i(S,10),y=u(y,b,h,S,d,e[7],1548603684,7),h=i(h,10),d=u(d,y,b,h,S,e[0],1548603684,12),b=i(b,10),S=u(S,d,y,b,h,e[13],1548603684,8),y=i(y,10),h=u(h,S,d,y,b,e[5],1548603684,9),d=i(d,10),b=u(b,h,S,d,y,e[10],1548603684,11),S=i(S,10),y=u(y,b,h,S,d,e[14],1548603684,7),h=i(h,10),d=u(d,y,b,h,S,e[15],1548603684,7),b=i(b,10),S=u(S,d,y,b,h,e[8],1548603684,12),y=i(y,10),h=u(h,S,d,y,b,e[12],1548603684,7),d=i(d,10),b=u(b,h,S,d,y,e[4],1548603684,6),S=i(S,10),y=u(y,b,h,S,d,e[9],1548603684,15),h=i(h,10),d=u(d,y,b,h,S,e[1],1548603684,13),b=i(b,10),S=u(S,d,y,b,h,e[2],1548603684,11),y=i(y,10),h=o(h,S,d,y,b,e[15],1836072691,9),d=i(d,10),b=o(b,h,S,d,y,e[5],1836072691,7),S=i(S,10),y=o(y,b,h,S,d,e[1],1836072691,15),h=i(h,10),d=o(d,y,b,h,S,e[3],1836072691,11),b=i(b,10),S=o(S,d,y,b,h,e[7],1836072691,8),y=i(y,10),h=o(h,S,d,y,b,e[14],1836072691,6),d=i(d,10),b=o(b,h,S,d,y,e[6],1836072691,6),S=i(S,10),y=o(y,b,h,S,d,e[9],1836072691,14),h=i(h,10),d=o(d,y,b,h,S,e[11],1836072691,12),b=i(b,10),S=o(S,d,y,b,h,e[8],1836072691,13),y=i(y,10),h=o(h,S,d,y,b,e[12],1836072691,5),d=i(d,10),b=o(b,h,S,d,y,e[2],1836072691,14),S=i(S,10),y=o(y,b,h,S,d,e[10],1836072691,13),h=i(h,10),d=o(d,y,b,h,S,e[0],1836072691,13),b=i(b,10),S=o(S,d,y,b,h,e[4],1836072691,7),y=i(y,10),h=o(h,S,d,y,b,e[13],1836072691,5),d=i(d,10),b=n(b,h,S,d,y,e[8],2053994217,15),S=i(S,10),y=n(y,b,h,S,d,e[6],2053994217,5),h=i(h,10),d=n(d,y,b,h,S,e[4],2053994217,8),b=i(b,10),S=n(S,d,y,b,h,e[1],2053994217,11),y=i(y,10),h=n(h,S,d,y,b,e[3],2053994217,14),d=i(d,10),b=n(b,h,S,d,y,e[11],2053994217,14),S=i(S,10),y=n(y,b,h,S,d,e[15],2053994217,6),h=i(h,10),d=n(d,y,b,h,S,e[0],2053994217,14),b=i(b,10),S=n(S,d,y,b,h,e[5],2053994217,6),y=i(y,10),h=n(h,S,d,y,b,e[12],2053994217,9),d=i(d,10),b=n(b,h,S,d,y,e[2],2053994217,12),S=i(S,10),y=n(y,b,h,S,d,e[13],2053994217,9),h=i(h,10),d=n(d,y,b,h,S,e[9],2053994217,12),b=i(b,10),S=n(S,d,y,b,h,e[7],2053994217,5),y=i(y,10),h=n(h,S,d,y,b,e[10],2053994217,15),d=i(d,10),b=n(b,h,S,d,y,e[14],2053994217,8),S=i(S,10),y=s(y,b,h,S,d,e[12],0,8),h=i(h,10),d=s(d,y,b,h,S,e[15],0,5),b=i(b,10),S=s(S,d,y,b,h,e[10],0,12),y=i(y,10),h=s(h,S,d,y,b,e[4],0,9),d=i(d,10),b=s(b,h,S,d,y,e[1],0,12),S=i(S,10),y=s(y,b,h,S,d,e[5],0,5),h=i(h,10),d=s(d,y,b,h,S,e[8],0,14),b=i(b,10),S=s(S,d,y,b,h,e[7],0,6),y=i(y,10),h=s(h,S,d,y,b,e[6],0,8),d=i(d,10),b=s(b,h,S,d,y,e[2],0,13),S=i(S,10),y=s(y,b,h,S,d,e[13],0,6),h=i(h,10),d=s(d,y,b,h,S,e[14],0,5),b=i(b,10),S=s(S,d,y,b,h,e[0],0,15),y=i(y,10),h=s(h,S,d,y,b,e[3],0,13),d=i(d,10),b=s(b,h,S,d,y,e[9],0,11),S=i(S,10),y=s(y,b,h,S,d,e[11],0,11),h=i(h,10);var g=this._b+c+h|0;this._b=this._c+m+S|0,this._c=this._d+l+d|0,this._d=this._e+r+y|0,this._e=this._a+a+b|0,this._a=g},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=new r(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},t.exports=a}).call(this,e("buffer").Buffer)},{buffer:302,"hash-base":311,inherits:313}],481:[function(e,t,r){function a(e,t){for(var r in e)t[r]=e[r]}function i(e,t,r){return n(e,t,r)}var s=e("buffer"),n=s.Buffer;n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?t.exports=s:(a(s,r),r.Buffer=i),a(n,i),i.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return n(e,t,r)},i.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var a=n(e);return void 0!==t?"string"==typeof r?a.fill(t,r):a.fill(t):a.fill(0),a},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return n(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return s.SlowBuffer(e)}},{buffer:302}],482:[function(e,t,r){function a(e,t){this._block=i.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}var i=e("safe-buffer").Buffer;a.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=i.from(e,t));for(var r=this._block,a=this._blockSize,s=e.length,n=this._len,o=0;o=this._finalSize&&(this._update(this._block),this._block.fill(0));var r=8*this._len;if(r<=4294967295)this._block.writeUInt32BE(r,this._blockSize-4);else{var a=4294967295&r,i=(r-a)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(a,this._blockSize-4)}this._update(this._block);var s=this._hash();return e?s.toString(e):s},a.prototype._update=function(){throw new Error("_update must be implemented by subclass")},t.exports=a},{"safe-buffer":481}],483:[function(e,t,r){var r=t.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};r.sha=e("./sha"),r.sha1=e("./sha1"),r.sha224=e("./sha224"),r.sha256=e("./sha256"),r.sha384=e("./sha384"),r.sha512=e("./sha512")},{"./sha":484,"./sha1":485,"./sha224":486,"./sha256":487,"./sha384":488,"./sha512":489}],484:[function(e,t,r){function a(){this.init(),this._w=m,u.call(this,64,56)}function i(e){return e<<5|e>>>27}function s(e){return e<<30|e>>>2}function n(e,t,r,a){return 0===e?t&r|~t&a:2===e?t&r|t&a|r&a:t^r^a}var o=e("inherits"),u=e("./hash"),p=e("safe-buffer").Buffer,c=[1518500249,1859775393,-1894007588,-899497514],m=new Array(80);o(a,u),a.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},a.prototype._update=function(e){for(var t=this._w,r=0|this._a,a=0|this._b,o=0|this._c,u=0|this._d,p=0|this._e,m=0;m<16;++m)t[m]=e.readInt32BE(4*m);for(;m<80;++m)t[m]=t[m-3]^t[m-8]^t[m-14]^t[m-16];for(var l=0;l<80;++l){var d=~~(l/20),y=i(r)+n(d,a,o,u)+p+t[l]+c[d]|0;p=u,u=o,o=s(a),a=r,r=y}this._a=r+this._a|0,this._b=a+this._b|0,this._c=o+this._c|0,this._d=u+this._d|0,this._e=p+this._e|0},a.prototype._hash=function(){var e=p.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=a},{"./hash":482,inherits:313,"safe-buffer":481}],485:[function(e,t,r){function a(){this.init(),this._w=l,p.call(this,64,56)}function i(e){return e<<1|e>>>31}function s(e){return e<<5|e>>>27}function n(e){return e<<30|e>>>2}function o(e,t,r,a){return 0===e?t&r|~t&a:2===e?t&r|t&a|r&a:t^r^a}var u=e("inherits"),p=e("./hash"),c=e("safe-buffer").Buffer,m=[1518500249,1859775393,-1894007588,-899497514],l=new Array(80);u(a,p),a.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},a.prototype._update=function(e){for(var t=this._w,r=0|this._a,a=0|this._b,u=0|this._c,p=0|this._d,c=0|this._e,l=0;l<16;++l)t[l]=e.readInt32BE(4*l);for(;l<80;++l)t[l]=i(t[l-3]^t[l-8]^t[l-14]^t[l-16]);for(var d=0;d<80;++d){var y=~~(d/20),b=s(r)+o(y,a,u,p)+c+t[d]+m[y]|0;c=p,p=u,u=n(a),a=r,r=b}this._a=r+this._a|0,this._b=a+this._b|0,this._c=u+this._c|0,this._d=p+this._d|0,this._e=c+this._e|0},a.prototype._hash=function(){var e=c.allocUnsafe(20);return e.writeInt32BE(0|this._a,0),e.writeInt32BE(0|this._b,4),e.writeInt32BE(0|this._c,8),e.writeInt32BE(0|this._d,12),e.writeInt32BE(0|this._e,16),e},t.exports=a},{"./hash":482,inherits:313,"safe-buffer":481}],486:[function(e,t,r){function a(){this.init(),this._w=u,n.call(this,64,56)}var i=e("inherits"),s=e("./sha256"),n=e("./hash"),o=e("safe-buffer").Buffer,u=new Array(64);i(a,s),a.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},a.prototype._hash=function(){var e=o.allocUnsafe(28);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e},t.exports=a},{"./hash":482,"./sha256":487,inherits:313,"safe-buffer":481}],487:[function(e,t,r){function a(){this.init(),this._w=y,m.call(this,64,56)}function i(e,t,r){return r^e&(t^r)}function s(e,t,r){return e&t|r&(e|t)}function n(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function o(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function u(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}function p(e){return(e>>>17|e<<15)^(e>>>19|e<<13)^e>>>10}var c=e("inherits"),m=e("./hash"),l=e("safe-buffer").Buffer,d=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],y=new Array(64);c(a,m),a.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},a.prototype._update=function(e){for(var t=this._w,r=0|this._a,a=0|this._b,c=0|this._c,m=0|this._d,l=0|this._e,y=0|this._f,b=0|this._g,h=0|this._h,S=0;S<16;++S)t[S]=e.readInt32BE(4*S);for(;S<64;++S)t[S]=p(t[S-2])+t[S-7]+u(t[S-15])+t[S-16]|0;for(var g=0;g<64;++g){var f=h+o(l)+i(l,y,b)+d[g]+t[g]|0,I=n(r)+s(r,a,c)|0;h=b,b=y,y=l,l=m+f|0,m=c,c=a,a=r,r=f+I|0}this._a=r+this._a|0,this._b=a+this._b|0,this._c=c+this._c|0,this._d=m+this._d|0,this._e=l+this._e|0,this._f=y+this._f|0,this._g=b+this._g|0,this._h=h+this._h|0},a.prototype._hash=function(){var e=l.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},t.exports=a},{"./hash":482,inherits:313,"safe-buffer":481}],488:[function(e,t,r){function a(){this.init(),this._w=u,n.call(this,128,112)}var i=e("inherits"),s=e("./sha512"),n=e("./hash"),o=e("safe-buffer").Buffer,u=new Array(160);i(a,s),a.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},a.prototype._hash=function(){function e(e,r,a){t.writeInt32BE(e,a),t.writeInt32BE(r,a+4)}var t=o.allocUnsafe(48);return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),t},t.exports=a},{"./hash":482,"./sha512":489,inherits:313,"safe-buffer":481}],489:[function(e,t,r){function a(){this.init(),this._w=S,y.call(this,128,112)}function i(e,t,r){return r^e&(t^r)}function s(e,t,r){return e&t|r&(e|t)}function n(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function o(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function u(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function c(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function l(e,t){return e>>>0>>0?1:0}var d=e("inherits"),y=e("./hash"),b=e("safe-buffer").Buffer,h=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],S=new Array(160);d(a,y),a.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},a.prototype._update=function(e){for(var t=this._w,r=0|this._ah,a=0|this._bh,d=0|this._ch,y=0|this._dh,b=0|this._eh,S=0|this._fh,g=0|this._gh,f=0|this._hh,I=0|this._al,N=0|this._bl,v=0|this._cl,T=0|this._dl,C=0|this._el,D=0|this._fl,k=0|this._gl,R=0|this._hl,A=0;A<32;A+=2)t[A]=e.readInt32BE(4*A),t[A+1]=e.readInt32BE(4*A+4);for(;A<160;A+=2){var q=t[A-30],P=t[A-30+1],x=u(q,P),E=p(P,q);q=t[A-4],P=t[A-4+1];var M=c(q,P),B=m(P,q),_=t[A-14],w=t[A-14+1],L=t[A-32],G=t[A-32+1],U=E+w|0,V=x+_+l(U,E)|0;U=U+B|0,V=V+M+l(U,B)|0,U=U+G|0,V=V+L+l(U,G)|0,t[A]=V,t[A+1]=U}for(var O=0;O<160;O+=2){V=t[O],U=t[O+1];var F=s(r,a,d),j=s(I,N,v),W=n(r,I),z=n(I,r),K=o(b,C),H=o(C,b),Z=h[O],Q=h[O+1],J=i(b,S,g),X=i(C,D,k),Y=R+H|0,$=f+K+l(Y,R)|0;Y=Y+X|0,$=$+J+l(Y,X)|0,Y=Y+Q|0,$=$+Z+l(Y,Q)|0,Y=Y+U|0,$=$+V+l(Y,U)|0;var ee=z+j|0,te=W+F+l(ee,z)|0;f=g,R=k,g=S,k=D,S=b,D=C,C=T+Y|0,b=y+$+l(C,T)|0,y=d,T=v,d=a,v=N,a=r,N=I,I=Y+ee|0,r=$+te+l(I,Y)|0}this._al=this._al+I|0,this._bl=this._bl+N|0,this._cl=this._cl+v|0,this._dl=this._dl+T|0,this._el=this._el+C|0,this._fl=this._fl+D|0,this._gl=this._gl+k|0,this._hl=this._hl+R|0,this._ah=this._ah+r+l(this._al,I)|0,this._bh=this._bh+a+l(this._bl,N)|0,this._ch=this._ch+d+l(this._cl,v)|0,this._dh=this._dh+y+l(this._dl,T)|0,this._eh=this._eh+b+l(this._el,C)|0,this._fh=this._fh+S+l(this._fl,D)|0,this._gh=this._gh+g+l(this._gl,k)|0,this._hh=this._hh+f+l(this._hl,R)|0},a.prototype._hash=function(){function e(e,r,a){t.writeInt32BE(e,a),t.writeInt32BE(r,a+4)}var t=b.allocUnsafe(64);return e(this._ah,this._al,0),e(this._bh,this._bl,8),e(this._ch,this._cl,16),e(this._dh,this._dl,24),e(this._eh,this._el,32),e(this._fh,this._fl,40),e(this._gh,this._gl,48),e(this._hh,this._hl,56),t},t.exports=a},{"./hash":482,inherits:313,"safe-buffer":481}],490:[function(e,t,r){function a(){i.call(this)}t.exports=a;var i=e("events").EventEmitter;e("inherits")(a,i),a.Readable=e("readable-stream/readable.js"),a.Writable=e("readable-stream/writable.js"),a.Duplex=e("readable-stream/duplex.js"),a.Transform=e("readable-stream/transform.js"),a.PassThrough=e("readable-stream/passthrough.js"),a.Stream=a,a.prototype.pipe=function(e,t){function r(t){e.writable&&!1===e.write(t)&&p.pause&&p.pause()}function a(){p.readable&&p.resume&&p.resume()}function s(){c||(c=!0,e.end())}function n(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function o(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){p.removeListener("data",r),e.removeListener("drain",a),p.removeListener("end",s),p.removeListener("close",n),p.removeListener("error",o),e.removeListener("error",o),p.removeListener("end",u),p.removeListener("close",u),e.removeListener("close",u)}var p=this;p.on("data",r),e.on("drain",a),e._isStdio||t&&!1===t.end||(p.on("end",s),p.on("close",n));var c=!1;return p.on("error",o),e.on("error",o),p.on("end",u),p.on("close",u),e.on("close",u),e.emit("pipe",p),e}},{events:310,inherits:313,"readable-stream/duplex.js":466,"readable-stream/passthrough.js":476,"readable-stream/readable.js":477,"readable-stream/transform.js":478,"readable-stream/writable.js":479}],491:[function(e,t,r){function a(e){if(e&&!u(e))throw new Error("Unknown encoding: "+e)}function i(e){return e.toString(this.encoding)}function s(e){this.charReceived=e.length%2,this.charLength=this.charReceived?2:0}function n(e){this.charReceived=e.length%3,this.charLength=this.charReceived?3:0}var o=e("buffer").Buffer,u=o.isEncoding||function(e){switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}},p=r.StringDecoder=function(e){switch(this.encoding=(e||"utf8").toLowerCase().replace(/[-_]/,""),a(e),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=s;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=n;break;default:return void(this.write=i)}this.charBuffer=new o(6),this.charReceived=0,this.charLength=0};p.prototype.write=function(e){for(var t="";this.charLength;){var r=e.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:e.length;if(e.copy(this.charBuffer,this.charReceived,0,r),this.charReceived+=r,this.charReceived=55296&&a<=56319)){if(this.charReceived=this.charLength=0,0===e.length)return t;break}this.charLength+=this.surrogateSize,t=""}this.detectIncompleteChar(e);var i=e.length;this.charLength&&(e.copy(this.charBuffer,0,e.length-this.charReceived,i),i-=this.charReceived),t+=e.toString(this.encoding,0,i);var i=t.length-1,a=t.charCodeAt(i);if(a>=55296&&a<=56319){var s=this.surrogateSize;return this.charLength+=s,this.charReceived+=s,this.charBuffer.copy(this.charBuffer,s,0,s),e.copy(this.charBuffer,0,0,s),t.substring(0,i)}return t},p.prototype.detectIncompleteChar=function(e){for(var t=e.length>=3?3:e.length;t>0;t--){var r=e[e.length-t];if(1==t&&r>>5==6){this.charLength=2;break}if(t<=2&&r>>4==14){this.charLength=3;break}if(t<=3&&r>>3==30){this.charLength=4;break}}this.charReceived=t},p.prototype.end=function(e){var t="";if(e&&e.length&&(t=this.write(e)),this.charReceived){var r=this.charReceived,a=this.charBuffer,i=this.encoding;t+=a.slice(0,r).toString(i)}return t}},{buffer:302}],492:[function(e,t,r){function a(){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&&p(e)&&e instanceof a)return e;var i=new a;return i.parse(e,t,r),i}function s(e){return u(e)&&(e=i(e)),e instanceof a?e.format():a.prototype.format.call(e)}function n(e,t){return i(e,!1,!0).resolve(t)}function o(e,t){return e?i(e,!1,!0).resolveObject(t):t}function u(e){return"string"==typeof e}function p(e){return"object"==typeof e&&null!==e}function c(e){return null===e}function m(e){return null==e}var l=e("punycode");r.parse=i,r.resolve=n,r.resolveObject=o,r.format=s,r.Url=a;var d=/^([a-z0-9.+-]+:)/i,y=/:[0-9]*$/,b=["<",">",'"',"`"," ","\r","\n","\t"],h=["{","}","|","\\","^","`"].concat(b),S=["'"].concat(h),g=["%","/","?",";","#"].concat(S),f=["/","?","#"],I=/^[a-z0-9A-Z_-]{0,63}$/,N=/^([a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},T={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},D=e("querystring");a.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e;a=a.trim();var i=d.exec(a);if(i){i=i[0];var s=i.toLowerCase();this.protocol=s,a=a.substr(i.length)}if(r||i||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var n="//"===a.substr(0,2);!n||i&&T[i]||(a=a.substr(2),this.slashes=!0)}if(!T[i]&&(n||i&&!C[i])){for(var o=-1,p=0;p127?A+="x":A+=R[q];if(!A.match(I)){var x=h.slice(0,p),E=h.slice(p+1),M=R.match(N);M&&(x.push(M[1]),E.unshift(M[2])),E.length&&(a="/"+E.join(".")+a),this.hostname=x.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!b){for(var B=this.hostname.split("."),_=[],p=0;p0)&&r.host.split("@");h&&(r.auth=h.shift(),r.host=r.hostname=h.shift())}return r.search=e.search,r.query=e.query,c(r.pathname)&&c(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!y.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var S=y.slice(-1)[0],g=(r.host||e.host)&&("."===S||".."===S)||""===S,f=0,I=y.length;I>=0;I--)S=y[I],"."==S?y.splice(I,1):".."===S?(y.splice(I,1),f++):f&&(y.splice(I,1),f--);if(!l&&!d)for(;f--;f)y.unshift("..");!l||""===y[0]||y[0]&&"/"===y[0].charAt(0)||y.unshift(""),g&&"/"!==y.join("/").substr(-1)&&y.push("");var N=""===y[0]||y[0]&&"/"===y[0].charAt(0);if(b){r.hostname=r.host=N?"":y.length?y.shift():"";var h=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");h&&(r.auth=h.shift(),r.host=r.hostname=h.shift())}return l=l||r.host&&y.length,l&&!N&&y.unshift(""),y.length?r.pathname=y.join("/"):(r.pathname=null,r.path=null),c(r.pathname)&&c(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=y.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:459,querystring:462}],493:[function(e,t,r){(function(e){function r(e,t){function r(){if(!i){if(a("throwDeprecation"))throw new Error(t);a("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(a("noDeprecation"))return e;var i=!1;return r}function a(t){try{if(!e.localStorage)return!1}catch(e){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],494:[function(e,t,r){arguments[4][313][0].apply(r,arguments)},{dup:313}],495:[function(e,t,r){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],496:[function(e,t,r){(function(t,a){function i(e,t){var a={seen:[],stylize:n};return arguments.length>=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),b(t)?a.showHidden=t:t&&r._extend(a,t),N(a.showHidden)&&(a.showHidden=!1),N(a.depth)&&(a.depth=2),N(a.colors)&&(a.colors=!1),N(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=s),u(a,e,a.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function n(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,a){if(e.customInspect&&t&&k(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(a,e);return f(i)||(i=u(e,i,a)),i}var s=p(e,t);if(s)return s;var n=Object.keys(t),b=o(n);if(e.showHidden&&(n=Object.getOwnPropertyNames(t)),D(t)&&(n.indexOf("message")>=0||n.indexOf("description")>=0))return c(t);if(0===n.length){if(k(t)){var h=t.name?": "+t.name:"";return e.stylize("[Function"+h+"]","special")}if(v(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(C(t))return e.stylize(Date.prototype.toString.call(t),"date");if(D(t))return c(t)}var S="",g=!1,I=["{","}"];if(y(t)&&(g=!0,I=["[","]"]),k(t)){S=" [Function"+(t.name?": "+t.name:"")+"]"}if(v(t)&&(S=" "+RegExp.prototype.toString.call(t)),C(t)&&(S=" "+Date.prototype.toUTCString.call(t)),D(t)&&(S=" "+c(t)),0===n.length&&(!g||0==t.length))return I[0]+S+I[1];if(a<0)return v(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var N;return N=g?m(e,t,a,b,n):n.map(function(r){return l(e,t,a,b,r,g)}),e.seen.pop(),d(N,S,I)}function p(e,t){if(N(t))return e.stylize("undefined","undefined");if(f(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):b(t)?e.stylize(""+t,"boolean"):h(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function m(e,t,r,a,i){for(var s=[],n=0,o=t.length;n-1&&(o=s?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n"))):o=e.stylize("[Circular]","special")),N(n)){if(s&&i.match(/^\d+$/))return o;n=JSON.stringify(""+i),n.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(n=n.substr(1,n.length-2),n=e.stylize(n,"name")):(n=n.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),n=e.stylize(n,"string"))}return n+": "+o}function d(e,t,r){var a=0;return e.reduce(function(e,t){return a++,t.indexOf("\n")>=0&&a++,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 y(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function h(e){return null===e}function S(e){return null==e}function g(e){return"number"==typeof e}function f(e){return"string"==typeof e}function I(e){return"symbol"==typeof e}function N(e){return void 0===e}function v(e){return T(e)&&"[object RegExp]"===A(e)}function T(e){return"object"==typeof e&&null!==e}function C(e){return T(e)&&"[object Date]"===A(e)}function D(e){return T(e)&&("[object Error]"===A(e)||e instanceof Error)}function k(e){return"function"==typeof e}function R(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function A(e){return Object.prototype.toString.call(e)}function q(e){return e<10?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[q(e.getHours()),q(e.getMinutes()),q(e.getSeconds())].join(":");return[e.getDate(),_[e.getMonth()],t].join(" ")}function x(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var E=/%[sdj%]/g;r.format=function(e){if(!f(e)){for(var t=[],r=0;r=s)return e;switch(e){case"%s":return String(a[r++]);case"%d":return Number(a[r++]);case"%j":try{return JSON.stringify(a[r++])}catch(e){return"[Circular]"}default:return e}}),o=a[r];r>>((3&t)<<3)&255;return s}}t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],500:[function(e,t,r){function a(e,t,r){var a=t&&r||0,i=t||[];e=e||{};var n=void 0!==e.clockseq?e.clockseq:u,m=void 0!==e.msecs?e.msecs:(new Date).getTime(),l=void 0!==e.nsecs?e.nsecs:c+1,d=m-p+(l-c)/1e4;if(d<0&&void 0===e.clockseq&&(n=n+1&16383),(d<0||m>p)&&void 0===e.nsecs&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");p=m,c=l,u=n,m+=122192928e5;var y=(1e4*(268435455&m)+l)%4294967296;i[a++]=y>>>24&255,i[a++]=y>>>16&255,i[a++]=y>>>8&255,i[a++]=255&y;var b=m/4294967296*1e4&268435455;i[a++]=b>>>8&255,i[a++]=255&b,i[a++]=b>>>24&15|16,i[a++]=b>>>16&255,i[a++]=n>>>8|128,i[a++]=255&n;for(var h=e.node||o,S=0;S<6;++S)i[a+S]=h[S];return t||s(i)}var i=e("./lib/rng"),s=e("./lib/bytesToUuid"),n=i(),o=[1|n[0],n[1],n[2],n[3],n[4],n[5]],u=16383&(n[6]<<8|n[7]),p=0,c=0;t.exports=a},{"./lib/bytesToUuid":498,"./lib/rng":499}],501:[function(e,t,r){function a(e,t,r){var a=t&&r||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var n=e.random||(e.rng||i)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,t)for(var o=0;o<16;++o)t[a+o]=n[o];return t||s(n)}var i=e("./lib/rng"),s=e("./lib/bytesToUuid");t.exports=a},{"./lib/bytesToUuid":498,"./lib/rng":499}],502:[function(e,t,r){(function(){var r;r=e("lodash/create"),t.exports=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing attribute name of element "+e.name);if(null==r)throw new Error("Missing attribute value for attribute "+t+" of element "+e.name);this.name=this.stringify.attName(t),this.value=this.stringify.attValue(r)}return e.prototype.clone=function(){return r(e.prototype,this)},e.prototype.toString=function(e,t){return" "+this.name+'="'+this.value+'"'},e}()}).call(this)},{"lodash/create":434}],503:[function(e,t,r){(function(){var r,a;a=e("./XMLStringifier"),e("./XMLDeclaration"),e("./XMLDocType"),r=e("./XMLElement"),t.exports=function(){function e(e,t){var i,s;if(null==e)throw new Error("Root element needs a name");null==t&&(t={}),this.options=t,this.stringify=new a(t),s=new r(this,"doc"),i=s.element(e),i.isRoot=!0,i.documentObject=this,this.rootObject=i,t.headless||(i.declaration(t),null==t.pubID&&null==t.sysID||i.doctype(t))}return e.prototype.root=function(){return this.rootObject},e.prototype.end=function(e){return this.toString(e)},e.prototype.toString=function(e){var t,r,a,i,s,n;return r=(null!=e?e.pretty:void 0)||!1,null!=(i=null!=e?e.indent:void 0)?i:" ",null!=(s=null!=e?e.offset:void 0)?s:0,t=null!=(n=null!=e?e.newline:void 0)?n:"\n",a="",null!=this.xmldec&&(a+=this.xmldec.toString(e)),null!=this.doctype&&(a+=this.doctype.toString(e)),a+=this.rootObject.toString(e),r&&a.slice(-t.length)===t&&(a=a.slice(0,-t.length)),a},e}()}).call(this)},{"./XMLDeclaration":510,"./XMLDocType":511,"./XMLElement":512,"./XMLStringifier":516}],504:[function(e,t,r){(function(){var r,a,i=function(e,t){function r(){this.constructor=e}for(var a in t)s.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},s={}.hasOwnProperty;a=e("lodash/create"),r=e("./XMLNode"),t.exports=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(r)}return i(t,e),t.prototype.clone=function(){return a(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(r)}).call(this)},{"./XMLNode":513,"lodash/create":434}],505:[function(e,t,r){(function(){var r,a,i=function(e,t){function r(){this.constructor=e}for(var a in t)s.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},s={}.hasOwnProperty;a=e("lodash/create"),r=e("./XMLNode"),t.exports=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing comment text");this.text=this.stringify.comment(r)}return i(t,e),t.prototype.clone=function(){return a(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="\x3c!-- "+this.text+" --\x3e",s&&(n+=a),n},t}(r)}).call(this)},{"./XMLNode":513,"lodash/create":434}],506:[function(e,t,r){(function(){e("lodash/create"),t.exports=function(){function e(e,t,r,a,i,s){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");if(null==r)throw new Error("Missing DTD attribute name");if(!a)throw new Error("Missing DTD attribute type");if(!i)throw new Error("Missing DTD attribute default");if(0!==i.indexOf("#")&&(i="#"+i),!i.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");if(s&&!i.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(t),this.attributeName=this.stringify.attName(r),this.attributeType=this.stringify.dtdAttType(a),this.defaultValue=this.stringify.dtdAttDefault(s),this.defaultValueType=i}return e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/create":434}],507:[function(e,t,r){(function(){e("lodash/create"),t.exports=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");r||(r="(#PCDATA)"),Array.isArray(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.eleName(t),this.value=this.stringify.dtdElementValue(r)}return e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/create":434}],508:[function(e,t,r){(function(){var r;e("lodash/create"),r=e("lodash/isObject"),t.exports=function(){function e(e,t,a,i){if(this.stringify=e.stringify,null==a)throw new Error("Missing entity name");if(null==i)throw new Error("Missing entity value");if(this.pe=!!t,this.name=this.stringify.eleName(a),r(i)){if(!i.pubID&&!i.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(i.pubID&&!i.sysID)throw new Error("System identifier is required for a public external entity");if(null!=i.pubID&&(this.pubID=this.stringify.dtdPubID(i.pubID)),null!=i.sysID&&(this.sysID=this.stringify.dtdSysID(i.sysID)),null!=i.nData&&(this.nData=this.stringify.dtdNData(i.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(i)}return e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/create":434,"lodash/isObject":447}],509:[function(e,t,r){(function(){e("lodash/create"),t.exports=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing notation name");if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(t),null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}return e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},e}()}).call(this)},{"lodash/create":434}],510:[function(e,t,r){(function(){var r,a,i=function(e,t){function r(){this.constructor=e}for(var a in t)s.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},s={}.hasOwnProperty;e("lodash/create"),a=e("lodash/isObject"),r=e("./XMLNode"),t.exports=function(e){function t(e,r,i,s){var n;t.__super__.constructor.call(this,e),a(r)&&(n=r,r=n.version,i=n.encoding,s=n.standalone),r||(r="1.0"),this.version=this.stringify.xmlVersion(r),null!=i&&(this.encoding=this.stringify.xmlEncoding(i)),null!=s&&(this.standalone=this.stringify.xmlStandalone(s))}return i(t,e),t.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c;return s=(null!=e?e.pretty:void 0)||!1,r=null!=(o=null!=e?e.indent:void 0)?o:" ",i=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),c=new Array(t+i+1).join(r),n="",s&&(n+=c),n+="",s&&(n+=a),n},t}(r)}).call(this)},{"./XMLNode":513,"lodash/create":434,"lodash/isObject":447}],511:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p;e("lodash/create"),p=e("lodash/isObject"),r=e("./XMLCData"),a=e("./XMLComment"),i=e("./XMLDTDAttList"),n=e("./XMLDTDEntity"),s=e("./XMLDTDElement"),o=e("./XMLDTDNotation"),u=e("./XMLProcessingInstruction"),t.exports=function(){function e(e,t,r){var a,i;this.documentObject=e,this.stringify=this.documentObject.stringify,this.children=[],p(t)&&(a=t,t=a.pubID,r=a.sysID),null==r&&(i=[t,r],r=i[0],t=i[1]),null!=t&&(this.pubID=this.stringify.dtdPubID(t)),null!=r&&(this.sysID=this.stringify.dtdSysID(r))}return e.prototype.element=function(e,t){var r;return r=new s(this,e,t),this.children.push(r),this},e.prototype.attList=function(e,t,r,a,s){var n;return n=new i(this,e,t,r,a,s),this.children.push(n),this},e.prototype.entity=function(e,t){var r;return r=new n(this,!1,e,t),this.children.push(r),this},e.prototype.pEntity=function(e,t){var r;return r=new n(this,!0,e,t),this.children.push(r),this},e.prototype.notation=function(e,t){var r;return r=new o(this,e,t),this.children.push(r),this},e.prototype.cdata=function(e){var t;return t=new r(this,e),this.children.push(t),this},e.prototype.comment=function(e){var t;return t=new a(this,e),this.children.push(t),this},e.prototype.instruction=function(e,t){var r;return r=new u(this,e,t),this.children.push(r),this},e.prototype.root=function(){return this.documentObject.root()},e.prototype.document=function(){return this.documentObject},e.prototype.toString=function(e,t){var r,a,i,s,n,o,u,p,c,m,l,d,y;if(u=(null!=e?e.pretty:void 0)||!1,i=null!=(c=null!=e?e.indent:void 0)?c:" ",o=null!=(m=null!=e?e.offset:void 0)?m:0,n=null!=(l=null!=e?e.newline:void 0)?l:"\n",t||(t=0),y=new Array(t+o+1).join(i),p="",u&&(p+=y),p+="0){for(p+=" [",u&&(p+=n),d=this.children,a=0,s=d.length;a",b&&(h+=d);else if(b&&1===this.children.length&&null!=this.children[0].value)h+=">",h+=this.children[0].value,h+="",h+=d;else{for(h+=">",b&&(h+=d),v=this.children,u=0,m=v.length;u",b&&(h+=d)}return h},t.prototype.att=function(e,t){return this.attribute(e,t)},t.prototype.ins=function(e,t){return this.instruction(e,t)},t.prototype.a=function(e,t){return this.attribute(e,t)},t.prototype.i=function(e,t){return this.instruction(e,t)},t}(a)}).call(this)},{"./XMLAttribute":502,"./XMLNode":513,"./XMLProcessingInstruction":514,"lodash/create":434,"lodash/every":436,"lodash/isFunction":445,"lodash/isObject":447}],513:[function(e,t,r){(function(){var r,a,i,s,n,o,u,p,c,m,l={}.hasOwnProperty;m=e("lodash/isObject"),c=e("lodash/isFunction"),p=e("lodash/isEmpty"),n=null,r=null,a=null,i=null,s=null,o=null,u=null,t.exports=function(){function t(t){this.parent=t,this.options=this.parent.options,this.stringify=this.parent.stringify,null===n&&(n=e("./XMLElement"),r=e("./XMLCData"),a=e("./XMLComment"),i=e("./XMLDeclaration"),s=e("./XMLDocType"),o=e("./XMLRaw"),u=e("./XMLText"))}return t.prototype.element=function(e,t,r){var a,i,s,n,o,u,d,y,b,h;if(u=null,null==t&&(t={}),t=t.valueOf(),m(t)||(b=[t,r],r=b[0],t=b[1]),null!=e&&(e=e.valueOf()),Array.isArray(e))for(s=0,d=e.length;s/))throw new Error("Invalid CDATA text: "+e);return this.assertLegalChar(e)},t.prototype.comment=function(e){if(e=""+e||"",e.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+e);return this.assertLegalChar(e)},t.prototype.raw=function(e){return""+e||""},t.prototype.attName=function(e){return""+e||""},t.prototype.attValue=function(e){return e=""+e||"",this.attEscape(e)},t.prototype.insTarget=function(e){return""+e||""},t.prototype.insValue=function(e){if(e=""+e||"",e.match(/\?>/))throw new Error("Invalid processing instruction value: "+e);return e},t.prototype.xmlVersion=function(e){if(e=""+e||"",!e.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+e);return e},t.prototype.xmlEncoding=function(e){if(e=""+e||"",!e.match(/^[A-Za-z](?:[A-Za-z0-9._-]|-)*$/))throw new Error("Invalid encoding: "+e);return e},t.prototype.xmlStandalone=function(e){return e?"yes":"no"},t.prototype.dtdPubID=function(e){return""+e||""},t.prototype.dtdSysID=function(e){return""+e||""},t.prototype.dtdElementValue=function(e){return""+e||""},t.prototype.dtdAttType=function(e){return""+e||""},t.prototype.dtdAttDefault=function(e){return null!=e?""+e||"":e},t.prototype.dtdEntityValue=function(e){return""+e||""},t.prototype.dtdNData=function(e){return""+e||""},t.prototype.convertAttKey="@",t.prototype.convertPIKey="?",t.prototype.convertTextKey="#text",t.prototype.convertCDataKey="#cdata",t.prototype.convertCommentKey="#comment",t.prototype.convertRawKey="#raw",t.prototype.assertLegalChar=function(e){var t,r;if(t=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,r=e.match(t))throw new Error("Invalid character ("+r+") in string: "+e+" at index "+r.index);return e},t.prototype.elEscape=function(e){var t;return t=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,e.replace(t,"&").replace(//g,">").replace(/\r/g," ")},t.prototype.attEscape=function(e){var t;return t=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,e.replace(t,"&").replace(/ `0`",state:"success"}]}}}},{}],112:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2017-01-17",endpointPrefix:"mturk-requester",jsonVersion:"1.1",protocol:"json",serviceAbbreviation:"Amazon MTurk",serviceFullName:"Amazon Mechanical Turk",signatureVersion:"v4",targetPrefix:"MTurkRequesterServiceV20170117",uid:"mturk-requester-2017-01-17"},operations:{AcceptQualificationRequest:{input:{type:"structure",required:["QualificationRequestId"],members:{QualificationRequestId:{},IntegerValue:{type:"integer"}}},output:{type:"structure",members:{}}},ApproveAssignment:{input:{type:"structure",required:["AssignmentId"],members:{AssignmentId:{},RequesterFeedback:{},OverrideRejection:{type:"boolean"}}},output:{type:"structure",members:{}},idempotent:!0},AssociateQualificationWithWorker:{input:{type:"structure",required:["QualificationTypeId","WorkerId"],members:{QualificationTypeId:{},WorkerId:{},IntegerValue:{type:"integer"},SendNotification:{type:"boolean"}}},output:{type:"structure",members:{}}},CreateAdditionalAssignmentsForHIT:{input:{type:"structure",required:["HITId","NumberOfAdditionalAssignments"],members:{HITId:{},NumberOfAdditionalAssignments:{type:"integer"},UniqueRequestToken:{}}},output:{type:"structure",members:{}}},CreateHIT:{input:{type:"structure",required:["LifetimeInSeconds","AssignmentDurationInSeconds","Reward","Title","Description"],members:{MaxAssignments:{type:"integer"},AutoApprovalDelayInSeconds:{type:"long"},LifetimeInSeconds:{type:"long"},AssignmentDurationInSeconds:{type:"long"},Reward:{},Title:{},Keywords:{},Description:{},Question:{},RequesterAnnotation:{},QualificationRequirements:{shape:"Si"},UniqueRequestToken:{},AssignmentReviewPolicy:{shape:"Sp"},HITReviewPolicy:{shape:"Sp"},HITLayoutId:{},HITLayoutParameters:{shape:"Sv"}}},output:{type:"structure",members:{HIT:{shape:"Sy"}}}},CreateHITType:{input:{type:"structure",required:["AssignmentDurationInSeconds","Reward","Title","Description"],members:{AutoApprovalDelayInSeconds:{type:"long"},AssignmentDurationInSeconds:{type:"long"},Reward:{},Title:{},Keywords:{},Description:{},QualificationRequirements:{shape:"Si"}}},output:{type:"structure",members:{HITTypeId:{}}},idempotent:!0},CreateHITWithHITType:{input:{type:"structure",required:["HITTypeId","LifetimeInSeconds"],members:{HITTypeId:{},MaxAssignments:{type:"integer"},LifetimeInSeconds:{type:"long"},Question:{},RequesterAnnotation:{},UniqueRequestToken:{},AssignmentReviewPolicy:{shape:"Sp"},HITReviewPolicy:{shape:"Sp"},HITLayoutId:{},HITLayoutParameters:{shape:"Sv"}}},output:{type:"structure",members:{HIT:{shape:"Sy"}}}},CreateQualificationType:{input:{type:"structure",required:["Name","Description","QualificationTypeStatus"],members:{Name:{},Keywords:{},Description:{},QualificationTypeStatus:{},RetryDelayInSeconds:{type:"long"},Test:{},AnswerKey:{},TestDurationInSeconds:{type:"long"},AutoGranted:{type:"boolean"},AutoGrantedValue:{type:"integer"}}},output:{type:"structure",members:{QualificationType:{shape:"S19"}}}},CreateWorkerBlock:{input:{type:"structure",required:["WorkerId","Reason"],members:{WorkerId:{},Reason:{}}},output:{type:"structure",members:{}}},DeleteHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{}}},output:{type:"structure",members:{}},idempotent:!0},DeleteQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{}}},output:{type:"structure",members:{}},idempotent:!0},DeleteWorkerBlock:{input:{type:"structure",required:["WorkerId"],members:{WorkerId:{},Reason:{}}},output:{type:"structure",members:{}},idempotent:!0},DisassociateQualificationFromWorker:{input:{type:"structure",required:["WorkerId","QualificationTypeId"],members:{WorkerId:{},QualificationTypeId:{},Reason:{}}},output:{type:"structure",members:{}}},GetAccountBalance:{input:{type:"structure",members:{}},output:{type:"structure",members:{AvailableBalance:{},OnHoldBalance:{}}},idempotent:!0},GetAssignment:{input:{type:"structure",required:["AssignmentId"],members:{AssignmentId:{}}},output:{type:"structure",members:{Assignment:{shape:"S1o"},HIT:{shape:"Sy"}}},idempotent:!0},GetFileUploadURL:{input:{type:"structure",required:["AssignmentId","QuestionIdentifier"],members:{AssignmentId:{},QuestionIdentifier:{}}},output:{type:"structure",members:{FileUploadURL:{}}},idempotent:!0},GetHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{}}},output:{type:"structure",members:{HIT:{shape:"Sy"}}},idempotent:!0},GetQualificationScore:{input:{type:"structure",required:["QualificationTypeId","WorkerId"],members:{QualificationTypeId:{},WorkerId:{}}},output:{type:"structure",members:{Qualification:{shape:"S1w"}}},idempotent:!0},GetQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{}}},output:{type:"structure",members:{QualificationType:{shape:"S19"}}},idempotent:!0},ListAssignmentsForHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{},NextToken:{},MaxResults:{type:"integer"},AssignmentStatuses:{type:"list",member:{}}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},Assignments:{type:"list",member:{shape:"S1o"}}}},idempotent:!0},ListBonusPayments:{input:{type:"structure",members:{HITId:{},AssignmentId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NumResults:{type:"integer"},NextToken:{},BonusPayments:{type:"list",member:{type:"structure",members:{WorkerId:{},BonusAmount:{},AssignmentId:{},Reason:{},GrantTime:{type:"timestamp"}}}}}},idempotent:!0},ListHITs:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},HITs:{shape:"S2c"}}},idempotent:!0},ListHITsForQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},HITs:{shape:"S2c"}}},idempotent:!0},ListQualificationRequests:{input:{type:"structure",members:{QualificationTypeId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NumResults:{type:"integer"},NextToken:{},QualificationRequests:{type:"list",member:{type:"structure",members:{QualificationRequestId:{},QualificationTypeId:{},WorkerId:{},Test:{},Answer:{},SubmitTime:{type:"timestamp"}}}}}},idempotent:!0},ListQualificationTypes:{input:{type:"structure",required:["MustBeRequestable"],members:{Query:{},MustBeRequestable:{type:"boolean"},MustBeOwnedByCaller:{type:"boolean"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NumResults:{type:"integer"},NextToken:{},QualificationTypes:{type:"list",member:{shape:"S19"}}}},idempotent:!0},ListReviewPolicyResultsForHIT:{input:{type:"structure",required:["HITId"],members:{HITId:{},PolicyLevels:{type:"list",member:{}},RetrieveActions:{type:"boolean"},RetrieveResults:{type:"boolean"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{HITId:{},AssignmentReviewPolicy:{shape:"Sp"},HITReviewPolicy:{shape:"Sp"},AssignmentReviewReport:{shape:"S2q"},HITReviewReport:{shape:"S2q"},NextToken:{}}},idempotent:!0},ListReviewableHITs:{input:{type:"structure",members:{HITTypeId:{},Status:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},HITs:{shape:"S2c"}}},idempotent:!0},ListWorkerBlocks:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},WorkerBlocks:{type:"list",member:{type:"structure",members:{WorkerId:{},Reason:{}}}}}},idempotent:!0},ListWorkersWithQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{},Status:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},NumResults:{type:"integer"},Qualifications:{type:"list",member:{shape:"S1w"}}}},idempotent:!0},NotifyWorkers:{input:{type:"structure",required:["Subject","MessageText","WorkerIds"],members:{Subject:{},MessageText:{},WorkerIds:{type:"list",member:{}}}},output:{type:"structure",members:{NotifyWorkersFailureStatuses:{type:"list",member:{type:"structure",members:{NotifyWorkersFailureCode:{},NotifyWorkersFailureMessage:{},WorkerId:{}}}}}}},RejectAssignment:{input:{type:"structure",required:["AssignmentId","RequesterFeedback"],members:{AssignmentId:{},RequesterFeedback:{}}},output:{type:"structure",members:{}},idempotent:!0},RejectQualificationRequest:{input:{type:"structure",required:["QualificationRequestId"],members:{QualificationRequestId:{},Reason:{}}},output:{type:"structure",members:{}}},SendBonus:{input:{type:"structure",required:["WorkerId","BonusAmount","AssignmentId","Reason"],members:{WorkerId:{},BonusAmount:{},AssignmentId:{},Reason:{},UniqueRequestToken:{}}},output:{type:"structure",members:{}}},SendTestEventNotification:{input:{type:"structure",required:["Notification","TestEventType"],members:{Notification:{shape:"S3j"},TestEventType:{}}},output:{type:"structure",members:{}}},UpdateExpirationForHIT:{input:{type:"structure",required:["HITId","ExpireAt"],members:{HITId:{},ExpireAt:{type:"timestamp"}}},output:{type:"structure",members:{}},idempotent:!0},UpdateHITReviewStatus:{input:{type:"structure",required:["HITId"],members:{HITId:{},Revert:{type:"boolean"}}},output:{type:"structure",members:{}},idempotent:!0},UpdateHITTypeOfHIT:{input:{type:"structure",required:["HITId","HITTypeId"],members:{HITId:{},HITTypeId:{}}},output:{type:"structure",members:{}},idempotent:!0},UpdateNotificationSettings:{input:{type:"structure",required:["HITTypeId"],members:{HITTypeId:{},Notification:{shape:"S3j"},Active:{type:"boolean"}}},output:{type:"structure",members:{}},idempotent:!0},UpdateQualificationType:{input:{type:"structure",required:["QualificationTypeId"],members:{QualificationTypeId:{},Description:{},QualificationTypeStatus:{},Test:{},AnswerKey:{},TestDurationInSeconds:{type:"long"},RetryDelayInSeconds:{type:"long"},AutoGranted:{type:"boolean"},AutoGrantedValue:{type:"integer"}}},output:{type:"structure",members:{QualificationType:{shape:"S19"}}}}},shapes:{Si:{type:"list",member:{type:"structure",required:["QualificationTypeId","Comparator"],members:{QualificationTypeId:{},Comparator:{},IntegerValues:{type:"list",member:{type:"integer"}},LocaleValues:{type:"list",member:{shape:"Sn"}},RequiredToPreview:{type:"boolean"}}}},Sn:{type:"structure",required:["Country"],members:{Country:{},Subdivision:{}}},Sp:{type:"structure",required:["PolicyName"],members:{PolicyName:{},Parameters:{type:"list",member:{type:"structure",members:{Key:{},Values:{shape:"Ss"},MapEntries:{type:"list",member:{type:"structure",members:{Key:{},Values:{shape:"Ss"}}}}}}}}},Ss:{type:"list",member:{}},Sv:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}},Sy:{type:"structure",members:{HITId:{},HITTypeId:{},HITGroupId:{},HITLayoutId:{},CreationTime:{type:"timestamp"},Title:{},Description:{},Question:{},Keywords:{},HITStatus:{},MaxAssignments:{type:"integer"},Reward:{},AutoApprovalDelayInSeconds:{type:"long"},Expiration:{type:"timestamp"},AssignmentDurationInSeconds:{type:"long"},RequesterAnnotation:{},QualificationRequirements:{shape:"Si"},HITReviewStatus:{},NumberOfAssignmentsPending:{type:"integer"},NumberOfAssignmentsAvailable:{type:"integer"},NumberOfAssignmentsCompleted:{type:"integer"}}},S19:{type:"structure",members:{QualificationTypeId:{},CreationTime:{type:"timestamp"},Name:{},Description:{},Keywords:{},QualificationTypeStatus:{},Test:{},TestDurationInSeconds:{type:"long"},AnswerKey:{},RetryDelayInSeconds:{type:"long"},IsRequestable:{type:"boolean"},AutoGranted:{type:"boolean"},AutoGrantedValue:{type:"integer"}}},S1o:{type:"structure",members:{AssignmentId:{},WorkerId:{},HITId:{},AssignmentStatus:{},AutoApprovalTime:{type:"timestamp"},AcceptTime:{type:"timestamp"},SubmitTime:{type:"timestamp"},ApprovalTime:{type:"timestamp"},RejectionTime:{type:"timestamp"},Deadline:{type:"timestamp"},Answer:{},RequesterFeedback:{}}},S1w:{type:"structure",members:{QualificationTypeId:{},WorkerId:{},GrantTime:{type:"timestamp"},IntegerValue:{type:"integer"},LocaleValue:{shape:"Sn"},Status:{}}},S2c:{type:"list",member:{shape:"Sy"}},S2q:{type:"structure",members:{ReviewResults:{type:"list",member:{type:"structure",members:{ActionId:{},SubjectId:{},SubjectType:{},QuestionId:{},Key:{},Value:{}}}},ReviewActions:{type:"list",member:{type:"structure",members:{ActionId:{},ActionName:{},TargetId:{},TargetType:{},Status:{},CompleteTime:{type:"timestamp"},Result:{},ErrorCode:{}}}}}},S3j:{type:"structure",required:["Destination","Transport","Version","EventTypes"],members:{Destination:{},Transport:{},Version:{},EventTypes:{type:"list",member:{}}}}}}},{}],113:[function(e,t,r){t.exports={pagination:{ListAssignmentsForHIT:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListBonusPayments:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListHITs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListHITsForQualificationType:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListQualificationRequests:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListQualificationTypes:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListReviewPolicyResultsForHIT:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListReviewableHITs:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListWorkerBlocks:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"},ListWorkersWithQualificationType:{input_token:"NextToken",output_token:"NextToken",limit_key:"MaxResults"}}}},{}],114:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-02-18",endpointPrefix:"opsworks",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS OpsWorks",signatureVersion:"v4",targetPrefix:"OpsWorks_20130218",uid:"opsworks-2013-02-18"},operations:{AssignInstance:{input:{type:"structure",required:["InstanceId","LayerIds"],members:{InstanceId:{},LayerIds:{shape:"S3"}}}},AssignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},InstanceId:{}}}},AssociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},InstanceId:{}}}},AttachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}}},CloneStack:{input:{type:"structure",required:["SourceStackId","ServiceRoleArn"],members:{SourceStackId:{},Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},ClonePermissions:{type:"boolean"},CloneAppIds:{shape:"S3"},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}}},CreateApp:{input:{type:"structure",required:["StackId","Name","Type"],members:{StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}},output:{type:"structure",members:{AppId:{}}}},CreateDeployment:{input:{type:"structure",required:["StackId","Command"],members:{StackId:{},AppId:{},InstanceIds:{shape:"S3"},LayerIds:{shape:"S3"},Command:{shape:"Ss"},Comment:{},CustomJson:{}}},output:{type:"structure",members:{DeploymentId:{}}}},CreateInstance:{input:{type:"structure",required:["StackId","LayerIds","InstanceType"],members:{StackId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},AvailabilityZone:{},VirtualizationType:{},SubnetId:{},Architecture:{},RootDeviceType:{},BlockDeviceMappings:{shape:"Sz"},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{},Tenancy:{}}},output:{type:"structure",members:{InstanceId:{}}}},CreateLayer:{input:{type:"structure",required:["StackId","Type","Name","Shortname"],members:{StackId:{},Type:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CloudWatchLogsConfiguration:{shape:"S19"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S1f"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1h"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1i"}}},output:{type:"structure",members:{LayerId:{}}}},CreateStack:{input:{type:"structure",required:["Name","Region","ServiceRoleArn","DefaultInstanceProfileArn"],members:{Name:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},AgentVersion:{}}},output:{type:"structure",members:{StackId:{}}}},CreateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}},output:{type:"structure",members:{IamUserArn:{}}}},DeleteApp:{input:{type:"structure",required:["AppId"],members:{AppId:{}}}},DeleteInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},DeleteElasticIp:{type:"boolean"},DeleteVolumes:{type:"boolean"}}}},DeleteLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}}},DeleteStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}}},DeleteUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{}}}},DeregisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn"],members:{EcsClusterArn:{}}}},DeregisterElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}}},DeregisterInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},DeregisterRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{}}}},DeregisterVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}}},DescribeAgentVersions:{input:{type:"structure",members:{StackId:{},ConfigurationManager:{shape:"Sa"}}},output:{type:"structure",members:{AgentVersions:{type:"list",member:{type:"structure",members:{Version:{},ConfigurationManager:{shape:"Sa"}}}}}}},DescribeApps:{input:{type:"structure",members:{StackId:{},AppIds:{shape:"S3"}}},output:{type:"structure",members:{Apps:{type:"list",member:{type:"structure",members:{AppId:{},StackId:{},Shortname:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},CreatedAt:{},Environment:{shape:"So"}}}}}}},DescribeCommands:{input:{type:"structure",members:{DeploymentId:{},InstanceId:{},CommandIds:{shape:"S3"}}},output:{type:"structure",members:{Commands:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},DeploymentId:{},CreatedAt:{},AcknowledgedAt:{},CompletedAt:{},Status:{},ExitCode:{type:"integer"},LogUrl:{},Type:{}}}}}}},DescribeDeployments:{input:{type:"structure",members:{StackId:{},AppId:{},DeploymentIds:{shape:"S3"}}},output:{type:"structure",members:{Deployments:{type:"list",member:{type:"structure",members:{DeploymentId:{},StackId:{},AppId:{},CreatedAt:{},CompletedAt:{},Duration:{type:"integer"},IamUserArn:{},Comment:{},Command:{shape:"Ss"},Status:{},CustomJson:{},InstanceIds:{shape:"S3"}}}}}}},DescribeEcsClusters:{input:{type:"structure",members:{EcsClusterArns:{shape:"S3"},StackId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{EcsClusters:{type:"list",member:{type:"structure",members:{EcsClusterArn:{},EcsClusterName:{},StackId:{},RegisteredAt:{}}}},NextToken:{}}}},DescribeElasticIps:{input:{type:"structure",members:{InstanceId:{},StackId:{},Ips:{shape:"S3"}}},output:{type:"structure",members:{ElasticIps:{type:"list",member:{type:"structure",members:{Ip:{},Name:{},Domain:{},Region:{},InstanceId:{}}}}}}},DescribeElasticLoadBalancers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{ElasticLoadBalancers:{type:"list",member:{type:"structure",members:{ElasticLoadBalancerName:{},Region:{},DnsName:{},StackId:{},LayerId:{},VpcId:{},AvailabilityZones:{shape:"S3"},SubnetIds:{shape:"S3"},Ec2InstanceIds:{shape:"S3"}}}}}}},DescribeInstances:{input:{type:"structure",members:{StackId:{},LayerId:{},InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{Instances:{type:"list",member:{type:"structure",members:{AgentVersion:{},AmiId:{},Architecture:{},Arn:{},AutoScalingType:{},AvailabilityZone:{},BlockDeviceMappings:{shape:"Sz"},CreatedAt:{},EbsOptimized:{type:"boolean"},Ec2InstanceId:{},EcsClusterArn:{},EcsContainerInstanceArn:{},ElasticIp:{},Hostname:{},InfrastructureClass:{},InstallUpdatesOnBoot:{type:"boolean"},InstanceId:{},InstanceProfileArn:{},InstanceType:{},LastServiceErrorId:{},LayerIds:{shape:"S3"},Os:{},Platform:{},PrivateDns:{},PrivateIp:{},PublicDns:{},PublicIp:{},RegisteredBy:{},ReportedAgentVersion:{},ReportedOs:{type:"structure",members:{Family:{},Name:{},Version:{}}},RootDeviceType:{},RootDeviceVolumeId:{},SecurityGroupIds:{shape:"S3"},SshHostDsaKeyFingerprint:{},SshHostRsaKeyFingerprint:{},SshKeyName:{},StackId:{},Status:{},SubnetId:{},Tenancy:{},VirtualizationType:{}}}}}}},DescribeLayers:{input:{type:"structure",members:{StackId:{},LayerIds:{shape:"S3"}}},output:{type:"structure",members:{Layers:{type:"list",member:{type:"structure",members:{Arn:{},StackId:{},LayerId:{},Type:{},Name:{}, +Shortname:{},Attributes:{shape:"S17"},CloudWatchLogsConfiguration:{shape:"S19"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},DefaultSecurityGroupNames:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S1f"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},DefaultRecipes:{shape:"S1h"},CustomRecipes:{shape:"S1h"},CreatedAt:{},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1i"}}}}}}},DescribeLoadBasedAutoScaling:{input:{type:"structure",required:["LayerIds"],members:{LayerIds:{shape:"S3"}}},output:{type:"structure",members:{LoadBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S36"},DownScaling:{shape:"S36"}}}}}}},DescribeMyUserProfile:{output:{type:"structure",members:{UserProfile:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{}}}}}},DescribePermissions:{input:{type:"structure",members:{IamUserArn:{},StackId:{}}},output:{type:"structure",members:{Permissions:{type:"list",member:{type:"structure",members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}}}}}},DescribeRaidArrays:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayIds:{shape:"S3"}}},output:{type:"structure",members:{RaidArrays:{type:"list",member:{type:"structure",members:{RaidArrayId:{},InstanceId:{},Name:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},Device:{},MountPoint:{},AvailabilityZone:{},CreatedAt:{},StackId:{},VolumeType:{},Iops:{type:"integer"}}}}}}},DescribeRdsDbInstances:{input:{type:"structure",required:["StackId"],members:{StackId:{},RdsDbInstanceArns:{shape:"S3"}}},output:{type:"structure",members:{RdsDbInstances:{type:"list",member:{type:"structure",members:{RdsDbInstanceArn:{},DbInstanceIdentifier:{},DbUser:{},DbPassword:{},Region:{},Address:{},Engine:{},StackId:{},MissingOnRds:{type:"boolean"}}}}}}},DescribeServiceErrors:{input:{type:"structure",members:{StackId:{},InstanceId:{},ServiceErrorIds:{shape:"S3"}}},output:{type:"structure",members:{ServiceErrors:{type:"list",member:{type:"structure",members:{ServiceErrorId:{},StackId:{},InstanceId:{},Type:{},Message:{},CreatedAt:{}}}}}}},DescribeStackProvisioningParameters:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{AgentInstallerUrl:{},Parameters:{type:"map",key:{},value:{}}}}},DescribeStackSummary:{input:{type:"structure",required:["StackId"],members:{StackId:{}}},output:{type:"structure",members:{StackSummary:{type:"structure",members:{StackId:{},Name:{},Arn:{},LayersCount:{type:"integer"},AppsCount:{type:"integer"},InstancesCount:{type:"structure",members:{Assigning:{type:"integer"},Booting:{type:"integer"},ConnectionLost:{type:"integer"},Deregistering:{type:"integer"},Online:{type:"integer"},Pending:{type:"integer"},Rebooting:{type:"integer"},Registered:{type:"integer"},Registering:{type:"integer"},Requested:{type:"integer"},RunningSetup:{type:"integer"},SetupFailed:{type:"integer"},ShuttingDown:{type:"integer"},StartFailed:{type:"integer"},Stopped:{type:"integer"},Stopping:{type:"integer"},Terminated:{type:"integer"},Terminating:{type:"integer"},Unassigning:{type:"integer"}}}}}}}},DescribeStacks:{input:{type:"structure",members:{StackIds:{shape:"S3"}}},output:{type:"structure",members:{Stacks:{type:"list",member:{type:"structure",members:{StackId:{},Name:{},Arn:{},Region:{},VpcId:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},UseOpsworksSecurityGroups:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},CreatedAt:{},DefaultRootDeviceType:{},AgentVersion:{}}}}}}},DescribeTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceIds"],members:{InstanceIds:{shape:"S3"}}},output:{type:"structure",members:{TimeBasedAutoScalingConfigurations:{type:"list",member:{type:"structure",members:{InstanceId:{},AutoScalingSchedule:{shape:"S46"}}}}}}},DescribeUserProfiles:{input:{type:"structure",members:{IamUserArns:{shape:"S3"}}},output:{type:"structure",members:{UserProfiles:{type:"list",member:{type:"structure",members:{IamUserArn:{},Name:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}}}}}},DescribeVolumes:{input:{type:"structure",members:{InstanceId:{},StackId:{},RaidArrayId:{},VolumeIds:{shape:"S3"}}},output:{type:"structure",members:{Volumes:{type:"list",member:{type:"structure",members:{VolumeId:{},Ec2VolumeId:{},Name:{},RaidArrayId:{},InstanceId:{},Status:{},Size:{type:"integer"},Device:{},MountPoint:{},Region:{},AvailabilityZone:{},VolumeType:{},Iops:{type:"integer"}}}}}}},DetachElasticLoadBalancer:{input:{type:"structure",required:["ElasticLoadBalancerName","LayerId"],members:{ElasticLoadBalancerName:{},LayerId:{}}}},DisassociateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{}}}},GetHostnameSuggestion:{input:{type:"structure",required:["LayerId"],members:{LayerId:{}}},output:{type:"structure",members:{LayerId:{},Hostname:{}}}},GrantAccess:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},ValidForInMinutes:{type:"integer"}}},output:{type:"structure",members:{TemporaryCredential:{type:"structure",members:{Username:{},Password:{},ValidForInMinutes:{type:"integer"},InstanceId:{}}}}}},ListTags:{input:{type:"structure",required:["ResourceArn"],members:{ResourceArn:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tags:{shape:"S4v"},NextToken:{}}}},RebootInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},RegisterEcsCluster:{input:{type:"structure",required:["EcsClusterArn","StackId"],members:{EcsClusterArn:{},StackId:{}}},output:{type:"structure",members:{EcsClusterArn:{}}}},RegisterElasticIp:{input:{type:"structure",required:["ElasticIp","StackId"],members:{ElasticIp:{},StackId:{}}},output:{type:"structure",members:{ElasticIp:{}}}},RegisterInstance:{input:{type:"structure",required:["StackId"],members:{StackId:{},Hostname:{},PublicIp:{},PrivateIp:{},RsaPublicKey:{},RsaPublicKeyFingerprint:{},InstanceIdentity:{type:"structure",members:{Document:{},Signature:{}}}}},output:{type:"structure",members:{InstanceId:{}}}},RegisterRdsDbInstance:{input:{type:"structure",required:["StackId","RdsDbInstanceArn","DbUser","DbPassword"],members:{StackId:{},RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}}},RegisterVolume:{input:{type:"structure",required:["StackId"],members:{Ec2VolumeId:{},StackId:{}}},output:{type:"structure",members:{VolumeId:{}}}},SetLoadBasedAutoScaling:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Enable:{type:"boolean"},UpScaling:{shape:"S36"},DownScaling:{shape:"S36"}}}},SetPermission:{input:{type:"structure",required:["StackId","IamUserArn"],members:{StackId:{},IamUserArn:{},AllowSsh:{type:"boolean"},AllowSudo:{type:"boolean"},Level:{}}}},SetTimeBasedAutoScaling:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},AutoScalingSchedule:{shape:"S46"}}}},StartInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},StartStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}}},StopInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},StopStack:{input:{type:"structure",required:["StackId"],members:{StackId:{}}}},TagResource:{input:{type:"structure",required:["ResourceArn","Tags"],members:{ResourceArn:{},Tags:{shape:"S4v"}}}},UnassignInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{}}}},UnassignVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{}}}},UntagResource:{input:{type:"structure",required:["ResourceArn","TagKeys"],members:{ResourceArn:{},TagKeys:{type:"list",member:{}}}}},UpdateApp:{input:{type:"structure",required:["AppId"],members:{AppId:{},Name:{},Description:{},DataSources:{shape:"Si"},Type:{},AppSource:{shape:"Sd"},Domains:{shape:"S3"},EnableSsl:{type:"boolean"},SslConfiguration:{shape:"Sl"},Attributes:{shape:"Sm"},Environment:{shape:"So"}}}},UpdateElasticIp:{input:{type:"structure",required:["ElasticIp"],members:{ElasticIp:{},Name:{}}}},UpdateInstance:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},LayerIds:{shape:"S3"},InstanceType:{},AutoScalingType:{},Hostname:{},Os:{},AmiId:{},SshKeyName:{},Architecture:{},InstallUpdatesOnBoot:{type:"boolean"},EbsOptimized:{type:"boolean"},AgentVersion:{}}}},UpdateLayer:{input:{type:"structure",required:["LayerId"],members:{LayerId:{},Name:{},Shortname:{},Attributes:{shape:"S17"},CloudWatchLogsConfiguration:{shape:"S19"},CustomInstanceProfileArn:{},CustomJson:{},CustomSecurityGroupIds:{shape:"S3"},Packages:{shape:"S3"},VolumeConfigurations:{shape:"S1f"},EnableAutoHealing:{type:"boolean"},AutoAssignElasticIps:{type:"boolean"},AutoAssignPublicIps:{type:"boolean"},CustomRecipes:{shape:"S1h"},InstallUpdatesOnBoot:{type:"boolean"},UseEbsOptimizedInstances:{type:"boolean"},LifecycleEventConfiguration:{shape:"S1i"}}}},UpdateMyUserProfile:{input:{type:"structure",members:{SshPublicKey:{}}}},UpdateRdsDbInstance:{input:{type:"structure",required:["RdsDbInstanceArn"],members:{RdsDbInstanceArn:{},DbUser:{},DbPassword:{}}}},UpdateStack:{input:{type:"structure",required:["StackId"],members:{StackId:{},Name:{},Attributes:{shape:"S8"},ServiceRoleArn:{},DefaultInstanceProfileArn:{},DefaultOs:{},HostnameTheme:{},DefaultAvailabilityZone:{},DefaultSubnetId:{},CustomJson:{},ConfigurationManager:{shape:"Sa"},ChefConfiguration:{shape:"Sb"},UseCustomCookbooks:{type:"boolean"},CustomCookbooksSource:{shape:"Sd"},DefaultSshKeyName:{},DefaultRootDeviceType:{},UseOpsworksSecurityGroups:{type:"boolean"},AgentVersion:{}}}},UpdateUserProfile:{input:{type:"structure",required:["IamUserArn"],members:{IamUserArn:{},SshUsername:{},SshPublicKey:{},AllowSelfManagement:{type:"boolean"}}}},UpdateVolume:{input:{type:"structure",required:["VolumeId"],members:{VolumeId:{},Name:{},MountPoint:{}}}}},shapes:{S3:{type:"list",member:{}},S8:{type:"map",key:{},value:{}},Sa:{type:"structure",members:{Name:{},Version:{}}},Sb:{type:"structure",members:{ManageBerkshelf:{type:"boolean"},BerkshelfVersion:{}}},Sd:{type:"structure",members:{Type:{},Url:{},Username:{},Password:{},SshKey:{},Revision:{}}},Si:{type:"list",member:{type:"structure",members:{Type:{},Arn:{},DatabaseName:{}}}},Sl:{type:"structure",required:["Certificate","PrivateKey"],members:{Certificate:{},PrivateKey:{},Chain:{}}},Sm:{type:"map",key:{},value:{}},So:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{},Secure:{type:"boolean"}}}},Ss:{type:"structure",required:["Name"],members:{Name:{},Args:{type:"map",key:{},value:{shape:"S3"}}}},Sz:{type:"list",member:{type:"structure",members:{DeviceName:{},NoDevice:{},VirtualName:{},Ebs:{type:"structure",members:{SnapshotId:{},Iops:{type:"integer"},VolumeSize:{type:"integer"},VolumeType:{},DeleteOnTermination:{type:"boolean"}}}}}},S17:{type:"map",key:{},value:{}},S19:{type:"structure",members:{Enabled:{type:"boolean"},LogStreams:{type:"list",member:{type:"structure",members:{LogGroupName:{},DatetimeFormat:{},TimeZone:{},File:{},FileFingerprintLines:{},MultiLineStartPattern:{},InitialPosition:{},Encoding:{},BufferDuration:{type:"integer"},BatchCount:{type:"integer"},BatchSize:{type:"integer"}}}}}},S1f:{type:"list",member:{type:"structure",required:["MountPoint","NumberOfDisks","Size"],members:{MountPoint:{},RaidLevel:{type:"integer"},NumberOfDisks:{type:"integer"},Size:{type:"integer"},VolumeType:{},Iops:{type:"integer"}}}},S1h:{type:"structure",members:{Setup:{shape:"S3"},Configure:{shape:"S3"},Deploy:{shape:"S3"},Undeploy:{shape:"S3"},Shutdown:{shape:"S3"}}},S1i:{type:"structure",members:{Shutdown:{type:"structure",members:{ExecutionTimeout:{type:"integer"},DelayUntilElbConnectionsDrained:{type:"boolean"}}}}},S36:{type:"structure",members:{InstanceCount:{type:"integer"},ThresholdsWaitTime:{type:"integer"},IgnoreMetricsTime:{type:"integer"},CpuThreshold:{type:"double"},MemoryThreshold:{type:"double"},LoadThreshold:{type:"double"},Alarms:{shape:"S3"}}},S46:{type:"structure",members:{Monday:{shape:"S47"},Tuesday:{shape:"S47"},Wednesday:{shape:"S47"},Thursday:{shape:"S47"},Friday:{shape:"S47"},Saturday:{shape:"S47"},Sunday:{shape:"S47"}}},S47:{type:"map",key:{},value:{}},S4v:{type:"map",key:{},value:{}}}}},{}],115:[function(e,t,r){t.exports={pagination:{DescribeApps:{result_key:"Apps"},DescribeCommands:{result_key:"Commands"},DescribeDeployments:{result_key:"Deployments"},DescribeEcsClusters:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"EcsClusters"},DescribeElasticIps:{result_key:"ElasticIps"},DescribeElasticLoadBalancers:{result_key:"ElasticLoadBalancers"},DescribeInstances:{result_key:"Instances"},DescribeLayers:{result_key:"Layers"},DescribeLoadBasedAutoScaling:{result_key:"LoadBasedAutoScalingConfigurations"},DescribePermissions:{result_key:"Permissions"},DescribeRaidArrays:{result_key:"RaidArrays"},DescribeServiceErrors:{result_key:"ServiceErrors"},DescribeStacks:{result_key:"Stacks"},DescribeTimeBasedAutoScaling:{result_key:"TimeBasedAutoScalingConfigurations"},DescribeUserProfiles:{result_key:"UserProfiles"},DescribeVolumes:{result_key:"Volumes"}}}},{}],116:[function(e,t,r){t.exports={version:2,waiters:{AppExists:{delay:1,operation:"DescribeApps",maxAttempts:40,acceptors:[{expected:200,matcher:"status",state:"success"},{matcher:"status",expected:400,state:"failure"}]},DeploymentSuccessful:{delay:15,operation:"DescribeDeployments",maxAttempts:40,description:"Wait until a deployment has completed successfully",acceptors:[{expected:"successful",matcher:"pathAll",state:"success",argument:"Deployments[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"Deployments[].Status"}]},InstanceOnline:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is online.",acceptors:[{expected:"online",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"shutting_down",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopped",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminating",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceRegistered:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is registered.",acceptors:[{expected:"registered",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"shutting_down",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopped",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stopping",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminating",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"terminated",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceStopped:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is stopped.",acceptors:[{expected:"stopped",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"stop_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]},InstanceTerminated:{delay:15,operation:"DescribeInstances",maxAttempts:40,description:"Wait until OpsWorks instance is terminated.",acceptors:[{expected:"terminated",matcher:"pathAll",state:"success",argument:"Instances[].Status"},{expected:"ResourceNotFoundException",matcher:"error",state:"success"},{expected:"booting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"online",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"pending",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"requested",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"running_setup",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"setup_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"},{expected:"start_failed",matcher:"pathAny",state:"failure",argument:"Instances[].Status"}]}}}},{}],117:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-06-10",endpointPrefix:"polly",protocol:"rest-json",serviceFullName:"Amazon Polly",serviceId:"Polly",signatureVersion:"v4",uid:"polly-2016-06-10"},operations:{DeleteLexicon:{http:{method:"DELETE",requestUri:"/v1/lexicons/{LexiconName}",responseCode:200},input:{type:"structure",required:["Name"],members:{Name:{shape:"S2",location:"uri",locationName:"LexiconName"}}},output:{type:"structure",members:{}}},DescribeVoices:{http:{method:"GET",requestUri:"/v1/voices",responseCode:200},input:{type:"structure",members:{LanguageCode:{location:"querystring",locationName:"LanguageCode"},NextToken:{location:"querystring",locationName:"NextToken"}}},output:{type:"structure",members:{Voices:{type:"list",member:{type:"structure",members:{Gender:{},Id:{},LanguageCode:{},LanguageName:{},Name:{}}}},NextToken:{}}}},GetLexicon:{http:{method:"GET",requestUri:"/v1/lexicons/{LexiconName}",responseCode:200},input:{type:"structure",required:["Name"],members:{Name:{shape:"S2",location:"uri",locationName:"LexiconName"}}},output:{type:"structure",members:{Lexicon:{type:"structure",members:{Content:{},Name:{shape:"S2"}}},LexiconAttributes:{shape:"Si"}}}},ListLexicons:{http:{method:"GET",requestUri:"/v1/lexicons",responseCode:200},input:{type:"structure",members:{NextToken:{location:"querystring",locationName:"NextToken"}}},output:{type:"structure",members:{Lexicons:{type:"list",member:{type:"structure",members:{Name:{shape:"S2"},Attributes:{shape:"Si"}}}},NextToken:{}}}},PutLexicon:{http:{method:"PUT",requestUri:"/v1/lexicons/{LexiconName}",responseCode:200},input:{type:"structure",required:["Name","Content"],members:{Name:{shape:"S2",location:"uri",locationName:"LexiconName"},Content:{}}},output:{type:"structure",members:{}}},SynthesizeSpeech:{http:{requestUri:"/v1/speech",responseCode:200},input:{type:"structure",required:["OutputFormat","Text","VoiceId"],members:{LexiconNames:{type:"list",member:{shape:"S2"}},OutputFormat:{},SampleRate:{},SpeechMarkTypes:{type:"list",member:{}},Text:{},TextType:{},VoiceId:{}}},output:{type:"structure",members:{AudioStream:{type:"blob",streaming:!0},ContentType:{location:"header",locationName:"Content-Type"},RequestCharacters:{location:"header",locationName:"x-amzn-RequestCharacters",type:"integer"}},payload:"AudioStream"}}},shapes:{S2:{type:"string",sensitive:!0},Si:{type:"structure",members:{Alphabet:{},LanguageCode:{},LastModified:{type:"timestamp"},LexiconArn:{},LexemesCount:{type:"integer"},Size:{type:"integer"}}}}}},{}],118:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],119:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-01-10",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2013-01-10",xmlNamespace:"http://rds.amazonaws.com/doc/2013-01-10/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S1c"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1i"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1o"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S25"},SupportedCharacterSets:{type:"list",member:{shape:"S25",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"St",locationName:"DBInstance"}}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S1c",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2f"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sk",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S11",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2f"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S1o",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S14",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{ +resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S3m",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S3o"}},wrapper:!0}}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2f"}}},output:{shape:"S3z",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1i"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sp"},VpcSecurityGroupMemberships:{shape:"Sq"}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1o"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S3m"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2f"}}},output:{shape:"S3z",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{Id:{},CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"}},wrapper:!0},Sp:{type:"list",member:{locationName:"DBSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sv"},VpcSecurityGroups:{shape:"Sx"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S11"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMembership:{type:"structure",members:{OptionGroupName:{},Status:{}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"}},wrapper:!0},Sv:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},Sx:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S11:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S14"},SubnetStatus:{}}}}},wrapper:!0},S14:{type:"structure",members:{Name:{},ProvisionedIopsCapable:{type:"boolean"}},wrapper:!0},S1c:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1i:{type:"list",member:{locationName:"SubnetIdentifier"}},S1o:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sv"},VpcSecurityGroupMemberships:{shape:"Sx"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S25:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2f:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3m:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S3o"}},wrapper:!0},S3o:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S3z:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],120:[function(e,t,r){t.exports={pagination:{DescribeDBEngineVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBEngineVersions"},DescribeDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBInstances"},DescribeDBParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBParameterGroups"},DescribeDBParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeDBSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSecurityGroups"},DescribeDBSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSnapshots"},DescribeDBSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"EngineDefaults.Marker",result_key:"EngineDefaults.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeOptionGroupOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupOptions"},DescribeOptionGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupsList"},DescribeOrderableDBInstanceOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OrderableDBInstanceOptions"},DescribeReservedDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstances"},DescribeReservedDBInstancesOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstancesOfferings"},ListTagsForResource:{result_key:"TagList"}}}},{}],121:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-02-12",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2013-02-12",xmlNamespace:"http://rds.amazonaws.com/doc/2013-02-12/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S1d"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1j"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1p"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S28"},SupportedCharacterSets:{type:"list",member:{shape:"S28",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"St",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S1d",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2n"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sk",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S11",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2n"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S1p",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S14",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S3w",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S3y"}},wrapper:!0}}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2n"}}},output:{shape:"S4b",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1j"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sp"},VpcSecurityGroupMemberships:{shape:"Sq"},OptionSettings:{type:"list",member:{shape:"S1t",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1p"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S3w"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2n"}}},output:{shape:"S4b",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list", +member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{}},wrapper:!0},Sp:{type:"list",member:{locationName:"DBSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sv"},VpcSecurityGroups:{shape:"Sx"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S11"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"}},wrapper:!0},Sv:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},Sx:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S11:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S14"},SubnetStatus:{}}}}},wrapper:!0},S14:{type:"structure",members:{Name:{},ProvisionedIopsCapable:{type:"boolean"}},wrapper:!0},S1d:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1j:{type:"list",member:{locationName:"SubnetIdentifier"}},S1p:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"S1t",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"Sv"},VpcSecurityGroupMemberships:{shape:"Sx"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S1t:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S28:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2n:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3w:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S3y"}},wrapper:!0},S3y:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4b:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],122:[function(e,t,r){t.exports={pagination:{DescribeDBEngineVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBEngineVersions"},DescribeDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBInstances"},DescribeDBLogFiles:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DescribeDBLogFiles"},DescribeDBParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBParameterGroups"},DescribeDBParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeDBSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSecurityGroups"},DescribeDBSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSnapshots"},DescribeDBSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"DBSubnetGroups"},DescribeEngineDefaultParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"EngineDefaults.Marker",result_key:"EngineDefaults.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeOptionGroupOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupOptions"},DescribeOptionGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OptionGroupsList"},DescribeOrderableDBInstanceOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OrderableDBInstanceOptions"},DescribeReservedDBInstances:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstances"},DescribeReservedDBInstancesOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedDBInstancesOfferings"},DownloadDBLogFilePortion:{input_token:"Marker",limit_key:"NumberOfLines",more_results:"AdditionalDataPending",output_token:"Marker",result_key:"LogFileData"},ListTagsForResource:{result_key:"TagList"}}}},{}],123:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-09-09",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2013-09-09",xmlNamespace:"http://rds.amazonaws.com/doc/2013-09-09/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},DBSubnetGroupName:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S1f"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1l"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1r"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sk"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S2d"},SupportedCharacterSets:{type:"list",member:{shape:"S2d",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"St",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S1f",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2s"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sk",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S11",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2s"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S27"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S27"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S1r",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S14",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S41",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S27"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S43"}},wrapper:!0}}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S27"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2s"}}},output:{shape:"S4g",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1l"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S11"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"Sp"},VpcSecurityGroupMemberships:{shape:"Sq"},OptionSettings:{type:"list",member:{shape:"S1v",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S1r"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"St"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"S9"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S41"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2s"}}},output:{shape:"S4g",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"St"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{},PercentProgress:{type:"integer"},SourceRegion:{}},wrapper:!0},Sp:{type:"list",member:{locationName:"DBSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sv"},VpcSecurityGroups:{shape:"Sx"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S11"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}}},wrapper:!0},Sv:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},Sx:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S11:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S14"},SubnetStatus:{}}}}},wrapper:!0},S14:{type:"structure",members:{Name:{},ProvisionedIopsCapable:{type:"boolean"}},wrapper:!0},S1f:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},S1l:{type:"list",member:{locationName:"SubnetIdentifier"}},S1r:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"S1v",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"Sv"},VpcSecurityGroupMemberships:{shape:"Sx"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},S1v:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S27:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S2d:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2s:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S41:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S43"}},wrapper:!0},S43:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"}, +RecurringChargeFrequency:{}},wrapper:!0}},S4g:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],124:[function(e,t,r){arguments[4][122][0].apply(r,arguments)},{dup:122}],125:[function(e,t,r){t.exports={version:2,waiters:{DBInstanceAvailable:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBInstanceDeleted:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]}}}},{}],126:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2014-09-01",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2014-09-01",xmlNamespace:"http://rds.amazonaws.com/doc/2014-09-01/"},operations:{AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S9"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CopyDBParameterGroup:{input:{type:"structure",required:["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],members:{SourceDBParameterGroupIdentifier:{},TargetDBParameterGroupIdentifier:{},TargetDBParameterGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sk"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sn"}}}},CopyOptionGroup:{input:{type:"structure",required:["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],members:{SourceOptionGroupIdentifier:{},TargetOptionGroupIdentifier:{},TargetOptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CopyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"St"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","AllocatedStorage","DBInstanceClass","Engine","MasterUsername","MasterUserPassword"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S13"},VpcSecurityGroupIds:{shape:"S14"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"S9"},DBSubnetGroupName:{},StorageType:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"Sk"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sn"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1u"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1b"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},SourceIds:{shape:"S5"},Enabled:{type:"boolean"},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"S9"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"St"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"Sn"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S2h"},SupportedCharacterSets:{type:"list",member:{shape:"S2h",locationName:"CharacterSet"}}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"S17",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"Sk",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S2w"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sd",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"Sn",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S1b",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2w"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S2b"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S6"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S4",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S6"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S6"},Date:{type:"timestamp"}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S2b"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"St",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S1e",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"},StorageType:{},SupportsIops:{type:"boolean"}},wrapper:!0}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S45",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S2b"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S47"}},wrapper:!0}}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S2b"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"S9"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSecurityGroups:{shape:"S13"},VpcSecurityGroupIds:{shape:"S14"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S2w"}}},output:{shape:"S4k",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S1u"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S1b"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S6"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},DBSecurityGroupMemberships:{shape:"S13"},VpcSecurityGroupMemberships:{shape:"S14"},OptionSettings:{type:"list",member:{shape:"Sx",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"St"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"S9"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S45"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S4"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2w"}}},output:{shape:"S4k",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"S9"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"S17"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sd"}}}}},shapes:{S4:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S5"},EventCategoriesList:{shape:"S6"},Enabled:{type:"boolean"}},wrapper:!0},S5:{type:"list",member:{locationName:"SourceId"}},S6:{type:"list",member:{locationName:"EventCategory"}},S9:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Sd:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}}},wrapper:!0},Sk:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{}},wrapper:!0},Sn:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{},PercentProgress:{type:"integer"},SourceRegion:{},StorageType:{},TdeCredentialArn:{}},wrapper:!0},St:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionSettings:{type:"list",member:{shape:"Sx",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"Sy"},VpcSecurityGroupMemberships:{shape:"S10"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{}},wrapper:!0},Sx:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},Sy:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},S10:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S13:{type:"list",member:{locationName:"DBSecurityGroupName"}},S14:{type:"list",member:{locationName:"VpcSecurityGroupId"}},S17:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"Sy"},VpcSecurityGroups:{shape:"S10"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S1b"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},Iops:{type:"integer"},DBInstanceIdentifier:{},StorageType:{}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}},StorageType:{},TdeCredentialArn:{}},wrapper:!0},S1b:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S1e"},SubnetStatus:{}}}}},wrapper:!0},S1e:{type:"structure",members:{Name:{}},wrapper:!0},S1u:{type:"list",member:{locationName:"SubnetIdentifier"}},S2b:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S2h:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S2w:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S45:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S47"}},wrapper:!0},S47:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4k:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],127:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],128:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2014-10-31",endpointPrefix:"rds",protocol:"query",serviceAbbreviation:"Amazon RDS",serviceFullName:"Amazon Relational Database Service",serviceId:"RDS",signatureVersion:"v4",uid:"rds-2014-10-31",xmlNamespace:"http://rds.amazonaws.com/doc/2014-10-31/"},operations:{AddRoleToDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","RoleArn"],members:{DBClusterIdentifier:{},RoleArn:{}}}},AddSourceIdentifierToSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"AddSourceIdentifierToSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"Sa"}}}},ApplyPendingMaintenanceAction:{input:{type:"structure",required:["ResourceIdentifier","ApplyAction","OptInType"],members:{ResourceIdentifier:{},ApplyAction:{},OptInType:{}}},output:{resultWrapper:"ApplyPendingMaintenanceActionResult",type:"structure",members:{ResourcePendingMaintenanceActions:{shape:"Se"}}}},AuthorizeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sk"}}}},CopyDBClusterParameterGroup:{input:{type:"structure",required:["SourceDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupIdentifier","TargetDBClusterParameterGroupDescription"],members:{SourceDBClusterParameterGroupIdentifier:{},TargetDBClusterParameterGroupIdentifier:{},TargetDBClusterParameterGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CopyDBClusterParameterGroupResult",type:"structure",members:{DBClusterParameterGroup:{shape:"Sr"}}}},CopyDBClusterSnapshot:{input:{type:"structure",required:["SourceDBClusterSnapshotIdentifier","TargetDBClusterSnapshotIdentifier"],members:{SourceDBClusterSnapshotIdentifier:{},TargetDBClusterSnapshotIdentifier:{},KmsKeyId:{},PreSignedUrl:{},CopyTags:{type:"boolean"},Tags:{shape:"Sa"},SourceRegion:{}}},output:{resultWrapper:"CopyDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sv"}}}},CopyDBParameterGroup:{input:{type:"structure",required:["SourceDBParameterGroupIdentifier","TargetDBParameterGroupIdentifier","TargetDBParameterGroupDescription"],members:{SourceDBParameterGroupIdentifier:{},TargetDBParameterGroupIdentifier:{},TargetDBParameterGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CopyDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S10"}}}},CopyDBSnapshot:{input:{type:"structure",required:["SourceDBSnapshotIdentifier","TargetDBSnapshotIdentifier"],members:{SourceDBSnapshotIdentifier:{},TargetDBSnapshotIdentifier:{},KmsKeyId:{},Tags:{shape:"Sa"},CopyTags:{type:"boolean"},PreSignedUrl:{},OptionGroupName:{},SourceRegion:{}}},output:{resultWrapper:"CopyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},CopyOptionGroup:{input:{type:"structure",required:["SourceOptionGroupIdentifier","TargetOptionGroupIdentifier","TargetOptionGroupDescription"],members:{SourceOptionGroupIdentifier:{},TargetOptionGroupIdentifier:{},TargetOptionGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CopyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S17"}}}},CreateDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","Engine"],members:{AvailabilityZones:{shape:"Sw"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},DBSubnetGroupName:{},Engine:{},EngineVersion:{},Port:{type:"integer"},MasterUsername:{},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},ReplicationSourceIdentifier:{},Tags:{ +shape:"Sa"},StorageEncrypted:{type:"boolean"},KmsKeyId:{},PreSignedUrl:{},EnableIAMDatabaseAuthentication:{type:"boolean"},SourceRegion:{}}},output:{resultWrapper:"CreateDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},CreateDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","DBParameterGroupFamily","Description"],members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBClusterParameterGroupResult",type:"structure",members:{DBClusterParameterGroup:{shape:"Sr"}}}},CreateDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","DBClusterIdentifier"],members:{DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sv"}}}},CreateDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier","DBInstanceClass","Engine"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S1w"},VpcSecurityGroupIds:{shape:"S1h"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},CharacterSetName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"Sa"},DBClusterIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"},Timezone:{},EnableIAMDatabaseAuthentication:{type:"boolean"},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{},EnableCloudwatchLogsExports:{shape:"S1x"}}},output:{resultWrapper:"CreateDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},CreateDBInstanceReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier","SourceDBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SourceDBInstanceIdentifier:{},DBInstanceClass:{},AvailabilityZone:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"Sa"},DBSubnetGroupName:{},StorageType:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},KmsKeyId:{},PreSignedUrl:{},EnableIAMDatabaseAuthentication:{type:"boolean"},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{},EnableCloudwatchLogsExports:{shape:"S1x"},SourceRegion:{}}},output:{resultWrapper:"CreateDBInstanceReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},CreateDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","DBParameterGroupFamily","Description"],members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBParameterGroupResult",type:"structure",members:{DBParameterGroup:{shape:"S10"}}}},CreateDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName","DBSecurityGroupDescription"],members:{DBSecurityGroupName:{},DBSecurityGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBSecurityGroupResult",type:"structure",members:{DBSecurityGroup:{shape:"Sk"}}}},CreateDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier","DBInstanceIdentifier"],members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},CreateDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","DBSubnetGroupDescription","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2q"},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S23"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S7"},SourceIds:{shape:"S6"},Enabled:{type:"boolean"},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},CreateOptionGroup:{input:{type:"structure",required:["OptionGroupName","EngineName","MajorEngineVersion","OptionGroupDescription"],members:{OptionGroupName:{},EngineName:{},MajorEngineVersion:{},OptionGroupDescription:{},Tags:{shape:"Sa"}}},output:{resultWrapper:"CreateOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S17"}}}},DeleteDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},DeleteDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{}}}},DeleteDBClusterSnapshot:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBClusterSnapshotResult",type:"structure",members:{DBClusterSnapshot:{shape:"Sv"}}}},DeleteDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},SkipFinalSnapshot:{type:"boolean"},FinalDBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},DeleteDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{}}}},DeleteDBSecurityGroup:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{}}}},DeleteDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},DeleteDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName"],members:{DBSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}},output:{resultWrapper:"DeleteEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},DeleteOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{}}}},DescribeAccountAttributes:{input:{type:"structure",members:{}},output:{resultWrapper:"DescribeAccountAttributesResult",type:"structure",members:{AccountQuotas:{type:"list",member:{locationName:"AccountQuota",type:"structure",members:{AccountQuotaName:{},Used:{type:"long"},Max:{type:"long"}},wrapper:!0}}}}},DescribeCertificates:{input:{type:"structure",members:{CertificateIdentifier:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeCertificatesResult",type:"structure",members:{Certificates:{type:"list",member:{locationName:"Certificate",type:"structure",members:{CertificateIdentifier:{},CertificateType:{},Thumbprint:{},ValidFrom:{type:"timestamp"},ValidTill:{type:"timestamp"},CertificateArn:{}},wrapper:!0}},Marker:{}}}},DescribeDBClusterParameterGroups:{input:{type:"structure",members:{DBClusterParameterGroupName:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParameterGroupsResult",type:"structure",members:{Marker:{},DBClusterParameterGroups:{type:"list",member:{shape:"Sr",locationName:"DBClusterParameterGroup"}}}}},DescribeDBClusterParameters:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},Source:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClusterParametersResult",type:"structure",members:{Parameters:{shape:"S3s"},Marker:{}}}},DescribeDBClusterSnapshotAttributes:{input:{type:"structure",required:["DBClusterSnapshotIdentifier"],members:{DBClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBClusterSnapshotAttributesResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3x"}}}},DescribeDBClusterSnapshots:{input:{type:"structure",members:{DBClusterIdentifier:{},DBClusterSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBClusterSnapshotsResult",type:"structure",members:{Marker:{},DBClusterSnapshots:{type:"list",member:{shape:"Sv",locationName:"DBClusterSnapshot"}}}}},DescribeDBClusters:{input:{type:"structure",members:{DBClusterIdentifier:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBClustersResult",type:"structure",members:{Marker:{},DBClusters:{type:"list",member:{shape:"S1j",locationName:"DBCluster"}}}}},DescribeDBEngineVersions:{input:{type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{},DefaultOnly:{type:"boolean"},ListSupportedCharacterSets:{type:"boolean"},ListSupportedTimezones:{type:"boolean"}}},output:{resultWrapper:"DescribeDBEngineVersionsResult",type:"structure",members:{Marker:{},DBEngineVersions:{type:"list",member:{locationName:"DBEngineVersion",type:"structure",members:{Engine:{},EngineVersion:{},DBParameterGroupFamily:{},DBEngineDescription:{},DBEngineVersionDescription:{},DefaultCharacterSet:{shape:"S4b"},SupportedCharacterSets:{type:"list",member:{shape:"S4b",locationName:"CharacterSet"}},ValidUpgradeTarget:{type:"list",member:{locationName:"UpgradeTarget",type:"structure",members:{Engine:{},EngineVersion:{},Description:{},AutoUpgrade:{type:"boolean"},IsMajorVersionUpgrade:{type:"boolean"}}}},SupportedTimezones:{type:"list",member:{locationName:"Timezone",type:"structure",members:{TimezoneName:{}}}},ExportableLogTypes:{shape:"S1x"},SupportsLogExportsToCloudwatchLogs:{type:"boolean"}}}}}}},DescribeDBInstances:{input:{type:"structure",members:{DBInstanceIdentifier:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBInstancesResult",type:"structure",members:{Marker:{},DBInstances:{type:"list",member:{shape:"S1z",locationName:"DBInstance"}}}}},DescribeDBLogFiles:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},FilenameContains:{},FileLastWritten:{type:"long"},FileSize:{type:"long"},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBLogFilesResult",type:"structure",members:{DescribeDBLogFiles:{type:"list",member:{locationName:"DescribeDBLogFilesDetails",type:"structure",members:{LogFileName:{},LastWritten:{type:"long"},Size:{type:"long"}}}},Marker:{}}}},DescribeDBParameterGroups:{input:{type:"structure",members:{DBParameterGroupName:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParameterGroupsResult",type:"structure",members:{Marker:{},DBParameterGroups:{type:"list",member:{shape:"S10",locationName:"DBParameterGroup"}}}}},DescribeDBParameters:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},Source:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBParametersResult",type:"structure",members:{Parameters:{shape:"S3s"},Marker:{}}}},DescribeDBSecurityGroups:{input:{type:"structure",members:{DBSecurityGroupName:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSecurityGroupsResult",type:"structure",members:{Marker:{},DBSecurityGroups:{type:"list",member:{shape:"Sk",locationName:"DBSecurityGroup"}}}}},DescribeDBSnapshotAttributes:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{}}},output:{resultWrapper:"DescribeDBSnapshotAttributesResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4y"}}}},DescribeDBSnapshots:{input:{type:"structure",members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},SnapshotType:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{},IncludeShared:{type:"boolean"},IncludePublic:{type:"boolean"}}},output:{resultWrapper:"DescribeDBSnapshotsResult",type:"structure",members:{Marker:{},DBSnapshots:{type:"list",member:{shape:"S13",locationName:"DBSnapshot"}}}}},DescribeDBSubnetGroups:{input:{type:"structure",members:{DBSubnetGroupName:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDBSubnetGroupsResult",type:"structure",members:{Marker:{},DBSubnetGroups:{type:"list",member:{shape:"S23",locationName:"DBSubnetGroup"}}}}},DescribeEngineDefaultClusterParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultClusterParametersResult",type:"structure",members:{EngineDefaults:{shape:"S59"}}}},DescribeEngineDefaultParameters:{input:{type:"structure",required:["DBParameterGroupFamily"],members:{DBParameterGroupFamily:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEngineDefaultParametersResult",type:"structure",members:{EngineDefaults:{shape:"S59"}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{},Filters:{shape:"S3h"}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},EventCategories:{shape:"S7"}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S5",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},EventCategories:{shape:"S7"},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S7"},Date:{type:"timestamp"},SourceArn:{}}}}}}},DescribeOptionGroupOptions:{input:{type:"structure",required:["EngineName"],members:{EngineName:{},MajorEngineVersion:{},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOptionGroupOptionsResult",type:"structure",members:{OptionGroupOptions:{type:"list",member:{locationName:"OptionGroupOption",type:"structure",members:{Name:{},Description:{},EngineName:{},MajorEngineVersion:{},MinimumRequiredMinorEngineVersion:{},PortRequired:{type:"boolean"},DefaultPort:{type:"integer"},OptionsDependedOn:{type:"list",member:{locationName:"OptionName"}},OptionsConflictsWith:{type:"list",member:{locationName:"OptionConflictName"}},Persistent:{type:"boolean"},Permanent:{type:"boolean"},RequiresAutoMinorEngineVersionUpgrade:{type:"boolean"},VpcOnly:{type:"boolean"},SupportsOptionVersionDowngrade:{type:"boolean"},OptionGroupOptionSettings:{type:"list",member:{locationName:"OptionGroupOptionSetting",type:"structure",members:{SettingName:{},SettingDescription:{},DefaultValue:{},ApplyType:{},AllowedValues:{},IsModifiable:{type:"boolean"}}}},OptionGroupOptionVersions:{type:"list",member:{locationName:"OptionVersion",type:"structure",members:{Version:{},IsDefault:{type:"boolean"}}}}}}},Marker:{}}}},DescribeOptionGroups:{input:{type:"structure",members:{OptionGroupName:{},Filters:{shape:"S3h"},Marker:{},MaxRecords:{type:"integer"},EngineName:{},MajorEngineVersion:{}}},output:{resultWrapper:"DescribeOptionGroupsResult",type:"structure",members:{OptionGroupsList:{type:"list",member:{shape:"S17",locationName:"OptionGroup"}},Marker:{}}}},DescribeOrderableDBInstanceOptions:{input:{type:"structure",required:["Engine"],members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},Vpc:{type:"boolean"},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableDBInstanceOptionsResult",type:"structure",members:{OrderableDBInstanceOptions:{type:"list",member:{locationName:"OrderableDBInstanceOption",type:"structure",members:{Engine:{},EngineVersion:{},DBInstanceClass:{},LicenseModel:{},AvailabilityZones:{type:"list",member:{shape:"S26",locationName:"AvailabilityZone"}},MultiAZCapable:{type:"boolean"},ReadReplicaCapable:{type:"boolean"},Vpc:{type:"boolean"},SupportsStorageEncryption:{type:"boolean"},StorageType:{},SupportsIops:{type:"boolean"},SupportsEnhancedMonitoring:{type:"boolean"},SupportsIAMDatabaseAuthentication:{type:"boolean"},SupportsPerformanceInsights:{type:"boolean"},MinStorageSize:{type:"integer"},MaxStorageSize:{type:"integer"},MinIopsPerDbInstance:{type:"integer"},MaxIopsPerDbInstance:{type:"integer"},MinIopsPerGib:{type:"double"},MaxIopsPerGib:{type:"double"}},wrapper:!0}},Marker:{}}}},DescribePendingMaintenanceActions:{input:{type:"structure",members:{ResourceIdentifier:{},Filters:{shape:"S3h"},Marker:{},MaxRecords:{type:"integer"}}},output:{resultWrapper:"DescribePendingMaintenanceActionsResult",type:"structure",members:{PendingMaintenanceActions:{type:"list",member:{shape:"Se",locationName:"ResourcePendingMaintenanceActions"}},Marker:{}}}},DescribeReservedDBInstances:{input:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesResult",type:"structure",members:{Marker:{},ReservedDBInstances:{type:"list",member:{shape:"S6d",locationName:"ReservedDBInstance"}}}}},DescribeReservedDBInstancesOfferings:{input:{type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},Filters:{shape:"S3h"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedDBInstancesOfferingsResult",type:"structure",members:{Marker:{},ReservedDBInstancesOfferings:{type:"list",member:{locationName:"ReservedDBInstancesOffering",type:"structure",members:{ReservedDBInstancesOfferingId:{},DBInstanceClass:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},RecurringCharges:{shape:"S6f"}},wrapper:!0}}}}},DescribeSourceRegions:{input:{type:"structure",members:{RegionName:{},MaxRecords:{type:"integer"},Marker:{},Filters:{shape:"S3h"}}},output:{resultWrapper:"DescribeSourceRegionsResult",type:"structure",members:{Marker:{},SourceRegions:{type:"list",member:{locationName:"SourceRegion",type:"structure",members:{RegionName:{},Endpoint:{},Status:{}}}}}}},DescribeValidDBInstanceModifications:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{}}},output:{resultWrapper:"DescribeValidDBInstanceModificationsResult",type:"structure",members:{ValidDBInstanceModificationsMessage:{type:"structure",members:{Storage:{type:"list",member:{locationName:"ValidStorageOptions",type:"structure",members:{StorageType:{},StorageSize:{shape:"S6u"},ProvisionedIops:{shape:"S6u"},IopsToStorageRatio:{type:"list",member:{locationName:"DoubleRange",type:"structure",members:{From:{type:"double"},To:{type:"double"}}}}}}}},wrapper:!0}}}},DownloadDBLogFilePortion:{input:{type:"structure",required:["DBInstanceIdentifier","LogFileName"],members:{DBInstanceIdentifier:{},LogFileName:{},Marker:{},NumberOfLines:{type:"integer"}}},output:{resultWrapper:"DownloadDBLogFilePortionResult",type:"structure",members:{LogFileData:{},Marker:{},AdditionalDataPending:{type:"boolean"}}}},FailoverDBCluster:{input:{type:"structure",members:{DBClusterIdentifier:{},TargetDBInstanceIdentifier:{}}},output:{resultWrapper:"FailoverDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceName"],members:{ResourceName:{},Filters:{shape:"S3h"}}},output:{resultWrapper:"ListTagsForResourceResult",type:"structure",members:{TagList:{shape:"Sa"}}}},ModifyDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{},NewDBClusterIdentifier:{},ApplyImmediately:{type:"boolean"},BackupRetentionPeriod:{type:"integer"},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},Port:{type:"integer"},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"ModifyDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},ModifyDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName","Parameters"],members:{DBClusterParameterGroupName:{},Parameters:{shape:"S3s"}}},output:{shape:"S77",resultWrapper:"ModifyDBClusterParameterGroupResult"}},ModifyDBClusterSnapshotAttribute:{input:{type:"structure",required:["DBClusterSnapshotIdentifier","AttributeName"],members:{DBClusterSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S40"},ValuesToRemove:{shape:"S40"}}},output:{resultWrapper:"ModifyDBClusterSnapshotAttributeResult",type:"structure",members:{DBClusterSnapshotAttributesResult:{shape:"S3x"}}}},ModifyDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},DBSubnetGroupName:{},DBSecurityGroups:{shape:"S1w"},VpcSecurityGroupIds:{shape:"S1h"},ApplyImmediately:{type:"boolean"},MasterUserPassword:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},MultiAZ:{type:"boolean"},EngineVersion:{},AllowMajorVersionUpgrade:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},NewDBInstanceIdentifier:{},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},CACertificateIdentifier:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},DBPortNumber:{type:"integer"},PubliclyAccessible:{type:"boolean"},MonitoringRoleArn:{},DomainIAMRoleName:{},PromotionTier:{type:"integer"},EnableIAMDatabaseAuthentication:{type:"boolean"},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{},CloudwatchLogsExportConfiguration:{type:"structure",members:{EnableLogTypes:{shape:"S1x"},DisableLogTypes:{shape:"S1x"}}}}},output:{resultWrapper:"ModifyDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},ModifyDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName","Parameters"],members:{DBParameterGroupName:{},Parameters:{shape:"S3s"}}},output:{shape:"S7e",resultWrapper:"ModifyDBParameterGroupResult"}},ModifyDBSnapshot:{input:{type:"structure",required:["DBSnapshotIdentifier"],members:{DBSnapshotIdentifier:{},EngineVersion:{},OptionGroupName:{}}},output:{resultWrapper:"ModifyDBSnapshotResult",type:"structure",members:{DBSnapshot:{shape:"S13"}}}},ModifyDBSnapshotAttribute:{input:{type:"structure",required:["DBSnapshotIdentifier","AttributeName"],members:{DBSnapshotIdentifier:{},AttributeName:{},ValuesToAdd:{shape:"S40"},ValuesToRemove:{shape:"S40"}}},output:{resultWrapper:"ModifyDBSnapshotAttributeResult",type:"structure",members:{DBSnapshotAttributesResult:{shape:"S4y"}}}},ModifyDBSubnetGroup:{input:{type:"structure",required:["DBSubnetGroupName","SubnetIds"],members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},SubnetIds:{shape:"S2q"}}},output:{resultWrapper:"ModifyDBSubnetGroupResult",type:"structure",members:{DBSubnetGroup:{shape:"S23"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},EventCategories:{shape:"S7"},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},ModifyOptionGroup:{input:{type:"structure",required:["OptionGroupName"],members:{OptionGroupName:{},OptionsToInclude:{type:"list",member:{locationName:"OptionConfiguration",type:"structure",required:["OptionName"],members:{OptionName:{},Port:{type:"integer"},OptionVersion:{},DBSecurityGroupMemberships:{shape:"S1w"},VpcSecurityGroupMemberships:{shape:"S1h"},OptionSettings:{type:"list",member:{shape:"S1b",locationName:"OptionSetting"}}}}},OptionsToRemove:{type:"list",member:{}},ApplyImmediately:{type:"boolean"}}},output:{resultWrapper:"ModifyOptionGroupResult",type:"structure",members:{OptionGroup:{shape:"S17"}}}},PromoteReadReplica:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{}}},output:{resultWrapper:"PromoteReadReplicaResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},PromoteReadReplicaDBCluster:{input:{type:"structure",required:["DBClusterIdentifier"],members:{DBClusterIdentifier:{}}},output:{resultWrapper:"PromoteReadReplicaDBClusterResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},PurchaseReservedDBInstancesOffering:{input:{type:"structure",required:["ReservedDBInstancesOfferingId"],members:{ReservedDBInstancesOfferingId:{},ReservedDBInstanceId:{},DBInstanceCount:{type:"integer"},Tags:{shape:"Sa"}}},output:{resultWrapper:"PurchaseReservedDBInstancesOfferingResult",type:"structure",members:{ReservedDBInstance:{shape:"S6d"}}}},RebootDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},ForceFailover:{type:"boolean"}}},output:{resultWrapper:"RebootDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},RemoveRoleFromDBCluster:{input:{type:"structure",required:["DBClusterIdentifier","RoleArn"],members:{DBClusterIdentifier:{},RoleArn:{}}}},RemoveSourceIdentifierFromSubscription:{input:{type:"structure",required:["SubscriptionName","SourceIdentifier"],members:{SubscriptionName:{},SourceIdentifier:{}}},output:{resultWrapper:"RemoveSourceIdentifierFromSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S5"}}}},RemoveTagsFromResource:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{type:"list",member:{}}}}},ResetDBClusterParameterGroup:{input:{type:"structure",required:["DBClusterParameterGroupName"],members:{DBClusterParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3s"}}},output:{shape:"S77",resultWrapper:"ResetDBClusterParameterGroupResult"}},ResetDBParameterGroup:{input:{type:"structure",required:["DBParameterGroupName"],members:{DBParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S3s"}}},output:{shape:"S7e",resultWrapper:"ResetDBParameterGroupResult"}},RestoreDBClusterFromS3:{input:{type:"structure",required:["DBClusterIdentifier","Engine","MasterUsername","MasterUserPassword","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],members:{AvailabilityZones:{shape:"Sw"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},DBSubnetGroupName:{},Engine:{},EngineVersion:{},Port:{type:"integer"},MasterUsername:{},MasterUserPassword:{},OptionGroupName:{},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},Tags:{shape:"Sa"},StorageEncrypted:{type:"boolean"},KmsKeyId:{},EnableIAMDatabaseAuthentication:{type:"boolean"},SourceEngine:{},SourceEngineVersion:{},S3BucketName:{},S3Prefix:{},S3IngestionRoleArn:{}}},output:{resultWrapper:"RestoreDBClusterFromS3Result",type:"structure",members:{DBCluster:{shape:"S1j"}}}},RestoreDBClusterFromSnapshot:{input:{type:"structure",required:["DBClusterIdentifier","SnapshotIdentifier","Engine"],members:{AvailabilityZones:{shape:"Sw"},DBClusterIdentifier:{},SnapshotIdentifier:{},Engine:{},EngineVersion:{},Port:{type:"integer"},DBSubnetGroupName:{},DatabaseName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},Tags:{shape:"Sa"},KmsKeyId:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"RestoreDBClusterFromSnapshotResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},RestoreDBClusterToPointInTime:{input:{type:"structure",required:["DBClusterIdentifier","SourceDBClusterIdentifier"],members:{DBClusterIdentifier:{},RestoreType:{},SourceDBClusterIdentifier:{},RestoreToTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},Port:{type:"integer"},DBSubnetGroupName:{},OptionGroupName:{},VpcSecurityGroupIds:{shape:"S1h"},Tags:{shape:"Sa"},KmsKeyId:{},EnableIAMDatabaseAuthentication:{type:"boolean"}}},output:{resultWrapper:"RestoreDBClusterToPointInTimeResult",type:"structure",members:{DBCluster:{shape:"S1j"}}}},RestoreDBInstanceFromDBSnapshot:{input:{type:"structure",required:["DBInstanceIdentifier","DBSnapshotIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},Tags:{shape:"Sa"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},CopyTagsToSnapshot:{type:"boolean"},DomainIAMRoleName:{},EnableIAMDatabaseAuthentication:{type:"boolean"},EnableCloudwatchLogsExports:{shape:"S1x"}}},output:{resultWrapper:"RestoreDBInstanceFromDBSnapshotResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},RestoreDBInstanceFromS3:{input:{type:"structure",required:["DBInstanceIdentifier","DBInstanceClass","Engine","SourceEngine","SourceEngineVersion","S3BucketName","S3IngestionRoleArn"],members:{DBName:{},DBInstanceIdentifier:{},AllocatedStorage:{type:"integer"},DBInstanceClass:{},Engine:{},MasterUsername:{},MasterUserPassword:{},DBSecurityGroups:{shape:"S1w"},VpcSecurityGroupIds:{shape:"S1h"},AvailabilityZone:{},DBSubnetGroupName:{},PreferredMaintenanceWindow:{},DBParameterGroupName:{},BackupRetentionPeriod:{type:"integer"},PreferredBackupWindow:{},Port:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},Iops:{type:"integer"},OptionGroupName:{},PubliclyAccessible:{type:"boolean"},Tags:{shape:"Sa"},StorageType:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},MonitoringRoleArn:{},EnableIAMDatabaseAuthentication:{type:"boolean"},SourceEngine:{},SourceEngineVersion:{},S3BucketName:{},S3Prefix:{},S3IngestionRoleArn:{},EnablePerformanceInsights:{type:"boolean"},PerformanceInsightsKMSKeyId:{},EnableCloudwatchLogsExports:{shape:"S1x"}}},output:{resultWrapper:"RestoreDBInstanceFromS3Result",type:"structure",members:{DBInstance:{shape:"S1z"}}}},RestoreDBInstanceToPointInTime:{input:{type:"structure",required:["SourceDBInstanceIdentifier","TargetDBInstanceIdentifier"],members:{SourceDBInstanceIdentifier:{},TargetDBInstanceIdentifier:{},RestoreTime:{type:"timestamp"},UseLatestRestorableTime:{type:"boolean"},DBInstanceClass:{},Port:{type:"integer"},AvailabilityZone:{},DBSubnetGroupName:{},MultiAZ:{ +type:"boolean"},PubliclyAccessible:{type:"boolean"},AutoMinorVersionUpgrade:{type:"boolean"},LicenseModel:{},DBName:{},Engine:{},Iops:{type:"integer"},OptionGroupName:{},CopyTagsToSnapshot:{type:"boolean"},Tags:{shape:"Sa"},StorageType:{},TdeCredentialArn:{},TdeCredentialPassword:{},Domain:{},DomainIAMRoleName:{},EnableIAMDatabaseAuthentication:{type:"boolean"},EnableCloudwatchLogsExports:{shape:"S1x"}}},output:{resultWrapper:"RestoreDBInstanceToPointInTimeResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},RevokeDBSecurityGroupIngress:{input:{type:"structure",required:["DBSecurityGroupName"],members:{DBSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeDBSecurityGroupIngressResult",type:"structure",members:{DBSecurityGroup:{shape:"Sk"}}}},StartDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{}}},output:{resultWrapper:"StartDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}},StopDBInstance:{input:{type:"structure",required:["DBInstanceIdentifier"],members:{DBInstanceIdentifier:{},DBSnapshotIdentifier:{}}},output:{resultWrapper:"StopDBInstanceResult",type:"structure",members:{DBInstance:{shape:"S1z"}}}}},shapes:{S5:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{},SourceType:{},SourceIdsList:{shape:"S6"},EventCategoriesList:{shape:"S7"},Enabled:{type:"boolean"},EventSubscriptionArn:{}},wrapper:!0},S6:{type:"list",member:{locationName:"SourceId"}},S7:{type:"list",member:{locationName:"EventCategory"}},Sa:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},Se:{type:"structure",members:{ResourceIdentifier:{},PendingMaintenanceActionDetails:{type:"list",member:{locationName:"PendingMaintenanceAction",type:"structure",members:{Action:{},AutoAppliedAfterDate:{type:"timestamp"},ForcedApplyDate:{type:"timestamp"},OptInStatus:{},CurrentApplyDate:{type:"timestamp"},Description:{}}}}},wrapper:!0},Sk:{type:"structure",members:{OwnerId:{},DBSecurityGroupName:{},DBSecurityGroupDescription:{},VpcId:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupId:{},EC2SecurityGroupOwnerId:{}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{}}}},DBSecurityGroupArn:{}},wrapper:!0},Sr:{type:"structure",members:{DBClusterParameterGroupName:{},DBParameterGroupFamily:{},Description:{},DBClusterParameterGroupArn:{}},wrapper:!0},Sv:{type:"structure",members:{AvailabilityZones:{shape:"Sw"},DBClusterSnapshotIdentifier:{},DBClusterIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},VpcId:{},ClusterCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},PercentProgress:{type:"integer"},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DBClusterSnapshotArn:{},SourceDBClusterSnapshotArn:{},IAMDatabaseAuthenticationEnabled:{type:"boolean"}},wrapper:!0},Sw:{type:"list",member:{locationName:"AvailabilityZone"}},S10:{type:"structure",members:{DBParameterGroupName:{},DBParameterGroupFamily:{},Description:{},DBParameterGroupArn:{}},wrapper:!0},S13:{type:"structure",members:{DBSnapshotIdentifier:{},DBInstanceIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Engine:{},AllocatedStorage:{type:"integer"},Status:{},Port:{type:"integer"},AvailabilityZone:{},VpcId:{},InstanceCreateTime:{type:"timestamp"},MasterUsername:{},EngineVersion:{},LicenseModel:{},SnapshotType:{},Iops:{type:"integer"},OptionGroupName:{},PercentProgress:{type:"integer"},SourceRegion:{},SourceDBSnapshotIdentifier:{},StorageType:{},TdeCredentialArn:{},Encrypted:{type:"boolean"},KmsKeyId:{},DBSnapshotArn:{},Timezone:{},IAMDatabaseAuthenticationEnabled:{type:"boolean"}},wrapper:!0},S17:{type:"structure",members:{OptionGroupName:{},OptionGroupDescription:{},EngineName:{},MajorEngineVersion:{},Options:{type:"list",member:{locationName:"Option",type:"structure",members:{OptionName:{},OptionDescription:{},Persistent:{type:"boolean"},Permanent:{type:"boolean"},Port:{type:"integer"},OptionVersion:{},OptionSettings:{type:"list",member:{shape:"S1b",locationName:"OptionSetting"}},DBSecurityGroupMemberships:{shape:"S1c"},VpcSecurityGroupMemberships:{shape:"S1e"}}}},AllowsVpcAndNonVpcInstanceMemberships:{type:"boolean"},VpcId:{},OptionGroupArn:{}},wrapper:!0},S1b:{type:"structure",members:{Name:{},Value:{},DefaultValue:{},Description:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},IsCollection:{type:"boolean"}}},S1c:{type:"list",member:{locationName:"DBSecurityGroup",type:"structure",members:{DBSecurityGroupName:{},Status:{}}}},S1e:{type:"list",member:{locationName:"VpcSecurityGroupMembership",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},S1h:{type:"list",member:{locationName:"VpcSecurityGroupId"}},S1j:{type:"structure",members:{AllocatedStorage:{type:"integer"},AvailabilityZones:{shape:"Sw"},BackupRetentionPeriod:{type:"integer"},CharacterSetName:{},DatabaseName:{},DBClusterIdentifier:{},DBClusterParameterGroup:{},DBSubnetGroup:{},Status:{},PercentProgress:{},EarliestRestorableTime:{type:"timestamp"},Endpoint:{},ReaderEndpoint:{},MultiAZ:{type:"boolean"},Engine:{},EngineVersion:{},LatestRestorableTime:{type:"timestamp"},Port:{type:"integer"},MasterUsername:{},DBClusterOptionGroupMemberships:{type:"list",member:{locationName:"DBClusterOptionGroup",type:"structure",members:{DBClusterOptionGroupName:{},Status:{}}}},PreferredBackupWindow:{},PreferredMaintenanceWindow:{},ReplicationSourceIdentifier:{},ReadReplicaIdentifiers:{type:"list",member:{locationName:"ReadReplicaIdentifier"}},DBClusterMembers:{type:"list",member:{locationName:"DBClusterMember",type:"structure",members:{DBInstanceIdentifier:{},IsClusterWriter:{type:"boolean"},DBClusterParameterGroupStatus:{},PromotionTier:{type:"integer"}},wrapper:!0}},VpcSecurityGroups:{shape:"S1e"},HostedZoneId:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbClusterResourceId:{},DBClusterArn:{},AssociatedRoles:{type:"list",member:{locationName:"DBClusterRole",type:"structure",members:{RoleArn:{},Status:{}}}},IAMDatabaseAuthenticationEnabled:{type:"boolean"},CloneGroupId:{},ClusterCreateTime:{type:"timestamp"}},wrapper:!0},S1w:{type:"list",member:{locationName:"DBSecurityGroupName"}},S1x:{type:"list",member:{}},S1z:{type:"structure",members:{DBInstanceIdentifier:{},DBInstanceClass:{},Engine:{},DBInstanceStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"},HostedZoneId:{}}},AllocatedStorage:{type:"integer"},InstanceCreateTime:{type:"timestamp"},PreferredBackupWindow:{},BackupRetentionPeriod:{type:"integer"},DBSecurityGroups:{shape:"S1c"},VpcSecurityGroups:{shape:"S1e"},DBParameterGroups:{type:"list",member:{locationName:"DBParameterGroup",type:"structure",members:{DBParameterGroupName:{},ParameterApplyStatus:{}}}},AvailabilityZone:{},DBSubnetGroup:{shape:"S23"},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{DBInstanceClass:{},AllocatedStorage:{type:"integer"},MasterUserPassword:{},Port:{type:"integer"},BackupRetentionPeriod:{type:"integer"},MultiAZ:{type:"boolean"},EngineVersion:{},LicenseModel:{},Iops:{type:"integer"},DBInstanceIdentifier:{},StorageType:{},CACertificateIdentifier:{},DBSubnetGroupName:{},PendingCloudwatchLogsExports:{type:"structure",members:{LogTypesToEnable:{shape:"S1x"},LogTypesToDisable:{shape:"S1x"}}}}},LatestRestorableTime:{type:"timestamp"},MultiAZ:{type:"boolean"},EngineVersion:{},AutoMinorVersionUpgrade:{type:"boolean"},ReadReplicaSourceDBInstanceIdentifier:{},ReadReplicaDBInstanceIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBInstanceIdentifier"}},ReadReplicaDBClusterIdentifiers:{type:"list",member:{locationName:"ReadReplicaDBClusterIdentifier"}},LicenseModel:{},Iops:{type:"integer"},OptionGroupMemberships:{type:"list",member:{locationName:"OptionGroupMembership",type:"structure",members:{OptionGroupName:{},Status:{}}}},CharacterSetName:{},SecondaryAvailabilityZone:{},PubliclyAccessible:{type:"boolean"},StatusInfos:{type:"list",member:{locationName:"DBInstanceStatusInfo",type:"structure",members:{StatusType:{},Normal:{type:"boolean"},Status:{},Message:{}}}},StorageType:{},TdeCredentialArn:{},DbInstancePort:{type:"integer"},DBClusterIdentifier:{},StorageEncrypted:{type:"boolean"},KmsKeyId:{},DbiResourceId:{},CACertificateIdentifier:{},DomainMemberships:{type:"list",member:{locationName:"DomainMembership",type:"structure",members:{Domain:{},Status:{},FQDN:{},IAMRoleName:{}}}},CopyTagsToSnapshot:{type:"boolean"},MonitoringInterval:{type:"integer"},EnhancedMonitoringResourceArn:{},MonitoringRoleArn:{},PromotionTier:{type:"integer"},DBInstanceArn:{},Timezone:{},IAMDatabaseAuthenticationEnabled:{type:"boolean"},PerformanceInsightsEnabled:{type:"boolean"},PerformanceInsightsKMSKeyId:{},EnabledCloudwatchLogsExports:{shape:"S1x"}},wrapper:!0},S23:{type:"structure",members:{DBSubnetGroupName:{},DBSubnetGroupDescription:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S26"},SubnetStatus:{}}}},DBSubnetGroupArn:{}},wrapper:!0},S26:{type:"structure",members:{Name:{}},wrapper:!0},S2q:{type:"list",member:{locationName:"SubnetIdentifier"}},S3h:{type:"list",member:{locationName:"Filter",type:"structure",required:["Name","Values"],members:{Name:{},Values:{type:"list",member:{locationName:"Value"}}}}},S3s:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},ApplyType:{},DataType:{},AllowedValues:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{},ApplyMethod:{}}}},S3x:{type:"structure",members:{DBClusterSnapshotIdentifier:{},DBClusterSnapshotAttributes:{type:"list",member:{locationName:"DBClusterSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S40"}}}}},wrapper:!0},S40:{type:"list",member:{locationName:"AttributeValue"}},S4b:{type:"structure",members:{CharacterSetName:{},CharacterSetDescription:{}}},S4y:{type:"structure",members:{DBSnapshotIdentifier:{},DBSnapshotAttributes:{type:"list",member:{locationName:"DBSnapshotAttribute",type:"structure",members:{AttributeName:{},AttributeValues:{shape:"S40"}},wrapper:!0}}},wrapper:!0},S59:{type:"structure",members:{DBParameterGroupFamily:{},Marker:{},Parameters:{shape:"S3s"}},wrapper:!0},S6d:{type:"structure",members:{ReservedDBInstanceId:{},ReservedDBInstancesOfferingId:{},DBInstanceClass:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},DBInstanceCount:{type:"integer"},ProductDescription:{},OfferingType:{},MultiAZ:{type:"boolean"},State:{},RecurringCharges:{shape:"S6f"},ReservedDBInstanceArn:{}},wrapper:!0},S6f:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S6u:{type:"list",member:{locationName:"Range",type:"structure",members:{From:{type:"integer"},To:{type:"integer"},Step:{type:"integer"}}}},S77:{type:"structure",members:{DBClusterParameterGroupName:{}}},S7e:{type:"structure",members:{DBParameterGroupName:{}}}}}},{}],129:[function(e,t,r){arguments[4][122][0].apply(r,arguments)},{dup:122}],130:[function(e,t,r){t.exports={version:2,waiters:{DBInstanceAvailable:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBInstanceDeleted:{delay:30,operation:"DescribeDBInstances",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBInstances[].DBInstanceStatus"},{expected:"DBInstanceNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBInstances[].DBInstanceStatus"}]},DBSnapshotAvailable:{delay:30,operation:"DescribeDBSnapshots",maxAttempts:60,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"DBSnapshots[].Status"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"incompatible-restore",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"incompatible-parameters",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"}]},DBSnapshotDeleted:{delay:30,operation:"DescribeDBSnapshots",maxAttempts:60,acceptors:[{expected:"deleted",matcher:"pathAll",state:"success",argument:"DBSnapshots[].Status"},{expected:"DBSnapshotNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"rebooting",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"},{expected:"resetting-master-credentials",matcher:"pathAny",state:"failure",argument:"DBSnapshots[].Status"}]}}}},{}],131:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2012-12-01",endpointPrefix:"redshift",protocol:"query",serviceFullName:"Amazon Redshift",signatureVersion:"v4",uid:"redshift-2012-12-01",xmlNamespace:"http://redshift.amazonaws.com/doc/2012-12-01/"},operations:{AuthorizeClusterSecurityGroupIngress:{input:{type:"structure",required:["ClusterSecurityGroupName"],members:{ClusterSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"AuthorizeClusterSecurityGroupIngressResult",type:"structure",members:{ClusterSecurityGroup:{shape:"S4"}}}},AuthorizeSnapshotAccess:{input:{type:"structure",required:["SnapshotIdentifier","AccountWithRestoreAccess"],members:{SnapshotIdentifier:{},SnapshotClusterIdentifier:{},AccountWithRestoreAccess:{}}},output:{resultWrapper:"AuthorizeSnapshotAccessResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},CopyClusterSnapshot:{input:{type:"structure",required:["SourceSnapshotIdentifier","TargetSnapshotIdentifier"],members:{SourceSnapshotIdentifier:{},SourceSnapshotClusterIdentifier:{},TargetSnapshotIdentifier:{}}},output:{resultWrapper:"CopyClusterSnapshotResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},CreateCluster:{input:{type:"structure",required:["ClusterIdentifier","NodeType","MasterUsername","MasterUserPassword"],members:{DBName:{},ClusterIdentifier:{},ClusterType:{},NodeType:{},MasterUsername:{},MasterUserPassword:{},ClusterSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},ClusterSubnetGroupName:{},AvailabilityZone:{},PreferredMaintenanceWindow:{},ClusterParameterGroupName:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},Port:{type:"integer"},ClusterVersion:{},AllowVersionUpgrade:{type:"boolean"},NumberOfNodes:{type:"integer"},PubliclyAccessible:{type:"boolean"},Encrypted:{type:"boolean"},HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},ElasticIp:{},Tags:{shape:"S7"},KmsKeyId:{},EnhancedVpcRouting:{type:"boolean"},AdditionalInfo:{},IamRoles:{shape:"St"}}},output:{resultWrapper:"CreateClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},CreateClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName","ParameterGroupFamily","Description"],members:{ParameterGroupName:{},ParameterGroupFamily:{},Description:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterParameterGroupResult",type:"structure",members:{ClusterParameterGroup:{shape:"S1g"}}}},CreateClusterSecurityGroup:{input:{type:"structure",required:["ClusterSecurityGroupName","Description"],members:{ClusterSecurityGroupName:{},Description:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterSecurityGroupResult",type:"structure",members:{ClusterSecurityGroup:{shape:"S4"}}}},CreateClusterSnapshot:{input:{type:"structure",required:["SnapshotIdentifier","ClusterIdentifier"],members:{SnapshotIdentifier:{},ClusterIdentifier:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterSnapshotResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},CreateClusterSubnetGroup:{input:{type:"structure",required:["ClusterSubnetGroupName","Description","SubnetIds"],members:{ClusterSubnetGroupName:{},Description:{},SubnetIds:{shape:"S1m"},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateClusterSubnetGroupResult",type:"structure",members:{ClusterSubnetGroup:{shape:"S1o"}}}},CreateEventSubscription:{input:{type:"structure",required:["SubscriptionName","SnsTopicArn"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},SourceIds:{shape:"S1t"},EventCategories:{shape:"S1u"},Severity:{},Enabled:{type:"boolean"},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S1w"}}}},CreateHsmClientCertificate:{input:{type:"structure",required:["HsmClientCertificateIdentifier"],members:{HsmClientCertificateIdentifier:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateHsmClientCertificateResult",type:"structure",members:{HsmClientCertificate:{shape:"S1z"}}}},CreateHsmConfiguration:{input:{type:"structure",required:["HsmConfigurationIdentifier","Description","HsmIpAddress","HsmPartitionName","HsmPartitionPassword","HsmServerPublicCertificate"],members:{HsmConfigurationIdentifier:{},Description:{},HsmIpAddress:{},HsmPartitionName:{},HsmPartitionPassword:{},HsmServerPublicCertificate:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateHsmConfigurationResult",type:"structure",members:{HsmConfiguration:{shape:"S22"}}}},CreateSnapshotCopyGrant:{input:{type:"structure",required:["SnapshotCopyGrantName"],members:{SnapshotCopyGrantName:{},KmsKeyId:{},Tags:{shape:"S7"}}},output:{resultWrapper:"CreateSnapshotCopyGrantResult",type:"structure",members:{SnapshotCopyGrant:{shape:"S25"}}}},CreateTags:{input:{type:"structure",required:["ResourceName","Tags"],members:{ResourceName:{},Tags:{shape:"S7"}}}},DeleteCluster:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{},SkipFinalClusterSnapshot:{type:"boolean"},FinalClusterSnapshotIdentifier:{}}},output:{resultWrapper:"DeleteClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},DeleteClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName"],members:{ParameterGroupName:{}}}},DeleteClusterSecurityGroup:{input:{type:"structure",required:["ClusterSecurityGroupName"],members:{ClusterSecurityGroupName:{}}}},DeleteClusterSnapshot:{input:{type:"structure",required:["SnapshotIdentifier"],members:{SnapshotIdentifier:{},SnapshotClusterIdentifier:{}}},output:{resultWrapper:"DeleteClusterSnapshotResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},DeleteClusterSubnetGroup:{input:{type:"structure",required:["ClusterSubnetGroupName"],members:{ClusterSubnetGroupName:{}}}},DeleteEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{}}}},DeleteHsmClientCertificate:{input:{type:"structure",required:["HsmClientCertificateIdentifier"],members:{HsmClientCertificateIdentifier:{}}}},DeleteHsmConfiguration:{input:{type:"structure",required:["HsmConfigurationIdentifier"],members:{HsmConfigurationIdentifier:{}}}},DeleteSnapshotCopyGrant:{input:{type:"structure",required:["SnapshotCopyGrantName"],members:{SnapshotCopyGrantName:{}}}},DeleteTags:{input:{type:"structure",required:["ResourceName","TagKeys"],members:{ResourceName:{},TagKeys:{shape:"S2j"}}}},DescribeClusterParameterGroups:{input:{type:"structure",members:{ParameterGroupName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterParameterGroupsResult",type:"structure",members:{Marker:{},ParameterGroups:{type:"list",member:{shape:"S1g",locationName:"ClusterParameterGroup"}}}}},DescribeClusterParameters:{input:{type:"structure",required:["ParameterGroupName"],members:{ParameterGroupName:{},Source:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeClusterParametersResult",type:"structure",members:{Parameters:{shape:"S2q"},Marker:{}}}},DescribeClusterSecurityGroups:{input:{type:"structure",members:{ClusterSecurityGroupName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterSecurityGroupsResult",type:"structure",members:{Marker:{},ClusterSecurityGroups:{type:"list",member:{shape:"S4",locationName:"ClusterSecurityGroup"}}}}},DescribeClusterSnapshots:{input:{type:"structure",members:{ClusterIdentifier:{},SnapshotIdentifier:{},SnapshotType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},MaxRecords:{type:"integer"},Marker:{},OwnerAccount:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterSnapshotsResult",type:"structure",members:{Marker:{},Snapshots:{type:"list",member:{shape:"Sd",locationName:"Snapshot"}}}}},DescribeClusterSubnetGroups:{input:{type:"structure",members:{ClusterSubnetGroupName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClusterSubnetGroupsResult",type:"structure",members:{Marker:{},ClusterSubnetGroups:{type:"list",member:{shape:"S1o",locationName:"ClusterSubnetGroup"}}}}},DescribeClusterVersions:{input:{type:"structure",members:{ClusterVersion:{},ClusterParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeClusterVersionsResult",type:"structure",members:{Marker:{},ClusterVersions:{type:"list",member:{locationName:"ClusterVersion",type:"structure",members:{ClusterVersion:{},ClusterParameterGroupFamily:{},Description:{}}}}}}},DescribeClusters:{input:{type:"structure",members:{ClusterIdentifier:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeClustersResult",type:"structure",members:{Marker:{},Clusters:{type:"list",member:{shape:"Sv",locationName:"Cluster"}}}}},DescribeDefaultClusterParameters:{input:{type:"structure",required:["ParameterGroupFamily"],members:{ParameterGroupFamily:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeDefaultClusterParametersResult",type:"structure",members:{DefaultClusterParameters:{type:"structure",members:{ParameterGroupFamily:{},Marker:{},Parameters:{shape:"S2q"}},wrapper:!0}}}},DescribeEventCategories:{input:{type:"structure",members:{SourceType:{}}},output:{resultWrapper:"DescribeEventCategoriesResult",type:"structure",members:{EventCategoriesMapList:{type:"list",member:{locationName:"EventCategoriesMap",type:"structure",members:{SourceType:{},Events:{type:"list",member:{locationName:"EventInfoMap",type:"structure",members:{EventId:{},EventCategories:{shape:"S1u"},EventDescription:{},Severity:{}},wrapper:!0}}},wrapper:!0}}}}},DescribeEventSubscriptions:{input:{type:"structure",members:{SubscriptionName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeEventSubscriptionsResult",type:"structure",members:{Marker:{},EventSubscriptionsList:{type:"list",member:{shape:"S1w",locationName:"EventSubscription"}}}}},DescribeEvents:{input:{type:"structure",members:{SourceIdentifier:{},SourceType:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},Duration:{type:"integer"},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeEventsResult",type:"structure",members:{Marker:{},Events:{type:"list",member:{locationName:"Event",type:"structure",members:{SourceIdentifier:{},SourceType:{},Message:{},EventCategories:{shape:"S1u"},Severity:{},Date:{type:"timestamp"},EventId:{}}}}}}},DescribeHsmClientCertificates:{input:{type:"structure",members:{HsmClientCertificateIdentifier:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeHsmClientCertificatesResult",type:"structure",members:{Marker:{},HsmClientCertificates:{type:"list",member:{shape:"S1z",locationName:"HsmClientCertificate"}}}}},DescribeHsmConfigurations:{input:{type:"structure",members:{HsmConfigurationIdentifier:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeHsmConfigurationsResult",type:"structure",members:{Marker:{},HsmConfigurations:{type:"list",member:{shape:"S22",locationName:"HsmConfiguration"}}}}},DescribeLoggingStatus:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{shape:"S3x",resultWrapper:"DescribeLoggingStatusResult"}},DescribeOrderableClusterOptions:{input:{type:"structure",members:{ClusterVersion:{},NodeType:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeOrderableClusterOptionsResult",type:"structure",members:{OrderableClusterOptions:{type:"list",member:{locationName:"OrderableClusterOption",type:"structure",members:{ClusterVersion:{},ClusterType:{},NodeType:{},AvailabilityZones:{type:"list",member:{shape:"S1r",locationName:"AvailabilityZone"}}},wrapper:!0}},Marker:{}}}},DescribeReservedNodeOfferings:{input:{type:"structure",members:{ReservedNodeOfferingId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedNodeOfferingsResult",type:"structure",members:{Marker:{},ReservedNodeOfferings:{type:"list",member:{locationName:"ReservedNodeOffering",type:"structure",members:{ReservedNodeOfferingId:{},NodeType:{},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},OfferingType:{},RecurringCharges:{shape:"S47"}},wrapper:!0}}}}},DescribeReservedNodes:{input:{type:"structure",members:{ReservedNodeId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeReservedNodesResult",type:"structure",members:{Marker:{},ReservedNodes:{type:"list",member:{shape:"S4c",locationName:"ReservedNode"}}}}},DescribeResize:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"DescribeResizeResult",type:"structure",members:{TargetNodeType:{},TargetNumberOfNodes:{type:"integer"},TargetClusterType:{},Status:{},ImportTablesCompleted:{type:"list",member:{}},ImportTablesInProgress:{type:"list",member:{}},ImportTablesNotStarted:{type:"list",member:{}},AvgResizeRateInMegaBytesPerSecond:{type:"double"},TotalResizeDataInMegaBytes:{type:"long"},ProgressInMegaBytes:{type:"long"},ElapsedTimeInSeconds:{type:"long"},EstimatedTimeToCompletionInSeconds:{type:"long"}}}},DescribeSnapshotCopyGrants:{input:{type:"structure",members:{SnapshotCopyGrantName:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeSnapshotCopyGrantsResult",type:"structure",members:{Marker:{},SnapshotCopyGrants:{type:"list",member:{shape:"S25",locationName:"SnapshotCopyGrant"}}}}},DescribeTableRestoreStatus:{input:{type:"structure",members:{ClusterIdentifier:{},TableRestoreRequestId:{},MaxRecords:{type:"integer"},Marker:{}}},output:{resultWrapper:"DescribeTableRestoreStatusResult",type:"structure",members:{TableRestoreStatusDetails:{type:"list",member:{shape:"S4q",locationName:"TableRestoreStatus"}},Marker:{}}}},DescribeTags:{input:{type:"structure",members:{ResourceName:{},ResourceType:{},MaxRecords:{type:"integer"},Marker:{},TagKeys:{shape:"S2j"},TagValues:{shape:"S2l"}}},output:{resultWrapper:"DescribeTagsResult",type:"structure",members:{TaggedResources:{type:"list",member:{locationName:"TaggedResource",type:"structure",members:{Tag:{shape:"S8"},ResourceName:{},ResourceType:{}}}},Marker:{}}}},DisableLogging:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{shape:"S3x",resultWrapper:"DisableLoggingResult"}},DisableSnapshotCopy:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"DisableSnapshotCopyResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},EnableLogging:{input:{type:"structure",required:["ClusterIdentifier","BucketName"],members:{ClusterIdentifier:{},BucketName:{},S3KeyPrefix:{}}},output:{shape:"S3x",resultWrapper:"EnableLoggingResult"}},EnableSnapshotCopy:{input:{type:"structure",required:["ClusterIdentifier","DestinationRegion"],members:{ClusterIdentifier:{},DestinationRegion:{},RetentionPeriod:{type:"integer"},SnapshotCopyGrantName:{}}},output:{resultWrapper:"EnableSnapshotCopyResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},GetClusterCredentials:{input:{type:"structure",required:["DbUser","ClusterIdentifier"],members:{DbUser:{},DbName:{},ClusterIdentifier:{},DurationSeconds:{type:"integer"},AutoCreate:{type:"boolean"},DbGroups:{type:"list",member:{locationName:"DbGroup"}}}},output:{resultWrapper:"GetClusterCredentialsResult",type:"structure",members:{DbUser:{},DbPassword:{type:"string",sensitive:!0},Expiration:{type:"timestamp"}}}},ModifyCluster:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{},ClusterType:{},NodeType:{},NumberOfNodes:{type:"integer"},ClusterSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},MasterUserPassword:{},ClusterParameterGroupName:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},PreferredMaintenanceWindow:{},ClusterVersion:{},AllowVersionUpgrade:{type:"boolean"},HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},NewClusterIdentifier:{},PubliclyAccessible:{type:"boolean"},ElasticIp:{},EnhancedVpcRouting:{type:"boolean"}}},output:{resultWrapper:"ModifyClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},ModifyClusterIamRoles:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{},AddIamRoles:{shape:"St"},RemoveIamRoles:{shape:"St"}}},output:{resultWrapper:"ModifyClusterIamRolesResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},ModifyClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName","Parameters"],members:{ParameterGroupName:{},Parameters:{shape:"S2q"}}},output:{shape:"S5b",resultWrapper:"ModifyClusterParameterGroupResult"}},ModifyClusterSubnetGroup:{input:{type:"structure",required:["ClusterSubnetGroupName","SubnetIds"],members:{ClusterSubnetGroupName:{},Description:{},SubnetIds:{shape:"S1m"}}},output:{resultWrapper:"ModifyClusterSubnetGroupResult",type:"structure",members:{ClusterSubnetGroup:{shape:"S1o"}}}},ModifyEventSubscription:{input:{type:"structure",required:["SubscriptionName"],members:{SubscriptionName:{},SnsTopicArn:{},SourceType:{},SourceIds:{shape:"S1t"},EventCategories:{shape:"S1u"},Severity:{},Enabled:{type:"boolean"}}},output:{resultWrapper:"ModifyEventSubscriptionResult",type:"structure",members:{EventSubscription:{shape:"S1w"}}}},ModifySnapshotCopyRetentionPeriod:{input:{type:"structure",required:["ClusterIdentifier","RetentionPeriod"],members:{ClusterIdentifier:{},RetentionPeriod:{ +type:"integer"}}},output:{resultWrapper:"ModifySnapshotCopyRetentionPeriodResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},PurchaseReservedNodeOffering:{input:{type:"structure",required:["ReservedNodeOfferingId"],members:{ReservedNodeOfferingId:{},NodeCount:{type:"integer"}}},output:{resultWrapper:"PurchaseReservedNodeOfferingResult",type:"structure",members:{ReservedNode:{shape:"S4c"}}}},RebootCluster:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"RebootClusterResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},ResetClusterParameterGroup:{input:{type:"structure",required:["ParameterGroupName"],members:{ParameterGroupName:{},ResetAllParameters:{type:"boolean"},Parameters:{shape:"S2q"}}},output:{shape:"S5b",resultWrapper:"ResetClusterParameterGroupResult"}},RestoreFromClusterSnapshot:{input:{type:"structure",required:["ClusterIdentifier","SnapshotIdentifier"],members:{ClusterIdentifier:{},SnapshotIdentifier:{},SnapshotClusterIdentifier:{},Port:{type:"integer"},AvailabilityZone:{},AllowVersionUpgrade:{type:"boolean"},ClusterSubnetGroupName:{},PubliclyAccessible:{type:"boolean"},OwnerAccount:{},HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},ElasticIp:{},ClusterParameterGroupName:{},ClusterSecurityGroups:{shape:"Sp"},VpcSecurityGroupIds:{shape:"Sq"},PreferredMaintenanceWindow:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},KmsKeyId:{},NodeType:{},EnhancedVpcRouting:{type:"boolean"},AdditionalInfo:{},IamRoles:{shape:"St"}}},output:{resultWrapper:"RestoreFromClusterSnapshotResult",type:"structure",members:{Cluster:{shape:"Sv"}}}},RestoreTableFromClusterSnapshot:{input:{type:"structure",required:["ClusterIdentifier","SnapshotIdentifier","SourceDatabaseName","SourceTableName","NewTableName"],members:{ClusterIdentifier:{},SnapshotIdentifier:{},SourceDatabaseName:{},SourceSchemaName:{},SourceTableName:{},TargetDatabaseName:{},TargetSchemaName:{},NewTableName:{}}},output:{resultWrapper:"RestoreTableFromClusterSnapshotResult",type:"structure",members:{TableRestoreStatus:{shape:"S4q"}}}},RevokeClusterSecurityGroupIngress:{input:{type:"structure",required:["ClusterSecurityGroupName"],members:{ClusterSecurityGroupName:{},CIDRIP:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{}}},output:{resultWrapper:"RevokeClusterSecurityGroupIngressResult",type:"structure",members:{ClusterSecurityGroup:{shape:"S4"}}}},RevokeSnapshotAccess:{input:{type:"structure",required:["SnapshotIdentifier","AccountWithRestoreAccess"],members:{SnapshotIdentifier:{},SnapshotClusterIdentifier:{},AccountWithRestoreAccess:{}}},output:{resultWrapper:"RevokeSnapshotAccessResult",type:"structure",members:{Snapshot:{shape:"Sd"}}}},RotateEncryptionKey:{input:{type:"structure",required:["ClusterIdentifier"],members:{ClusterIdentifier:{}}},output:{resultWrapper:"RotateEncryptionKeyResult",type:"structure",members:{Cluster:{shape:"Sv"}}}}},shapes:{S4:{type:"structure",members:{ClusterSecurityGroupName:{},Description:{},EC2SecurityGroups:{type:"list",member:{locationName:"EC2SecurityGroup",type:"structure",members:{Status:{},EC2SecurityGroupName:{},EC2SecurityGroupOwnerId:{},Tags:{shape:"S7"}}}},IPRanges:{type:"list",member:{locationName:"IPRange",type:"structure",members:{Status:{},CIDRIP:{},Tags:{shape:"S7"}}}},Tags:{shape:"S7"}},wrapper:!0},S7:{type:"list",member:{shape:"S8",locationName:"Tag"}},S8:{type:"structure",members:{Key:{},Value:{}}},Sd:{type:"structure",members:{SnapshotIdentifier:{},ClusterIdentifier:{},SnapshotCreateTime:{type:"timestamp"},Status:{},Port:{type:"integer"},AvailabilityZone:{},ClusterCreateTime:{type:"timestamp"},MasterUsername:{},ClusterVersion:{},SnapshotType:{},NodeType:{},NumberOfNodes:{type:"integer"},DBName:{},VpcId:{},Encrypted:{type:"boolean"},KmsKeyId:{},EncryptedWithHSM:{type:"boolean"},AccountsWithRestoreAccess:{type:"list",member:{locationName:"AccountWithRestoreAccess",type:"structure",members:{AccountId:{},AccountAlias:{}}}},OwnerAccount:{},TotalBackupSizeInMegaBytes:{type:"double"},ActualIncrementalBackupSizeInMegaBytes:{type:"double"},BackupProgressInMegaBytes:{type:"double"},CurrentBackupRateInMegaBytesPerSecond:{type:"double"},EstimatedSecondsToCompletion:{type:"long"},ElapsedTimeInSeconds:{type:"long"},SourceRegion:{},Tags:{shape:"S7"},RestorableNodeTypes:{type:"list",member:{locationName:"NodeType"}},EnhancedVpcRouting:{type:"boolean"}},wrapper:!0},Sp:{type:"list",member:{locationName:"ClusterSecurityGroupName"}},Sq:{type:"list",member:{locationName:"VpcSecurityGroupId"}},St:{type:"list",member:{locationName:"IamRoleArn"}},Sv:{type:"structure",members:{ClusterIdentifier:{},NodeType:{},ClusterStatus:{},ModifyStatus:{},MasterUsername:{},DBName:{},Endpoint:{type:"structure",members:{Address:{},Port:{type:"integer"}}},ClusterCreateTime:{type:"timestamp"},AutomatedSnapshotRetentionPeriod:{type:"integer"},ClusterSecurityGroups:{type:"list",member:{locationName:"ClusterSecurityGroup",type:"structure",members:{ClusterSecurityGroupName:{},Status:{}}}},VpcSecurityGroups:{type:"list",member:{locationName:"VpcSecurityGroup",type:"structure",members:{VpcSecurityGroupId:{},Status:{}}}},ClusterParameterGroups:{type:"list",member:{locationName:"ClusterParameterGroup",type:"structure",members:{ParameterGroupName:{},ParameterApplyStatus:{},ClusterParameterStatusList:{type:"list",member:{type:"structure",members:{ParameterName:{},ParameterApplyStatus:{},ParameterApplyErrorDescription:{}}}}}}},ClusterSubnetGroupName:{},VpcId:{},AvailabilityZone:{},PreferredMaintenanceWindow:{},PendingModifiedValues:{type:"structure",members:{MasterUserPassword:{},NodeType:{},NumberOfNodes:{type:"integer"},ClusterType:{},ClusterVersion:{},AutomatedSnapshotRetentionPeriod:{type:"integer"},ClusterIdentifier:{},PubliclyAccessible:{type:"boolean"},EnhancedVpcRouting:{type:"boolean"}}},ClusterVersion:{},AllowVersionUpgrade:{type:"boolean"},NumberOfNodes:{type:"integer"},PubliclyAccessible:{type:"boolean"},Encrypted:{type:"boolean"},RestoreStatus:{type:"structure",members:{Status:{},CurrentRestoreRateInMegaBytesPerSecond:{type:"double"},SnapshotSizeInMegaBytes:{type:"long"},ProgressInMegaBytes:{type:"long"},ElapsedTimeInSeconds:{type:"long"},EstimatedTimeToCompletionInSeconds:{type:"long"}}},HsmStatus:{type:"structure",members:{HsmClientCertificateIdentifier:{},HsmConfigurationIdentifier:{},Status:{}}},ClusterSnapshotCopyStatus:{type:"structure",members:{DestinationRegion:{},RetentionPeriod:{type:"long"},SnapshotCopyGrantName:{}}},ClusterPublicKey:{},ClusterNodes:{type:"list",member:{type:"structure",members:{NodeRole:{},PrivateIPAddress:{},PublicIPAddress:{}}}},ElasticIpStatus:{type:"structure",members:{ElasticIp:{},Status:{}}},ClusterRevisionNumber:{},Tags:{shape:"S7"},KmsKeyId:{},EnhancedVpcRouting:{type:"boolean"},IamRoles:{type:"list",member:{locationName:"ClusterIamRole",type:"structure",members:{IamRoleArn:{},ApplyStatus:{}}}}},wrapper:!0},S1g:{type:"structure",members:{ParameterGroupName:{},ParameterGroupFamily:{},Description:{},Tags:{shape:"S7"}},wrapper:!0},S1m:{type:"list",member:{locationName:"SubnetIdentifier"}},S1o:{type:"structure",members:{ClusterSubnetGroupName:{},Description:{},VpcId:{},SubnetGroupStatus:{},Subnets:{type:"list",member:{locationName:"Subnet",type:"structure",members:{SubnetIdentifier:{},SubnetAvailabilityZone:{shape:"S1r"},SubnetStatus:{}}}},Tags:{shape:"S7"}},wrapper:!0},S1r:{type:"structure",members:{Name:{}},wrapper:!0},S1t:{type:"list",member:{locationName:"SourceId"}},S1u:{type:"list",member:{locationName:"EventCategory"}},S1w:{type:"structure",members:{CustomerAwsId:{},CustSubscriptionId:{},SnsTopicArn:{},Status:{},SubscriptionCreationTime:{type:"timestamp"},SourceType:{},SourceIdsList:{shape:"S1t"},EventCategoriesList:{shape:"S1u"},Severity:{},Enabled:{type:"boolean"},Tags:{shape:"S7"}},wrapper:!0},S1z:{type:"structure",members:{HsmClientCertificateIdentifier:{},HsmClientCertificatePublicKey:{},Tags:{shape:"S7"}},wrapper:!0},S22:{type:"structure",members:{HsmConfigurationIdentifier:{},Description:{},HsmIpAddress:{},HsmPartitionName:{},Tags:{shape:"S7"}},wrapper:!0},S25:{type:"structure",members:{SnapshotCopyGrantName:{},KmsKeyId:{},Tags:{shape:"S7"}},wrapper:!0},S2j:{type:"list",member:{locationName:"TagKey"}},S2l:{type:"list",member:{locationName:"TagValue"}},S2q:{type:"list",member:{locationName:"Parameter",type:"structure",members:{ParameterName:{},ParameterValue:{},Description:{},Source:{},DataType:{},AllowedValues:{},ApplyType:{},IsModifiable:{type:"boolean"},MinimumEngineVersion:{}}}},S3x:{type:"structure",members:{LoggingEnabled:{type:"boolean"},BucketName:{},S3KeyPrefix:{},LastSuccessfulDeliveryTime:{type:"timestamp"},LastFailureTime:{type:"timestamp"},LastFailureMessage:{}}},S47:{type:"list",member:{locationName:"RecurringCharge",type:"structure",members:{RecurringChargeAmount:{type:"double"},RecurringChargeFrequency:{}},wrapper:!0}},S4c:{type:"structure",members:{ReservedNodeId:{},ReservedNodeOfferingId:{},NodeType:{},StartTime:{type:"timestamp"},Duration:{type:"integer"},FixedPrice:{type:"double"},UsagePrice:{type:"double"},CurrencyCode:{},NodeCount:{type:"integer"},State:{},OfferingType:{},RecurringCharges:{shape:"S47"}},wrapper:!0},S4q:{type:"structure",members:{TableRestoreRequestId:{},Status:{},Message:{},RequestTime:{type:"timestamp"},ProgressInMegaBytes:{type:"long"},TotalDataInMegaBytes:{type:"long"},ClusterIdentifier:{},SnapshotIdentifier:{},SourceDatabaseName:{},SourceSchemaName:{},SourceTableName:{},TargetDatabaseName:{},TargetSchemaName:{},NewTableName:{}},wrapper:!0},S5b:{type:"structure",members:{ParameterGroupName:{},ParameterGroupStatus:{}}}}}},{}],132:[function(e,t,r){t.exports={pagination:{DescribeClusterParameterGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ParameterGroups"},DescribeClusterParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Parameters"},DescribeClusterSecurityGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ClusterSecurityGroups"},DescribeClusterSnapshots:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Snapshots"},DescribeClusterSubnetGroups:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ClusterSubnetGroups"},DescribeClusterVersions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ClusterVersions"},DescribeClusters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Clusters"},DescribeDefaultClusterParameters:{input_token:"Marker",limit_key:"MaxRecords",output_token:"DefaultClusterParameters.Marker",result_key:"DefaultClusterParameters.Parameters"},DescribeEventSubscriptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"EventSubscriptionsList"},DescribeEvents:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"Events"},DescribeHsmClientCertificates:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"HsmClientCertificates"},DescribeHsmConfigurations:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"HsmConfigurations"},DescribeOrderableClusterOptions:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"OrderableClusterOptions"},DescribeReservedNodeOfferings:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedNodeOfferings"},DescribeReservedNodes:{input_token:"Marker",limit_key:"MaxRecords",output_token:"Marker",result_key:"ReservedNodes"}}}},{}],133:[function(e,t,r){t.exports={version:2,waiters:{ClusterAvailable:{delay:60,operation:"DescribeClusters",maxAttempts:30,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Clusters[].ClusterStatus"},{expected:"deleting",matcher:"pathAny",state:"failure",argument:"Clusters[].ClusterStatus"},{expected:"ClusterNotFound",matcher:"error",state:"retry"}]},ClusterDeleted:{delay:60,operation:"DescribeClusters",maxAttempts:30,acceptors:[{expected:"ClusterNotFound",matcher:"error",state:"success"},{expected:"creating",matcher:"pathAny",state:"failure",argument:"Clusters[].ClusterStatus"},{expected:"modifying",matcher:"pathAny",state:"failure",argument:"Clusters[].ClusterStatus"}]},ClusterRestored:{operation:"DescribeClusters",maxAttempts:30,delay:60,acceptors:[{state:"success",matcher:"pathAll",argument:"Clusters[].RestoreStatus.Status",expected:"completed"},{state:"failure",matcher:"pathAny",argument:"Clusters[].ClusterStatus",expected:"deleting"}]},SnapshotAvailable:{delay:15,operation:"DescribeClusterSnapshots",maxAttempts:20,acceptors:[{expected:"available",matcher:"pathAll",state:"success",argument:"Snapshots[].Status"},{expected:"failed",matcher:"pathAny",state:"failure",argument:"Snapshots[].Status"},{expected:"deleted",matcher:"pathAny",state:"failure",argument:"Snapshots[].Status"}]}}}},{}],134:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-06-27",endpointPrefix:"rekognition",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Rekognition",serviceId:"Rekognition",signatureVersion:"v4",targetPrefix:"RekognitionService",uid:"rekognition-2016-06-27"},operations:{CompareFaces:{input:{type:"structure",required:["SourceImage","TargetImage"],members:{SourceImage:{shape:"S2"},TargetImage:{shape:"S2"},SimilarityThreshold:{type:"float"}}},output:{type:"structure",members:{SourceImageFace:{type:"structure",members:{BoundingBox:{shape:"Sb"},Confidence:{type:"float"}}},FaceMatches:{type:"list",member:{type:"structure",members:{Similarity:{type:"float"},Face:{shape:"Sf"}}}},UnmatchedFaces:{type:"list",member:{shape:"Sf"}},SourceImageOrientationCorrection:{},TargetImageOrientationCorrection:{}}}},CreateCollection:{input:{type:"structure",required:["CollectionId"],members:{CollectionId:{}}},output:{type:"structure",members:{StatusCode:{type:"integer"},CollectionArn:{},FaceModelVersion:{}}}},CreateStreamProcessor:{input:{type:"structure",required:["Input","Output","Name","Settings","RoleArn"],members:{Input:{shape:"Su"},Output:{shape:"Sx"},Name:{},Settings:{shape:"S11"},RoleArn:{}}},output:{type:"structure",members:{StreamProcessorArn:{}}}},DeleteCollection:{input:{type:"structure",required:["CollectionId"],members:{CollectionId:{}}},output:{type:"structure",members:{StatusCode:{type:"integer"}}}},DeleteFaces:{input:{type:"structure",required:["CollectionId","FaceIds"],members:{CollectionId:{},FaceIds:{shape:"S19"}}},output:{type:"structure",members:{DeletedFaces:{shape:"S19"}}}},DeleteStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},DescribeStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{Name:{},StreamProcessorArn:{},Status:{},StatusMessage:{},CreationTimestamp:{type:"timestamp"},LastUpdateTimestamp:{type:"timestamp"},Input:{shape:"Su"},Output:{shape:"Sx"},RoleArn:{},Settings:{shape:"S11"}}}},DetectFaces:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"},Attributes:{shape:"S1j"}}},output:{type:"structure",members:{FaceDetails:{type:"list",member:{shape:"S1n"}},OrientationCorrection:{}}}},DetectLabels:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"},MaxLabels:{type:"integer"},MinConfidence:{type:"float"}}},output:{type:"structure",members:{Labels:{type:"list",member:{shape:"S25"}},OrientationCorrection:{}}}},DetectModerationLabels:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"},MinConfidence:{type:"float"}}},output:{type:"structure",members:{ModerationLabels:{type:"list",member:{shape:"S29"}}}}},DetectText:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"}}},output:{type:"structure",members:{TextDetections:{type:"list",member:{type:"structure",members:{DetectedText:{},Type:{},Id:{type:"integer"},ParentId:{type:"integer"},Confidence:{type:"float"},Geometry:{type:"structure",members:{BoundingBox:{shape:"Sb"},Polygon:{type:"list",member:{type:"structure",members:{X:{type:"float"},Y:{type:"float"}}}}}}}}}}}},GetCelebrityInfo:{input:{type:"structure",required:["Id"],members:{Id:{}}},output:{type:"structure",members:{Urls:{shape:"S2l"},Name:{}}}},GetCelebrityRecognition:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Celebrities:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Celebrity:{type:"structure",members:{Urls:{shape:"S2l"},Name:{},Id:{},Confidence:{type:"float"},BoundingBox:{shape:"Sb"},Face:{shape:"S1n"}}}}}}}}},GetContentModeration:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},ModerationLabels:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},ModerationLabel:{shape:"S29"}}}},NextToken:{}}}},GetFaceDetection:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Faces:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Face:{shape:"S1n"}}}}}}},GetFaceSearch:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},NextToken:{},VideoMetadata:{shape:"S2v"},Persons:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Person:{shape:"S3f"},FaceMatches:{shape:"S3h"}}}}}}},GetLabelDetection:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Labels:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Label:{shape:"S25"}}}}}}},GetPersonTracking:{input:{type:"structure",required:["JobId"],members:{JobId:{},MaxResults:{type:"integer"},NextToken:{},SortBy:{}}},output:{type:"structure",members:{JobStatus:{},StatusMessage:{},VideoMetadata:{shape:"S2v"},NextToken:{},Persons:{type:"list",member:{type:"structure",members:{Timestamp:{type:"long"},Person:{shape:"S3f"}}}}}}},IndexFaces:{input:{type:"structure",required:["CollectionId","Image"],members:{CollectionId:{},Image:{shape:"S2"},ExternalImageId:{},DetectionAttributes:{shape:"S1j"}}},output:{type:"structure",members:{FaceRecords:{type:"list",member:{type:"structure",members:{Face:{shape:"S3j"},FaceDetail:{shape:"S1n"}}}},OrientationCorrection:{},FaceModelVersion:{}}}},ListCollections:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{CollectionIds:{type:"list",member:{}},NextToken:{},FaceModelVersions:{type:"list",member:{}}}}},ListFaces:{input:{type:"structure",required:["CollectionId"],members:{CollectionId:{},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{Faces:{type:"list",member:{shape:"S3j"}},NextToken:{},FaceModelVersion:{}}}},ListStreamProcessors:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{NextToken:{},StreamProcessors:{type:"list",member:{type:"structure",members:{Name:{},Status:{}}}}}}},RecognizeCelebrities:{input:{type:"structure",required:["Image"],members:{Image:{shape:"S2"}}},output:{type:"structure",members:{CelebrityFaces:{type:"list",member:{type:"structure",members:{Urls:{shape:"S2l"},Name:{},Id:{},Face:{shape:"Sf"},MatchConfidence:{type:"float"}}}},UnrecognizedFaces:{type:"list",member:{shape:"Sf"}},OrientationCorrection:{}}}},SearchFaces:{input:{type:"structure",required:["CollectionId","FaceId"],members:{CollectionId:{},FaceId:{},MaxFaces:{type:"integer"},FaceMatchThreshold:{type:"float"}}},output:{type:"structure",members:{SearchedFaceId:{},FaceMatches:{shape:"S3h"},FaceModelVersion:{}}}},SearchFacesByImage:{input:{type:"structure",required:["CollectionId","Image"],members:{CollectionId:{},Image:{shape:"S2"},MaxFaces:{type:"integer"},FaceMatchThreshold:{type:"float"}}},output:{type:"structure",members:{SearchedFaceBoundingBox:{shape:"Sb"},SearchedFaceConfidence:{type:"float"},FaceMatches:{shape:"S3h"},FaceModelVersion:{}}}},StartCelebrityRecognition:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartContentModeration:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},MinConfidence:{type:"float"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartFaceDetection:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},FaceAttributes:{},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartFaceSearch:{input:{type:"structure",required:["Video","CollectionId"],members:{Video:{shape:"S4n"},ClientRequestToken:{},FaceMatchThreshold:{type:"float"},CollectionId:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartLabelDetection:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},MinConfidence:{type:"float"},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartPersonTracking:{input:{type:"structure",required:["Video"],members:{Video:{shape:"S4n"},ClientRequestToken:{},NotificationChannel:{shape:"S4p"},JobTag:{}}},output:{type:"structure",members:{JobId:{}}},idempotent:!0},StartStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}},StopStreamProcessor:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{type:"structure",members:{}}}},shapes:{S2:{type:"structure",members:{Bytes:{type:"blob"},S3Object:{shape:"S4"}}},S4:{type:"structure",members:{Bucket:{},Name:{},Version:{}}},Sb:{type:"structure",members:{Width:{type:"float"},Height:{type:"float"},Left:{type:"float"},Top:{type:"float"}}},Sf:{type:"structure",members:{BoundingBox:{shape:"Sb"},Confidence:{type:"float"},Landmarks:{shape:"Sg"},Pose:{shape:"Sj"},Quality:{shape:"Sl"}}},Sg:{type:"list",member:{type:"structure",members:{Type:{},X:{type:"float"},Y:{type:"float"}}}},Sj:{type:"structure",members:{Roll:{type:"float"},Yaw:{type:"float"},Pitch:{type:"float"}}},Sl:{type:"structure",members:{Brightness:{type:"float"},Sharpness:{type:"float"}}},Su:{type:"structure",members:{KinesisVideoStream:{type:"structure",members:{Arn:{}}}}},Sx:{type:"structure",members:{KinesisDataStream:{type:"structure",members:{Arn:{}}}}},S11:{type:"structure",members:{FaceSearch:{type:"structure",members:{CollectionId:{},FaceMatchThreshold:{type:"float"}}}}},S19:{type:"list",member:{}},S1j:{type:"list",member:{}},S1n:{type:"structure",members:{BoundingBox:{shape:"Sb"},AgeRange:{type:"structure",members:{Low:{type:"integer"},High:{type:"integer"}}},Smile:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Eyeglasses:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Sunglasses:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Gender:{type:"structure",members:{Value:{},Confidence:{type:"float"}}},Beard:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Mustache:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},EyesOpen:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},MouthOpen:{type:"structure",members:{Value:{type:"boolean"},Confidence:{type:"float"}}},Emotions:{type:"list",member:{type:"structure",members:{Type:{},Confidence:{type:"float"}}}},Landmarks:{shape:"Sg"},Pose:{shape:"Sj"},Quality:{shape:"Sl"},Confidence:{type:"float"}}},S25:{type:"structure",members:{Name:{},Confidence:{type:"float"}}},S29:{type:"structure",members:{Confidence:{type:"float"},Name:{},ParentName:{}}},S2l:{type:"list",member:{}},S2v:{type:"structure",members:{Codec:{},DurationMillis:{type:"long"},Format:{},FrameRate:{type:"float"},FrameHeight:{type:"long"},FrameWidth:{type:"long"}}},S3f:{type:"structure",members:{Index:{type:"long"},BoundingBox:{shape:"Sb"},Face:{shape:"S1n"}}},S3h:{type:"list",member:{type:"structure",members:{Similarity:{type:"float"},Face:{shape:"S3j"}}}},S3j:{type:"structure",members:{FaceId:{},BoundingBox:{shape:"Sb"},ImageId:{},ExternalImageId:{},Confidence:{type:"float"}}},S4n:{type:"structure",members:{S3Object:{shape:"S4"}}},S4p:{type:"structure",required:["SNSTopicArn","RoleArn"],members:{SNSTopicArn:{},RoleArn:{}}}}}},{}],135:[function(e,t,r){t.exports={pagination:{GetCelebrityRecognition:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetContentModeration:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetFaceDetection:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetFaceSearch:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetLabelDetection:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},GetPersonTracking:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"},ListCollections:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"CollectionIds"},ListFaces:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken",result_key:"Faces"},ListStreamProcessors:{input_token:"NextToken",limit_key:"MaxResults",output_token:"NextToken"}}}},{}],136:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2013-04-01",endpointPrefix:"route53",globalEndpoint:"route53.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Route 53",serviceFullName:"Amazon Route 53",serviceId:"Route 53",signatureVersion:"v4",uid:"route53-2013-04-01"},operations:{AssociateVPCWithHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/associatevpc"},input:{locationName:"AssociateVPCWithHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeResourceRecordSets:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/rrset/"},input:{locationName:"ChangeResourceRecordSetsRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","ChangeBatch"],members:{HostedZoneId:{location:"uri",locationName:"Id"},ChangeBatch:{type:"structure",required:["Changes"],members:{Comment:{},Changes:{type:"list",member:{locationName:"Change",type:"structure",required:["Action","ResourceRecordSet"],members:{Action:{},ResourceRecordSet:{shape:"Sh"}}}}}}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},ChangeTagsForResource:{http:{requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{locationName:"ChangeTagsForResourceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"},AddTags:{shape:"S15"},RemoveTagKeys:{type:"list",member:{locationName:"Key"}}}},output:{type:"structure",members:{}}},CreateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck",responseCode:201},input:{locationName:"CreateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference","HealthCheckConfig"],members:{CallerReference:{},HealthCheckConfig:{shape:"S1d"}}},output:{type:"structure",required:["HealthCheck","Location"],members:{HealthCheck:{shape:"S1y"},Location:{location:"header",locationName:"Location"}}}},CreateHostedZone:{http:{requestUri:"/2013-04-01/hostedzone",responseCode:201},input:{locationName:"CreateHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","CallerReference"],members:{Name:{},VPC:{shape:"S3"},CallerReference:{},HostedZoneConfig:{shape:"S2g"},DelegationSetId:{}}},output:{type:"structure",required:["HostedZone","ChangeInfo","DelegationSet","Location"],members:{HostedZone:{shape:"S2j"},ChangeInfo:{shape:"S8"},DelegationSet:{shape:"S2l"},VPC:{shape:"S3"},Location:{location:"header",locationName:"Location"}}}},CreateQueryLoggingConfig:{http:{requestUri:"/2013-04-01/queryloggingconfig",responseCode:201},input:{locationName:"CreateQueryLoggingConfigRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","CloudWatchLogsLogGroupArn"],members:{HostedZoneId:{},CloudWatchLogsLogGroupArn:{}}},output:{type:"structure",required:["QueryLoggingConfig","Location"],members:{QueryLoggingConfig:{shape:"S2q"},Location:{location:"header",locationName:"Location"}}}},CreateReusableDelegationSet:{http:{requestUri:"/2013-04-01/delegationset",responseCode:201},input:{locationName:"CreateReusableDelegationSetRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["CallerReference"],members:{CallerReference:{},HostedZoneId:{}}},output:{type:"structure",required:["DelegationSet","Location"],members:{DelegationSet:{shape:"S2l"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicy:{http:{requestUri:"/2013-04-01/trafficpolicy",responseCode:201},input:{locationName:"CreateTrafficPolicyRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Name","Document"],members:{Name:{},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2z"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance",responseCode:201},input:{locationName:"CreateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","Name","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{HostedZoneId:{},Name:{},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance","Location"],members:{TrafficPolicyInstance:{shape:"S34"},Location:{location:"header",locationName:"Location"}}}},CreateTrafficPolicyVersion:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}",responseCode:201},input:{locationName:"CreateTrafficPolicyVersionRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Document"],members:{Id:{location:"uri",locationName:"Id"},Document:{},Comment:{}}},output:{type:"structure",required:["TrafficPolicy","Location"],members:{TrafficPolicy:{shape:"S2z"},Location:{location:"header",locationName:"Location"}}}},CreateVPCAssociationAuthorization:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/authorizevpcassociation"},input:{locationName:"CreateVPCAssociationAuthorizationRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"}}},output:{type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{},VPC:{shape:"S3"}}}},DeleteHealthCheck:{http:{method:"DELETE", +requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",members:{}}},DeleteHostedZone:{http:{method:"DELETE",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},DeleteQueryLoggingConfig:{http:{method:"DELETE",requestUri:"/2013-04-01/queryloggingconfig/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteReusableDelegationSet:{http:{method:"DELETE",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicy:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",members:{}}},DeleteTrafficPolicyInstance:{http:{method:"DELETE",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",members:{}}},DeleteVPCAssociationAuthorization:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/deauthorizevpcassociation"},input:{locationName:"DeleteVPCAssociationAuthorizationRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"}}},output:{type:"structure",members:{}}},DisassociateVPCFromHostedZone:{http:{requestUri:"/2013-04-01/hostedzone/{Id}/disassociatevpc"},input:{locationName:"DisassociateVPCFromHostedZoneRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HostedZoneId","VPC"],members:{HostedZoneId:{location:"uri",locationName:"Id"},VPC:{shape:"S3"},Comment:{}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetAccountLimit:{http:{method:"GET",requestUri:"/2013-04-01/accountlimit/{Type}"},input:{type:"structure",required:["Type"],members:{Type:{location:"uri",locationName:"Type"}}},output:{type:"structure",required:["Limit","Count"],members:{Limit:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{type:"long"}}},Count:{type:"long"}}}},GetChange:{http:{method:"GET",requestUri:"/2013-04-01/change/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["ChangeInfo"],members:{ChangeInfo:{shape:"S8"}}}},GetCheckerIpRanges:{http:{method:"GET",requestUri:"/2013-04-01/checkeripranges"},input:{type:"structure",members:{}},output:{type:"structure",required:["CheckerIpRanges"],members:{CheckerIpRanges:{type:"list",member:{}}}}},GetGeoLocation:{http:{method:"GET",requestUri:"/2013-04-01/geolocation"},input:{type:"structure",members:{ContinentCode:{location:"querystring",locationName:"continentcode"},CountryCode:{location:"querystring",locationName:"countrycode"},SubdivisionCode:{location:"querystring",locationName:"subdivisioncode"}}},output:{type:"structure",required:["GeoLocationDetails"],members:{GeoLocationDetails:{shape:"S46"}}}},GetHealthCheck:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1y"}}}},GetHealthCheckCount:{http:{method:"GET",requestUri:"/2013-04-01/healthcheckcount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HealthCheckCount"],members:{HealthCheckCount:{type:"long"}}}},GetHealthCheckLastFailureReason:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/lastfailurereason"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S4h"}}}},GetHealthCheckStatus:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck/{HealthCheckId}/status"},input:{type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"}}},output:{type:"structure",required:["HealthCheckObservations"],members:{HealthCheckObservations:{shape:"S4h"}}}},GetHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2j"},DelegationSet:{shape:"S2l"},VPCs:{shape:"S4p"}}}},GetHostedZoneCount:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["HostedZoneCount"],members:{HostedZoneCount:{type:"long"}}}},GetHostedZoneLimit:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonelimit/{Id}/{Type}"},input:{type:"structure",required:["Type","HostedZoneId"],members:{Type:{location:"uri",locationName:"Type"},HostedZoneId:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["Limit","Count"],members:{Limit:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{type:"long"}}},Count:{type:"long"}}}},GetQueryLoggingConfig:{http:{method:"GET",requestUri:"/2013-04-01/queryloggingconfig/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["QueryLoggingConfig"],members:{QueryLoggingConfig:{shape:"S2q"}}}},GetReusableDelegationSet:{http:{method:"GET",requestUri:"/2013-04-01/delegationset/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["DelegationSet"],members:{DelegationSet:{shape:"S2l"}}}},GetReusableDelegationSetLimit:{http:{method:"GET",requestUri:"/2013-04-01/reusabledelegationsetlimit/{Id}/{Type}"},input:{type:"structure",required:["Type","DelegationSetId"],members:{Type:{location:"uri",locationName:"Type"},DelegationSetId:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["Limit","Count"],members:{Limit:{type:"structure",required:["Type","Value"],members:{Type:{},Value:{type:"long"}}},Count:{type:"long"}}}},GetTrafficPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{type:"structure",required:["Id","Version"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2z"}}}},GetTrafficPolicyInstance:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S34"}}}},GetTrafficPolicyInstanceCount:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstancecount"},input:{type:"structure",members:{}},output:{type:"structure",required:["TrafficPolicyInstanceCount"],members:{TrafficPolicyInstanceCount:{type:"integer"}}}},ListGeoLocations:{http:{method:"GET",requestUri:"/2013-04-01/geolocations"},input:{type:"structure",members:{StartContinentCode:{location:"querystring",locationName:"startcontinentcode"},StartCountryCode:{location:"querystring",locationName:"startcountrycode"},StartSubdivisionCode:{location:"querystring",locationName:"startsubdivisioncode"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["GeoLocationDetailsList","IsTruncated","MaxItems"],members:{GeoLocationDetailsList:{type:"list",member:{shape:"S46",locationName:"GeoLocationDetails"}},IsTruncated:{type:"boolean"},NextContinentCode:{},NextCountryCode:{},NextSubdivisionCode:{},MaxItems:{}}}},ListHealthChecks:{http:{method:"GET",requestUri:"/2013-04-01/healthcheck"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HealthChecks","Marker","IsTruncated","MaxItems"],members:{HealthChecks:{type:"list",member:{shape:"S1y",locationName:"HealthCheck"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZones:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"},DelegationSetId:{location:"querystring",locationName:"delegationsetid"}}},output:{type:"structure",required:["HostedZones","Marker","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S5n"},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListHostedZonesByName:{http:{method:"GET",requestUri:"/2013-04-01/hostedzonesbyname"},input:{type:"structure",members:{DNSName:{location:"querystring",locationName:"dnsname"},HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["HostedZones","IsTruncated","MaxItems"],members:{HostedZones:{shape:"S5n"},DNSName:{},HostedZoneId:{},IsTruncated:{type:"boolean"},NextDNSName:{},NextHostedZoneId:{},MaxItems:{}}}},ListQueryLoggingConfigs:{http:{method:"GET",requestUri:"/2013-04-01/queryloggingconfig"},input:{type:"structure",members:{HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},NextToken:{location:"querystring",locationName:"nexttoken"},MaxResults:{location:"querystring",locationName:"maxresults"}}},output:{type:"structure",required:["QueryLoggingConfigs"],members:{QueryLoggingConfigs:{type:"list",member:{shape:"S2q",locationName:"QueryLoggingConfig"}},NextToken:{}}}},ListResourceRecordSets:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/rrset"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"uri",locationName:"Id"},StartRecordName:{location:"querystring",locationName:"name"},StartRecordType:{location:"querystring",locationName:"type"},StartRecordIdentifier:{location:"querystring",locationName:"identifier"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["ResourceRecordSets","IsTruncated","MaxItems"],members:{ResourceRecordSets:{type:"list",member:{shape:"Sh",locationName:"ResourceRecordSet"}},IsTruncated:{type:"boolean"},NextRecordName:{},NextRecordType:{},NextRecordIdentifier:{},MaxItems:{}}}},ListReusableDelegationSets:{http:{method:"GET",requestUri:"/2013-04-01/delegationset"},input:{type:"structure",members:{Marker:{location:"querystring",locationName:"marker"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["DelegationSets","Marker","IsTruncated","MaxItems"],members:{DelegationSets:{type:"list",member:{shape:"S2l",locationName:"DelegationSet"}},Marker:{},IsTruncated:{type:"boolean"},NextMarker:{},MaxItems:{}}}},ListTagsForResource:{http:{method:"GET",requestUri:"/2013-04-01/tags/{ResourceType}/{ResourceId}"},input:{type:"structure",required:["ResourceType","ResourceId"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceId:{location:"uri",locationName:"ResourceId"}}},output:{type:"structure",required:["ResourceTagSet"],members:{ResourceTagSet:{shape:"S63"}}}},ListTagsForResources:{http:{requestUri:"/2013-04-01/tags/{ResourceType}"},input:{locationName:"ListTagsForResourcesRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["ResourceType","ResourceIds"],members:{ResourceType:{location:"uri",locationName:"ResourceType"},ResourceIds:{type:"list",member:{locationName:"ResourceId"}}}},output:{type:"structure",required:["ResourceTagSets"],members:{ResourceTagSets:{type:"list",member:{shape:"S63",locationName:"ResourceTagSet"}}}}},ListTrafficPolicies:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies"},input:{type:"structure",members:{TrafficPolicyIdMarker:{location:"querystring",locationName:"trafficpolicyid"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicySummaries","IsTruncated","TrafficPolicyIdMarker","MaxItems"],members:{TrafficPolicySummaries:{type:"list",member:{locationName:"TrafficPolicySummary",type:"structure",required:["Id","Name","Type","LatestVersion","TrafficPolicyCount"],members:{Id:{},Name:{},Type:{},LatestVersion:{type:"integer"},TrafficPolicyCount:{type:"integer"}}}},IsTruncated:{type:"boolean"},TrafficPolicyIdMarker:{},MaxItems:{}}}},ListTrafficPolicyInstances:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances"},input:{type:"structure",members:{HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S6e"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByHostedZone:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/hostedzone"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"querystring",locationName:"id"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S6e"},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyInstancesByPolicy:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicyinstances/trafficpolicy"},input:{type:"structure",required:["TrafficPolicyId","TrafficPolicyVersion"],members:{TrafficPolicyId:{location:"querystring",locationName:"id"},TrafficPolicyVersion:{location:"querystring",locationName:"version",type:"integer"},HostedZoneIdMarker:{location:"querystring",locationName:"hostedzoneid"},TrafficPolicyInstanceNameMarker:{location:"querystring",locationName:"trafficpolicyinstancename"},TrafficPolicyInstanceTypeMarker:{location:"querystring",locationName:"trafficpolicyinstancetype"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicyInstances","IsTruncated","MaxItems"],members:{TrafficPolicyInstances:{shape:"S6e"},HostedZoneIdMarker:{},TrafficPolicyInstanceNameMarker:{},TrafficPolicyInstanceTypeMarker:{},IsTruncated:{type:"boolean"},MaxItems:{}}}},ListTrafficPolicyVersions:{http:{method:"GET",requestUri:"/2013-04-01/trafficpolicies/{Id}/versions"},input:{type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},TrafficPolicyVersionMarker:{location:"querystring",locationName:"trafficpolicyversion"},MaxItems:{location:"querystring",locationName:"maxitems"}}},output:{type:"structure",required:["TrafficPolicies","IsTruncated","TrafficPolicyVersionMarker","MaxItems"],members:{TrafficPolicies:{type:"list",member:{shape:"S2z",locationName:"TrafficPolicy"}},IsTruncated:{type:"boolean"},TrafficPolicyVersionMarker:{},MaxItems:{}}}},ListVPCAssociationAuthorizations:{http:{method:"GET",requestUri:"/2013-04-01/hostedzone/{Id}/authorizevpcassociation"},input:{type:"structure",required:["HostedZoneId"],members:{HostedZoneId:{location:"uri",locationName:"Id"},NextToken:{location:"querystring",locationName:"nexttoken"},MaxResults:{location:"querystring",locationName:"maxresults"}}},output:{type:"structure",required:["HostedZoneId","VPCs"],members:{HostedZoneId:{},NextToken:{},VPCs:{shape:"S4p"}}}},TestDNSAnswer:{http:{method:"GET",requestUri:"/2013-04-01/testdnsanswer"},input:{type:"structure",required:["HostedZoneId","RecordName","RecordType"],members:{HostedZoneId:{location:"querystring",locationName:"hostedzoneid"},RecordName:{location:"querystring",locationName:"recordname"},RecordType:{location:"querystring",locationName:"recordtype"},ResolverIP:{location:"querystring",locationName:"resolverip"},EDNS0ClientSubnetIP:{location:"querystring",locationName:"edns0clientsubnetip"},EDNS0ClientSubnetMask:{location:"querystring",locationName:"edns0clientsubnetmask"}}},output:{type:"structure",required:["Nameserver","RecordName","RecordType","RecordData","ResponseCode","Protocol"],members:{Nameserver:{},RecordName:{},RecordType:{},RecordData:{type:"list",member:{locationName:"RecordDataEntry"}},ResponseCode:{},Protocol:{}}}},UpdateHealthCheck:{http:{requestUri:"/2013-04-01/healthcheck/{HealthCheckId}"},input:{locationName:"UpdateHealthCheckRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["HealthCheckId"],members:{HealthCheckId:{location:"uri",locationName:"HealthCheckId"},HealthCheckVersion:{type:"long"},IPAddress:{},Port:{type:"integer"},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},FailureThreshold:{type:"integer"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1p"},EnableSNI:{type:"boolean"},Regions:{shape:"S1r"},AlarmIdentifier:{shape:"S1t"},InsufficientDataHealthStatus:{},ResetElements:{type:"list",member:{locationName:"ResettableElementName"}}}},output:{type:"structure",required:["HealthCheck"],members:{HealthCheck:{shape:"S1y"}}}},UpdateHostedZoneComment:{http:{requestUri:"/2013-04-01/hostedzone/{Id}"},input:{locationName:"UpdateHostedZoneCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id"],members:{Id:{location:"uri",locationName:"Id"},Comment:{}}},output:{type:"structure",required:["HostedZone"],members:{HostedZone:{shape:"S2j"}}}},UpdateTrafficPolicyComment:{http:{requestUri:"/2013-04-01/trafficpolicy/{Id}/{Version}"},input:{locationName:"UpdateTrafficPolicyCommentRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","Version","Comment"],members:{Id:{location:"uri",locationName:"Id"},Version:{location:"uri",locationName:"Version",type:"integer"},Comment:{}}},output:{type:"structure",required:["TrafficPolicy"],members:{TrafficPolicy:{shape:"S2z"}}}},UpdateTrafficPolicyInstance:{http:{requestUri:"/2013-04-01/trafficpolicyinstance/{Id}"},input:{locationName:"UpdateTrafficPolicyInstanceRequest",xmlNamespace:{uri:"https://route53.amazonaws.com/doc/2013-04-01/"},type:"structure",required:["Id","TTL","TrafficPolicyId","TrafficPolicyVersion"],members:{Id:{location:"uri",locationName:"Id"},TTL:{type:"long"},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"}}},output:{type:"structure",required:["TrafficPolicyInstance"],members:{TrafficPolicyInstance:{shape:"S34"}}}}},shapes:{S3:{type:"structure",members:{VPCRegion:{},VPCId:{}}},S8:{type:"structure",required:["Id","Status","SubmittedAt"],members:{Id:{},Status:{},SubmittedAt:{type:"timestamp"},Comment:{}}},Sh:{type:"structure",required:["Name","Type"],members:{Name:{},Type:{},SetIdentifier:{},Weight:{type:"long"},Region:{},GeoLocation:{type:"structure",members:{ContinentCode:{},CountryCode:{},SubdivisionCode:{}}},Failover:{},MultiValueAnswer:{type:"boolean"},TTL:{type:"long"},ResourceRecords:{type:"list",member:{locationName:"ResourceRecord",type:"structure",required:["Value"],members:{Value:{}}}},AliasTarget:{type:"structure",required:["HostedZoneId","DNSName","EvaluateTargetHealth"],members:{HostedZoneId:{},DNSName:{},EvaluateTargetHealth:{type:"boolean"}}},HealthCheckId:{},TrafficPolicyInstanceId:{}}},S15:{type:"list",member:{locationName:"Tag",type:"structure",members:{Key:{},Value:{}}}},S1d:{type:"structure",required:["Type"],members:{IPAddress:{},Port:{type:"integer"},Type:{},ResourcePath:{},FullyQualifiedDomainName:{},SearchString:{},RequestInterval:{type:"integer"},FailureThreshold:{type:"integer"},MeasureLatency:{type:"boolean"},Inverted:{type:"boolean"},HealthThreshold:{type:"integer"},ChildHealthChecks:{shape:"S1p"},EnableSNI:{type:"boolean"},Regions:{shape:"S1r"},AlarmIdentifier:{shape:"S1t"},InsufficientDataHealthStatus:{}}},S1p:{type:"list",member:{locationName:"ChildHealthCheck"}},S1r:{type:"list",member:{locationName:"Region"}},S1t:{type:"structure",required:["Region","Name"],members:{Region:{},Name:{}}},S1y:{type:"structure",required:["Id","CallerReference","HealthCheckConfig","HealthCheckVersion"],members:{Id:{},CallerReference:{},LinkedService:{shape:"S1z"},HealthCheckConfig:{shape:"S1d"},HealthCheckVersion:{type:"long"},CloudWatchAlarmConfiguration:{type:"structure",required:["EvaluationPeriods","Threshold","ComparisonOperator","Period","MetricName","Namespace","Statistic"],members:{EvaluationPeriods:{type:"integer"},Threshold:{type:"double"},ComparisonOperator:{},Period:{type:"integer"},MetricName:{},Namespace:{},Statistic:{},Dimensions:{type:"list",member:{locationName:"Dimension",type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}}}}},S1z:{type:"structure",members:{ServicePrincipal:{},Description:{}}},S2g:{type:"structure",members:{Comment:{},PrivateZone:{type:"boolean"}}},S2j:{type:"structure",required:["Id","Name","CallerReference"],members:{Id:{},Name:{},CallerReference:{},Config:{shape:"S2g"},ResourceRecordSetCount:{type:"long"},LinkedService:{shape:"S1z"}}},S2l:{type:"structure",required:["NameServers"],members:{Id:{},CallerReference:{},NameServers:{type:"list",member:{locationName:"NameServer"}}}},S2q:{type:"structure",required:["Id","HostedZoneId","CloudWatchLogsLogGroupArn"],members:{Id:{},HostedZoneId:{},CloudWatchLogsLogGroupArn:{}}},S2z:{type:"structure",required:["Id","Version","Name","Type","Document"],members:{Id:{},Version:{type:"integer"},Name:{},Type:{},Document:{},Comment:{}}},S34:{type:"structure",required:["Id","HostedZoneId","Name","TTL","State","Message","TrafficPolicyId","TrafficPolicyVersion","TrafficPolicyType"],members:{Id:{},HostedZoneId:{},Name:{},TTL:{type:"long"},State:{},Message:{},TrafficPolicyId:{},TrafficPolicyVersion:{type:"integer"},TrafficPolicyType:{}}},S46:{type:"structure",members:{ContinentCode:{},ContinentName:{},CountryCode:{},CountryName:{},SubdivisionCode:{},SubdivisionName:{}}},S4h:{type:"list",member:{locationName:"HealthCheckObservation",type:"structure",members:{Region:{},IPAddress:{},StatusReport:{type:"structure",members:{Status:{},CheckedTime:{type:"timestamp"}}}}}},S4p:{type:"list",member:{shape:"S3",locationName:"VPC"}},S5n:{type:"list",member:{shape:"S2j",locationName:"HostedZone"}},S63:{type:"structure",members:{ResourceType:{},ResourceId:{},Tags:{shape:"S15"}}},S6e:{type:"list",member:{shape:"S34",locationName:"TrafficPolicyInstance"}}}}},{}],137:[function(e,t,r){t.exports={pagination:{ListHealthChecks:{input_token:"Marker",limit_key:"MaxItems",more_results:"IsTruncated",output_token:"NextMarker",result_key:"HealthChecks"},ListHostedZones:{input_token:"Marker",limit_key:"MaxItems",more_results:"IsTruncated",output_token:"NextMarker",result_key:"HostedZones"},ListResourceRecordSets:{input_token:["StartRecordName","StartRecordType","StartRecordIdentifier"],limit_key:"MaxItems",more_results:"IsTruncated",output_token:["NextRecordName","NextRecordType","NextRecordIdentifier"],result_key:"ResourceRecordSets"}}}},{}],138:[function(e,t,r){t.exports={version:2,waiters:{ResourceRecordSetsChanged:{delay:30,maxAttempts:60,operation:"GetChange",acceptors:[{matcher:"path",expected:"INSYNC",argument:"ChangeInfo.Status",state:"success"}]}}}},{}],139:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2014-05-15",endpointPrefix:"route53domains",jsonVersion:"1.1",protocol:"json",serviceFullName:"Amazon Route 53 Domains",signatureVersion:"v4",targetPrefix:"Route53Domains_v20140515",uid:"route53domains-2014-05-15"},operations:{CheckDomainAvailability:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},IdnLangCode:{}}},output:{type:"structure",required:["Availability"],members:{Availability:{}}}},CheckDomainTransferability:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AuthCode:{shape:"S7"}}},output:{type:"structure",required:["Transferability"],members:{Transferability:{type:"structure",members:{Transferable:{}}}}}},DeleteTagsForDomain:{input:{type:"structure",required:["DomainName","TagsToDelete"],members:{DomainName:{},TagsToDelete:{type:"list",member:{}}}},output:{type:"structure",members:{}}},DisableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}}},DisableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},EnableDomainAutoRenew:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",members:{}}},EnableDomainTransferLock:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},GetContactReachabilityStatus:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},status:{}}}},GetDomainDetail:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["DomainName","Nameservers","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},Nameservers:{shape:"St"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"},RegistrarName:{},WhoIsServer:{},RegistrarUrl:{},AbuseContactEmail:{},AbuseContactPhone:{},RegistryDomainId:{},CreationDate:{type:"timestamp"},UpdatedDate:{type:"timestamp"},ExpirationDate:{type:"timestamp"},Reseller:{},DnsSec:{},StatusList:{type:"list",member:{}}}}},GetDomainSuggestions:{input:{type:"structure",required:["DomainName","SuggestionCount","OnlyAvailable"],members:{DomainName:{},SuggestionCount:{type:"integer"},OnlyAvailable:{type:"boolean"}}},output:{type:"structure",members:{SuggestionsList:{type:"list",member:{type:"structure",members:{DomainName:{},Availability:{}}}}}}},GetOperationDetail:{input:{type:"structure",required:["OperationId"],members:{OperationId:{}}},output:{type:"structure",members:{OperationId:{},Status:{},Message:{},DomainName:{},Type:{},SubmittedDate:{type:"timestamp"}}}},ListDomains:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Domains"],members:{Domains:{type:"list",member:{type:"structure",required:["DomainName"],members:{DomainName:{},AutoRenew:{type:"boolean"},TransferLock:{type:"boolean"},Expiry:{type:"timestamp"}}}},NextPageMarker:{}}}},ListOperations:{input:{type:"structure",members:{Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",required:["Operations"],members:{Operations:{type:"list",member:{type:"structure",required:["OperationId","Status","Type","SubmittedDate"],members:{OperationId:{},Status:{},Type:{},SubmittedDate:{type:"timestamp"}}}},NextPageMarker:{}}}},ListTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["TagList"],members:{TagList:{shape:"S29"}}}},RegisterDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},RenewDomain:{input:{type:"structure",required:["DomainName","CurrentExpiryYear"],members:{DomainName:{},DurationInYears:{type:"integer"},CurrentExpiryYear:{type:"integer"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},ResendContactReachabilityEmail:{input:{type:"structure",members:{domainName:{}}},output:{type:"structure",members:{domainName:{},emailAddress:{},isAlreadyVerified:{type:"boolean"}}}},RetrieveDomainAuthCode:{input:{type:"structure",required:["DomainName"],members:{DomainName:{}}},output:{type:"structure",required:["AuthCode"],members:{AuthCode:{shape:"S7"}}}},TransferDomain:{input:{type:"structure",required:["DomainName","DurationInYears","AdminContact","RegistrantContact","TechContact"],members:{DomainName:{},IdnLangCode:{},DurationInYears:{type:"integer"},Nameservers:{shape:"St"},AuthCode:{shape:"S7"},AutoRenew:{type:"boolean"},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"},PrivacyProtectAdminContact:{type:"boolean"},PrivacyProtectRegistrantContact:{type:"boolean"},PrivacyProtectTechContact:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateDomainContact:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminContact:{shape:"Sz"},RegistrantContact:{shape:"Sz"},TechContact:{shape:"Sz"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateDomainContactPrivacy:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},AdminPrivacy:{type:"boolean"},RegistrantPrivacy:{type:"boolean"},TechPrivacy:{type:"boolean"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateDomainNameservers:{input:{type:"structure",required:["DomainName","Nameservers"],members:{DomainName:{},FIAuthKey:{deprecated:!0},Nameservers:{shape:"St"}}},output:{type:"structure",required:["OperationId"],members:{OperationId:{}}}},UpdateTagsForDomain:{input:{type:"structure",required:["DomainName"],members:{DomainName:{},TagsToUpdate:{shape:"S29"}}},output:{type:"structure",members:{}}},ViewBilling:{input:{type:"structure",members:{Start:{type:"timestamp"},End:{type:"timestamp"},Marker:{},MaxItems:{type:"integer"}}},output:{type:"structure",members:{NextPageMarker:{},BillingRecords:{type:"list",member:{type:"structure",members:{DomainName:{},Operation:{},InvoiceId:{},BillDate:{type:"timestamp"},Price:{type:"double"}}}}}}}},shapes:{S7:{type:"string",sensitive:!0},St:{type:"list",member:{type:"structure",required:["Name"],members:{Name:{},GlueIps:{type:"list",member:{}}}}},Sz:{type:"structure",members:{FirstName:{},LastName:{},ContactType:{},OrganizationName:{},AddressLine1:{},AddressLine2:{},City:{},State:{},CountryCode:{},ZipCode:{},PhoneNumber:{},Email:{},Fax:{},ExtraParams:{type:"list",member:{type:"structure",required:["Name","Value"],members:{Name:{},Value:{}}}}},sensitive:!0},S29:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}}},{}],140:[function(e,t,r){t.exports={pagination:{ListDomains:{input_token:"Marker",limit_key:"MaxItems",output_token:"NextPageMarker",result_key:"Domains"},ListOperations:{input_token:"Marker",limit_key:"MaxItems",output_token:"NextPageMarker",result_key:"Operations"}}}},{}],141:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-11-28",endpointPrefix:"runtime.lex",jsonVersion:"1.1", +protocol:"rest-json",serviceFullName:"Amazon Lex Runtime Service",signatureVersion:"v4",signingName:"lex",uid:"runtime.lex-2016-11-28"},operations:{PostContent:{http:{requestUri:"/bot/{botName}/alias/{botAlias}/user/{userId}/content"},input:{type:"structure",required:["botName","botAlias","userId","contentType","inputStream"],members:{botName:{location:"uri",locationName:"botName"},botAlias:{location:"uri",locationName:"botAlias"},userId:{location:"uri",locationName:"userId"},sessionAttributes:{shape:"S5",jsonvalue:!0,location:"header",locationName:"x-amz-lex-session-attributes"},requestAttributes:{shape:"S5",jsonvalue:!0,location:"header",locationName:"x-amz-lex-request-attributes"},contentType:{location:"header",locationName:"Content-Type"},accept:{location:"header",locationName:"Accept"},inputStream:{shape:"S8"}},payload:"inputStream"},output:{type:"structure",members:{contentType:{location:"header",locationName:"Content-Type"},intentName:{location:"header",locationName:"x-amz-lex-intent-name"},slots:{jsonvalue:!0,location:"header",locationName:"x-amz-lex-slots"},sessionAttributes:{jsonvalue:!0,location:"header",locationName:"x-amz-lex-session-attributes"},message:{shape:"Sc",location:"header",locationName:"x-amz-lex-message"},dialogState:{location:"header",locationName:"x-amz-lex-dialog-state"},slotToElicit:{location:"header",locationName:"x-amz-lex-slot-to-elicit"},inputTranscript:{location:"header",locationName:"x-amz-lex-input-transcript"},audioStream:{shape:"S8"}},payload:"audioStream"},authtype:"v4-unsigned-body"},PostText:{http:{requestUri:"/bot/{botName}/alias/{botAlias}/user/{userId}/text"},input:{type:"structure",required:["botName","botAlias","userId","inputText"],members:{botName:{location:"uri",locationName:"botName"},botAlias:{location:"uri",locationName:"botAlias"},userId:{location:"uri",locationName:"userId"},sessionAttributes:{shape:"Sf"},requestAttributes:{shape:"Sf"},inputText:{shape:"Sc"}}},output:{type:"structure",members:{intentName:{},slots:{shape:"Sf"},sessionAttributes:{shape:"Sf"},message:{shape:"Sc"},dialogState:{},slotToElicit:{},responseCard:{type:"structure",members:{version:{},contentType:{},genericAttachments:{type:"list",member:{type:"structure",members:{title:{},subTitle:{},attachmentLinkUrl:{},imageUrl:{},buttons:{type:"list",member:{type:"structure",required:["text","value"],members:{text:{},value:{}}}}}}}}}}}}},shapes:{S5:{type:"string",sensitive:!0},S8:{type:"blob",streaming:!0},Sc:{type:"string",sensitive:!0},Sf:{type:"map",key:{},value:{},sensitive:!0}}}},{}],142:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],143:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2006-03-01",checksumFormat:"md5",endpointPrefix:"s3",globalEndpoint:"s3.amazonaws.com",protocol:"rest-xml",serviceAbbreviation:"Amazon S3",serviceFullName:"Amazon Simple Storage Service",serviceId:"S3",signatureVersion:"s3",timestampFormat:"rfc822",uid:"s3-2006-03-01"},operations:{AbortMultipartUpload:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CompleteMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MultipartUpload:{locationName:"CompleteMultipartUpload",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{ETag:{},PartNumber:{type:"integer"}}},flattened:!0}}},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"MultipartUpload"},output:{type:"structure",members:{Location:{},Bucket:{},Key:{},Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},CopyObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},MetadataDirective:{location:"header",locationName:"x-amz-metadata-directive"},TaggingDirective:{location:"header",locationName:"x-amz-tagging-directive"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1c",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},Tagging:{location:"header",locationName:"x-amz-tagging"}}},output:{type:"structure",members:{CopyObjectResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},Expiration:{location:"header",locationName:"x-amz-expiration"},CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},VersionId:{location:"header",locationName:"x-amz-version-id"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyObjectResult"},alias:"PutObjectCopy"},CreateBucket:{http:{method:"PUT",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CreateBucketConfiguration:{locationName:"CreateBucketConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LocationConstraint:{}}},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"CreateBucketConfiguration"},output:{type:"structure",members:{Location:{location:"header",locationName:"Location"}}},alias:"PutBucket"},CreateMultipartUpload:{http:{requestUri:"/{Bucket}/{Key+}?uploads"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},Tagging:{location:"header",locationName:"x-amz-tagging"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{locationName:"Bucket"},Key:{},UploadId:{},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}},alias:"InitiateMultipartUpload"},DeleteBucket:{http:{method:"DELETE",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketAnalyticsConfiguration:{http:{method:"DELETE",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}}},DeleteBucketCors:{http:{method:"DELETE",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketEncryption:{http:{method:"DELETE",requestUri:"/{Bucket}?encryption"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketInventoryConfiguration:{http:{method:"DELETE",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}}},DeleteBucketLifecycle:{http:{method:"DELETE",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketMetricsConfiguration:{http:{method:"DELETE",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}}},DeleteBucketPolicy:{http:{method:"DELETE",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketReplication:{http:{method:"DELETE",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketTagging:{http:{method:"DELETE",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteBucketWebsite:{http:{method:"DELETE",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},DeleteObject:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MFA:{location:"header",locationName:"x-amz-mfa"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},VersionId:{location:"header",locationName:"x-amz-version-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},DeleteObjectTagging:{http:{method:"DELETE",requestUri:"/{Bucket}/{Key+}?tagging"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"}}},output:{type:"structure",members:{VersionId:{location:"header",locationName:"x-amz-version-id"}}}},DeleteObjects:{http:{requestUri:"/{Bucket}?delete"},input:{type:"structure",required:["Bucket","Delete"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delete:{locationName:"Delete",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Objects"],members:{Objects:{locationName:"Object",type:"list",member:{type:"structure",required:["Key"],members:{Key:{},VersionId:{}}},flattened:!0},Quiet:{type:"boolean"}}},MFA:{location:"header",locationName:"x-amz-mfa"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Delete"},output:{type:"structure",members:{Deleted:{type:"list",member:{type:"structure",members:{Key:{},VersionId:{},DeleteMarker:{type:"boolean"},DeleteMarkerVersionId:{}}},flattened:!0},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},Errors:{locationName:"Error",type:"list",member:{type:"structure",members:{Key:{},VersionId:{},Code:{},Message:{}}},flattened:!0}}},alias:"DeleteMultipleObjects"},GetBucketAccelerateConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{}}}},GetBucketAcl:{http:{method:"GET",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Owner:{shape:"S2v"},Grants:{shape:"S2y",locationName:"AccessControlList"}}}},GetBucketAnalyticsConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}},output:{type:"structure",members:{AnalyticsConfiguration:{shape:"S37"}},payload:"AnalyticsConfiguration"}},GetBucketCors:{http:{method:"GET",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{CORSRules:{shape:"S3n",locationName:"CORSRule"}}}},GetBucketEncryption:{http:{method:"GET",requestUri:"/{Bucket}?encryption"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{ServerSideEncryptionConfiguration:{shape:"S40"}},payload:"ServerSideEncryptionConfiguration"}},GetBucketInventoryConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}},output:{type:"structure",members:{InventoryConfiguration:{shape:"S46"}},payload:"InventoryConfiguration"}},GetBucketLifecycle:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S4m",locationName:"Rule"}}},deprecated:!0},GetBucketLifecycleConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Rules:{shape:"S51",locationName:"Rule"}}}},GetBucketLocation:{http:{method:"GET",requestUri:"/{Bucket}?location"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LocationConstraint:{}}}},GetBucketLogging:{http:{method:"GET",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{LoggingEnabled:{shape:"S5b"}}}},GetBucketMetricsConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket","Id"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"}}},output:{type:"structure",members:{MetricsConfiguration:{shape:"S5j"}},payload:"MetricsConfiguration"}},GetBucketNotification:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S5m"},output:{shape:"S5n"},deprecated:!0},GetBucketNotificationConfiguration:{http:{method:"GET",requestUri:"/{Bucket}?notification"},input:{shape:"S5m"},output:{shape:"S5y"}},GetBucketPolicy:{http:{method:"GET",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Policy:{}},payload:"Policy"}},GetBucketReplication:{http:{method:"GET",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{ReplicationConfiguration:{shape:"S6h"}},payload:"ReplicationConfiguration"}},GetBucketRequestPayment:{http:{method:"GET",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Payer:{}}}},GetBucketTagging:{http:{method:"GET",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",required:["TagSet"],members:{TagSet:{shape:"S3d"}}}},GetBucketVersioning:{http:{method:"GET",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{Status:{},MFADelete:{locationName:"MfaDelete"}}}},GetBucketWebsite:{http:{method:"GET",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},output:{type:"structure",members:{RedirectAllRequestsTo:{shape:"S75"},IndexDocument:{shape:"S78"},ErrorDocument:{shape:"S7a"},RoutingRules:{shape:"S7b"}}}},GetObject:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},ResponseCacheControl:{location:"querystring",locationName:"response-cache-control"},ResponseContentDisposition:{location:"querystring",locationName:"response-content-disposition"},ResponseContentEncoding:{location:"querystring",locationName:"response-content-encoding"},ResponseContentLanguage:{location:"querystring",locationName:"response-content-language"},ResponseContentType:{location:"querystring",locationName:"response-content-type"},ResponseExpires:{location:"querystring",locationName:"response-expires",type:"timestamp"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentRange:{location:"header",locationName:"Content-Range"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"},PartsCount:{location:"header",locationName:"x-amz-mp-parts-count",type:"integer"},TagCount:{location:"header",locationName:"x-amz-tagging-count",type:"integer"}},payload:"Body"}},GetObjectAcl:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Owner:{shape:"S2v"},Grants:{shape:"S2y",locationName:"AccessControlList"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},GetObjectTagging:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?tagging"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"}}},output:{type:"structure",required:["TagSet"],members:{VersionId:{location:"header",locationName:"x-amz-version-id"},TagSet:{shape:"S3d"}}}},GetObjectTorrent:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}?torrent"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{Body:{streaming:!0,type:"blob"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"Body"}},HeadBucket:{http:{method:"HEAD",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}}},HeadObject:{http:{method:"HEAD",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},IfMatch:{location:"header",locationName:"If-Match"},IfModifiedSince:{location:"header",locationName:"If-Modified-Since",type:"timestamp"},IfNoneMatch:{location:"header",locationName:"If-None-Match"},IfUnmodifiedSince:{location:"header",locationName:"If-Unmodified-Since",type:"timestamp"},Key:{location:"uri",locationName:"Key"},Range:{location:"header",locationName:"Range"},VersionId:{location:"querystring",locationName:"versionId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"}}},output:{type:"structure",members:{DeleteMarker:{location:"header",locationName:"x-amz-delete-marker",type:"boolean"},AcceptRanges:{location:"header",locationName:"accept-ranges"},Expiration:{location:"header",locationName:"x-amz-expiration"},Restore:{location:"header",locationName:"x-amz-restore"},LastModified:{location:"header",locationName:"Last-Modified",type:"timestamp"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ETag:{location:"header",locationName:"ETag"},MissingMeta:{location:"header",locationName:"x-amz-missing-meta",type:"integer"},VersionId:{location:"header",locationName:"x-amz-version-id"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"},ReplicationStatus:{location:"header",locationName:"x-amz-replication-status"},PartsCount:{location:"header",locationName:"x-amz-mp-parts-count",type:"integer"}}}},ListBucketAnalyticsConfigurations:{http:{method:"GET",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContinuationToken:{location:"querystring",locationName:"continuation-token"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},ContinuationToken:{},NextContinuationToken:{},AnalyticsConfigurationList:{locationName:"AnalyticsConfiguration",type:"list",member:{shape:"S37"},flattened:!0}}}},ListBucketInventoryConfigurations:{http:{method:"GET",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContinuationToken:{location:"querystring",locationName:"continuation-token"}}},output:{type:"structure",members:{ContinuationToken:{},InventoryConfigurationList:{locationName:"InventoryConfiguration",type:"list",member:{shape:"S46"},flattened:!0},IsTruncated:{type:"boolean"},NextContinuationToken:{}}}},ListBucketMetricsConfigurations:{http:{method:"GET",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContinuationToken:{location:"querystring",locationName:"continuation-token"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},ContinuationToken:{},NextContinuationToken:{},MetricsConfigurationList:{locationName:"MetricsConfiguration",type:"list",member:{shape:"S5j"},flattened:!0}}}},ListBuckets:{http:{method:"GET"},output:{type:"structure",members:{Buckets:{type:"list",member:{locationName:"Bucket",type:"structure",members:{Name:{},CreationDate:{type:"timestamp"}}}},Owner:{shape:"S2v"}}},alias:"GetService"},ListMultipartUploads:{http:{method:"GET",requestUri:"/{Bucket}?uploads"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxUploads:{location:"querystring",locationName:"max-uploads",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},UploadIdMarker:{location:"querystring",locationName:"upload-id-marker"}}},output:{type:"structure",members:{Bucket:{},KeyMarker:{},UploadIdMarker:{},NextKeyMarker:{},Prefix:{},Delimiter:{},NextUploadIdMarker:{},MaxUploads:{type:"integer"},IsTruncated:{type:"boolean"},Uploads:{locationName:"Upload",type:"list",member:{type:"structure",members:{UploadId:{},Key:{},Initiated:{type:"timestamp"},StorageClass:{},Owner:{shape:"S2v"},Initiator:{shape:"S97"}}},flattened:!0},CommonPrefixes:{shape:"S98"},EncodingType:{}}}},ListObjectVersions:{http:{method:"GET",requestUri:"/{Bucket}?versions"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},KeyMarker:{location:"querystring",locationName:"key-marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{ +location:"querystring",locationName:"prefix"},VersionIdMarker:{location:"querystring",locationName:"version-id-marker"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},KeyMarker:{},VersionIdMarker:{},NextKeyMarker:{},NextVersionIdMarker:{},Versions:{locationName:"Version",type:"list",member:{type:"structure",members:{ETag:{},Size:{type:"integer"},StorageClass:{},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"},Owner:{shape:"S2v"}}},flattened:!0},DeleteMarkers:{locationName:"DeleteMarker",type:"list",member:{type:"structure",members:{Owner:{shape:"S2v"},Key:{},VersionId:{},IsLatest:{type:"boolean"},LastModified:{type:"timestamp"}}},flattened:!0},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S98"},EncodingType:{}}},alias:"GetBucketObjectVersions"},ListObjects:{http:{method:"GET",requestUri:"/{Bucket}"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},Marker:{location:"querystring",locationName:"marker"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Marker:{},NextMarker:{},Contents:{shape:"S9q"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S98"},EncodingType:{}}},alias:"GetBucket"},ListObjectsV2:{http:{method:"GET",requestUri:"/{Bucket}?list-type=2"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},Delimiter:{location:"querystring",locationName:"delimiter"},EncodingType:{location:"querystring",locationName:"encoding-type"},MaxKeys:{location:"querystring",locationName:"max-keys",type:"integer"},Prefix:{location:"querystring",locationName:"prefix"},ContinuationToken:{location:"querystring",locationName:"continuation-token"},FetchOwner:{location:"querystring",locationName:"fetch-owner",type:"boolean"},StartAfter:{location:"querystring",locationName:"start-after"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{IsTruncated:{type:"boolean"},Contents:{shape:"S9q"},Name:{},Prefix:{},Delimiter:{},MaxKeys:{type:"integer"},CommonPrefixes:{shape:"S98"},EncodingType:{},KeyCount:{type:"integer"},ContinuationToken:{},NextContinuationToken:{},StartAfter:{}}}},ListParts:{http:{method:"GET",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},MaxParts:{location:"querystring",locationName:"max-parts",type:"integer"},PartNumberMarker:{location:"querystring",locationName:"part-number-marker",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{AbortDate:{location:"header",locationName:"x-amz-abort-date",type:"timestamp"},AbortRuleId:{location:"header",locationName:"x-amz-abort-rule-id"},Bucket:{},Key:{},UploadId:{},PartNumberMarker:{type:"integer"},NextPartNumberMarker:{type:"integer"},MaxParts:{type:"integer"},IsTruncated:{type:"boolean"},Parts:{locationName:"Part",type:"list",member:{type:"structure",members:{PartNumber:{type:"integer"},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"}}},flattened:!0},Initiator:{shape:"S97"},Owner:{shape:"S2v"},StorageClass:{},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutBucketAccelerateConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?accelerate"},input:{type:"structure",required:["Bucket","AccelerateConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},AccelerateConfiguration:{locationName:"AccelerateConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Status:{}}}},payload:"AccelerateConfiguration"}},PutBucketAcl:{http:{method:"PUT",requestUri:"/{Bucket}?acl"},input:{type:"structure",required:["Bucket"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"Sa8",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"}},payload:"AccessControlPolicy"}},PutBucketAnalyticsConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?analytics"},input:{type:"structure",required:["Bucket","Id","AnalyticsConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"},AnalyticsConfiguration:{shape:"S37",locationName:"AnalyticsConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"AnalyticsConfiguration"}},PutBucketCors:{http:{method:"PUT",requestUri:"/{Bucket}?cors"},input:{type:"structure",required:["Bucket","CORSConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},CORSConfiguration:{locationName:"CORSConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["CORSRules"],members:{CORSRules:{shape:"S3n",locationName:"CORSRule"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"CORSConfiguration"}},PutBucketEncryption:{http:{method:"PUT",requestUri:"/{Bucket}?encryption"},input:{type:"structure",required:["Bucket","ServerSideEncryptionConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ServerSideEncryptionConfiguration:{shape:"S40",locationName:"ServerSideEncryptionConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"ServerSideEncryptionConfiguration"}},PutBucketInventoryConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?inventory"},input:{type:"structure",required:["Bucket","Id","InventoryConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"},InventoryConfiguration:{shape:"S46",locationName:"InventoryConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"InventoryConfiguration"}},PutBucketLifecycle:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S4m",locationName:"Rule"}}}},payload:"LifecycleConfiguration"},deprecated:!0},PutBucketLifecycleConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?lifecycle"},input:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"},LifecycleConfiguration:{locationName:"LifecycleConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Rules"],members:{Rules:{shape:"S51",locationName:"Rule"}}}},payload:"LifecycleConfiguration"}},PutBucketLogging:{http:{method:"PUT",requestUri:"/{Bucket}?logging"},input:{type:"structure",required:["Bucket","BucketLoggingStatus"],members:{Bucket:{location:"uri",locationName:"Bucket"},BucketLoggingStatus:{locationName:"BucketLoggingStatus",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{LoggingEnabled:{shape:"S5b"}}},ContentMD5:{location:"header",locationName:"Content-MD5"}},payload:"BucketLoggingStatus"}},PutBucketMetricsConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?metrics"},input:{type:"structure",required:["Bucket","Id","MetricsConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},Id:{location:"querystring",locationName:"id"},MetricsConfiguration:{shape:"S5j",locationName:"MetricsConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"MetricsConfiguration"}},PutBucketNotification:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},NotificationConfiguration:{shape:"S5n",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"},deprecated:!0},PutBucketNotificationConfiguration:{http:{method:"PUT",requestUri:"/{Bucket}?notification"},input:{type:"structure",required:["Bucket","NotificationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},NotificationConfiguration:{shape:"S5y",locationName:"NotificationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"NotificationConfiguration"}},PutBucketPolicy:{http:{method:"PUT",requestUri:"/{Bucket}?policy"},input:{type:"structure",required:["Bucket","Policy"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ConfirmRemoveSelfBucketAccess:{location:"header",locationName:"x-amz-confirm-remove-self-bucket-access",type:"boolean"},Policy:{}},payload:"Policy"}},PutBucketReplication:{http:{method:"PUT",requestUri:"/{Bucket}?replication"},input:{type:"structure",required:["Bucket","ReplicationConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},ReplicationConfiguration:{shape:"S6h",locationName:"ReplicationConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"ReplicationConfiguration"}},PutBucketRequestPayment:{http:{method:"PUT",requestUri:"/{Bucket}?requestPayment"},input:{type:"structure",required:["Bucket","RequestPaymentConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},RequestPaymentConfiguration:{locationName:"RequestPaymentConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",required:["Payer"],members:{Payer:{}}}},payload:"RequestPaymentConfiguration"}},PutBucketTagging:{http:{method:"PUT",requestUri:"/{Bucket}?tagging"},input:{type:"structure",required:["Bucket","Tagging"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},Tagging:{shape:"Sau",locationName:"Tagging",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"Tagging"}},PutBucketVersioning:{http:{method:"PUT",requestUri:"/{Bucket}?versioning"},input:{type:"structure",required:["Bucket","VersioningConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},MFA:{location:"header",locationName:"x-amz-mfa"},VersioningConfiguration:{locationName:"VersioningConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{MFADelete:{locationName:"MfaDelete"},Status:{}}}},payload:"VersioningConfiguration"}},PutBucketWebsite:{http:{method:"PUT",requestUri:"/{Bucket}?website"},input:{type:"structure",required:["Bucket","WebsiteConfiguration"],members:{Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},WebsiteConfiguration:{locationName:"WebsiteConfiguration",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{ErrorDocument:{shape:"S7a"},IndexDocument:{shape:"S78"},RedirectAllRequestsTo:{shape:"S75"},RoutingRules:{shape:"S7b"}}}},payload:"WebsiteConfiguration"}},PutObject:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},CacheControl:{location:"header",locationName:"Cache-Control"},ContentDisposition:{location:"header",locationName:"Content-Disposition"},ContentEncoding:{location:"header",locationName:"Content-Encoding"},ContentLanguage:{location:"header",locationName:"Content-Language"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ContentMD5:{location:"header",locationName:"Content-MD5"},ContentType:{location:"header",locationName:"Content-Type"},Expires:{location:"header",locationName:"Expires",type:"timestamp"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},Metadata:{shape:"S11",location:"headers",locationName:"x-amz-meta-"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},StorageClass:{location:"header",locationName:"x-amz-storage-class"},WebsiteRedirectLocation:{location:"header",locationName:"x-amz-website-redirect-location"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},Tagging:{location:"header",locationName:"x-amz-tagging"}},payload:"Body"},output:{type:"structure",members:{Expiration:{location:"header",locationName:"x-amz-expiration"},ETag:{location:"header",locationName:"ETag"},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},VersionId:{location:"header",locationName:"x-amz-version-id"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutObjectAcl:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}?acl"},input:{type:"structure",required:["Bucket","Key"],members:{ACL:{location:"header",locationName:"x-amz-acl"},AccessControlPolicy:{shape:"Sa8",locationName:"AccessControlPolicy",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}},Bucket:{location:"uri",locationName:"Bucket"},ContentMD5:{location:"header",locationName:"Content-MD5"},GrantFullControl:{location:"header",locationName:"x-amz-grant-full-control"},GrantRead:{location:"header",locationName:"x-amz-grant-read"},GrantReadACP:{location:"header",locationName:"x-amz-grant-read-acp"},GrantWrite:{location:"header",locationName:"x-amz-grant-write"},GrantWriteACP:{location:"header",locationName:"x-amz-grant-write-acp"},Key:{location:"uri",locationName:"Key"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"},VersionId:{location:"querystring",locationName:"versionId"}},payload:"AccessControlPolicy"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},PutObjectTagging:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}?tagging"},input:{type:"structure",required:["Bucket","Key","Tagging"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},ContentMD5:{location:"header",locationName:"Content-MD5"},Tagging:{shape:"Sau",locationName:"Tagging",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"}}},payload:"Tagging"},output:{type:"structure",members:{VersionId:{location:"header",locationName:"x-amz-version-id"}}}},RestoreObject:{http:{requestUri:"/{Bucket}/{Key+}?restore"},input:{type:"structure",required:["Bucket","Key"],members:{Bucket:{location:"uri",locationName:"Bucket"},Key:{location:"uri",locationName:"Key"},VersionId:{location:"querystring",locationName:"versionId"},RestoreRequest:{locationName:"RestoreRequest",xmlNamespace:{uri:"http://s3.amazonaws.com/doc/2006-03-01/"},type:"structure",members:{Days:{type:"integer"},GlacierJobParameters:{type:"structure",required:["Tier"],members:{Tier:{}}},Type:{},Tier:{},Description:{},SelectParameters:{type:"structure",required:["InputSerialization","ExpressionType","Expression","OutputSerialization"],members:{InputSerialization:{type:"structure",members:{CSV:{type:"structure",members:{FileHeaderInfo:{},Comments:{},QuoteEscapeCharacter:{},RecordDelimiter:{},FieldDelimiter:{},QuoteCharacter:{}}}}},ExpressionType:{},Expression:{},OutputSerialization:{type:"structure",members:{CSV:{type:"structure",members:{QuoteFields:{},QuoteEscapeCharacter:{},RecordDelimiter:{},FieldDelimiter:{},QuoteCharacter:{}}}}}}},OutputLocation:{type:"structure",members:{S3:{type:"structure",required:["BucketName","Prefix"],members:{BucketName:{},Prefix:{},Encryption:{type:"structure",required:["EncryptionType"],members:{EncryptionType:{},KMSKeyId:{shape:"Sj"},KMSContext:{}}},CannedACL:{},AccessControlList:{shape:"S2y"},Tagging:{shape:"Sau"},UserMetadata:{type:"list",member:{locationName:"MetadataEntry",type:"structure",members:{Name:{},Value:{}}}},StorageClass:{}}}}}}},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"RestoreRequest"},output:{type:"structure",members:{RequestCharged:{location:"header",locationName:"x-amz-request-charged"},RestoreOutputPath:{location:"header",locationName:"x-amz-restore-output-path"}}},alias:"PostObjectRestore"},UploadPart:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","Key","PartNumber","UploadId"],members:{Body:{streaming:!0,type:"blob"},Bucket:{location:"uri",locationName:"Bucket"},ContentLength:{location:"header",locationName:"Content-Length",type:"long"},ContentMD5:{location:"header",locationName:"Content-MD5"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}},payload:"Body"},output:{type:"structure",members:{ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},ETag:{location:"header",locationName:"ETag"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}}}},UploadPartCopy:{http:{method:"PUT",requestUri:"/{Bucket}/{Key+}"},input:{type:"structure",required:["Bucket","CopySource","Key","PartNumber","UploadId"],members:{Bucket:{location:"uri",locationName:"Bucket"},CopySource:{location:"header",locationName:"x-amz-copy-source"},CopySourceIfMatch:{location:"header",locationName:"x-amz-copy-source-if-match"},CopySourceIfModifiedSince:{location:"header",locationName:"x-amz-copy-source-if-modified-since",type:"timestamp"},CopySourceIfNoneMatch:{location:"header",locationName:"x-amz-copy-source-if-none-match"},CopySourceIfUnmodifiedSince:{location:"header",locationName:"x-amz-copy-source-if-unmodified-since",type:"timestamp"},CopySourceRange:{location:"header",locationName:"x-amz-copy-source-range"},Key:{location:"uri",locationName:"Key"},PartNumber:{location:"querystring",locationName:"partNumber",type:"integer"},UploadId:{location:"querystring",locationName:"uploadId"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKey:{shape:"S19",location:"header",locationName:"x-amz-server-side-encryption-customer-key"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},CopySourceSSECustomerAlgorithm:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-algorithm"},CopySourceSSECustomerKey:{shape:"S1c",location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key"},CopySourceSSECustomerKeyMD5:{location:"header",locationName:"x-amz-copy-source-server-side-encryption-customer-key-MD5"},RequestPayer:{location:"header",locationName:"x-amz-request-payer"}}},output:{type:"structure",members:{CopySourceVersionId:{location:"header",locationName:"x-amz-copy-source-version-id"},CopyPartResult:{type:"structure",members:{ETag:{},LastModified:{type:"timestamp"}}},ServerSideEncryption:{location:"header",locationName:"x-amz-server-side-encryption"},SSECustomerAlgorithm:{location:"header",locationName:"x-amz-server-side-encryption-customer-algorithm"},SSECustomerKeyMD5:{location:"header",locationName:"x-amz-server-side-encryption-customer-key-MD5"},SSEKMSKeyId:{shape:"Sj",location:"header",locationName:"x-amz-server-side-encryption-aws-kms-key-id"},RequestCharged:{location:"header",locationName:"x-amz-request-charged"}},payload:"CopyPartResult"}}},shapes:{Sj:{type:"string",sensitive:!0},S11:{type:"map",key:{},value:{}},S19:{type:"blob",sensitive:!0},S1c:{type:"blob",sensitive:!0},S2v:{type:"structure",members:{DisplayName:{},ID:{}}},S2y:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S30"},Permission:{}}}},S30:{type:"structure",required:["Type"],members:{DisplayName:{},EmailAddress:{},ID:{},Type:{locationName:"xsi:type",xmlAttribute:!0},URI:{}},xmlNamespace:{prefix:"xsi",uri:"http://www.w3.org/2001/XMLSchema-instance"}},S37:{type:"structure",required:["Id","StorageClassAnalysis"],members:{Id:{},Filter:{type:"structure",members:{Prefix:{},Tag:{shape:"S3a"},And:{type:"structure",members:{Prefix:{},Tags:{shape:"S3d",flattened:!0,locationName:"Tag"}}}}},StorageClassAnalysis:{type:"structure",members:{DataExport:{type:"structure",required:["OutputSchemaVersion","Destination"],members:{OutputSchemaVersion:{},Destination:{type:"structure",required:["S3BucketDestination"],members:{S3BucketDestination:{type:"structure",required:["Format","Bucket"],members:{Format:{},BucketAccountId:{},Bucket:{},Prefix:{}}}}}}}}}}},S3a:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},S3d:{type:"list",member:{shape:"S3a",locationName:"Tag"}},S3n:{type:"list",member:{type:"structure",required:["AllowedMethods","AllowedOrigins"],members:{AllowedHeaders:{locationName:"AllowedHeader",type:"list",member:{},flattened:!0},AllowedMethods:{locationName:"AllowedMethod",type:"list",member:{},flattened:!0},AllowedOrigins:{locationName:"AllowedOrigin",type:"list",member:{},flattened:!0},ExposeHeaders:{locationName:"ExposeHeader",type:"list",member:{},flattened:!0},MaxAgeSeconds:{type:"integer"}}},flattened:!0},S40:{type:"structure",required:["Rules"],members:{Rules:{locationName:"Rule",type:"list",member:{type:"structure",members:{ApplyServerSideEncryptionByDefault:{type:"structure",required:["SSEAlgorithm"],members:{SSEAlgorithm:{},KMSMasterKeyID:{shape:"Sj"}}}}},flattened:!0}}},S46:{type:"structure",required:["Destination","IsEnabled","Id","IncludedObjectVersions","Schedule"],members:{Destination:{type:"structure",required:["S3BucketDestination"],members:{S3BucketDestination:{type:"structure",required:["Bucket","Format"],members:{AccountId:{},Bucket:{},Format:{},Prefix:{},Encryption:{type:"structure",members:{SSES3:{locationName:"SSE-S3",type:"structure",members:{}},SSEKMS:{locationName:"SSE-KMS",type:"structure",required:["KeyId"],members:{KeyId:{shape:"Sj"}}}}}}}}},IsEnabled:{type:"boolean"},Filter:{type:"structure",required:["Prefix"],members:{Prefix:{}}},Id:{},IncludedObjectVersions:{},OptionalFields:{type:"list",member:{locationName:"Field"}},Schedule:{type:"structure",required:["Frequency"],members:{Frequency:{}}}}},S4m:{type:"list",member:{type:"structure",required:["Prefix","Status"],members:{Expiration:{shape:"S4o"},ID:{},Prefix:{},Status:{},Transition:{shape:"S4t"},NoncurrentVersionTransition:{shape:"S4v"},NoncurrentVersionExpiration:{shape:"S4w"},AbortIncompleteMultipartUpload:{shape:"S4x"}}},flattened:!0},S4o:{type:"structure",members:{Date:{shape:"S4p"},Days:{type:"integer"},ExpiredObjectDeleteMarker:{type:"boolean"}}},S4p:{type:"timestamp",timestampFormat:"iso8601"},S4t:{type:"structure",members:{Date:{shape:"S4p"},Days:{type:"integer"},StorageClass:{}}},S4v:{type:"structure",members:{NoncurrentDays:{type:"integer"},StorageClass:{}}},S4w:{type:"structure",members:{NoncurrentDays:{type:"integer"}}},S4x:{type:"structure",members:{DaysAfterInitiation:{type:"integer"}}},S51:{type:"list",member:{type:"structure",required:["Status"],members:{Expiration:{shape:"S4o"},ID:{},Prefix:{deprecated:!0},Filter:{type:"structure",members:{Prefix:{},Tag:{shape:"S3a"},And:{type:"structure",members:{Prefix:{},Tags:{shape:"S3d",flattened:!0,locationName:"Tag"}}}}},Status:{},Transitions:{locationName:"Transition",type:"list",member:{shape:"S4t"},flattened:!0},NoncurrentVersionTransitions:{locationName:"NoncurrentVersionTransition",type:"list",member:{shape:"S4v"},flattened:!0},NoncurrentVersionExpiration:{shape:"S4w"},AbortIncompleteMultipartUpload:{shape:"S4x"}}},flattened:!0},S5b:{type:"structure",members:{TargetBucket:{},TargetGrants:{type:"list",member:{locationName:"Grant",type:"structure",members:{Grantee:{shape:"S30"},Permission:{}}}},TargetPrefix:{}}},S5j:{type:"structure",required:["Id"],members:{Id:{},Filter:{type:"structure",members:{Prefix:{},Tag:{shape:"S3a"},And:{type:"structure",members:{Prefix:{},Tags:{shape:"S3d",flattened:!0,locationName:"Tag"}}}}}}},S5m:{type:"structure",required:["Bucket"],members:{Bucket:{location:"uri",locationName:"Bucket"}}},S5n:{type:"structure",members:{TopicConfiguration:{type:"structure",members:{Id:{},Events:{shape:"S5q",locationName:"Event"},Event:{deprecated:!0},Topic:{}}},QueueConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S5q",locationName:"Event"},Queue:{}}},CloudFunctionConfiguration:{type:"structure",members:{Id:{},Event:{deprecated:!0},Events:{shape:"S5q",locationName:"Event"},CloudFunction:{},InvocationRole:{}}}}},S5q:{type:"list",member:{},flattened:!0},S5y:{type:"structure",members:{TopicConfigurations:{locationName:"TopicConfiguration",type:"list",member:{type:"structure",required:["TopicArn","Events"],members:{Id:{},TopicArn:{locationName:"Topic"},Events:{shape:"S5q",locationName:"Event"},Filter:{shape:"S61"}}},flattened:!0},QueueConfigurations:{locationName:"QueueConfiguration",type:"list",member:{type:"structure",required:["QueueArn","Events"],members:{Id:{},QueueArn:{locationName:"Queue"},Events:{shape:"S5q",locationName:"Event"},Filter:{shape:"S61"}}},flattened:!0},LambdaFunctionConfigurations:{locationName:"CloudFunctionConfiguration",type:"list",member:{type:"structure",required:["LambdaFunctionArn","Events"],members:{Id:{},LambdaFunctionArn:{locationName:"CloudFunction"},Events:{shape:"S5q",locationName:"Event"},Filter:{shape:"S61"}}},flattened:!0}}},S61:{type:"structure",members:{Key:{locationName:"S3Key",type:"structure",members:{FilterRules:{locationName:"FilterRule",type:"list",member:{type:"structure",members:{Name:{},Value:{}}},flattened:!0}}}}},S6h:{type:"structure",required:["Role","Rules"],members:{Role:{},Rules:{locationName:"Rule",type:"list",member:{type:"structure",required:["Prefix","Status","Destination"],members:{ID:{},Prefix:{},Status:{},SourceSelectionCriteria:{type:"structure",members:{SseKmsEncryptedObjects:{type:"structure",required:["Status"],members:{Status:{}}}}},Destination:{type:"structure",required:["Bucket"],members:{Bucket:{},Account:{},StorageClass:{},AccessControlTranslation:{type:"structure",required:["Owner"],members:{Owner:{}}},EncryptionConfiguration:{type:"structure",members:{ReplicaKmsKeyID:{}}}}}}},flattened:!0}}},S75:{type:"structure",required:["HostName"],members:{HostName:{},Protocol:{}}},S78:{type:"structure",required:["Suffix"],members:{Suffix:{}}},S7a:{type:"structure",required:["Key"],members:{Key:{}}},S7b:{type:"list",member:{locationName:"RoutingRule",type:"structure",required:["Redirect"],members:{Condition:{type:"structure",members:{HttpErrorCodeReturnedEquals:{},KeyPrefixEquals:{}}},Redirect:{type:"structure",members:{HostName:{},HttpRedirectCode:{},Protocol:{},ReplaceKeyPrefixWith:{},ReplaceKeyWith:{}}}}}},S97:{type:"structure",members:{ID:{},DisplayName:{}}},S98:{type:"list",member:{type:"structure",members:{Prefix:{}}},flattened:!0},S9q:{type:"list",member:{type:"structure",members:{Key:{},LastModified:{type:"timestamp"},ETag:{},Size:{type:"integer"},StorageClass:{},Owner:{shape:"S2v"}}},flattened:!0},Sa8:{type:"structure",members:{Grants:{shape:"S2y",locationName:"AccessControlList"},Owner:{shape:"S2v"}}},Sau:{type:"structure",required:["TagSet"],members:{TagSet:{shape:"S3d"}}}}}},{}],144:[function(e,t,r){t.exports={pagination:{ListBuckets:{result_key:"Buckets"},ListMultipartUploads:{input_token:["KeyMarker","UploadIdMarker"],limit_key:"MaxUploads",more_results:"IsTruncated",output_token:["NextKeyMarker","NextUploadIdMarker"],result_key:["Uploads","CommonPrefixes"]},ListObjectVersions:{input_token:["KeyMarker","VersionIdMarker"],limit_key:"MaxKeys",more_results:"IsTruncated",output_token:["NextKeyMarker","NextVersionIdMarker"],result_key:["Versions","DeleteMarkers","CommonPrefixes"]},ListObjects:{input_token:"Marker",limit_key:"MaxKeys",more_results:"IsTruncated",output_token:"NextMarker || Contents[-1].Key",result_key:["Contents","CommonPrefixes"]},ListObjectsV2:{input_token:"ContinuationToken",limit_key:"MaxKeys",output_token:"NextContinuationToken",result_key:["Contents","CommonPrefixes"]},ListParts:{input_token:"PartNumberMarker",limit_key:"MaxParts",more_results:"IsTruncated",output_token:"NextPartNumberMarker",result_key:"Parts"}}}},{}],145:[function(e,t,r){t.exports={version:2,waiters:{BucketExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:301,matcher:"status",state:"success"},{expected:403,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},BucketNotExists:{delay:5,operation:"HeadBucket",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]},ObjectExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:200,matcher:"status",state:"success"},{expected:404,matcher:"status",state:"retry"}]},ObjectNotExists:{delay:5,operation:"HeadObject",maxAttempts:20,acceptors:[{expected:404,matcher:"status",state:"success"}]}}}},{}],146:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2015-12-10",endpointPrefix:"servicecatalog",jsonVersion:"1.1",protocol:"json",serviceFullName:"AWS Service Catalog",signatureVersion:"v4",targetPrefix:"AWS242ServiceCatalogService",uid:"servicecatalog-2015-12-10"},operations:{AcceptPortfolioShare:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{}}},output:{ +type:"structure",members:{}}},AssociatePrincipalWithPortfolio:{input:{type:"structure",required:["PortfolioId","PrincipalARN","PrincipalType"],members:{AcceptLanguage:{},PortfolioId:{},PrincipalARN:{},PrincipalType:{}}},output:{type:"structure",members:{}}},AssociateProductWithPortfolio:{input:{type:"structure",required:["ProductId","PortfolioId"],members:{AcceptLanguage:{},ProductId:{},PortfolioId:{},SourcePortfolioId:{}}},output:{type:"structure",members:{}}},AssociateTagOptionWithResource:{input:{type:"structure",required:["ResourceId","TagOptionId"],members:{ResourceId:{},TagOptionId:{}}},output:{type:"structure",members:{}}},CopyProduct:{input:{type:"structure",required:["SourceProductArn","IdempotencyToken"],members:{AcceptLanguage:{},SourceProductArn:{},TargetProductId:{},TargetProductName:{},SourceProvisioningArtifactIdentifiers:{type:"list",member:{type:"map",key:{},value:{}}},CopyOptions:{type:"list",member:{}},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{CopyProductToken:{}}}},CreateConstraint:{input:{type:"structure",required:["PortfolioId","ProductId","Parameters","Type","IdempotencyToken"],members:{AcceptLanguage:{},PortfolioId:{},ProductId:{},Parameters:{},Type:{},Description:{},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ConstraintDetail:{shape:"Sv"},ConstraintParameters:{},Status:{}}}},CreatePortfolio:{input:{type:"structure",required:["DisplayName","ProviderName","IdempotencyToken"],members:{AcceptLanguage:{},DisplayName:{},Description:{},ProviderName:{},Tags:{shape:"S12"},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{PortfolioDetail:{shape:"S17"},Tags:{shape:"S1a"}}}},CreatePortfolioShare:{input:{type:"structure",required:["PortfolioId","AccountId"],members:{AcceptLanguage:{},PortfolioId:{},AccountId:{}}},output:{type:"structure",members:{}}},CreateProduct:{input:{type:"structure",required:["Name","Owner","ProductType","ProvisioningArtifactParameters","IdempotencyToken"],members:{AcceptLanguage:{},Name:{},Owner:{},Description:{},Distributor:{},SupportDescription:{},SupportEmail:{},SupportUrl:{},ProductType:{},Tags:{shape:"S12"},ProvisioningArtifactParameters:{shape:"S1k"},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ProductViewDetail:{shape:"S1s"},ProvisioningArtifactDetail:{shape:"S1x"},Tags:{shape:"S1a"}}}},CreateProvisioningArtifact:{input:{type:"structure",required:["ProductId","Parameters","IdempotencyToken"],members:{AcceptLanguage:{},ProductId:{},Parameters:{shape:"S1k"},IdempotencyToken:{idempotencyToken:!0}}},output:{type:"structure",members:{ProvisioningArtifactDetail:{shape:"S1x"},Info:{shape:"S1n"},Status:{}}}},CreateTagOption:{input:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},output:{type:"structure",members:{TagOptionDetail:{shape:"S25"}}}},DeleteConstraint:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{}}},DeletePortfolio:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{}}},DeletePortfolioShare:{input:{type:"structure",required:["PortfolioId","AccountId"],members:{AcceptLanguage:{},PortfolioId:{},AccountId:{}}},output:{type:"structure",members:{}}},DeleteProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{}}},DeleteProvisioningArtifact:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{}}},output:{type:"structure",members:{}}},DescribeConstraint:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ConstraintDetail:{shape:"Sv"},ConstraintParameters:{},Status:{}}}},DescribeCopyProductStatus:{input:{type:"structure",required:["CopyProductToken"],members:{AcceptLanguage:{},CopyProductToken:{}}},output:{type:"structure",members:{CopyProductStatus:{},TargetProductId:{},StatusDetail:{}}}},DescribePortfolio:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{PortfolioDetail:{shape:"S17"},Tags:{shape:"S1a"},TagOptions:{shape:"S2p"}}}},DescribeProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProductViewSummary:{shape:"S1t"},ProvisioningArtifacts:{shape:"S2s"}}}},DescribeProductAsAdmin:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProductViewDetail:{shape:"S1s"},ProvisioningArtifactSummaries:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Description:{},CreatedTime:{type:"timestamp"},ProvisioningArtifactMetadata:{shape:"S1n"}}}},Tags:{shape:"S1a"},TagOptions:{shape:"S2p"}}}},DescribeProductView:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProductViewSummary:{shape:"S1t"},ProvisioningArtifacts:{shape:"S2s"}}}},DescribeProvisionedProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{}}},output:{type:"structure",members:{ProvisionedProductDetail:{shape:"S33"}}}},DescribeProvisioningArtifact:{input:{type:"structure",required:["ProvisioningArtifactId","ProductId"],members:{AcceptLanguage:{},ProvisioningArtifactId:{},ProductId:{},Verbose:{type:"boolean"}}},output:{type:"structure",members:{ProvisioningArtifactDetail:{shape:"S1x"},Info:{shape:"S1n"},Status:{}}}},DescribeProvisioningParameters:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{},PathId:{}}},output:{type:"structure",members:{ProvisioningArtifactParameters:{type:"list",member:{type:"structure",members:{ParameterKey:{},DefaultValue:{},ParameterType:{},IsNoEcho:{type:"boolean"},Description:{},ParameterConstraints:{type:"structure",members:{AllowedValues:{type:"list",member:{}}}}}}},ConstraintSummaries:{shape:"S3p"},UsageInstructions:{type:"list",member:{type:"structure",members:{Type:{},Value:{}}}},TagOptions:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}}}}},DescribeRecord:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"},RecordOutputs:{type:"list",member:{type:"structure",members:{OutputKey:{},OutputValue:{},Description:{}}}},NextPageToken:{}}}},DescribeTagOption:{input:{type:"structure",required:["Id"],members:{Id:{}}},output:{type:"structure",members:{TagOptionDetail:{shape:"S25"}}}},DisassociatePrincipalFromPortfolio:{input:{type:"structure",required:["PortfolioId","PrincipalARN"],members:{AcceptLanguage:{},PortfolioId:{},PrincipalARN:{}}},output:{type:"structure",members:{}}},DisassociateProductFromPortfolio:{input:{type:"structure",required:["ProductId","PortfolioId"],members:{AcceptLanguage:{},ProductId:{},PortfolioId:{}}},output:{type:"structure",members:{}}},DisassociateTagOptionFromResource:{input:{type:"structure",required:["ResourceId","TagOptionId"],members:{ResourceId:{},TagOptionId:{}}},output:{type:"structure",members:{}}},ListAcceptedPortfolioShares:{input:{type:"structure",members:{AcceptLanguage:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{PortfolioDetails:{shape:"S4t"},NextPageToken:{}}}},ListConstraintsForPortfolio:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{},ProductId:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{ConstraintDetails:{type:"list",member:{shape:"Sv"}},NextPageToken:{}}}},ListLaunchPaths:{input:{type:"structure",required:["ProductId"],members:{AcceptLanguage:{},ProductId:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{LaunchPathSummaries:{type:"list",member:{type:"structure",members:{Id:{},ConstraintSummaries:{shape:"S3p"},Tags:{shape:"S1a"},Name:{}}}},NextPageToken:{}}}},ListPortfolioAccess:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{}}},output:{type:"structure",members:{AccountIds:{type:"list",member:{}},NextPageToken:{}}}},ListPortfolios:{input:{type:"structure",members:{AcceptLanguage:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{PortfolioDetails:{shape:"S4t"},NextPageToken:{}}}},ListPortfoliosForProduct:{input:{type:"structure",required:["ProductId"],members:{AcceptLanguage:{},ProductId:{},PageToken:{},PageSize:{type:"integer"}}},output:{type:"structure",members:{PortfolioDetails:{shape:"S4t"},NextPageToken:{}}}},ListPrincipalsForPortfolio:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{Principals:{type:"list",member:{type:"structure",members:{PrincipalARN:{},PrincipalType:{}}}},NextPageToken:{}}}},ListProvisioningArtifacts:{input:{type:"structure",required:["ProductId"],members:{AcceptLanguage:{},ProductId:{}}},output:{type:"structure",members:{ProvisioningArtifactDetails:{type:"list",member:{shape:"S1x"}},NextPageToken:{}}}},ListRecordHistory:{input:{type:"structure",members:{AcceptLanguage:{},AccessLevelFilter:{shape:"S5h"},SearchFilter:{type:"structure",members:{Key:{},Value:{}}},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{RecordDetails:{type:"list",member:{shape:"S42"}},NextPageToken:{}}}},ListResourcesForTagOption:{input:{type:"structure",required:["TagOptionId"],members:{TagOptionId:{},ResourceType:{},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{ResourceDetails:{type:"list",member:{type:"structure",members:{Id:{},ARN:{},Name:{},Description:{},CreatedTime:{type:"timestamp"}}}},PageToken:{}}}},ListTagOptions:{input:{type:"structure",members:{Filters:{type:"structure",members:{Key:{},Value:{},Active:{type:"boolean"}}},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{TagOptionDetails:{shape:"S2p"},PageToken:{}}}},ProvisionProduct:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId","ProvisionedProductName","ProvisionToken"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{},PathId:{},ProvisionedProductName:{},ProvisioningParameters:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}},Tags:{shape:"S1a"},NotificationArns:{type:"list",member:{}},ProvisionToken:{idempotencyToken:!0}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"}}}},RejectPortfolioShare:{input:{type:"structure",required:["PortfolioId"],members:{AcceptLanguage:{},PortfolioId:{}}},output:{type:"structure",members:{}}},ScanProvisionedProducts:{input:{type:"structure",members:{AcceptLanguage:{},AccessLevelFilter:{shape:"S5h"},PageSize:{type:"integer"},PageToken:{}}},output:{type:"structure",members:{ProvisionedProducts:{type:"list",member:{shape:"S33"}},NextPageToken:{}}}},SearchProducts:{input:{type:"structure",members:{AcceptLanguage:{},Filters:{shape:"S6f"},PageSize:{type:"integer"},SortBy:{},SortOrder:{},PageToken:{}}},output:{type:"structure",members:{ProductViewSummaries:{type:"list",member:{shape:"S1t"}},ProductViewAggregations:{type:"map",key:{},value:{type:"list",member:{type:"structure",members:{Value:{},ApproximateCount:{type:"integer"}}}}},NextPageToken:{}}}},SearchProductsAsAdmin:{input:{type:"structure",members:{AcceptLanguage:{},PortfolioId:{},Filters:{shape:"S6f"},SortBy:{},SortOrder:{},PageToken:{},PageSize:{type:"integer"},ProductSource:{}}},output:{type:"structure",members:{ProductViewDetails:{type:"list",member:{shape:"S1s"}},NextPageToken:{}}}},TerminateProvisionedProduct:{input:{type:"structure",required:["TerminateToken"],members:{ProvisionedProductName:{},ProvisionedProductId:{},TerminateToken:{idempotencyToken:!0},IgnoreErrors:{type:"boolean"},AcceptLanguage:{}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"}}}},UpdateConstraint:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},Description:{}}},output:{type:"structure",members:{ConstraintDetail:{shape:"Sv"},ConstraintParameters:{},Status:{}}}},UpdatePortfolio:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},DisplayName:{},Description:{},ProviderName:{},AddTags:{shape:"S12"},RemoveTags:{shape:"S73"}}},output:{type:"structure",members:{PortfolioDetail:{shape:"S17"},Tags:{shape:"S1a"}}}},UpdateProduct:{input:{type:"structure",required:["Id"],members:{AcceptLanguage:{},Id:{},Name:{},Owner:{},Description:{},Distributor:{},SupportDescription:{},SupportEmail:{},SupportUrl:{},AddTags:{shape:"S12"},RemoveTags:{shape:"S73"}}},output:{type:"structure",members:{ProductViewDetail:{shape:"S1s"},Tags:{shape:"S1a"}}}},UpdateProvisionedProduct:{input:{type:"structure",required:["UpdateToken"],members:{AcceptLanguage:{},ProvisionedProductName:{},ProvisionedProductId:{},ProductId:{},ProvisioningArtifactId:{},PathId:{},ProvisioningParameters:{type:"list",member:{type:"structure",members:{Key:{},Value:{},UsePreviousValue:{type:"boolean"}}}},UpdateToken:{idempotencyToken:!0}}},output:{type:"structure",members:{RecordDetail:{shape:"S42"}}}},UpdateProvisioningArtifact:{input:{type:"structure",required:["ProductId","ProvisioningArtifactId"],members:{AcceptLanguage:{},ProductId:{},ProvisioningArtifactId:{},Name:{},Description:{},Active:{type:"boolean"}}},output:{type:"structure",members:{ProvisioningArtifactDetail:{shape:"S1x"},Info:{shape:"S1n"},Status:{}}}},UpdateTagOption:{input:{type:"structure",required:["Id"],members:{Id:{},Value:{},Active:{type:"boolean"}}},output:{type:"structure",members:{TagOptionDetail:{shape:"S25"}}}}},shapes:{Sv:{type:"structure",members:{ConstraintId:{},Type:{},Description:{},Owner:{}}},S12:{type:"list",member:{shape:"S13"}},S13:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}},S17:{type:"structure",members:{Id:{},ARN:{},DisplayName:{},Description:{},CreatedTime:{type:"timestamp"},ProviderName:{}}},S1a:{type:"list",member:{shape:"S13"}},S1k:{type:"structure",required:["Info"],members:{Name:{},Description:{},Info:{shape:"S1n"},Type:{}}},S1n:{type:"map",key:{},value:{}},S1s:{type:"structure",members:{ProductViewSummary:{shape:"S1t"},Status:{},ProductARN:{},CreatedTime:{type:"timestamp"}}},S1t:{type:"structure",members:{Id:{},ProductId:{},Name:{},Owner:{},ShortDescription:{},Type:{},Distributor:{},HasDefaultPath:{type:"boolean"},SupportEmail:{},SupportDescription:{},SupportUrl:{}}},S1x:{type:"structure",members:{Id:{},Name:{},Description:{},Type:{},CreatedTime:{type:"timestamp"},Active:{type:"boolean"}}},S25:{type:"structure",members:{Key:{},Value:{},Active:{type:"boolean"},Id:{}}},S2p:{type:"list",member:{shape:"S25"}},S2s:{type:"list",member:{type:"structure",members:{Id:{},Name:{},Description:{},CreatedTime:{type:"timestamp"}}}},S33:{type:"structure",members:{Name:{},Arn:{},Type:{},Id:{},Status:{},StatusMessage:{},CreatedTime:{type:"timestamp"},IdempotencyToken:{},LastRecordId:{}}},S3p:{type:"list",member:{type:"structure",members:{Type:{},Description:{}}}},S42:{type:"structure",members:{RecordId:{},ProvisionedProductName:{},Status:{},CreatedTime:{type:"timestamp"},UpdatedTime:{type:"timestamp"},ProvisionedProductType:{},RecordType:{},ProvisionedProductId:{},ProductId:{},ProvisioningArtifactId:{},PathId:{},RecordErrors:{type:"list",member:{type:"structure",members:{Code:{},Description:{}}}},RecordTags:{type:"list",member:{type:"structure",members:{Key:{},Value:{}}}}}},S4t:{type:"list",member:{shape:"S17"}},S5h:{type:"structure",members:{Key:{},Value:{}}},S6f:{type:"map",key:{},value:{type:"list",member:{}}},S73:{type:"list",member:{}}}}},{}],147:[function(e,t,r){t.exports={pagination:{ListAcceptedPortfolioShares:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListConstraintsForPortfolio:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListLaunchPaths:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListPortfolios:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListPortfoliosForProduct:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListPrincipalsForPortfolio:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},ListResourcesForTagOption:{input_token:"PageToken",output_token:"PageToken",limit_key:"PageSize"},ListTagOptions:{input_token:"PageToken",output_token:"PageToken",limit_key:"PageSize"},SearchProducts:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"},SearchProductsAsAdmin:{input_token:"PageToken",output_token:"NextPageToken",limit_key:"PageSize"}}}},{}],148:[function(e,t,r){t.exports={version:"2.0",metadata:{uid:"sns-2010-03-31",apiVersion:"2010-03-31",endpointPrefix:"sns",protocol:"query",serviceAbbreviation:"Amazon SNS",serviceFullName:"Amazon Simple Notification Service",signatureVersion:"v4",xmlNamespace:"http://sns.amazonaws.com/doc/2010-03-31/"},operations:{AddPermission:{input:{type:"structure",required:["TopicArn","Label","AWSAccountId","ActionName"],members:{TopicArn:{},Label:{},AWSAccountId:{type:"list",member:{}},ActionName:{type:"list",member:{}}}}},CheckIfPhoneNumberIsOptedOut:{input:{type:"structure",required:["phoneNumber"],members:{phoneNumber:{}}},output:{resultWrapper:"CheckIfPhoneNumberIsOptedOutResult",type:"structure",members:{isOptedOut:{type:"boolean"}}}},ConfirmSubscription:{input:{type:"structure",required:["TopicArn","Token"],members:{TopicArn:{},Token:{},AuthenticateOnUnsubscribe:{}}},output:{resultWrapper:"ConfirmSubscriptionResult",type:"structure",members:{SubscriptionArn:{}}}},CreatePlatformApplication:{input:{type:"structure",required:["Name","Platform","Attributes"],members:{Name:{},Platform:{},Attributes:{shape:"Sj"}}},output:{resultWrapper:"CreatePlatformApplicationResult",type:"structure",members:{PlatformApplicationArn:{}}}},CreatePlatformEndpoint:{input:{type:"structure",required:["PlatformApplicationArn","Token"],members:{PlatformApplicationArn:{},Token:{},CustomUserData:{},Attributes:{shape:"Sj"}}},output:{resultWrapper:"CreatePlatformEndpointResult",type:"structure",members:{EndpointArn:{}}}},CreateTopic:{input:{type:"structure",required:["Name"],members:{Name:{}}},output:{resultWrapper:"CreateTopicResult",type:"structure",members:{TopicArn:{}}}},DeleteEndpoint:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}}},DeletePlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}}},DeleteTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}}},GetEndpointAttributes:{input:{type:"structure",required:["EndpointArn"],members:{EndpointArn:{}}},output:{resultWrapper:"GetEndpointAttributesResult",type:"structure",members:{Attributes:{shape:"Sj"}}}},GetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{}}},output:{resultWrapper:"GetPlatformApplicationAttributesResult",type:"structure",members:{Attributes:{shape:"Sj"}}}},GetSMSAttributes:{input:{type:"structure",members:{attributes:{type:"list",member:{}}}},output:{resultWrapper:"GetSMSAttributesResult",type:"structure",members:{attributes:{shape:"Sj"}}}},GetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}},output:{resultWrapper:"GetSubscriptionAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}}},GetTopicAttributes:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{}}},output:{resultWrapper:"GetTopicAttributesResult",type:"structure",members:{Attributes:{type:"map",key:{},value:{}}}}},ListEndpointsByPlatformApplication:{input:{type:"structure",required:["PlatformApplicationArn"],members:{PlatformApplicationArn:{},NextToken:{}}},output:{resultWrapper:"ListEndpointsByPlatformApplicationResult",type:"structure",members:{Endpoints:{type:"list",member:{type:"structure",members:{EndpointArn:{},Attributes:{shape:"Sj"}}}},NextToken:{}}}},ListPhoneNumbersOptedOut:{input:{type:"structure",members:{nextToken:{}}},output:{resultWrapper:"ListPhoneNumbersOptedOutResult",type:"structure",members:{phoneNumbers:{type:"list",member:{}},nextToken:{}}}},ListPlatformApplications:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListPlatformApplicationsResult",type:"structure",members:{PlatformApplications:{type:"list",member:{type:"structure",members:{PlatformApplicationArn:{},Attributes:{shape:"Sj"}}}},NextToken:{}}}},ListSubscriptions:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListSubscriptionsResult",type:"structure",members:{Subscriptions:{shape:"S1n"},NextToken:{}}}},ListSubscriptionsByTopic:{input:{type:"structure",required:["TopicArn"],members:{TopicArn:{},NextToken:{}}},output:{resultWrapper:"ListSubscriptionsByTopicResult",type:"structure",members:{Subscriptions:{shape:"S1n"},NextToken:{}}}},ListTopics:{input:{type:"structure",members:{NextToken:{}}},output:{resultWrapper:"ListTopicsResult",type:"structure",members:{Topics:{type:"list",member:{type:"structure",members:{TopicArn:{}}}},NextToken:{}}}},OptInPhoneNumber:{input:{type:"structure",required:["phoneNumber"],members:{phoneNumber:{}}},output:{resultWrapper:"OptInPhoneNumberResult",type:"structure",members:{}}},Publish:{input:{type:"structure",required:["Message"],members:{TopicArn:{},TargetArn:{},PhoneNumber:{},Message:{},Subject:{},MessageStructure:{},MessageAttributes:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{DataType:{},StringValue:{},BinaryValue:{type:"blob"}}}}}},output:{resultWrapper:"PublishResult",type:"structure",members:{MessageId:{}}}},RemovePermission:{input:{type:"structure",required:["TopicArn","Label"],members:{TopicArn:{},Label:{}}}},SetEndpointAttributes:{input:{type:"structure",required:["EndpointArn","Attributes"],members:{EndpointArn:{},Attributes:{shape:"Sj"}}}},SetPlatformApplicationAttributes:{input:{type:"structure",required:["PlatformApplicationArn","Attributes"],members:{PlatformApplicationArn:{},Attributes:{shape:"Sj"}}}},SetSMSAttributes:{input:{type:"structure",required:["attributes"],members:{attributes:{shape:"Sj"}}},output:{resultWrapper:"SetSMSAttributesResult",type:"structure",members:{}}},SetSubscriptionAttributes:{input:{type:"structure",required:["SubscriptionArn","AttributeName"],members:{SubscriptionArn:{},AttributeName:{},AttributeValue:{}}}},SetTopicAttributes:{input:{type:"structure",required:["TopicArn","AttributeName"],members:{TopicArn:{},AttributeName:{},AttributeValue:{}}}},Subscribe:{input:{type:"structure",required:["TopicArn","Protocol"],members:{TopicArn:{},Protocol:{},Endpoint:{}}},output:{resultWrapper:"SubscribeResult",type:"structure",members:{SubscriptionArn:{}}}},Unsubscribe:{input:{type:"structure",required:["SubscriptionArn"],members:{SubscriptionArn:{}}}}},shapes:{Sj:{type:"map",key:{},value:{}},S1n:{type:"list",member:{type:"structure",members:{SubscriptionArn:{},Owner:{},Protocol:{},Endpoint:{},TopicArn:{}}}}}}},{}],149:[function(e,t,r){t.exports={pagination:{ListEndpointsByPlatformApplication:{input_token:"NextToken",output_token:"NextToken",result_key:"Endpoints"},ListPlatformApplications:{input_token:"NextToken",output_token:"NextToken",result_key:"PlatformApplications"},ListSubscriptions:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListSubscriptionsByTopic:{input_token:"NextToken",output_token:"NextToken",result_key:"Subscriptions"},ListTopics:{input_token:"NextToken",output_token:"NextToken",result_key:"Topics"}}}},{}],150:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2012-11-05",endpointPrefix:"sqs",protocol:"query",serviceAbbreviation:"Amazon SQS",serviceFullName:"Amazon Simple Queue Service",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"}}},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:"St"}}},output:{resultWrapper:"GetQueueAttributesResult",type:"structure",members:{Attributes:{shape:"Sh",locationName:"Attribute"}}}},GetQueueUrl:{input:{type:"structure",required:["QueueName"],members:{QueueName:{},QueueOwnerAWSAccountId:{}}},output:{resultWrapper:"GetQueueUrlResult",type:"structure",members:{QueueUrl:{}}}},ListDeadLetterSourceQueues:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListDeadLetterSourceQueuesResult",type:"structure",required:["queueUrls"],members:{queueUrls:{shape:"Sz"}}}},ListQueueTags:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}},output:{resultWrapper:"ListQueueTagsResult",type:"structure",members:{Tags:{shape:"S12",locationName:"Tag"}}}},ListQueues:{input:{type:"structure",members:{QueueNamePrefix:{}}},output:{resultWrapper:"ListQueuesResult",type:"structure",members:{QueueUrls:{shape:"Sz"}}}},PurgeQueue:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{}}}},ReceiveMessage:{input:{type:"structure",required:["QueueUrl"],members:{QueueUrl:{},AttributeNames:{shape:"St"},MessageAttributeNames:{type:"list",member:{locationName:"MessageAttributeName"},flattened:!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"},MessageDeduplicationId:{},MessageGroupId:{}}},output:{resultWrapper:"SendMessageResult",type:"structure",members:{MD5OfMessageBody:{},MD5OfMessageAttributes:{},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"},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:{},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:"S12"}}}},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"},St:{type:"list",member:{locationName:"AttributeName"},flattened:!0},Sz:{type:"list",member:{locationName:"QueueUrl"},flattened:!0},S12:{type:"map",key:{locationName:"Key"},value:{locationName:"Value"},flattened:!0,locationName:"Tag"},S1g:{type:"map",key:{locationName:"Name"},value:{locationName:"Value",type:"structure",required:["DataType"],members:{StringValue:{},BinaryValue:{type:"blob"},StringListValues:{flattened:!0,locationName:"StringListValue",type:"list",member:{locationName:"StringListValue"}},BinaryListValues:{flattened:!0,locationName:"BinaryListValue",type:"list",member:{locationName:"BinaryListValue",type:"blob"}},DataType:{}}},flattened:!0}}}},{}],151:[function(e,t,r){t.exports={pagination:{ListQueues:{result_key:"QueueUrls"}}}},{}],152:[function(e,t,r){t.exports={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:{}}},CreateActivation:{input:{type:"structure",required:["IamRole"],members:{Description:{},DefaultInstanceName:{},IamRole:{},RegistrationLimit:{type:"integer"},ExpirationDate:{type:"timestamp"}}},output:{type:"structure",members:{ActivationId:{},ActivationCode:{}}}},CreateAssociation:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{},InstanceId:{},Parameters:{shape:"Sq"},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},AssociationName:{}}},output:{type:"structure",members:{AssociationDescription:{ +shape:"S17"}}}},CreateAssociationBatch:{input:{type:"structure",required:["Entries"],members:{Entries:{type:"list",member:{shape:"S1l"}}}},output:{type:"structure",members:{Successful:{type:"list",member:{shape:"S17"}},Failed:{type:"list",member:{type:"structure",members:{Entry:{shape:"S1l"},Message:{},Fault:{}}}}}}},CreateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Name:{},DocumentType:{},DocumentFormat:{},TargetType:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"S1y"}}}},CreateMaintenanceWindow:{input:{type:"structure",required:["Name","Schedule","Duration","Cutoff","AllowUnassociatedTargets"],members:{Name:{},Description:{shape:"S2h"},Schedule:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{WindowId:{}}}},CreatePatchBaseline:{input:{type:"structure",required:["Name"],members:{OperatingSystem:{},Name:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},Description:{},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{BaselineId:{}}}},CreateResourceDataSync:{input:{type:"structure",required:["SyncName","S3Destination"],members:{SyncName:{},S3Destination:{shape:"S3a"}}},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:{}}},output:{type:"structure",members:{}}},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:"S3t"}}},output:{type:"structure",members:{DeletedParameters:{shape:"S3t"},InvalidParameters:{shape:"S3t"}}}},DeletePatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{}}}},DeleteResourceDataSync:{input:{type:"structure",required:["SyncName"],members:{SyncName:{}}},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"}}}},NextToken:{}}}},DescribeAssociation:{input:{type:"structure",members:{Name:{},InstanceId:{},AssociationId:{},AssociationVersion:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},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:"S52"},Mode:{},ParentAutomationExecutionId:{},CurrentStepName:{},CurrentAction:{},FailureMessage:{},TargetParameterName:{},Targets:{shape:"Su"},ResolvedTargets:{shape:"S57"},MaxConcurrency:{},MaxErrors:{},Target:{}}}},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:"S5i"},NextToken:{}}}},DescribeAvailablePatches:{input:{type:"structure",members:{Filters:{shape:"S5q"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Patches:{type:"list",member:{shape:"S5y"}},NextToken:{}}}},DescribeDocument:{input:{type:"structure",required:["Name"],members:{Name:{},DocumentVersion:{}}},output:{type:"structure",members:{Document:{shape:"S1y"}}}},DescribeDocumentPermission:{input:{type:"structure",required:["Name","PermissionType"],members:{Name:{},PermissionType:{}}},output:{type:"structure",members:{AccountIds:{shape:"S6f"}}}},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:"S5y"},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:"S75"}}}},Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{shape:"S75"}}}},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:"S7p"}},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:"S7p"}},NextToken:{}}}},DescribeInstancePatches:{input:{type:"structure",required:["InstanceId"],members:{InstanceId:{},Filters:{shape:"S5q"},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:{}}}},DescribeMaintenanceWindowExecutionTaskInvocations:{input:{type:"structure",required:["WindowExecutionId","TaskId"],members:{WindowExecutionId:{},TaskId:{},Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowExecutionTaskInvocationIdentities:{type:"list",member:{type:"structure",members:{WindowExecutionId:{},TaskExecutionId:{},InvocationId:{},ExecutionId:{},TaskType:{},Parameters:{shape:"S8s"},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},OwnerInformation:{shape:"S7r"},WindowTargetId:{}}}},NextToken:{}}}},DescribeMaintenanceWindowExecutionTasks:{input:{type:"structure",required:["WindowExecutionId"],members:{WindowExecutionId:{},Filters:{shape:"S8g"},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:"S8g"},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:{}}}},DescribeMaintenanceWindowTargets:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Targets:{type:"list",member:{type:"structure",members:{WindowId:{},WindowTargetId:{},ResourceType:{},Targets:{shape:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"}}}},NextToken:{}}}},DescribeMaintenanceWindowTasks:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Tasks:{type:"list",member:{type:"structure",members:{WindowId:{},WindowTaskId:{},TaskArn:{},Type:{},Targets:{shape:"Su"},TaskParameters:{shape:"S9e"},Priority:{type:"integer"},LoggingInfo:{shape:"S9k"},ServiceRoleArn:{},MaxConcurrency:{},MaxErrors:{},Name:{},Description:{shape:"S2h"}}}},NextToken:{}}}},DescribeMaintenanceWindows:{input:{type:"structure",members:{Filters:{shape:"S8g"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{WindowIdentities:{type:"list",member:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S2h"},Enabled:{type:"boolean"},Duration:{type:"integer"},Cutoff:{type:"integer"}}}},NextToken:{}}}},DescribeParameters:{input:{type:"structure",members:{Filters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}},ParameterFilters:{shape:"S9x"},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"}}}},NextToken:{}}}},DescribePatchBaselines:{input:{type:"structure",members:{Filters:{shape:"S5q"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{BaselineIdentities:{type:"list",member:{shape:"Sae"}},NextToken:{}}}},DescribePatchGroupState:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{}}},output:{type:"structure",members:{Instances:{type:"integer"},InstancesWithInstalledPatches:{type:"integer"},InstancesWithInstalledOtherPatches:{type:"integer"},InstancesWithMissingPatches:{type:"integer"},InstancesWithFailedPatches:{type:"integer"},InstancesWithNotApplicablePatches:{type:"integer"}}}},DescribePatchGroups:{input:{type:"structure",members:{MaxResults:{type:"integer"},Filters:{shape:"S5q"},NextToken:{}}},output:{type:"structure",members:{Mappings:{type:"list",member:{type:"structure",members:{PatchGroup:{},BaselineIdentity:{shape:"Sae"}}}},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:"S5i"},StepExecutionsTruncated:{type:"boolean"},Parameters:{shape:"S52"},Outputs:{shape:"S52"},FailureMessage:{},Mode:{},ParentAutomationExecutionId:{},ExecutedBy:{},CurrentStepName:{},CurrentAction:{},TargetParameterName:{},Targets:{shape:"Su"},ResolvedTargets:{shape:"S57"},MaxConcurrency:{},MaxErrors:{},Target:{}}}}}},GetCommandInvocation:{input:{type:"structure",required:["CommandId","InstanceId"],members:{CommandId:{},InstanceId:{},PluginName:{}}},output:{type:"structure",members:{CommandId:{},InstanceId:{},Comment:{},DocumentName:{},PluginName:{},ResponseCode:{type:"integer"},ExecutionStartDateTime:{},ExecutionElapsedTime:{},ExecutionEndDateTime:{},Status:{},StatusDetails:{},StandardOutputContent:{},StandardOutputUrl:{},StandardErrorContent:{},StandardErrorUrl:{}}}},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:{},DocumentVersion:{},DocumentFormat:{}}},output:{type:"structure",members:{Name:{},DocumentVersion:{},Content:{},DocumentType:{},DocumentFormat:{}}}},GetInventory:{input:{type:"structure",members:{Filters:{shape:"Sb8"},Aggregators:{shape:"Sbe"},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:"Sbu"}}}}}}},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:"S2h"},Schedule:{},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:"S9e"},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:"S8s"},Status:{},StatusDetails:{},StartTime:{type:"timestamp"},EndTime:{type:"timestamp"},OwnerInformation:{shape:"S7r"},WindowTargetId:{}}}},GetMaintenanceWindowTask:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskType:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"}}}},GetParameter:{input:{type:"structure",required:["Name"],members:{Name:{},WithDecryption:{type:"boolean"}}},output:{type:"structure",members:{Parameter:{shape:"Sd5"}}}},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"}}}},NextToken:{}}}},GetParameters:{input:{type:"structure",required:["Names"],members:{Names:{shape:"S3t"},WithDecryption:{type:"boolean"}}},output:{type:"structure",members:{Parameters:{shape:"Sdd"},InvalidParameters:{shape:"S3t"}}}},GetParametersByPath:{input:{type:"structure",required:["Path"],members:{Path:{},Recursive:{type:"boolean"},ParameterFilters:{shape:"S9x"},WithDecryption:{type:"boolean"},MaxResults:{type:"integer"},NextToken:{}}},output:{type:"structure",members:{Parameters:{shape:"Sdd"},NextToken:{}}}},GetPatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{}}},output:{type:"structure",members:{BaselineId:{},Name:{},OperatingSystem:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},PatchGroups:{type:"list",member:{}},CreatedDate:{type:"timestamp"},ModifiedDate:{type:"timestamp"},Description:{}}}},GetPatchBaselineForPatchGroup:{input:{type:"structure",required:["PatchGroup"],members:{PatchGroup:{},OperatingSystem:{}}},output:{type:"structure",members:{BaselineId:{},PatchGroup:{},OperatingSystem:{}}}},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:"Sq"},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},AssociationName:{}}}},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:"Su"},LastExecutionDate:{type:"timestamp"},Overview:{shape:"S1e"},ScheduleExpression:{},AssociationName:{}}}},NextToken:{}}}},ListCommandInvocations:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"Se0"},Details:{type:"boolean"}}},output:{type:"structure",members:{CommandInvocations:{type:"list",member:{type:"structure",members:{CommandId:{},InstanceId:{},InstanceName:{},Comment:{},DocumentName:{},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:"Scp"}}}},NextToken:{}}}},ListCommands:{input:{type:"structure",members:{CommandId:{},InstanceId:{},MaxResults:{type:"integer"},NextToken:{},Filters:{shape:"Se0"}}},output:{type:"structure",members:{Commands:{type:"list",member:{shape:"Seg"}},NextToken:{}}}},ListComplianceItems:{input:{type:"structure",members:{Filters:{shape:"Sem"},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:"Sf4"},Details:{shape:"Sf7"}}}},NextToken:{}}}},ListComplianceSummaries:{input:{type:"structure",members:{Filters:{shape:"Sem"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ComplianceSummaryItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},CompliantSummary:{shape:"Sfc"},NonCompliantSummary:{shape:"Sff"}}}},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:{},CreatedDate:{type:"timestamp"},IsDefaultVersion:{type:"boolean"},DocumentFormat:{}}}},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:{},PlatformTypes:{shape:"S2c"},DocumentVersion:{},DocumentType:{},SchemaVersion:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"}}}},NextToken:{}}}},ListInventoryEntries:{input:{type:"structure",required:["InstanceId","TypeName"],members:{InstanceId:{},TypeName:{},Filters:{shape:"Sb8"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{TypeName:{},InstanceId:{},SchemaVersion:{},CaptureTime:{},Entries:{shape:"Sbu"},NextToken:{}}}},ListResourceComplianceSummaries:{input:{type:"structure",members:{Filters:{shape:"Sem"},NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ResourceComplianceSummaryItems:{type:"list",member:{type:"structure",members:{ComplianceType:{},ResourceType:{},ResourceId:{},Status:{},OverallSeverity:{},ExecutionSummary:{shape:"Sf4"},CompliantSummary:{shape:"Sfc"},NonCompliantSummary:{shape:"Sff"}}}},NextToken:{}}}},ListResourceDataSync:{input:{type:"structure",members:{NextToken:{},MaxResults:{type:"integer"}}},output:{type:"structure",members:{ResourceDataSyncItems:{type:"list",member:{type:"structure",members:{SyncName:{},S3Destination:{shape:"S3a"},LastSyncTime:{type:"timestamp"},LastSuccessfulSyncTime:{type:"timestamp"},LastStatus:{},SyncCreatedTime:{type:"timestamp"}}}},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:"S6f"},AccountIdsToRemove:{shape:"S6f"}}},output:{type:"structure",members:{}}},PutComplianceItems:{input:{type:"structure",required:["ResourceId","ResourceType","ComplianceType","ExecutionSummary","Items"],members:{ResourceId:{},ResourceType:{},ComplianceType:{},ExecutionSummary:{shape:"Sf4"},Items:{type:"list",member:{type:"structure",required:["Severity","Status"],members:{Id:{},Title:{},Severity:{},Status:{},Details:{shape:"Sf7"}}}},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:"Sbu"},Context:{type:"map",key:{},value:{}}}}}}},output:{type:"structure",members:{}}},PutParameter:{input:{type:"structure",required:["Name","Value","Type"],members:{Name:{},Description:{},Value:{},Type:{},KeyId:{},Overwrite:{type:"boolean"},AllowedPattern:{}}},output:{type:"structure",members:{Version:{type:"long"}}}},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:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"},ClientToken:{idempotencyToken:!0}}},output:{type:"structure",members:{WindowTargetId:{}}}},RegisterTaskWithMaintenanceWindow:{input:{type:"structure",required:["WindowId","Targets","TaskArn","ServiceRoleArn","TaskType","MaxConcurrency","MaxErrors"],members:{WindowId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskType:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"},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:{}}},SendAutomationSignal:{input:{type:"structure",required:["AutomationExecutionId","SignalType"],members:{AutomationExecutionId:{},SignalType:{},Payload:{shape:"S52"}}},output:{type:"structure",members:{}}},SendCommand:{input:{type:"structure",required:["DocumentName"],members:{InstanceIds:{shape:"Sb"},Targets:{shape:"Su"},DocumentName:{},DocumentHash:{},DocumentHashType:{},TimeoutSeconds:{type:"integer"},Comment:{},Parameters:{shape:"Sq"},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{},MaxConcurrency:{},MaxErrors:{},ServiceRoleArn:{},NotificationConfig:{shape:"Scp"}}},output:{type:"structure",members:{Command:{shape:"Seg"}}}},StartAutomationExecution:{input:{type:"structure",required:["DocumentName"],members:{DocumentName:{},DocumentVersion:{},Parameters:{shape:"S52"},ClientToken:{},Mode:{},TargetParameterName:{},Targets:{shape:"Su"},MaxConcurrency:{},MaxErrors:{}}},output:{type:"structure",members:{AutomationExecutionId:{}}}},StopAutomationExecution:{input:{type:"structure",required:["AutomationExecutionId"],members:{AutomationExecutionId:{},Type:{}}},output:{type:"structure",members:{}}},UpdateAssociation:{input:{type:"structure",required:["AssociationId"],members:{AssociationId:{},Parameters:{shape:"Sq"},DocumentVersion:{},ScheduleExpression:{},OutputLocation:{shape:"S10"},Name:{},Targets:{shape:"Su"},AssociationName:{},AssociationVersion:{}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},UpdateAssociationStatus:{input:{type:"structure",required:["Name","InstanceId","AssociationStatus"],members:{Name:{},InstanceId:{},AssociationStatus:{shape:"S1a"}}},output:{type:"structure",members:{AssociationDescription:{shape:"S17"}}}},UpdateDocument:{input:{type:"structure",required:["Content","Name"],members:{Content:{},Name:{},DocumentVersion:{},DocumentFormat:{},TargetType:{}}},output:{type:"structure",members:{DocumentDescription:{shape:"S1y"}}}},UpdateDocumentDefaultVersion:{input:{type:"structure",required:["Name","DocumentVersion"],members:{Name:{},DocumentVersion:{}}},output:{type:"structure",members:{Description:{type:"structure",members:{Name:{},DefaultVersion:{}}}}}},UpdateMaintenanceWindow:{input:{type:"structure",required:["WindowId"],members:{WindowId:{},Name:{},Description:{shape:"S2h"},Schedule:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},Name:{},Description:{shape:"S2h"},Schedule:{},Duration:{type:"integer"},Cutoff:{type:"integer"},AllowUnassociatedTargets:{type:"boolean"},Enabled:{type:"boolean"}}}},UpdateMaintenanceWindowTarget:{input:{type:"structure",required:["WindowId","WindowTargetId"],members:{WindowId:{},WindowTargetId:{},Targets:{shape:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTargetId:{},Targets:{shape:"Su"},OwnerInformation:{shape:"S7r"},Name:{},Description:{shape:"S2h"}}}},UpdateMaintenanceWindowTask:{input:{type:"structure",required:["WindowId","WindowTaskId"],members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"},Replace:{type:"boolean"}}},output:{type:"structure",members:{WindowId:{},WindowTaskId:{},Targets:{shape:"Su"},TaskArn:{},ServiceRoleArn:{},TaskParameters:{shape:"S9e"},TaskInvocationParameters:{shape:"Scn"},Priority:{type:"integer"},MaxConcurrency:{},MaxErrors:{},LoggingInfo:{shape:"S9k"},Name:{},Description:{shape:"S2h"}}}},UpdateManagedInstanceRole:{input:{type:"structure",required:["InstanceId","IamRole"],members:{InstanceId:{},IamRole:{}}},output:{type:"structure",members:{}}},UpdatePatchBaseline:{input:{type:"structure",required:["BaselineId"],members:{BaselineId:{},Name:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},Description:{}}},output:{type:"structure",members:{BaselineId:{},Name:{},OperatingSystem:{},GlobalFilters:{shape:"S2s"},ApprovalRules:{shape:"S2y"},ApprovedPatches:{shape:"S33"},ApprovedPatchesComplianceLevel:{},RejectedPatches:{shape:"S33"},CreatedDate:{type:"timestamp"},ModifiedDate:{ +type:"timestamp"},Description:{}}}}},shapes:{S4:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},Sb:{type:"list",member:{}},Sq:{type:"map",key:{},value:{type:"list",member:{}}},Su:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S10:{type:"structure",members:{S3Location:{type:"structure",members:{OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{}}}}},S17:{type:"structure",members:{Name:{},InstanceId:{},AssociationVersion:{},Date:{type:"timestamp"},LastUpdateAssociationDate:{type:"timestamp"},Status:{shape:"S1a"},Overview:{shape:"S1e"},DocumentVersion:{},Parameters:{shape:"Sq"},AssociationId:{},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},LastExecutionDate:{type:"timestamp"},LastSuccessfulExecutionDate:{type:"timestamp"},AssociationName:{}}},S1a:{type:"structure",required:["Date","Name","Message"],members:{Date:{type:"timestamp"},Name:{},Message:{},AdditionalInfo:{}}},S1e:{type:"structure",members:{Status:{},DetailedStatus:{},AssociationStatusAggregatedCount:{type:"map",key:{},value:{type:"integer"}}}},S1l:{type:"structure",required:["Name"],members:{Name:{},InstanceId:{},Parameters:{shape:"Sq"},DocumentVersion:{},Targets:{shape:"Su"},ScheduleExpression:{},OutputLocation:{shape:"S10"},AssociationName:{}}},S1y:{type:"structure",members:{Sha1:{},Hash:{},HashType:{},Name:{},Owner:{},CreatedDate:{type:"timestamp"},Status:{},DocumentVersion:{},Description:{},Parameters:{type:"list",member:{type:"structure",members:{Name:{},Type:{},Description:{},DefaultValue:{}}}},PlatformTypes:{shape:"S2c"},DocumentType:{},SchemaVersion:{},LatestVersion:{},DefaultVersion:{},DocumentFormat:{},TargetType:{},Tags:{shape:"S4"}}},S2c:{type:"list",member:{}},S2h:{type:"string",sensitive:!0},S2s:{type:"structure",required:["PatchFilters"],members:{PatchFilters:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}}}}}}},S2y:{type:"structure",required:["PatchRules"],members:{PatchRules:{type:"list",member:{type:"structure",required:["PatchFilterGroup","ApproveAfterDays"],members:{PatchFilterGroup:{shape:"S2s"},ComplianceLevel:{},ApproveAfterDays:{type:"integer"}}}}}},S33:{type:"list",member:{}},S3a:{type:"structure",required:["BucketName","SyncFormat","Region"],members:{BucketName:{},Prefix:{},SyncFormat:{},Region:{},AWSKMSKeyARN:{}}},S3t:{type:"list",member:{}},S52:{type:"map",key:{},value:{type:"list",member:{}}},S57:{type:"structure",members:{ParameterValues:{type:"list",member:{}},Truncated:{type:"boolean"}}},S5i:{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:"S52"},Response:{},FailureMessage:{},FailureDetails:{type:"structure",members:{FailureStage:{},FailureType:{},Details:{shape:"S52"}}},StepExecutionId:{},OverriddenParameters:{shape:"S52"}}}},S5q:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S5y:{type:"structure",members:{Id:{},ReleaseDate:{type:"timestamp"},Title:{},Description:{},ContentUrl:{},Vendor:{},ProductFamily:{},Product:{},Classification:{},MsrcSeverity:{},KbNumber:{},MsrcNumber:{},Language:{}}},S6f:{type:"list",member:{}},S75:{type:"list",member:{}},S7p:{type:"structure",required:["InstanceId","PatchGroup","BaselineId","OperationStartTime","OperationEndTime","Operation"],members:{InstanceId:{},PatchGroup:{},BaselineId:{},SnapshotId:{},OwnerInformation:{shape:"S7r"},InstalledCount:{type:"integer"},InstalledOtherCount:{type:"integer"},MissingCount:{type:"integer"},FailedCount:{type:"integer"},NotApplicableCount:{type:"integer"},OperationStartTime:{type:"timestamp"},OperationEndTime:{type:"timestamp"},Operation:{}}},S7r:{type:"string",sensitive:!0},S8g:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}}}}},S8s:{type:"string",sensitive:!0},S9e:{type:"map",key:{},value:{type:"structure",members:{Values:{type:"list",member:{type:"string",sensitive:!0},sensitive:!0}},sensitive:!0},sensitive:!0},S9k:{type:"structure",required:["S3BucketName","S3Region"],members:{S3BucketName:{},S3KeyPrefix:{},S3Region:{}}},S9x:{type:"list",member:{type:"structure",required:["Key"],members:{Key:{},Option:{},Values:{type:"list",member:{}}}}},Sae:{type:"structure",members:{BaselineId:{},BaselineName:{},OperatingSystem:{},BaselineDescription:{},DefaultBaseline:{type:"boolean"}}},Sb8:{type:"list",member:{type:"structure",required:["Key","Values"],members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sbe:{type:"list",member:{type:"structure",members:{Expression:{},Aggregators:{shape:"Sbe"}}}},Sbu:{type:"list",member:{type:"map",key:{},value:{}}},Scn:{type:"structure",members:{RunCommand:{type:"structure",members:{Comment:{},DocumentHash:{},DocumentHashType:{},NotificationConfig:{shape:"Scp"},OutputS3BucketName:{},OutputS3KeyPrefix:{},Parameters:{shape:"Sq"},ServiceRoleArn:{},TimeoutSeconds:{type:"integer"}}},Automation:{type:"structure",members:{DocumentVersion:{},Parameters:{shape:"S52"}}},StepFunctions:{type:"structure",members:{Input:{type:"string",sensitive:!0},Name:{}}},Lambda:{type:"structure",members:{ClientContext:{},Qualifier:{},Payload:{type:"blob",sensitive:!0}}}}},Scp:{type:"structure",members:{NotificationArn:{},NotificationEvents:{type:"list",member:{}},NotificationType:{}}},Sd5:{type:"structure",members:{Name:{},Type:{},Value:{},Version:{type:"long"}}},Sdd:{type:"list",member:{shape:"Sd5"}},Se0:{type:"list",member:{type:"structure",required:["key","value"],members:{key:{},value:{}}}},Seg:{type:"structure",members:{CommandId:{},DocumentName:{},Comment:{},ExpiresAfter:{type:"timestamp"},Parameters:{shape:"Sq"},InstanceIds:{shape:"Sb"},Targets:{shape:"Su"},RequestedDateTime:{type:"timestamp"},Status:{},StatusDetails:{},OutputS3Region:{},OutputS3BucketName:{},OutputS3KeyPrefix:{},MaxConcurrency:{},MaxErrors:{},TargetCount:{type:"integer"},CompletedCount:{type:"integer"},ErrorCount:{type:"integer"},ServiceRole:{},NotificationConfig:{shape:"Scp"}}},Sem:{type:"list",member:{type:"structure",members:{Key:{},Values:{type:"list",member:{}},Type:{}}}},Sf4:{type:"structure",required:["ExecutionTime"],members:{ExecutionTime:{type:"timestamp"},ExecutionId:{},ExecutionType:{}}},Sf7:{type:"map",key:{},value:{}},Sfc:{type:"structure",members:{CompliantCount:{type:"integer"},SeveritySummary:{shape:"Sfe"}}},Sfe:{type:"structure",members:{CriticalCount:{type:"integer"},HighCount:{type:"integer"},MediumCount:{type:"integer"},LowCount:{type:"integer"},InformationalCount:{type:"integer"},UnspecifiedCount:{type:"integer"}}},Sff:{type:"structure",members:{NonCompliantCount:{type:"integer"},SeveritySummary:{shape:"Sfe"}}}}}},{}],153:[function(e,t,r){t.exports={pagination:{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"}}}},{}],154:[function(e,t,r){t.exports={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:{}}},output:{type:"structure",members:{GatewayARN:{}}}},AddCache:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddTagsToResource:{input:{type:"structure",required:["ResourceARN","Tags"],members:{ResourceARN:{},Tags:{shape:"Sh"}}},output:{type:"structure",members:{ResourceARN:{}}}},AddUploadBuffer:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}}},AddWorkingStorage:{input:{type:"structure",required:["GatewayARN","DiskIds"],members:{GatewayARN:{},DiskIds:{shape:"Sc"}}},output:{type:"structure",members:{GatewayARN:{}}}},CancelArchival:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},CancelRetrieval:{input:{type:"structure",required:["GatewayARN","TapeARN"],members:{GatewayARN:{},TapeARN:{}}},output:{type:"structure",members:{TapeARN:{}}}},CreateCachediSCSIVolume:{input:{type:"structure",required:["GatewayARN","VolumeSizeInBytes","TargetName","NetworkInterfaceId","ClientToken"],members:{GatewayARN:{},VolumeSizeInBytes:{type:"long"},SnapshotId:{},TargetName:{},SourceVolumeARN:{},NetworkInterfaceId:{},ClientToken:{}}},output:{type:"structure",members:{VolumeARN:{},TargetARN:{}}}},CreateNFSFileShare:{input:{type:"structure",required:["ClientToken","GatewayARN","Role","LocationARN"],members:{ClientToken:{},NFSFileShareDefaults:{shape:"S15"},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Role:{},LocationARN:{},DefaultStorageClass:{},ClientList:{shape:"S1d"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{}}}},CreateSnapshot:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{VolumeARN:{},SnapshotId:{}}}},CreateSnapshotFromVolumeRecoveryPoint:{input:{type:"structure",required:["VolumeARN","SnapshotDescription"],members:{VolumeARN:{},SnapshotDescription:{}}},output:{type:"structure",members:{SnapshotId:{},VolumeARN:{},VolumeRecoveryPointTime:{}}}},CreateStorediSCSIVolume:{input:{type:"structure",required:["GatewayARN","DiskId","PreserveExistingData","TargetName","NetworkInterfaceId"],members:{GatewayARN:{},DiskId:{},SnapshotId:{},PreserveExistingData:{type:"boolean"},TargetName:{},NetworkInterfaceId:{}}},output:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},TargetARN:{}}}},CreateTapeWithBarcode:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","TapeBarcode"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},TapeBarcode:{}}},output:{type:"structure",members:{TapeARN:{}}}},CreateTapes:{input:{type:"structure",required:["GatewayARN","TapeSizeInBytes","ClientToken","NumTapesToCreate","TapeBarcodePrefix"],members:{GatewayARN:{},TapeSizeInBytes:{type:"long"},ClientToken:{},NumTapesToCreate:{type:"integer"},TapeBarcodePrefix:{}}},output:{type:"structure",members:{TapeARNs:{shape:"S1z"}}}},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:{}}}},DescribeBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}}},DescribeCache:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},CacheAllocatedInBytes:{type:"long"},CacheUsedPercentage:{type:"double"},CacheDirtyPercentage:{type:"double"},CacheHitPercentage:{type:"double"},CacheMissPercentage:{type:"double"}}}},DescribeCachediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2q"}}},output:{type:"structure",members:{CachediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},SourceSnapshotId:{},VolumeiSCSIAttributes:{shape:"S2y"},CreatedDate:{type:"timestamp"},VolumeUsedInBytes:{type:"long"}}}}}}},DescribeChapCredentials:{input:{type:"structure",required:["TargetARN"],members:{TargetARN:{}}},output:{type:"structure",members:{ChapCredentials:{type:"list",member:{type:"structure",members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}}}}}},DescribeGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayId:{},GatewayName:{},GatewayTimezone:{},GatewayState:{},GatewayNetworkInterfaces:{type:"list",member:{type:"structure",members:{Ipv4Address:{},MacAddress:{},Ipv6Address:{}}}},GatewayType:{},NextUpdateAvailabilityDate:{},LastSoftwareUpdate:{}}}},DescribeMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"},Timezone:{}}}},DescribeNFSFileShares:{input:{type:"structure",required:["FileShareARNList"],members:{FileShareARNList:{type:"list",member:{}}}},output:{type:"structure",members:{NFSFileShareInfoList:{type:"list",member:{type:"structure",members:{NFSFileShareDefaults:{shape:"S15"},FileShareARN:{},FileShareId:{},FileShareStatus:{},GatewayARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},Path:{},Role:{},LocationARN:{},DefaultStorageClass:{},ClientList:{shape:"S1d"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"}}}}}}},DescribeSnapshotSchedule:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{},Timezone:{}}}},DescribeStorediSCSIVolumes:{input:{type:"structure",required:["VolumeARNs"],members:{VolumeARNs:{shape:"S2q"}}},output:{type:"structure",members:{StorediSCSIVolumes:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},VolumeType:{},VolumeStatus:{},VolumeSizeInBytes:{type:"long"},VolumeProgress:{type:"double"},VolumeDiskId:{},SourceSnapshotId:{},PreservedExistingData:{type:"boolean"},VolumeiSCSIAttributes:{shape:"S2y"},CreatedDate:{type:"timestamp"},VolumeUsedInBytes:{type:"long"}}}}}}},DescribeTapeArchives:{input:{type:"structure",members:{TapeARNs:{shape:"S1z"},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"}}}},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:"S1z"},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"}}}},Marker:{}}}},DescribeUploadBuffer:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},UploadBufferUsedInBytes:{type:"long"},UploadBufferAllocatedInBytes:{type:"long"}}}},DescribeVTLDevices:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},VTLDeviceARNs:{type:"list",member:{}},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},VTLDevices:{type:"list",member:{type:"structure",members:{VTLDeviceARN:{},VTLDeviceType:{},VTLDeviceVendor:{},VTLDeviceProductIdentifier:{},DeviceiSCSIAttributes:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},Marker:{}}}},DescribeWorkingStorage:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},DiskIds:{shape:"Sc"},WorkingStorageUsedInBytes:{type:"long"},WorkingStorageAllocatedInBytes:{type:"long"}}}},DisableGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},ListFileShares:{input:{type:"structure",members:{GatewayARN:{},Limit:{type:"integer"},Marker:{}}},output:{type:"structure",members:{Marker:{},NextMarker:{},FileShareInfoList:{type:"list",member:{type:"structure",members:{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:{}}}},Marker:{}}}},ListLocalDisks:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},Disks:{type:"list",member:{type:"structure",members:{DiskId:{},DiskPath:{},DiskNode:{},DiskStatus:{},DiskSizeInBytes:{type:"long"},DiskAllocationType:{},DiskAllocationResource:{}}}}}}},ListTagsForResource:{input:{type:"structure",required:["ResourceARN"],members:{ResourceARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{ResourceARN:{},Marker:{},Tags:{shape:"Sh"}}}},ListTapes:{input:{type:"structure",members:{TapeARNs:{shape:"S1z"},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{TapeInfos:{type:"list",member:{type:"structure",members:{TapeARN:{},TapeBarcode:{},TapeSizeInBytes:{type:"long"},TapeStatus:{},GatewayARN:{}}}},Marker:{}}}},ListVolumeInitiators:{input:{type:"structure",required:["VolumeARN"],members:{VolumeARN:{}}},output:{type:"structure",members:{Initiators:{type:"list",member:{}}}}},ListVolumeRecoveryPoints:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{},VolumeRecoveryPointInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeSizeInBytes:{type:"long"},VolumeUsageInBytes:{type:"long"},VolumeRecoveryPointTime:{}}}}}}},ListVolumes:{input:{type:"structure",members:{GatewayARN:{},Marker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{},Marker:{},VolumeInfos:{type:"list",member:{type:"structure",members:{VolumeARN:{},VolumeId:{},GatewayARN:{},GatewayId:{},VolumeType:{},VolumeSizeInBytes:{type:"long"}}}}}}},NotifyWhenUploaded:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{}}},output:{type:"structure",members:{FileShareARN:{},NotificationId:{}}}},RefreshCache:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{}}},output:{type:"structure",members:{FileShareARN:{}}}},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:{}}}},ShutdownGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},StartGateway:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateBandwidthRateLimit:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},AverageUploadRateLimitInBitsPerSec:{type:"long"},AverageDownloadRateLimitInBitsPerSec:{type:"long"}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateChapCredentials:{input:{type:"structure",required:["TargetARN","SecretToAuthenticateInitiator","InitiatorName"],members:{TargetARN:{},SecretToAuthenticateInitiator:{},InitiatorName:{},SecretToAuthenticateTarget:{}}},output:{type:"structure",members:{TargetARN:{},InitiatorName:{}}}},UpdateGatewayInformation:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{},GatewayName:{},GatewayTimezone:{}}},output:{type:"structure",members:{GatewayARN:{},GatewayName:{}}}},UpdateGatewaySoftwareNow:{input:{type:"structure",required:["GatewayARN"],members:{GatewayARN:{}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateMaintenanceStartTime:{input:{type:"structure",required:["GatewayARN","HourOfDay","MinuteOfHour","DayOfWeek"],members:{GatewayARN:{},HourOfDay:{type:"integer"},MinuteOfHour:{type:"integer"},DayOfWeek:{type:"integer"}}},output:{type:"structure",members:{GatewayARN:{}}}},UpdateNFSFileShare:{input:{type:"structure",required:["FileShareARN"],members:{FileShareARN:{},KMSEncrypted:{type:"boolean"},KMSKey:{},NFSFileShareDefaults:{shape:"S15"},DefaultStorageClass:{},ClientList:{shape:"S1d"},Squash:{},ReadOnly:{type:"boolean"},GuessMIMETypeEnabled:{type:"boolean"}}},output:{type:"structure",members:{FileShareARN:{}}}},UpdateSnapshotSchedule:{input:{type:"structure",required:["VolumeARN","StartAt","RecurrenceInHours"],members:{VolumeARN:{},StartAt:{type:"integer"},RecurrenceInHours:{type:"integer"},Description:{}}},output:{type:"structure",members:{VolumeARN:{}}}},UpdateVTLDeviceType:{input:{type:"structure",required:["VTLDeviceARN","DeviceType"],members:{VTLDeviceARN:{},DeviceType:{}}},output:{type:"structure",members:{VTLDeviceARN:{}}}}},shapes:{Sc:{type:"list",member:{}},Sh:{type:"list",member:{type:"structure",required:["Key","Value"],members:{Key:{},Value:{}}}},S15:{type:"structure",members:{FileMode:{},DirectoryMode:{},GroupId:{type:"long"},OwnerId:{type:"long"}}},S1d:{type:"list",member:{}},S1z:{type:"list",member:{}},S2q:{type:"list",member:{}},S2y:{type:"structure",members:{TargetARN:{},NetworkInterfaceId:{},NetworkInterfacePort:{type:"integer"},LunNumber:{type:"integer"},ChapEnabled:{type:"boolean"}}}}}},{}],155:[function(e,t,r){t.exports={pagination:{DescribeCachediSCSIVolumes:{result_key:"CachediSCSIVolumes"},DescribeStorediSCSIVolumes:{result_key:"StorediSCSIVolumes"},DescribeTapeArchives:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeArchives"},DescribeTapeRecoveryPoints:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"TapeRecoveryPointInfos"},DescribeTapes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Tapes"},DescribeVTLDevices:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VTLDevices"},ListGateways:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Gateways"},ListLocalDisks:{result_key:"Disks"},ListVolumeRecoveryPoints:{result_key:"VolumeRecoveryPointInfos"},ListVolumes:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"VolumeInfos"}}}},{}],156:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2012-08-10",endpointPrefix:"streams.dynamodb",jsonVersion:"1.0",protocol:"json",serviceFullName:"Amazon DynamoDB Streams",signatureVersion:"v4",signingName:"dynamodb",targetPrefix:"DynamoDBStreams_20120810",uid:"streams-dynamodb-2012-08-10"},operations:{DescribeStream:{input:{type:"structure",required:["StreamArn"],members:{StreamArn:{},Limit:{type:"integer"},ExclusiveStartShardId:{}}},output:{type:"structure",members:{StreamDescription:{type:"structure",members:{StreamArn:{},StreamLabel:{},StreamStatus:{},StreamViewType:{},CreationRequestDateTime:{type:"timestamp"},TableName:{},KeySchema:{type:"list",member:{type:"structure",required:["AttributeName","KeyType"],members:{AttributeName:{},KeyType:{}}}},Shards:{type:"list",member:{type:"structure",members:{ShardId:{},SequenceNumberRange:{type:"structure",members:{StartingSequenceNumber:{},EndingSequenceNumber:{}}},ParentShardId:{}}}},LastEvaluatedShardId:{}}}}}},GetRecords:{input:{type:"structure",required:["ShardIterator"],members:{ShardIterator:{},Limit:{type:"integer"}}},output:{type:"structure",members:{Records:{type:"list",member:{type:"structure",members:{eventID:{},eventName:{},eventVersion:{},eventSource:{},awsRegion:{},dynamodb:{type:"structure",members:{ApproximateCreationDateTime:{type:"timestamp"},Keys:{shape:"Sr"},NewImage:{shape:"Sr"},OldImage:{shape:"Sr"},SequenceNumber:{},SizeBytes:{type:"long"},StreamViewType:{}}},userIdentity:{type:"structure",members:{PrincipalId:{},Type:{}}}}}},NextShardIterator:{}}}},GetShardIterator:{input:{type:"structure",required:["StreamArn","ShardId","ShardIteratorType"],members:{StreamArn:{},ShardId:{},ShardIteratorType:{},SequenceNumber:{}}},output:{type:"structure",members:{ShardIterator:{}}}},ListStreams:{input:{type:"structure",members:{TableName:{},Limit:{type:"integer"},ExclusiveStartStreamArn:{}}},output:{type:"structure",members:{Streams:{type:"list",member:{type:"structure",members:{StreamArn:{},TableName:{},StreamLabel:{}}}},LastEvaluatedStreamArn:{}}}}},shapes:{Sr:{type:"map",key:{},value:{shape:"St"}},St:{type:"structure",members:{S:{},N:{},B:{type:"blob"},SS:{type:"list",member:{}},NS:{type:"list",member:{}},BS:{type:"list",member:{type:"blob"}},M:{type:"map",key:{},value:{shape:"St"}},L:{type:"list",member:{shape:"St"}},NULL:{type:"boolean"},BOOL:{type:"boolean"}}}}}},{}],157:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],158:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2011-06-15",endpointPrefix:"sts",globalEndpoint:"sts.amazonaws.com",protocol:"query",serviceAbbreviation:"AWS STS",serviceFullName:"AWS Security Token Service",signatureVersion:"v4",uid:"sts-2011-06-15",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/"},operations:{AssumeRole:{input:{type:"structure",required:["RoleArn","RoleSessionName"],members:{RoleArn:{},RoleSessionName:{},Policy:{},DurationSeconds:{type:"integer"},ExternalId:{},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"AssumeRoleResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"}}}},AssumeRoleWithSAML:{input:{type:"structure",required:["RoleArn","PrincipalArn","SAMLAssertion"],members:{RoleArn:{},PrincipalArn:{},SAMLAssertion:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithSAMLResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Subject:{},SubjectType:{},Issuer:{},Audience:{},NameQualifier:{}}}},AssumeRoleWithWebIdentity:{input:{type:"structure",required:["RoleArn","RoleSessionName","WebIdentityToken"],members:{RoleArn:{},RoleSessionName:{},WebIdentityToken:{},ProviderId:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithWebIdentityResult",type:"structure",members:{Credentials:{shape:"Sa"},SubjectFromWebIdentityToken:{},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Provider:{},Audience:{}}}},DecodeAuthorizationMessage:{input:{type:"structure",required:["EncodedMessage"],members:{EncodedMessage:{}}},output:{resultWrapper:"DecodeAuthorizationMessageResult",type:"structure",members:{DecodedMessage:{}}}},GetCallerIdentity:{input:{type:"structure",members:{}},output:{resultWrapper:"GetCallerIdentityResult",type:"structure",members:{UserId:{},Account:{},Arn:{}}}},GetFederationToken:{input:{type:"structure",required:["Name"],members:{Name:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"GetFederationTokenResult",type:"structure",members:{Credentials:{shape:"Sa"},FederatedUser:{type:"structure",required:["FederatedUserId","Arn"],members:{FederatedUserId:{},Arn:{}}},PackedPolicySize:{type:"integer"}}}},GetSessionToken:{input:{type:"structure",members:{DurationSeconds:{type:"integer"},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"GetSessionTokenResult",type:"structure",members:{Credentials:{shape:"Sa"}}}}},shapes:{Sa:{type:"structure",required:["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{},Expiration:{type:"timestamp"}}},Sf:{type:"structure",required:["AssumedRoleId","Arn"],members:{AssumedRoleId:{},Arn:{}}}}}},{}],159:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],160:[function(e,t,r){t.exports={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:{}}},output:{type:"structure",members:{Rule:{shape:"Sy" +},ChangeToken:{}}}},CreateRegexMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{RegexMatchSet:{shape:"S15"},ChangeToken:{}}}},CreateRegexPatternSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{RegexPatternSet:{shape:"S1a"},ChangeToken:{}}}},CreateRule:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{}}},output:{type:"structure",members:{Rule:{shape:"S1f"},ChangeToken:{}}}},CreateRuleGroup:{input:{type:"structure",required:["Name","MetricName","ChangeToken"],members:{Name:{},MetricName:{},ChangeToken:{}}},output:{type:"structure",members:{RuleGroup:{shape:"S1i"},ChangeToken:{}}}},CreateSizeConstraintSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"S1l"},ChangeToken:{}}}},CreateSqlInjectionMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S1s"},ChangeToken:{}}}},CreateWebACL:{input:{type:"structure",required:["Name","MetricName","DefaultAction","ChangeToken"],members:{Name:{},MetricName:{},DefaultAction:{shape:"S1w"},ChangeToken:{}}},output:{type:"structure",members:{WebACL:{shape:"S1z"},ChangeToken:{}}}},CreateXssMatchSet:{input:{type:"structure",required:["Name","ChangeToken"],members:{Name:{},ChangeToken:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S28"},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:{}}}},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"}}}},GetRateBasedRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"Sy"}}}},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:"S15"}}}},GetRegexPatternSet:{input:{type:"structure",required:["RegexPatternSetId"],members:{RegexPatternSetId:{}}},output:{type:"structure",members:{RegexPatternSet:{shape:"S1a"}}}},GetRule:{input:{type:"structure",required:["RuleId"],members:{RuleId:{}}},output:{type:"structure",members:{Rule:{shape:"S1f"}}}},GetRuleGroup:{input:{type:"structure",required:["RuleGroupId"],members:{RuleGroupId:{}}},output:{type:"structure",members:{RuleGroup:{shape:"S1i"}}}},GetSampledRequests:{input:{type:"structure",required:["WebAclId","RuleId","TimeWindow","MaxItems"],members:{WebAclId:{},RuleId:{},TimeWindow:{shape:"S3q"},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:"S3q"}}}},GetSizeConstraintSet:{input:{type:"structure",required:["SizeConstraintSetId"],members:{SizeConstraintSetId:{}}},output:{type:"structure",members:{SizeConstraintSet:{shape:"S1l"}}}},GetSqlInjectionMatchSet:{input:{type:"structure",required:["SqlInjectionMatchSetId"],members:{SqlInjectionMatchSetId:{}}},output:{type:"structure",members:{SqlInjectionMatchSet:{shape:"S1s"}}}},GetWebACL:{input:{type:"structure",required:["WebACLId"],members:{WebACLId:{}}},output:{type:"structure",members:{WebACL:{shape:"S1z"}}}},GetXssMatchSet:{input:{type:"structure",required:["XssMatchSetId"],members:{XssMatchSetId:{}}},output:{type:"structure",members:{XssMatchSet:{shape:"S28"}}}},ListActivatedRulesInRuleGroup:{input:{type:"structure",members:{RuleGroupId:{},NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},ActivatedRules:{shape:"S20"}}}},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:{}}}}}}},ListRateBasedRules:{input:{type:"structure",members:{NextMarker:{},Limit:{type:"integer"}}},output:{type:"structure",members:{NextMarker:{},Rules:{shape:"S4y"}}}},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:"S4y"}}}},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:{}}}}}}},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:{}}}}}}},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:"S6c"},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:"S17"}}}},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:"S6c"}}},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:"S21"}}}},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:"S1n"}}}}}},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:"S1u"}}}}}},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:"S21"}}}},DefaultAction:{shape:"S1w"}}},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:"S2a"}}}}}},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:{}}},Sy:{type:"structure",required:["RuleId","MatchPredicates","RateKey","RateLimit"],members:{RuleId:{},Name:{},MetricName:{},MatchPredicates:{shape:"Sz"},RateKey:{},RateLimit:{type:"long"}}},Sz:{type:"list",member:{shape:"S10"}},S10:{type:"structure",required:["Negated","Type","DataId"],members:{Negated:{type:"boolean"},Type:{},DataId:{}}},S15:{type:"structure",members:{RegexMatchSetId:{},Name:{},RegexMatchTuples:{type:"list",member:{shape:"S17"}}}},S17:{type:"structure",required:["FieldToMatch","TextTransformation","RegexPatternSetId"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},RegexPatternSetId:{}}},S1a:{type:"structure",required:["RegexPatternSetId","RegexPatternStrings"],members:{RegexPatternSetId:{},Name:{},RegexPatternStrings:{type:"list",member:{}}}},S1f:{type:"structure",required:["RuleId","Predicates"],members:{RuleId:{},Name:{},MetricName:{},Predicates:{shape:"Sz"}}},S1i:{type:"structure",required:["RuleGroupId"],members:{RuleGroupId:{},Name:{},MetricName:{}}},S1l:{type:"structure",required:["SizeConstraintSetId","SizeConstraints"],members:{SizeConstraintSetId:{},Name:{},SizeConstraints:{type:"list",member:{shape:"S1n"}}}},S1n:{type:"structure",required:["FieldToMatch","TextTransformation","ComparisonOperator","Size"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{},ComparisonOperator:{},Size:{type:"long"}}},S1s:{type:"structure",required:["SqlInjectionMatchSetId","SqlInjectionMatchTuples"],members:{SqlInjectionMatchSetId:{},Name:{},SqlInjectionMatchTuples:{type:"list",member:{shape:"S1u"}}}},S1u:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S1w:{type:"structure",required:["Type"],members:{Type:{}}},S1z:{type:"structure",required:["WebACLId","DefaultAction","Rules"],members:{WebACLId:{},Name:{},MetricName:{},DefaultAction:{shape:"S1w"},Rules:{shape:"S20"}}},S20:{type:"list",member:{shape:"S21"}},S21:{type:"structure",required:["Priority","RuleId"],members:{Priority:{type:"integer"},RuleId:{},Action:{shape:"S1w"},OverrideAction:{type:"structure",required:["Type"],members:{Type:{}}},Type:{}}},S28:{type:"structure",required:["XssMatchSetId","XssMatchTuples"],members:{XssMatchSetId:{},Name:{},XssMatchTuples:{type:"list",member:{shape:"S2a"}}}},S2a:{type:"structure",required:["FieldToMatch","TextTransformation"],members:{FieldToMatch:{shape:"S9"},TextTransformation:{}}},S3q:{type:"structure",required:["StartTime","EndTime"],members:{StartTime:{type:"timestamp"},EndTime:{type:"timestamp"}}},S4y:{type:"list",member:{type:"structure",required:["RuleId","Name"],members:{RuleId:{},Name:{}}}},S6c:{type:"list",member:{type:"structure",required:["Action","Predicate"],members:{Action:{},Predicate:{shape:"S10"}}}}}}},{}],161:[function(e,t,r){arguments[4][19][0].apply(r,arguments)},{dup:19}],162:[function(e,t,r){t.exports={version:"2.0",metadata:{apiVersion:"2016-05-01",endpointPrefix:"workdocs",jsonVersion:"1.1",protocol:"rest-json",serviceFullName:"Amazon WorkDocs",signatureVersion:"v4",uid:"workdocs-2016-05-01"},operations:{AbortDocumentVersionUpload:{http:{method:"DELETE",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}",responseCode:204},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"}}}},ActivateUser:{http:{requestUri:"/api/v1/users/{UserId}/activation",responseCode:200},input:{type:"structure",required:["UserId"],members:{UserId:{location:"uri",locationName:"UserId"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{User:{shape:"S8"}}}},AddResourcePermissions:{http:{requestUri:"/api/v1/resources/{ResourceId}/permissions",responseCode:201},input:{type:"structure",required:["ResourceId","Principals"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},Principals:{type:"list",member:{type:"structure",required:["Id","Type","Role"],members:{Id:{},Type:{},Role:{}}}},NotificationOptions:{type:"structure",members:{SendEmail:{type:"boolean"},EmailMessage:{shape:"St"}}}}},output:{type:"structure",members:{ShareResults:{type:"list",member:{type:"structure",members:{PrincipalId:{},Role:{},Status:{},ShareId:{},StatusMessage:{shape:"St"}}}}}}},CreateComment:{http:{requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}/comment",responseCode:201},input:{type:"structure",required:["DocumentId","VersionId","Text"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},ParentId:{},ThreadId:{},Text:{shape:"S10"},Visibility:{},NotifyCollaborators:{type:"boolean"}}},output:{type:"structure",members:{Comment:{shape:"S13"}}}},CreateCustomMetadata:{http:{method:"PUT",requestUri:"/api/v1/resources/{ResourceId}/customMetadata",responseCode:200},input:{type:"structure",required:["ResourceId","CustomMetadata"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},VersionId:{location:"querystring",locationName:"versionid"},CustomMetadata:{shape:"S16"}}},output:{type:"structure",members:{}}},CreateFolder:{http:{requestUri:"/api/v1/folders",responseCode:201},input:{type:"structure",required:["ParentFolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Name:{},ParentFolderId:{}}},output:{type:"structure",members:{Metadata:{shape:"S1d"}}}},CreateLabels:{http:{method:"PUT",requestUri:"/api/v1/resources/{ResourceId}/labels",responseCode:200},input:{type:"structure",required:["ResourceId","Labels"],members:{ResourceId:{location:"uri",locationName:"ResourceId"},Labels:{shape:"S1g"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{}}},CreateNotificationSubscription:{http:{requestUri:"/api/v1/organizations/{OrganizationId}/subscriptions",responseCode:200},input:{type:"structure",required:["OrganizationId","Endpoint","Protocol","SubscriptionType"],members:{OrganizationId:{location:"uri",locationName:"OrganizationId"},Endpoint:{},Protocol:{},SubscriptionType:{}}},output:{type:"structure",members:{Subscription:{shape:"S1p"}}}},CreateUser:{http:{requestUri:"/api/v1/users",responseCode:201},input:{type:"structure",required:["Username","GivenName","Surname","Password"],members:{OrganizationId:{},Username:{},EmailAddress:{},GivenName:{},Surname:{},Password:{type:"string",sensitive:!0},TimeZoneId:{},StorageRule:{shape:"Sj"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{User:{shape:"S8"}}}},DeactivateUser:{http:{method:"DELETE",requestUri:"/api/v1/users/{UserId}/activation",responseCode:204},input:{type:"structure",required:["UserId"],members:{UserId:{location:"uri",locationName:"UserId"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}}},DeleteComment:{http:{method:"DELETE",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}/comment/{CommentId}",responseCode:204},input:{type:"structure",required:["DocumentId","VersionId","CommentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},CommentId:{location:"uri",locationName:"CommentId"}}}},DeleteCustomMetadata:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/customMetadata",responseCode:200},input:{type:"structure",required:["ResourceId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},VersionId:{location:"querystring",locationName:"versionId"},Keys:{location:"querystring",locationName:"keys",type:"list",member:{}},DeleteAll:{location:"querystring",locationName:"deleteAll",type:"boolean"}}},output:{type:"structure",members:{}}},DeleteDocument:{http:{method:"DELETE",requestUri:"/api/v1/documents/{DocumentId}",responseCode:204},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"}}}},DeleteFolder:{http:{method:"DELETE",requestUri:"/api/v1/folders/{FolderId}",responseCode:204},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"}}}},DeleteFolderContents:{http:{method:"DELETE",requestUri:"/api/v1/folders/{FolderId}/contents",responseCode:204},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"}}}},DeleteLabels:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/labels",responseCode:200},input:{type:"structure",required:["ResourceId"],members:{ResourceId:{location:"uri",locationName:"ResourceId"},AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Labels:{shape:"S1g",location:"querystring",locationName:"labels"},DeleteAll:{location:"querystring",locationName:"deleteAll",type:"boolean"}}},output:{type:"structure",members:{}}},DeleteNotificationSubscription:{http:{method:"DELETE",requestUri:"/api/v1/organizations/{OrganizationId}/subscriptions/{SubscriptionId}",responseCode:200},input:{type:"structure",required:["SubscriptionId","OrganizationId"],members:{SubscriptionId:{location:"uri",locationName:"SubscriptionId"},OrganizationId:{location:"uri",locationName:"OrganizationId"}}}},DeleteUser:{http:{method:"DELETE",requestUri:"/api/v1/users/{UserId}",responseCode:204},input:{type:"structure",required:["UserId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},UserId:{location:"uri",locationName:"UserId"}}}},DescribeActivities:{http:{method:"GET",requestUri:"/api/v1/activities",responseCode:200},input:{type:"structure",members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},StartTime:{location:"querystring",locationName:"startTime",type:"timestamp"},EndTime:{location:"querystring",locationName:"endTime",type:"timestamp"},OrganizationId:{location:"querystring",locationName:"organizationId"},UserId:{location:"querystring",locationName:"userId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{UserActivities:{type:"list",member:{type:"structure",members:{Type:{},TimeStamp:{type:"timestamp"},OrganizationId:{},Initiator:{shape:"S2c"},Participants:{type:"structure",members:{Users:{type:"list",member:{shape:"S2c"}},Groups:{shape:"S2f"}}},ResourceMetadata:{shape:"S2i"},OriginalParent:{shape:"S2i"},CommentMetadata:{type:"structure",members:{CommentId:{},Contributor:{shape:"S8"},CreatedTimestamp:{type:"timestamp"},CommentStatus:{},RecipientId:{}}}}}},Marker:{}}}},DescribeComments:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}/comments",responseCode:200},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Comments:{type:"list",member:{shape:"S13"}},Marker:{}}}},DescribeDocumentVersions:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/versions",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Include:{location:"querystring",locationName:"include"},Fields:{location:"querystring",locationName:"fields"}}},output:{type:"structure",members:{DocumentVersions:{type:"list",member:{shape:"S2t"}},Marker:{}}}},DescribeFolderContents:{http:{method:"GET",requestUri:"/api/v1/folders/{FolderId}/contents",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},Sort:{location:"querystring",locationName:"sort"},Order:{location:"querystring",locationName:"order"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"},Type:{location:"querystring",locationName:"type"},Include:{location:"querystring",locationName:"include"}}},output:{type:"structure",members:{Folders:{shape:"S36"},Documents:{type:"list",member:{shape:"S38"}},Marker:{}}}},DescribeGroups:{http:{method:"GET",requestUri:"/api/v1/groups",responseCode:200},input:{type:"structure",required:["SearchQuery"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},SearchQuery:{shape:"S3a",location:"querystring",locationName:"searchQuery"},OrganizationId:{location:"querystring",locationName:"organizationId"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"}}},output:{type:"structure",members:{Groups:{shape:"S2f"},Marker:{}}}},DescribeNotificationSubscriptions:{http:{method:"GET",requestUri:"/api/v1/organizations/{OrganizationId}/subscriptions",responseCode:200},input:{type:"structure",required:["OrganizationId"],members:{OrganizationId:{location:"uri",locationName:"OrganizationId"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"}}},output:{type:"structure",members:{Subscriptions:{type:"list",member:{shape:"S1p"}},Marker:{}}}},DescribeResourcePermissions:{http:{method:"GET",requestUri:"/api/v1/resources/{ResourceId}/permissions",responseCode:200},input:{type:"structure",required:["ResourceId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},PrincipalId:{location:"querystring",locationName:"principalId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Principals:{type:"list",member:{type:"structure",members:{Id:{},Type:{},Roles:{type:"list",member:{type:"structure",members:{Role:{},Type:{}}}}}}},Marker:{}}}},DescribeRootFolders:{http:{method:"GET",requestUri:"/api/v1/me/root",responseCode:200},input:{type:"structure",required:["AuthenticationToken"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Folders:{shape:"S36"},Marker:{}}}},DescribeUsers:{http:{method:"GET",requestUri:"/api/v1/users",responseCode:200},input:{type:"structure",members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},OrganizationId:{location:"querystring",locationName:"organizationId"},UserIds:{location:"querystring",locationName:"userIds"},Query:{shape:"S3a",location:"querystring",locationName:"query"},Include:{location:"querystring",locationName:"include"},Order:{location:"querystring",locationName:"order"},Sort:{location:"querystring",locationName:"sort"},Marker:{location:"querystring",locationName:"marker"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Fields:{location:"querystring",locationName:"fields"}}},output:{type:"structure",members:{Users:{type:"list",member:{shape:"S8"}},TotalNumberOfUsers:{deprecated:!0,type:"long"},Marker:{}}}},GetCurrentUser:{http:{method:"GET",requestUri:"/api/v1/me",responseCode:200},input:{type:"structure",required:["AuthenticationToken"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"}}},output:{type:"structure",members:{User:{shape:"S8"}}}},GetDocument:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},IncludeCustomMetadata:{location:"querystring",locationName:"includeCustomMetadata",type:"boolean"}}},output:{type:"structure",members:{Metadata:{shape:"S38"},CustomMetadata:{shape:"S16"}}}},GetDocumentPath:{http:{method:"GET", +requestUri:"/api/v1/documents/{DocumentId}/path",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Fields:{location:"querystring",locationName:"fields"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Path:{shape:"S41"}}}},GetDocumentVersion:{http:{method:"GET",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}",responseCode:200},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},Fields:{location:"querystring",locationName:"fields"},IncludeCustomMetadata:{location:"querystring",locationName:"includeCustomMetadata",type:"boolean"}}},output:{type:"structure",members:{Metadata:{shape:"S2t"},CustomMetadata:{shape:"S16"}}}},GetFolder:{http:{method:"GET",requestUri:"/api/v1/folders/{FolderId}",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},IncludeCustomMetadata:{location:"querystring",locationName:"includeCustomMetadata",type:"boolean"}}},output:{type:"structure",members:{Metadata:{shape:"S1d"},CustomMetadata:{shape:"S16"}}}},GetFolderPath:{http:{method:"GET",requestUri:"/api/v1/folders/{FolderId}/path",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},Limit:{location:"querystring",locationName:"limit",type:"integer"},Fields:{location:"querystring",locationName:"fields"},Marker:{location:"querystring",locationName:"marker"}}},output:{type:"structure",members:{Path:{shape:"S41"}}}},InitiateDocumentVersionUpload:{http:{requestUri:"/api/v1/documents",responseCode:201},input:{type:"structure",required:["ParentFolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},Id:{},Name:{},ContentCreatedTimestamp:{type:"timestamp"},ContentModifiedTimestamp:{type:"timestamp"},ContentType:{},DocumentSizeInBytes:{type:"long"},ParentFolderId:{}}},output:{type:"structure",members:{Metadata:{shape:"S38"},UploadMetadata:{type:"structure",members:{UploadUrl:{shape:"S2y"},SignedHeaders:{type:"map",key:{},value:{}}}}}}},RemoveAllResourcePermissions:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/permissions",responseCode:204},input:{type:"structure",required:["ResourceId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"}}}},RemoveResourcePermission:{http:{method:"DELETE",requestUri:"/api/v1/resources/{ResourceId}/permissions/{PrincipalId}",responseCode:204},input:{type:"structure",required:["ResourceId","PrincipalId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},ResourceId:{location:"uri",locationName:"ResourceId"},PrincipalId:{location:"uri",locationName:"PrincipalId"},PrincipalType:{location:"querystring",locationName:"type"}}}},UpdateDocument:{http:{method:"PATCH",requestUri:"/api/v1/documents/{DocumentId}",responseCode:200},input:{type:"structure",required:["DocumentId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},Name:{},ParentFolderId:{},ResourceState:{}}}},UpdateDocumentVersion:{http:{method:"PATCH",requestUri:"/api/v1/documents/{DocumentId}/versions/{VersionId}",responseCode:200},input:{type:"structure",required:["DocumentId","VersionId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},DocumentId:{location:"uri",locationName:"DocumentId"},VersionId:{location:"uri",locationName:"VersionId"},VersionStatus:{}}}},UpdateFolder:{http:{method:"PATCH",requestUri:"/api/v1/folders/{FolderId}",responseCode:200},input:{type:"structure",required:["FolderId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},FolderId:{location:"uri",locationName:"FolderId"},Name:{},ParentFolderId:{},ResourceState:{}}}},UpdateUser:{http:{method:"PATCH",requestUri:"/api/v1/users/{UserId}",responseCode:200},input:{type:"structure",required:["UserId"],members:{AuthenticationToken:{shape:"S2",location:"header",locationName:"Authentication"},UserId:{location:"uri",locationName:"UserId"},GivenName:{},Surname:{},Type:{},StorageRule:{shape:"Sj"},TimeZoneId:{},Locale:{},GrantPoweruserPrivileges:{}}},output:{type:"structure",members:{User:{shape:"S8"}}}}},shapes:{S2:{type:"string",sensitive:!0},S8:{type:"structure",members:{Id:{},Username:{},EmailAddress:{},GivenName:{},Surname:{},OrganizationId:{},RootFolderId:{},RecycleBinFolderId:{},Status:{},Type:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},TimeZoneId:{},Locale:{},Storage:{type:"structure",members:{StorageUtilizedInBytes:{type:"long"},StorageRule:{shape:"Sj"}}}}},Sj:{type:"structure",members:{StorageAllocatedInBytes:{type:"long"},StorageType:{}}},St:{type:"string",sensitive:!0},S10:{type:"string",sensitive:!0},S13:{type:"structure",required:["CommentId"],members:{CommentId:{},ParentId:{},ThreadId:{},Text:{shape:"S10"},Contributor:{shape:"S8"},CreatedTimestamp:{type:"timestamp"},Status:{},Visibility:{},RecipientId:{}}},S16:{type:"map",key:{},value:{}},S1d:{type:"structure",members:{Id:{},Name:{},CreatorId:{},ParentFolderId:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},ResourceState:{},Signature:{},Labels:{shape:"S1g"},Size:{type:"long"},LatestVersionSize:{type:"long"}}},S1g:{type:"list",member:{}},S1p:{type:"structure",members:{SubscriptionId:{},EndPoint:{},Protocol:{}}},S2c:{type:"structure",members:{Id:{},Username:{},GivenName:{},Surname:{},EmailAddress:{}}},S2f:{type:"list",member:{type:"structure",members:{Id:{},Name:{}}}},S2i:{type:"structure",members:{Type:{},Name:{},OriginalName:{},Id:{},VersionId:{},Owner:{shape:"S2c"},ParentId:{}}},S2t:{type:"structure",members:{Id:{},Name:{},ContentType:{},Size:{type:"long"},Signature:{},Status:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},ContentCreatedTimestamp:{type:"timestamp"},ContentModifiedTimestamp:{type:"timestamp"},CreatorId:{},Thumbnail:{type:"map",key:{},value:{shape:"S2y"}},Source:{type:"map",key:{},value:{shape:"S2y"}}}},S2y:{type:"string",sensitive:!0},S36:{type:"list",member:{shape:"S1d"}},S38:{type:"structure",members:{Id:{},CreatorId:{},ParentFolderId:{},CreatedTimestamp:{type:"timestamp"},ModifiedTimestamp:{type:"timestamp"},LatestVersionMetadata:{shape:"S2t"},ResourceState:{},Labels:{shape:"S1g"}}},S3a:{type:"string",sensitive:!0},S41:{type:"structure",members:{Components:{type:"list",member:{type:"structure",members:{Id:{},Name:{}}}}}}}}},{}],163:[function(e,t,r){t.exports={pagination:{DescribeDocumentVersions:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"DocumentVersions"},DescribeFolderContents:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:["Folders","Documents"]},DescribeUsers:{input_token:"Marker",limit_key:"Limit",output_token:"Marker",result_key:"Users"}}}},{}],164:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.acm={},a.ACM=s.defineService("acm",["2015-12-08"]),Object.defineProperty(i.services.acm,"2015-12-08",{get:function(){var t=e("../apis/acm-2015-12-08.min.json");return t.paginators=e("../apis/acm-2015-12-08.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ACM},{"../apis/acm-2015-12-08.min.json":1,"../apis/acm-2015-12-08.paginators.json":2,"../lib/core":239,"../lib/node_loader":236}],165:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.apigateway={},a.APIGateway=s.defineService("apigateway",["2015-07-09"]),e("../lib/services/apigateway"),Object.defineProperty(i.services.apigateway,"2015-07-09",{get:function(){var t=e("../apis/apigateway-2015-07-09.min.json");return t.paginators=e("../apis/apigateway-2015-07-09.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.APIGateway},{"../apis/apigateway-2015-07-09.min.json":3,"../apis/apigateway-2015-07-09.paginators.json":4,"../lib/core":239,"../lib/node_loader":236,"../lib/services/apigateway":280}],166:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.applicationautoscaling={},a.ApplicationAutoScaling=s.defineService("applicationautoscaling",["2016-02-06"]),Object.defineProperty(i.services.applicationautoscaling,"2016-02-06",{get:function(){var t=e("../apis/application-autoscaling-2016-02-06.min.json");return t.paginators=e("../apis/application-autoscaling-2016-02-06.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ApplicationAutoScaling},{"../apis/application-autoscaling-2016-02-06.min.json":5,"../apis/application-autoscaling-2016-02-06.paginators.json":6,"../lib/core":239,"../lib/node_loader":236}],167:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.autoscaling={},a.AutoScaling=s.defineService("autoscaling",["2011-01-01"]),Object.defineProperty(i.services.autoscaling,"2011-01-01",{get:function(){var t=e("../apis/autoscaling-2011-01-01.min.json");return t.paginators=e("../apis/autoscaling-2011-01-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.AutoScaling},{"../apis/autoscaling-2011-01-01.min.json":7,"../apis/autoscaling-2011-01-01.paginators.json":8,"../lib/core":239,"../lib/node_loader":236}],168:[function(e,t,r){e("../lib/node_loader"),t.exports={ACM:e("./acm"),APIGateway:e("./apigateway"),ApplicationAutoScaling:e("./applicationautoscaling"),AutoScaling:e("./autoscaling"),CloudFormation:e("./cloudformation"),CloudFront:e("./cloudfront"),CloudHSM:e("./cloudhsm"),CloudTrail:e("./cloudtrail"),CloudWatch:e("./cloudwatch"),CloudWatchEvents:e("./cloudwatchevents"),CloudWatchLogs:e("./cloudwatchlogs"),CodeCommit:e("./codecommit"),CodeDeploy:e("./codedeploy"),CodePipeline:e("./codepipeline"),CognitoIdentity:e("./cognitoidentity"),CognitoIdentityServiceProvider:e("./cognitoidentityserviceprovider"),CognitoSync:e("./cognitosync"),ConfigService:e("./configservice"),CUR:e("./cur"),DeviceFarm:e("./devicefarm"),DirectConnect:e("./directconnect"),DynamoDB:e("./dynamodb"),DynamoDBStreams:e("./dynamodbstreams"),EC2:e("./ec2"),ECR:e("./ecr"),ECS:e("./ecs"),EFS:e("./efs"),ElastiCache:e("./elasticache"),ElasticBeanstalk:e("./elasticbeanstalk"),ELB:e("./elb"),ELBv2:e("./elbv2"),EMR:e("./emr"),ElasticTranscoder:e("./elastictranscoder"),Firehose:e("./firehose"),GameLift:e("./gamelift"),Inspector:e("./inspector"),Iot:e("./iot"),IotData:e("./iotdata"),Kinesis:e("./kinesis"),KMS:e("./kms"),Lambda:e("./lambda"),LexRuntime:e("./lexruntime"),MachineLearning:e("./machinelearning"),MarketplaceCommerceAnalytics:e("./marketplacecommerceanalytics"),MTurk:e("./mturk"),MobileAnalytics:e("./mobileanalytics"),OpsWorks:e("./opsworks"),Polly:e("./polly"),RDS:e("./rds"),Redshift:e("./redshift"),Rekognition:e("./rekognition"),Route53:e("./route53"),Route53Domains:e("./route53domains"),S3:e("./s3"),ServiceCatalog:e("./servicecatalog"),SES:e("./ses"),SNS:e("./sns"),SQS:e("./sqs"),SSM:e("./ssm"),StorageGateway:e("./storagegateway"),STS:e("./sts"),WAF:e("./waf"),WorkDocs:e("./workdocs"),LexModelBuildingService:e("./lexmodelbuildingservice")}},{"../lib/node_loader":236,"./acm":164,"./apigateway":165,"./applicationautoscaling":166,"./autoscaling":167,"./cloudformation":169,"./cloudfront":170,"./cloudhsm":171,"./cloudtrail":172,"./cloudwatch":173,"./cloudwatchevents":174,"./cloudwatchlogs":175,"./codecommit":176,"./codedeploy":177,"./codepipeline":178,"./cognitoidentity":179,"./cognitoidentityserviceprovider":180,"./cognitosync":181,"./configservice":182,"./cur":183,"./devicefarm":184,"./directconnect":185,"./dynamodb":186,"./dynamodbstreams":187,"./ec2":188,"./ecr":189,"./ecs":190,"./efs":191,"./elasticache":192,"./elasticbeanstalk":193,"./elastictranscoder":194,"./elb":195,"./elbv2":196,"./emr":197,"./firehose":198,"./gamelift":199,"./inspector":200,"./iot":201,"./iotdata":202,"./kinesis":203,"./kms":204,"./lambda":205,"./lexmodelbuildingservice":206,"./lexruntime":207,"./machinelearning":208,"./marketplacecommerceanalytics":209,"./mobileanalytics":210,"./mturk":211,"./opsworks":212,"./polly":213,"./rds":214,"./redshift":215,"./rekognition":216,"./route53":217,"./route53domains":218,"./s3":219,"./servicecatalog":220,"./ses":221,"./sns":222,"./sqs":223,"./ssm":224,"./storagegateway":225,"./sts":226,"./waf":227,"./workdocs":228}],169:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudformation={},a.CloudFormation=s.defineService("cloudformation",["2010-05-15"]),Object.defineProperty(i.services.cloudformation,"2010-05-15",{get:function(){var t=e("../apis/cloudformation-2010-05-15.min.json");return t.paginators=e("../apis/cloudformation-2010-05-15.paginators.json").pagination,t.waiters=e("../apis/cloudformation-2010-05-15.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CloudFormation},{"../apis/cloudformation-2010-05-15.min.json":9,"../apis/cloudformation-2010-05-15.paginators.json":10,"../apis/cloudformation-2010-05-15.waiters2.json":11,"../lib/core":239,"../lib/node_loader":236}],170:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudfront={},a.CloudFront=s.defineService("cloudfront",["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","2016-11-25*","2017-03-25"]),e("../lib/services/cloudfront"),Object.defineProperty(i.services.cloudfront,"2016-11-25",{get:function(){var t=e("../apis/cloudfront-2016-11-25.min.json");return t.paginators=e("../apis/cloudfront-2016-11-25.paginators.json").pagination,t.waiters=e("../apis/cloudfront-2016-11-25.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.cloudfront,"2017-03-25",{get:function(){var t=e("../apis/cloudfront-2017-03-25.min.json");return t.paginators=e("../apis/cloudfront-2017-03-25.paginators.json").pagination,t.waiters=e("../apis/cloudfront-2017-03-25.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CloudFront},{"../apis/cloudfront-2016-11-25.min.json":12,"../apis/cloudfront-2016-11-25.paginators.json":13,"../apis/cloudfront-2016-11-25.waiters2.json":14,"../apis/cloudfront-2017-03-25.min.json":15,"../apis/cloudfront-2017-03-25.paginators.json":16,"../apis/cloudfront-2017-03-25.waiters2.json":17,"../lib/core":239,"../lib/node_loader":236,"../lib/services/cloudfront":281}],171:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudhsm={},a.CloudHSM=s.defineService("cloudhsm",["2014-05-30"]),Object.defineProperty(i.services.cloudhsm,"2014-05-30",{get:function(){var t=e("../apis/cloudhsm-2014-05-30.min.json");return t.paginators=e("../apis/cloudhsm-2014-05-30.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudHSM},{"../apis/cloudhsm-2014-05-30.min.json":18,"../apis/cloudhsm-2014-05-30.paginators.json":19,"../lib/core":239,"../lib/node_loader":236}],172:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudtrail={},a.CloudTrail=s.defineService("cloudtrail",["2013-11-01"]),Object.defineProperty(i.services.cloudtrail,"2013-11-01",{get:function(){var t=e("../apis/cloudtrail-2013-11-01.min.json");return t.paginators=e("../apis/cloudtrail-2013-11-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudTrail},{"../apis/cloudtrail-2013-11-01.min.json":20,"../apis/cloudtrail-2013-11-01.paginators.json":21,"../lib/core":239,"../lib/node_loader":236}],173:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudwatch={},a.CloudWatch=s.defineService("cloudwatch",["2010-08-01"]),Object.defineProperty(i.services.cloudwatch,"2010-08-01",{get:function(){var t=e("../apis/monitoring-2010-08-01.min.json");return t.paginators=e("../apis/monitoring-2010-08-01.paginators.json").pagination,t.waiters=e("../apis/monitoring-2010-08-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CloudWatch},{"../apis/monitoring-2010-08-01.min.json":109,"../apis/monitoring-2010-08-01.paginators.json":110,"../apis/monitoring-2010-08-01.waiters2.json":111,"../lib/core":239,"../lib/node_loader":236}],174:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudwatchevents={},a.CloudWatchEvents=s.defineService("cloudwatchevents",["2014-02-03*","2015-10-07"]),Object.defineProperty(i.services.cloudwatchevents,"2015-10-07",{get:function(){var t=e("../apis/events-2015-10-07.min.json");return t.paginators=e("../apis/events-2015-10-07.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudWatchEvents},{"../apis/events-2015-10-07.min.json":78,"../apis/events-2015-10-07.paginators.json":79,"../lib/core":239,"../lib/node_loader":236}],175:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cloudwatchlogs={},a.CloudWatchLogs=s.defineService("cloudwatchlogs",["2014-03-28"]),Object.defineProperty(i.services.cloudwatchlogs,"2014-03-28",{get:function(){var t=e("../apis/logs-2014-03-28.min.json");return t.paginators=e("../apis/logs-2014-03-28.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CloudWatchLogs},{"../apis/logs-2014-03-28.min.json":100,"../apis/logs-2014-03-28.paginators.json":101,"../lib/core":239,"../lib/node_loader":236}],176:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.codecommit={},a.CodeCommit=s.defineService("codecommit",["2015-04-13"]),Object.defineProperty(i.services.codecommit,"2015-04-13",{get:function(){var t=e("../apis/codecommit-2015-04-13.min.json");return t.paginators=e("../apis/codecommit-2015-04-13.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CodeCommit},{"../apis/codecommit-2015-04-13.min.json":22,"../apis/codecommit-2015-04-13.paginators.json":23,"../lib/core":239,"../lib/node_loader":236}],177:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.codedeploy={},a.CodeDeploy=s.defineService("codedeploy",["2014-10-06"]),Object.defineProperty(i.services.codedeploy,"2014-10-06",{get:function(){var t=e("../apis/codedeploy-2014-10-06.min.json");return t.paginators=e("../apis/codedeploy-2014-10-06.paginators.json").pagination,t.waiters=e("../apis/codedeploy-2014-10-06.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.CodeDeploy},{"../apis/codedeploy-2014-10-06.min.json":24,"../apis/codedeploy-2014-10-06.paginators.json":25,"../apis/codedeploy-2014-10-06.waiters2.json":26,"../lib/core":239,"../lib/node_loader":236}],178:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.codepipeline={},a.CodePipeline=s.defineService("codepipeline",["2015-07-09"]),Object.defineProperty(i.services.codepipeline,"2015-07-09",{get:function(){var t=e("../apis/codepipeline-2015-07-09.min.json");return t.paginators=e("../apis/codepipeline-2015-07-09.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CodePipeline},{"../apis/codepipeline-2015-07-09.min.json":27,"../apis/codepipeline-2015-07-09.paginators.json":28,"../lib/core":239,"../lib/node_loader":236}],179:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cognitoidentity={},a.CognitoIdentity=s.defineService("cognitoidentity",["2014-06-30"]),e("../lib/services/cognitoidentity"),Object.defineProperty(i.services.cognitoidentity,"2014-06-30",{get:function(){var t=e("../apis/cognito-identity-2014-06-30.min.json");return t.paginators=e("../apis/cognito-identity-2014-06-30.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CognitoIdentity},{"../apis/cognito-identity-2014-06-30.min.json":29,"../apis/cognito-identity-2014-06-30.paginators.json":30,"../lib/core":239,"../lib/node_loader":236,"../lib/services/cognitoidentity":282}],180:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cognitoidentityserviceprovider={},a.CognitoIdentityServiceProvider=s.defineService("cognitoidentityserviceprovider",["2016-04-18"]),Object.defineProperty(i.services.cognitoidentityserviceprovider,"2016-04-18",{get:function(){var t=e("../apis/cognito-idp-2016-04-18.min.json");return t.paginators=e("../apis/cognito-idp-2016-04-18.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CognitoIdentityServiceProvider},{"../apis/cognito-idp-2016-04-18.min.json":31,"../apis/cognito-idp-2016-04-18.paginators.json":32,"../lib/core":239,"../lib/node_loader":236}],181:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cognitosync={},a.CognitoSync=s.defineService("cognitosync",["2014-06-30"]),Object.defineProperty(i.services.cognitosync,"2014-06-30",{get:function(){return e("../apis/cognito-sync-2014-06-30.min.json")},enumerable:!0,configurable:!0}),t.exports=a.CognitoSync},{"../apis/cognito-sync-2014-06-30.min.json":33,"../lib/core":239,"../lib/node_loader":236}],182:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.configservice={},a.ConfigService=s.defineService("configservice",["2014-11-12"]),Object.defineProperty(i.services.configservice,"2014-11-12",{get:function(){var t=e("../apis/config-2014-11-12.min.json");return t.paginators=e("../apis/config-2014-11-12.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ConfigService},{"../apis/config-2014-11-12.min.json":34,"../apis/config-2014-11-12.paginators.json":35,"../lib/core":239,"../lib/node_loader":236}],183:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.cur={},a.CUR=s.defineService("cur",["2017-01-06"]),Object.defineProperty(i.services.cur,"2017-01-06",{get:function(){var t=e("../apis/cur-2017-01-06.min.json");return t.paginators=e("../apis/cur-2017-01-06.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.CUR},{"../apis/cur-2017-01-06.min.json":36,"../apis/cur-2017-01-06.paginators.json":37,"../lib/core":239,"../lib/node_loader":236}],184:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.devicefarm={},a.DeviceFarm=s.defineService("devicefarm",["2015-06-23"]),Object.defineProperty(i.services.devicefarm,"2015-06-23",{get:function(){var t=e("../apis/devicefarm-2015-06-23.min.json");return t.paginators=e("../apis/devicefarm-2015-06-23.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.DeviceFarm},{"../apis/devicefarm-2015-06-23.min.json":38,"../apis/devicefarm-2015-06-23.paginators.json":39,"../lib/core":239,"../lib/node_loader":236}],185:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.directconnect={},a.DirectConnect=s.defineService("directconnect",["2012-10-25"]),Object.defineProperty(i.services.directconnect,"2012-10-25",{get:function(){var t=e("../apis/directconnect-2012-10-25.min.json");return t.paginators=e("../apis/directconnect-2012-10-25.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.DirectConnect},{"../apis/directconnect-2012-10-25.min.json":40,"../apis/directconnect-2012-10-25.paginators.json":41,"../lib/core":239,"../lib/node_loader":236}],186:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.dynamodb={},a.DynamoDB=s.defineService("dynamodb",["2011-12-05","2012-08-10"]),e("../lib/services/dynamodb"),Object.defineProperty(i.services.dynamodb,"2011-12-05",{get:function(){var t=e("../apis/dynamodb-2011-12-05.min.json");return t.paginators=e("../apis/dynamodb-2011-12-05.paginators.json").pagination,t.waiters=e("../apis/dynamodb-2011-12-05.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.dynamodb,"2012-08-10",{get:function(){var t=e("../apis/dynamodb-2012-08-10.min.json");return t.paginators=e("../apis/dynamodb-2012-08-10.paginators.json").pagination,t.waiters=e("../apis/dynamodb-2012-08-10.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.DynamoDB},{"../apis/dynamodb-2011-12-05.min.json":42,"../apis/dynamodb-2011-12-05.paginators.json":43,"../apis/dynamodb-2011-12-05.waiters2.json":44,"../apis/dynamodb-2012-08-10.min.json":45,"../apis/dynamodb-2012-08-10.paginators.json":46,"../apis/dynamodb-2012-08-10.waiters2.json":47,"../lib/core":239,"../lib/node_loader":236,"../lib/services/dynamodb":283}],187:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.dynamodbstreams={},a.DynamoDBStreams=s.defineService("dynamodbstreams",["2012-08-10"]),Object.defineProperty(i.services.dynamodbstreams,"2012-08-10",{get:function(){var t=e("../apis/streams.dynamodb-2012-08-10.min.json");return t.paginators=e("../apis/streams.dynamodb-2012-08-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.DynamoDBStreams},{"../apis/streams.dynamodb-2012-08-10.min.json":156,"../apis/streams.dynamodb-2012-08-10.paginators.json":157,"../lib/core":239,"../lib/node_loader":236}],188:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.ec2={},a.EC2=s.defineService("ec2",["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*","2016-11-15"]),e("../lib/services/ec2"),Object.defineProperty(i.services.ec2,"2016-11-15",{get:function(){var t=e("../apis/ec2-2016-11-15.min.json");return t.paginators=e("../apis/ec2-2016-11-15.paginators.json").pagination,t.waiters=e("../apis/ec2-2016-11-15.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.EC2},{"../apis/ec2-2016-11-15.min.json":48,"../apis/ec2-2016-11-15.paginators.json":49,"../apis/ec2-2016-11-15.waiters2.json":50,"../lib/core":239,"../lib/node_loader":236,"../lib/services/ec2":284}],189:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.ecr={},a.ECR=s.defineService("ecr",["2015-09-21"]),Object.defineProperty(i.services.ecr,"2015-09-21",{get:function(){var t=e("../apis/ecr-2015-09-21.min.json");return t.paginators=e("../apis/ecr-2015-09-21.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ECR},{"../apis/ecr-2015-09-21.min.json":51,"../apis/ecr-2015-09-21.paginators.json":52,"../lib/core":239,"../lib/node_loader":236}],190:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.ecs={},a.ECS=s.defineService("ecs",["2014-11-13"]),Object.defineProperty(i.services.ecs,"2014-11-13",{get:function(){var t=e("../apis/ecs-2014-11-13.min.json");return t.paginators=e("../apis/ecs-2014-11-13.paginators.json").pagination,t.waiters=e("../apis/ecs-2014-11-13.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ECS},{"../apis/ecs-2014-11-13.min.json":53,"../apis/ecs-2014-11-13.paginators.json":54,"../apis/ecs-2014-11-13.waiters2.json":55,"../lib/core":239,"../lib/node_loader":236}],191:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.efs={},a.EFS=s.defineService("efs",["2015-02-01"]),Object.defineProperty(i.services.efs,"2015-02-01",{get:function(){var t=e("../apis/elasticfilesystem-2015-02-01.min.json");return t.paginators=e("../apis/elasticfilesystem-2015-02-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.EFS},{"../apis/elasticfilesystem-2015-02-01.min.json":61,"../apis/elasticfilesystem-2015-02-01.paginators.json":62,"../lib/core":239,"../lib/node_loader":236}],192:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.elasticache={},a.ElastiCache=s.defineService("elasticache",["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*","2015-02-02"]),Object.defineProperty(i.services.elasticache,"2015-02-02",{get:function(){var t=e("../apis/elasticache-2015-02-02.min.json");return t.paginators=e("../apis/elasticache-2015-02-02.paginators.json").pagination,t.waiters=e("../apis/elasticache-2015-02-02.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ElastiCache},{"../apis/elasticache-2015-02-02.min.json":56,"../apis/elasticache-2015-02-02.paginators.json":57,"../apis/elasticache-2015-02-02.waiters2.json":58,"../lib/core":239,"../lib/node_loader":236}],193:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.elasticbeanstalk={},a.ElasticBeanstalk=s.defineService("elasticbeanstalk",["2010-12-01"]),Object.defineProperty(i.services.elasticbeanstalk,"2010-12-01",{get:function(){var t=e("../apis/elasticbeanstalk-2010-12-01.min.json");return t.paginators=e("../apis/elasticbeanstalk-2010-12-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ElasticBeanstalk},{"../apis/elasticbeanstalk-2010-12-01.min.json":59,"../apis/elasticbeanstalk-2010-12-01.paginators.json":60,"../lib/core":239,"../lib/node_loader":236}],194:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.elastictranscoder={},a.ElasticTranscoder=s.defineService("elastictranscoder",["2012-09-25"]),Object.defineProperty(i.services.elastictranscoder,"2012-09-25",{get:function(){var t=e("../apis/elastictranscoder-2012-09-25.min.json");return t.paginators=e("../apis/elastictranscoder-2012-09-25.paginators.json").pagination,t.waiters=e("../apis/elastictranscoder-2012-09-25.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ElasticTranscoder},{"../apis/elastictranscoder-2012-09-25.min.json":72,"../apis/elastictranscoder-2012-09-25.paginators.json":73,"../apis/elastictranscoder-2012-09-25.waiters2.json":74,"../lib/core":239,"../lib/node_loader":236}],195:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.elb={},a.ELB=s.defineService("elb",["2012-06-01"]),Object.defineProperty(i.services.elb,"2012-06-01",{get:function(){var t=e("../apis/elasticloadbalancing-2012-06-01.min.json");return t.paginators=e("../apis/elasticloadbalancing-2012-06-01.paginators.json").pagination,t.waiters=e("../apis/elasticloadbalancing-2012-06-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ELB},{"../apis/elasticloadbalancing-2012-06-01.min.json":63,"../apis/elasticloadbalancing-2012-06-01.paginators.json":64,"../apis/elasticloadbalancing-2012-06-01.waiters2.json":65,"../lib/core":239,"../lib/node_loader":236}],196:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.elbv2={},a.ELBv2=s.defineService("elbv2",["2015-12-01"]),Object.defineProperty(i.services.elbv2,"2015-12-01",{get:function(){var t=e("../apis/elasticloadbalancingv2-2015-12-01.min.json");return t.paginators=e("../apis/elasticloadbalancingv2-2015-12-01.paginators.json").pagination, +t.waiters=e("../apis/elasticloadbalancingv2-2015-12-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.ELBv2},{"../apis/elasticloadbalancingv2-2015-12-01.min.json":66,"../apis/elasticloadbalancingv2-2015-12-01.paginators.json":67,"../apis/elasticloadbalancingv2-2015-12-01.waiters2.json":68,"../lib/core":239,"../lib/node_loader":236}],197:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.emr={},a.EMR=s.defineService("emr",["2009-03-31"]),Object.defineProperty(i.services.emr,"2009-03-31",{get:function(){var t=e("../apis/elasticmapreduce-2009-03-31.min.json");return t.paginators=e("../apis/elasticmapreduce-2009-03-31.paginators.json").pagination,t.waiters=e("../apis/elasticmapreduce-2009-03-31.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.EMR},{"../apis/elasticmapreduce-2009-03-31.min.json":69,"../apis/elasticmapreduce-2009-03-31.paginators.json":70,"../apis/elasticmapreduce-2009-03-31.waiters2.json":71,"../lib/core":239,"../lib/node_loader":236}],198:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.firehose={},a.Firehose=s.defineService("firehose",["2015-08-04"]),Object.defineProperty(i.services.firehose,"2015-08-04",{get:function(){var t=e("../apis/firehose-2015-08-04.min.json");return t.paginators=e("../apis/firehose-2015-08-04.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Firehose},{"../apis/firehose-2015-08-04.min.json":80,"../apis/firehose-2015-08-04.paginators.json":81,"../lib/core":239,"../lib/node_loader":236}],199:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.gamelift={},a.GameLift=s.defineService("gamelift",["2015-10-01"]),Object.defineProperty(i.services.gamelift,"2015-10-01",{get:function(){var t=e("../apis/gamelift-2015-10-01.min.json");return t.paginators=e("../apis/gamelift-2015-10-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.GameLift},{"../apis/gamelift-2015-10-01.min.json":82,"../apis/gamelift-2015-10-01.paginators.json":83,"../lib/core":239,"../lib/node_loader":236}],200:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.inspector={},a.Inspector=s.defineService("inspector",["2015-08-18*","2016-02-16"]),Object.defineProperty(i.services.inspector,"2016-02-16",{get:function(){var t=e("../apis/inspector-2016-02-16.min.json");return t.paginators=e("../apis/inspector-2016-02-16.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Inspector},{"../apis/inspector-2016-02-16.min.json":84,"../apis/inspector-2016-02-16.paginators.json":85,"../lib/core":239,"../lib/node_loader":236}],201:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.iot={},a.Iot=s.defineService("iot",["2015-05-28"]),Object.defineProperty(i.services.iot,"2015-05-28",{get:function(){var t=e("../apis/iot-2015-05-28.min.json");return t.paginators=e("../apis/iot-2015-05-28.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Iot},{"../apis/iot-2015-05-28.min.json":86,"../apis/iot-2015-05-28.paginators.json":87,"../lib/core":239,"../lib/node_loader":236}],202:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.iotdata={},a.IotData=s.defineService("iotdata",["2015-05-28"]),e("../lib/services/iotdata"),Object.defineProperty(i.services.iotdata,"2015-05-28",{get:function(){return e("../apis/iot-data-2015-05-28.min.json")},enumerable:!0,configurable:!0}),t.exports=a.IotData},{"../apis/iot-data-2015-05-28.min.json":88,"../lib/core":239,"../lib/node_loader":236,"../lib/services/iotdata":285}],203:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.kinesis={},a.Kinesis=s.defineService("kinesis",["2013-12-02"]),Object.defineProperty(i.services.kinesis,"2013-12-02",{get:function(){var t=e("../apis/kinesis-2013-12-02.min.json");return t.paginators=e("../apis/kinesis-2013-12-02.paginators.json").pagination,t.waiters=e("../apis/kinesis-2013-12-02.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.Kinesis},{"../apis/kinesis-2013-12-02.min.json":89,"../apis/kinesis-2013-12-02.paginators.json":90,"../apis/kinesis-2013-12-02.waiters2.json":91,"../lib/core":239,"../lib/node_loader":236}],204:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.kms={},a.KMS=s.defineService("kms",["2014-11-01"]),Object.defineProperty(i.services.kms,"2014-11-01",{get:function(){var t=e("../apis/kms-2014-11-01.min.json");return t.paginators=e("../apis/kms-2014-11-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.KMS},{"../apis/kms-2014-11-01.min.json":92,"../apis/kms-2014-11-01.paginators.json":93,"../lib/core":239,"../lib/node_loader":236}],205:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.lambda={},a.Lambda=s.defineService("lambda",["2014-11-11","2015-03-31"]),e("../lib/services/lambda"),Object.defineProperty(i.services.lambda,"2014-11-11",{get:function(){var t=e("../apis/lambda-2014-11-11.min.json");return t.paginators=e("../apis/lambda-2014-11-11.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.lambda,"2015-03-31",{get:function(){var t=e("../apis/lambda-2015-03-31.min.json");return t.paginators=e("../apis/lambda-2015-03-31.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Lambda},{"../apis/lambda-2014-11-11.min.json":94,"../apis/lambda-2014-11-11.paginators.json":95,"../apis/lambda-2015-03-31.min.json":96,"../apis/lambda-2015-03-31.paginators.json":97,"../lib/core":239,"../lib/node_loader":236,"../lib/services/lambda":286}],206:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.lexmodelbuildingservice={},a.LexModelBuildingService=s.defineService("lexmodelbuildingservice",["2017-04-19"]),Object.defineProperty(i.services.lexmodelbuildingservice,"2017-04-19",{get:function(){var t=e("../apis/lex-models-2017-04-19.min.json");return t.paginators=e("../apis/lex-models-2017-04-19.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.LexModelBuildingService},{"../apis/lex-models-2017-04-19.min.json":98,"../apis/lex-models-2017-04-19.paginators.json":99,"../lib/core":239,"../lib/node_loader":236}],207:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.lexruntime={},a.LexRuntime=s.defineService("lexruntime",["2016-11-28"]),Object.defineProperty(i.services.lexruntime,"2016-11-28",{get:function(){var t=e("../apis/runtime.lex-2016-11-28.min.json");return t.paginators=e("../apis/runtime.lex-2016-11-28.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.LexRuntime},{"../apis/runtime.lex-2016-11-28.min.json":141,"../apis/runtime.lex-2016-11-28.paginators.json":142,"../lib/core":239,"../lib/node_loader":236}],208:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.machinelearning={},a.MachineLearning=s.defineService("machinelearning",["2014-12-12"]),e("../lib/services/machinelearning"),Object.defineProperty(i.services.machinelearning,"2014-12-12",{get:function(){var t=e("../apis/machinelearning-2014-12-12.min.json");return t.paginators=e("../apis/machinelearning-2014-12-12.paginators.json").pagination,t.waiters=e("../apis/machinelearning-2014-12-12.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.MachineLearning},{"../apis/machinelearning-2014-12-12.min.json":102,"../apis/machinelearning-2014-12-12.paginators.json":103,"../apis/machinelearning-2014-12-12.waiters2.json":104,"../lib/core":239,"../lib/node_loader":236,"../lib/services/machinelearning":287}],209:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.marketplacecommerceanalytics={},a.MarketplaceCommerceAnalytics=s.defineService("marketplacecommerceanalytics",["2015-07-01"]),Object.defineProperty(i.services.marketplacecommerceanalytics,"2015-07-01",{get:function(){var t=e("../apis/marketplacecommerceanalytics-2015-07-01.min.json");return t.paginators=e("../apis/marketplacecommerceanalytics-2015-07-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.MarketplaceCommerceAnalytics},{"../apis/marketplacecommerceanalytics-2015-07-01.min.json":105,"../apis/marketplacecommerceanalytics-2015-07-01.paginators.json":106,"../lib/core":239,"../lib/node_loader":236}],210:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.mobileanalytics={},a.MobileAnalytics=s.defineService("mobileanalytics",["2014-06-05"]),Object.defineProperty(i.services.mobileanalytics,"2014-06-05",{get:function(){return e("../apis/mobileanalytics-2014-06-05.min.json")},enumerable:!0,configurable:!0}),t.exports=a.MobileAnalytics},{"../apis/mobileanalytics-2014-06-05.min.json":108,"../lib/core":239,"../lib/node_loader":236}],211:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.mturk={},a.MTurk=s.defineService("mturk",["2017-01-17"]),Object.defineProperty(i.services.mturk,"2017-01-17",{get:function(){var t=e("../apis/mturk-requester-2017-01-17.min.json");return t.paginators=e("../apis/mturk-requester-2017-01-17.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.MTurk},{"../apis/mturk-requester-2017-01-17.min.json":112,"../apis/mturk-requester-2017-01-17.paginators.json":113,"../lib/core":239,"../lib/node_loader":236}],212:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.opsworks={},a.OpsWorks=s.defineService("opsworks",["2013-02-18"]),Object.defineProperty(i.services.opsworks,"2013-02-18",{get:function(){var t=e("../apis/opsworks-2013-02-18.min.json");return t.paginators=e("../apis/opsworks-2013-02-18.paginators.json").pagination,t.waiters=e("../apis/opsworks-2013-02-18.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.OpsWorks},{"../apis/opsworks-2013-02-18.min.json":114,"../apis/opsworks-2013-02-18.paginators.json":115,"../apis/opsworks-2013-02-18.waiters2.json":116,"../lib/core":239,"../lib/node_loader":236}],213:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.polly={},a.Polly=s.defineService("polly",["2016-06-10"]),e("../lib/services/polly"),Object.defineProperty(i.services.polly,"2016-06-10",{get:function(){var t=e("../apis/polly-2016-06-10.min.json");return t.paginators=e("../apis/polly-2016-06-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Polly},{"../apis/polly-2016-06-10.min.json":117,"../apis/polly-2016-06-10.paginators.json":118,"../lib/core":239,"../lib/node_loader":236,"../lib/services/polly":288}],214:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.rds={},a.RDS=s.defineService("rds",["2013-01-10","2013-02-12","2013-09-09","2014-09-01","2014-09-01*","2014-10-31"]),e("../lib/services/rds"),Object.defineProperty(i.services.rds,"2013-01-10",{get:function(){var t=e("../apis/rds-2013-01-10.min.json");return t.paginators=e("../apis/rds-2013-01-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.rds,"2013-02-12",{get:function(){var t=e("../apis/rds-2013-02-12.min.json");return t.paginators=e("../apis/rds-2013-02-12.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.rds,"2013-09-09",{get:function(){var t=e("../apis/rds-2013-09-09.min.json");return t.paginators=e("../apis/rds-2013-09-09.paginators.json").pagination,t.waiters=e("../apis/rds-2013-09-09.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.rds,"2014-09-01",{get:function(){var t=e("../apis/rds-2014-09-01.min.json");return t.paginators=e("../apis/rds-2014-09-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),Object.defineProperty(i.services.rds,"2014-10-31",{get:function(){var t=e("../apis/rds-2014-10-31.min.json");return t.paginators=e("../apis/rds-2014-10-31.paginators.json").pagination,t.waiters=e("../apis/rds-2014-10-31.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.RDS},{"../apis/rds-2013-01-10.min.json":119,"../apis/rds-2013-01-10.paginators.json":120,"../apis/rds-2013-02-12.min.json":121,"../apis/rds-2013-02-12.paginators.json":122,"../apis/rds-2013-09-09.min.json":123,"../apis/rds-2013-09-09.paginators.json":124,"../apis/rds-2013-09-09.waiters2.json":125,"../apis/rds-2014-09-01.min.json":126,"../apis/rds-2014-09-01.paginators.json":127,"../apis/rds-2014-10-31.min.json":128,"../apis/rds-2014-10-31.paginators.json":129,"../apis/rds-2014-10-31.waiters2.json":130,"../lib/core":239,"../lib/node_loader":236,"../lib/services/rds":289}],215:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.redshift={},a.Redshift=s.defineService("redshift",["2012-12-01"]),Object.defineProperty(i.services.redshift,"2012-12-01",{get:function(){var t=e("../apis/redshift-2012-12-01.min.json");return t.paginators=e("../apis/redshift-2012-12-01.paginators.json").pagination,t.waiters=e("../apis/redshift-2012-12-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.Redshift},{"../apis/redshift-2012-12-01.min.json":131,"../apis/redshift-2012-12-01.paginators.json":132,"../apis/redshift-2012-12-01.waiters2.json":133,"../lib/core":239,"../lib/node_loader":236}],216:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.rekognition={},a.Rekognition=s.defineService("rekognition",["2016-06-27"]),Object.defineProperty(i.services.rekognition,"2016-06-27",{get:function(){var t=e("../apis/rekognition-2016-06-27.min.json");return t.paginators=e("../apis/rekognition-2016-06-27.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Rekognition},{"../apis/rekognition-2016-06-27.min.json":134,"../apis/rekognition-2016-06-27.paginators.json":135,"../lib/core":239,"../lib/node_loader":236}],217:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.route53={},a.Route53=s.defineService("route53",["2013-04-01"]),e("../lib/services/route53"),Object.defineProperty(i.services.route53,"2013-04-01",{get:function(){var t=e("../apis/route53-2013-04-01.min.json");return t.paginators=e("../apis/route53-2013-04-01.paginators.json").pagination,t.waiters=e("../apis/route53-2013-04-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.Route53},{"../apis/route53-2013-04-01.min.json":136,"../apis/route53-2013-04-01.paginators.json":137,"../apis/route53-2013-04-01.waiters2.json":138,"../lib/core":239,"../lib/node_loader":236,"../lib/services/route53":290}],218:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.route53domains={},a.Route53Domains=s.defineService("route53domains",["2014-05-15"]),Object.defineProperty(i.services.route53domains,"2014-05-15",{get:function(){var t=e("../apis/route53domains-2014-05-15.min.json");return t.paginators=e("../apis/route53domains-2014-05-15.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.Route53Domains},{"../apis/route53domains-2014-05-15.min.json":139,"../apis/route53domains-2014-05-15.paginators.json":140,"../lib/core":239,"../lib/node_loader":236}],219:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.s3={},a.S3=s.defineService("s3",["2006-03-01"]),e("../lib/services/s3"),Object.defineProperty(i.services.s3,"2006-03-01",{get:function(){var t=e("../apis/s3-2006-03-01.min.json");return t.paginators=e("../apis/s3-2006-03-01.paginators.json").pagination,t.waiters=e("../apis/s3-2006-03-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.S3},{"../apis/s3-2006-03-01.min.json":143,"../apis/s3-2006-03-01.paginators.json":144,"../apis/s3-2006-03-01.waiters2.json":145,"../lib/core":239,"../lib/node_loader":236,"../lib/services/s3":291}],220:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.servicecatalog={},a.ServiceCatalog=s.defineService("servicecatalog",["2015-12-10"]),Object.defineProperty(i.services.servicecatalog,"2015-12-10",{get:function(){var t=e("../apis/servicecatalog-2015-12-10.min.json");return t.paginators=e("../apis/servicecatalog-2015-12-10.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.ServiceCatalog},{"../apis/servicecatalog-2015-12-10.min.json":146,"../apis/servicecatalog-2015-12-10.paginators.json":147,"../lib/core":239,"../lib/node_loader":236}],221:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.ses={},a.SES=s.defineService("ses",["2010-12-01"]),Object.defineProperty(i.services.ses,"2010-12-01",{get:function(){var t=e("../apis/email-2010-12-01.min.json");return t.paginators=e("../apis/email-2010-12-01.paginators.json").pagination,t.waiters=e("../apis/email-2010-12-01.waiters2.json").waiters,t},enumerable:!0,configurable:!0}),t.exports=a.SES},{"../apis/email-2010-12-01.min.json":75,"../apis/email-2010-12-01.paginators.json":76,"../apis/email-2010-12-01.waiters2.json":77,"../lib/core":239,"../lib/node_loader":236}],222:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.sns={},a.SNS=s.defineService("sns",["2010-03-31"]),Object.defineProperty(i.services.sns,"2010-03-31",{get:function(){var t=e("../apis/sns-2010-03-31.min.json");return t.paginators=e("../apis/sns-2010-03-31.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.SNS},{"../apis/sns-2010-03-31.min.json":148,"../apis/sns-2010-03-31.paginators.json":149,"../lib/core":239,"../lib/node_loader":236}],223:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.sqs={},a.SQS=s.defineService("sqs",["2012-11-05"]),e("../lib/services/sqs"),Object.defineProperty(i.services.sqs,"2012-11-05",{get:function(){var t=e("../apis/sqs-2012-11-05.min.json");return t.paginators=e("../apis/sqs-2012-11-05.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.SQS},{"../apis/sqs-2012-11-05.min.json":150,"../apis/sqs-2012-11-05.paginators.json":151,"../lib/core":239,"../lib/node_loader":236,"../lib/services/sqs":292}],224:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.ssm={},a.SSM=s.defineService("ssm",["2014-11-06"]),Object.defineProperty(i.services.ssm,"2014-11-06",{get:function(){var t=e("../apis/ssm-2014-11-06.min.json");return t.paginators=e("../apis/ssm-2014-11-06.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.SSM},{"../apis/ssm-2014-11-06.min.json":152,"../apis/ssm-2014-11-06.paginators.json":153,"../lib/core":239,"../lib/node_loader":236}],225:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.storagegateway={},a.StorageGateway=s.defineService("storagegateway",["2013-06-30"]),Object.defineProperty(i.services.storagegateway,"2013-06-30",{get:function(){var t=e("../apis/storagegateway-2013-06-30.min.json");return t.paginators=e("../apis/storagegateway-2013-06-30.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.StorageGateway},{"../apis/storagegateway-2013-06-30.min.json":154,"../apis/storagegateway-2013-06-30.paginators.json":155,"../lib/core":239,"../lib/node_loader":236}],226:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.sts={},a.STS=s.defineService("sts",["2011-06-15"]),e("../lib/services/sts"),Object.defineProperty(i.services.sts,"2011-06-15",{get:function(){var t=e("../apis/sts-2011-06-15.min.json");return t.paginators=e("../apis/sts-2011-06-15.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.STS},{"../apis/sts-2011-06-15.min.json":158,"../apis/sts-2011-06-15.paginators.json":159,"../lib/core":239,"../lib/node_loader":236,"../lib/services/sts":293}],227:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.waf={},a.WAF=s.defineService("waf",["2015-08-24"]),Object.defineProperty(i.services.waf,"2015-08-24",{get:function(){var t=e("../apis/waf-2015-08-24.min.json");return t.paginators=e("../apis/waf-2015-08-24.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.WAF},{"../apis/waf-2015-08-24.min.json":160,"../apis/waf-2015-08-24.paginators.json":161,"../lib/core":239,"../lib/node_loader":236}],228:[function(e,t,r){e("../lib/node_loader");var a=e("../lib/core"),s=a.Service,i=a.apiLoader;i.services.workdocs={},a.WorkDocs=s.defineService("workdocs",["2016-05-01"]),Object.defineProperty(i.services.workdocs,"2016-05-01",{get:function(){var t=e("../apis/workdocs-2016-05-01.min.json");return t.paginators=e("../apis/workdocs-2016-05-01.paginators.json").pagination,t},enumerable:!0,configurable:!0}),t.exports=a.WorkDocs},{"../apis/workdocs-2016-05-01.min.json":162,"../apis/workdocs-2016-05-01.paginators.json":163,"../lib/core":239,"../lib/node_loader":236}],229:[function(e,t,r){function a(e,t){if(!a.services.hasOwnProperty(e))throw new Error("InvalidService: Failed to load api for "+e);return a.services[e][t]}a.services={},t.exports=a},{}],230:[function(e,t,r){var a=e("./browserHmac"),s=e("./browserMd5"),i=e("./browserSha1"),o=e("./browserSha256");t.exports={createHash:function(e){if("md5"===(e=e.toLowerCase()))return new s;if("sha256"===e)return new o;if("sha1"===e)return new i;throw new Error("Hash algorithm "+e+" is not supported in the browser SDK")},createHmac:function(e,t){if("md5"===(e=e.toLowerCase()))return new a(s,t);if("sha256"===e)return new a(o,t);if("sha1"===e)return new a(i,t);throw new Error("HMAC algorithm "+e+" is not supported in the browser SDK")},createSign:function(){throw new Error("createSign is not implemented in the browser")}}},{"./browserHmac":232,"./browserMd5":233,"./browserSha1":234,"./browserSha256":235}],231:[function(e,t,r){function a(e){return"string"==typeof e?0===e.length:0===e.byteLength}function s(e){return"string"==typeof e&&(e=new i(e,"utf8")),ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}var i=e("buffer/").Buffer;"undefined"!=typeof ArrayBuffer&&void 0===ArrayBuffer.isView&&(ArrayBuffer.isView=function(e){return o.indexOf(Object.prototype.toString.call(e))>-1});var o=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","[object DataView]"];t.exports={isEmptyData:a,convertToBuffer:s}},{"buffer/":308}],232:[function(e,t,r){function a(e,t){this.hash=new e,this.outer=new e;var r=s(e,t),a=new Uint8Array(e.BLOCK_SIZE);a.set(r);for(var i=0;ie.BLOCK_SIZE){var a=new e;a.update(r),r=a.digest()}var s=new Uint8Array(e.BLOCK_SIZE);return s.set(r),s}var i=e("./browserHashUtils");t.exports=a,a.prototype.update=function(e){if(i.isEmptyData(e)||this.error)return this;try{this.hash.update(i.convertToBuffer(e))}catch(e){this.error=e}return this},a.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":231}],233:[function(e,t,r){function a(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(c)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function s(e,t,r,a,s,i){return((t=(t+e&4294967295)+(a+i&4294967295)&4294967295)<>>32-s)+r&4294967295}function i(e,t,r,a,i,o,n){return s(t&r|~t&a,e,t,i,o,n)}function o(e,t,r,a,i,o,n){return s(t&a|r&~a,e,t,i,o,n)}function n(e,t,r,a,i,o,n){return s(t^r^a,e,t,i,o,n)}function u(e,t,r,a,i,o,n){return s(r^(t|~a),e,t,i,o,n)}var p=e("./browserHashUtils"),m=e("buffer/").Buffer,c=64;t.exports=a,a.BLOCK_SIZE=c,a.prototype.update=function(e){if(p.isEmptyData(e))return this;if(this.finished)throw new Error("Attempted to update an already finished hash.");var t=p.convertToBuffer(e),r=0,a=t.byteLength;for(this.bytesHashed+=a;a>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),a--,this.bufferLength===c&&(this.hashBuffer(),this.bufferLength=0);return this},a.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,a=t.bufferLength,s=t.bytesHashed,i=8*s;if(r.setUint8(this.bufferLength++,128),a%c>=c-8){for(var o=this.bufferLength;o>>0,!0),r.setUint32(c-4,Math.floor(i/4294967296),!0),this.hashBuffer(),this.finished=!0}for(var n=new DataView(new ArrayBuffer(16)),o=0;o<4;o++)n.setUint32(4*o,this.state[o],!0);var u=new m(n.buffer,n.byteOffset,n.byteLength);return e?u.toString(e):u},a.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,a=r[0],s=r[1],p=r[2],m=r[3];a=i(a,s,p,m,t.getUint32(0,!0),7,3614090360),m=i(m,a,s,p,t.getUint32(4,!0),12,3905402710),p=i(p,m,a,s,t.getUint32(8,!0),17,606105819),s=i(s,p,m,a,t.getUint32(12,!0),22,3250441966),a=i(a,s,p,m,t.getUint32(16,!0),7,4118548399),m=i(m,a,s,p,t.getUint32(20,!0),12,1200080426),p=i(p,m,a,s,t.getUint32(24,!0),17,2821735955),s=i(s,p,m,a,t.getUint32(28,!0),22,4249261313),a=i(a,s,p,m,t.getUint32(32,!0),7,1770035416),m=i(m,a,s,p,t.getUint32(36,!0),12,2336552879),p=i(p,m,a,s,t.getUint32(40,!0),17,4294925233),s=i(s,p,m,a,t.getUint32(44,!0),22,2304563134),a=i(a,s,p,m,t.getUint32(48,!0),7,1804603682),m=i(m,a,s,p,t.getUint32(52,!0),12,4254626195),p=i(p,m,a,s,t.getUint32(56,!0),17,2792965006),s=i(s,p,m,a,t.getUint32(60,!0),22,1236535329),a=o(a,s,p,m,t.getUint32(4,!0),5,4129170786),m=o(m,a,s,p,t.getUint32(24,!0),9,3225465664),p=o(p,m,a,s,t.getUint32(44,!0),14,643717713),s=o(s,p,m,a,t.getUint32(0,!0),20,3921069994),a=o(a,s,p,m,t.getUint32(20,!0),5,3593408605),m=o(m,a,s,p,t.getUint32(40,!0),9,38016083),p=o(p,m,a,s,t.getUint32(60,!0),14,3634488961),s=o(s,p,m,a,t.getUint32(16,!0),20,3889429448),a=o(a,s,p,m,t.getUint32(36,!0),5,568446438),m=o(m,a,s,p,t.getUint32(56,!0),9,3275163606),p=o(p,m,a,s,t.getUint32(12,!0),14,4107603335),s=o(s,p,m,a,t.getUint32(32,!0),20,1163531501),a=o(a,s,p,m,t.getUint32(52,!0),5,2850285829),m=o(m,a,s,p,t.getUint32(8,!0),9,4243563512),p=o(p,m,a,s,t.getUint32(28,!0),14,1735328473),s=o(s,p,m,a,t.getUint32(48,!0),20,2368359562),a=n(a,s,p,m,t.getUint32(20,!0),4,4294588738),m=n(m,a,s,p,t.getUint32(32,!0),11,2272392833),p=n(p,m,a,s,t.getUint32(44,!0),16,1839030562),s=n(s,p,m,a,t.getUint32(56,!0),23,4259657740),a=n(a,s,p,m,t.getUint32(4,!0),4,2763975236),m=n(m,a,s,p,t.getUint32(16,!0),11,1272893353),p=n(p,m,a,s,t.getUint32(28,!0),16,4139469664),s=n(s,p,m,a,t.getUint32(40,!0),23,3200236656),a=n(a,s,p,m,t.getUint32(52,!0),4,681279174),m=n(m,a,s,p,t.getUint32(0,!0),11,3936430074),p=n(p,m,a,s,t.getUint32(12,!0),16,3572445317),s=n(s,p,m,a,t.getUint32(24,!0),23,76029189),a=n(a,s,p,m,t.getUint32(36,!0),4,3654602809),m=n(m,a,s,p,t.getUint32(48,!0),11,3873151461),p=n(p,m,a,s,t.getUint32(60,!0),16,530742520),s=n(s,p,m,a,t.getUint32(8,!0),23,3299628645),a=u(a,s,p,m,t.getUint32(0,!0),6,4096336452),m=u(m,a,s,p,t.getUint32(28,!0),10,1126891415),p=u(p,m,a,s,t.getUint32(56,!0),15,2878612391),s=u(s,p,m,a,t.getUint32(20,!0),21,4237533241),a=u(a,s,p,m,t.getUint32(48,!0),6,1700485571),m=u(m,a,s,p,t.getUint32(12,!0),10,2399980690),p=u(p,m,a,s,t.getUint32(40,!0),15,4293915773),s=u(s,p,m,a,t.getUint32(4,!0),21,2240044497),a=u(a,s,p,m,t.getUint32(32,!0),6,1873313359),m=u(m,a,s,p,t.getUint32(60,!0),10,4264355552),p=u(p,m,a,s,t.getUint32(24,!0),15,2734768916),s=u(s,p,m,a,t.getUint32(52,!0),21,1309151649),a=u(a,s,p,m,t.getUint32(16,!0),6,4149444226),m=u(m,a,s,p,t.getUint32(44,!0),10,3174756917),p=u(p,m,a,s,t.getUint32(8,!0),15,718787259),s=u(s,p,m,a,t.getUint32(36,!0),21,3951481745),r[0]=a+r[0]&4294967295,r[1]=s+r[1]&4294967295,r[2]=p+r[2]&4294967295,r[3]=m+r[3]&4294967295}},{"./browserHashUtils":231,"buffer/":308}],234:[function(e,t,r){function a(){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 s=e("buffer/").Buffer,i=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=a,a.BLOCK_SIZE=64,a.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(i.isEmptyData(e))return this;e=i.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 s(20),a=new DataView(r.buffer);return a.setUint32(0,this.h0,!1),a.setUint32(4,this.h1,!1),a.setUint32(8,this.h2,!1),a.setUint32(12,this.h3,!1),a.setUint32(16,this.h4,!1),e?r.toString(e):r},a.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,a,s=this.h0,i=this.h1,o=this.h2,n=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=n^i&(o^n),a=1518500249):e<40?(r=i^o^n,a=1859775393):e<60?(r=i&o|n&(i|o),a=2400959708):(r=i^o^n,a=3395469782);var p=(s<<5|s>>>27)+r+u+a+(0|this.block[e]);u=n,n=o,o=i<<30|i>>>2,i=s,s=p}for(this.h0=this.h0+s|0,this.h1=this.h1+i|0,this.h2=this.h2+o|0,this.h3=this.h3+n|0,this.h4=this.h4+u|0,this.offset=0,e=0;e<16;e++)this.block[e]=0}},{"./browserHashUtils":231,"buffer/":308}],235:[function(e,t,r){function a(){this.state=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.temp=new Int32Array(64),this.buffer=new Uint8Array(64),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}var s=e("buffer/").Buffer,i=e("./browserHashUtils"),o=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),n=Math.pow(2,53)-1;t.exports=a,a.BLOCK_SIZE=64,a.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(i.isEmptyData(e))return this;e=i.convertToBuffer(e);var t=0,r=e.byteLength;if(this.bytesHashed+=r,8*this.bytesHashed>n)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},a.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),a=this.bufferLength;if(r.setUint8(this.bufferLength++,128),a%64>=56){for(var i=this.bufferLength;i<64;i++)r.setUint8(i,0);this.hashBuffer(),this.bufferLength=0}for(var i=this.bufferLength;i<56;i++)r.setUint8(i,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var o=new s(32),i=0;i<8;i++)o[4*i]=this.state[i]>>>24&255,o[4*i+1]=this.state[i]>>>16&255,o[4*i+2]=this.state[i]>>>8&255,o[4*i+3]=this.state[i]>>>0&255;return e?o.toString(e):o},a.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,a=r[0],s=r[1],i=r[2],n=r[3],u=r[4],p=r[5],m=r[6],c=r[7],l=0;l<64;l++){if(l<16)this.temp[l]=(255&t[4*l])<<24|(255&t[4*l+1])<<16|(255&t[4*l+2])<<8|255&t[4*l+3];else{var d=this.temp[l-2],y=(d>>>17|d<<15)^(d>>>19|d<<13)^d>>>10;d=this.temp[l-15];var b=(d>>>7|d<<25)^(d>>>18|d<<14)^d>>>3;this.temp[l]=(y+this.temp[l-7]|0)+(b+this.temp[l-16]|0)}var h=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&p^~u&m)|0)+(c+(o[l]+this.temp[l]|0)|0)|0,S=((a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10))+(a&s^a&i^s&i)|0;c=m,m=p,p=u,u=n+h|0,n=i,i=s,s=a,a=h+S|0}r[0]+=a,r[1]+=s,r[2]+=i,r[3]+=n,r[4]+=u,r[5]+=p,r[6]+=m,r[7]+=c}},{"./browserHashUtils":231,"buffer/":308}],236:[function(e,t,r){(function(r){var a=e("./util");a.crypto.lib=e("./browserCryptoLib"),a.Buffer=e("buffer/").Buffer,a.url=e("url/"),a.querystring=e("querystring/"),a.environment="js";var s=e("./core");t.exports=s,e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/web_identity_credentials"),e("./credentials/cognito_identity_credentials"),e("./credentials/saml_credentials"),s.XML.Parser=e("./xml/browser_parser"),e("./http/xhr"),void 0===r&&(r={browser:!0})}).call(this,e("_process"))},{"./browserCryptoLib":230,"./core":239,"./credentials":240,"./credentials/cognito_identity_credentials":241,"./credentials/credential_provider_chain":242,"./credentials/saml_credentials":243,"./credentials/temporary_credentials":244,"./credentials/web_identity_credentials":245,"./http/xhr":254,"./util":303,"./xml/browser_parser":304,_process:453,"buffer/":308,"querystring/":460,"url/":461}],237:[function(e,t,r){var a=e("../core"),s=a.util.url,i=a.util.crypto.lib,o=a.util.base64.encode,n=a.util.inherit,u=function(e){var t={"+":"-","=":"_","/":"~"};return e.replace(/[\+=\/]/g,function(e){return t[e]})},p=function(e,t){var r=i.createSign("RSA-SHA1");return r.write(e),u(r.sign(t,"base64"))},m=function(e,t,r,a){var s=JSON.stringify({Statement:[{Resource:e,Condition:{DateLessThan:{"AWS:EpochTime":t}}}]});return{Expires:t,"Key-Pair-Id":r,Signature:p(s.toString(),a)}},c=function(e,t,r){return e=e.replace(/\s/gm,e),{Policy:u(o(e)),"Key-Pair-Id":t,Signature:p(e,r)}},l=function(e){var t=e.split("://");if(t.length<2)throw new Error("Invalid URL.");return t[0].replace("*","")},d=function(e){var t=s.parse(e);return t.path.replace(/^\//,"")+(t.hash||"")},y=function(e){switch(l(e)){case"http":case"https":return e;case"rtmp":return d(e);default:throw new Error("Invalid URI scheme. Scheme must be one of http, https, or rtmp")}},b=function(e,t){if(!t||"function"!=typeof t)throw e;t(e)},h=function(e,t){if(!t||"function"!=typeof t)return e;t(null,e)};a.CloudFront.Signer=n({constructor:function(e,t){if(void 0===e||void 0===t)throw new Error("A key pair ID and private key are required");this.keyPairId=e,this.privateKey=t},getSignedCookie:function(e,t){var r="policy"in e?c(e.policy,this.keyPairId,this.privateKey):m(e.url,e.expires,this.keyPairId,this.privateKey),a={};for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(a["CloudFront-"+s]=r[s]);return h(a,t)},getSignedUrl:function(e,t){try{var r=y(e.url)}catch(e){return b(e,t)}var a=s.parse(e.url,!0),i=Object.prototype.hasOwnProperty.call(e,"policy")?c(e.policy,this.keyPairId,this.privateKey):m(r,e.expires,this.keyPairId,this.privateKey);a.search=null;for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(a.query[o]=i[o]);try{var n="rtmp"===l(e.url)?d(s.format(a)):s.format(a)}catch(e){return b(e,t)}return h(n,t)}}),t.exports=a.CloudFront.Signer},{"../core":239}],238:[function(e,t,r){var a=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var s;a.Config=a.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),a.util.each.call(this,this.keys,function(t,r){this.set(t,e[t],r)})},getCredentials:function(e){function t(t){e(t,t?null:s.credentials)}function r(e,t){return new a.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var s=this;s.credentials?"function"==typeof s.credentials.get?function(){s.credentials.get(function(e){e&&(e=r("Could not load credentials from "+s.credentials.constructor.name,e)),t(e)})}():function(){var e=null;s.credentials.accessKeyId&&s.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}():s.credentialProvider?s.credentialProvider.resolve(function(e,a){e&&(e=r("Could not load credentials from any providers",e)),s.credentials=a,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),a.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||a.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(a.util.readFileSync(e)),r=new a.FileSystemCredentials(e),s=new a.CredentialProviderChain;return s.providers.unshift(r),s.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){a.util.each.call(this,this.keys,function(e){delete this[e]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(e,t,r){void 0===t?(void 0===r&&(r=this.keys[e]),this[e]="function"==typeof r?r.call(this):r):"httpOptions"===e&&this[e]?this[e]=a.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=a.util.copy(e),e.credentials=new a.Credentials(e)),e},setPromisesDependency:function(e){s=e,null===e&&"function"==typeof Promise&&(s=Promise);var t=[a.Request,a.Credentials,a.CredentialProviderChain];a.S3&&a.S3.ManagedUpload&&t.push(a.S3.ManagedUpload),a.util.addPromises(t,s)},getPromisesDependency:function(){return s}}),a.config=new a.Config},{"./core":239,"./credentials":240,"./credentials/credential_provider_chain":242}],239:[function(e,t,r){var a={util:e("./util")};({}).toString(),t.exports=a,a.util.update(a,{VERSION:"2.183.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")}),e("./service"),e("./config"),e("./http"),e("./sequential_executor"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),a.events=new a.SequentialExecutor},{"./api_loader":229,"./config":238,"./event_listeners":252,"./http":253,"./json/builder":255,"./json/parser":256,"./model/api":257,"./model/operation":259,"./model/paginator":260,"./model/resource_waiter":261,"./model/shape":262,"./param_validator":263,"./protocol/json":265,"./protocol/query":266,"./protocol/rest":267,"./protocol/rest_json":268,"./protocol/rest_xml":269,"./request":274,"./resource_waiter":275,"./response":276,"./sequential_executor":278,"./service":279,"./signers/request_signer":295,"./util":303,"./xml/builder":305}],240:[function(e,t,r){var a=e("./core");a.Credentials=a.util.inherit({constructor:function(){if(a.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=a.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(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()}}),a.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=a.util.promisifyMethod("get",e),this.prototype.refreshPromise=a.util.promisifyMethod("refresh",e)},a.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},a.util.addPromises(a.Credentials)},{"./core":239}],241:[function(e,t,r){var a=e("../core"),s=e("../../clients/cognitoidentity"),i=e("../../clients/sts");a.CognitoIdentityCredentials=a.util.inherit(a.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e,t){a.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=a.util.copy(t||{}),this.loadCachedId();var r=this;Object.defineProperty(this,"identityId",{get:function(){return r.loadCachedId(),r._identityId||r.params.IdentityId},set:function(e){r._identityId=e}})},refresh:function(e){var t=this;t.createClients(),t.data=null,t._identityId=null,t.getId(function(r){r?(t.clearIdOnNotAuthorized(r),e(r)):t.params.RoleArn?t.getCredentialsFromSTS(e):t.getCredentialsForIdentity(e)})},clearCachedId:function(){this._identityId=null,delete this.params.IdentityId;var e=this.params.IdentityPoolId,t=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+e+t],delete this.storage[this.localStorageKey.providers+e+t]},clearIdOnNotAuthorized:function(e){var t=this;"NotAuthorizedException"==e.code&&t.clearCachedId()},getId:function(e){var t=this;if("string"==typeof t.params.IdentityId)return e(null,t.params.IdentityId);t.cognito.getId(function(r,a){!r&&a.IdentityId?(t.params.IdentityId=a.IdentityId,e(null,a.IdentityId)):e(r)})},loadCredentials:function(e,t){e&&t&&(t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration)},getCredentialsForIdentity:function(e){var t=this;t.cognito.getCredentialsForIdentity(function(r,a){r?t.clearIdOnNotAuthorized(r):(t.cacheId(a),t.data=a,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,a){r?(t.clearIdOnNotAuthorized(r),e(r)):(t.cacheId(a),t.params.WebIdentityToken=a.Token,t.webIdentityCredentials.refresh(function(r){r||(t.data=t.webIdentityCredentials.data,t.sts.credentialsFrom(t.data,t)),e(r)}))})},loadCachedId:function(){var e=this;if(a.util.isBrowser()&&!e.params.IdentityId){var t=e.getStorage("id");if(t&&e.params.Logins){var r=Object.keys(e.params.Logins);0!==(e.getStorage("providers")||"").split(",").filter(function(e){return-1!==r.indexOf(e)}).length&&(e.params.IdentityId=t)}else t&&(e.params.IdentityId=t)}},createClients:function(){var e=this._clientConfig;if(this.webIdentityCredentials=this.webIdentityCredentials||new a.WebIdentityCredentials(this.params,e),!this.cognito){var t=a.util.merge({},e);t.params=this.params,this.cognito=new s(t)}this.sts=this.sts||new i(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,a.util.isBrowser()&&(this.setStorage("id",e.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(e){return this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(e,t){try{this.storage[this.localStorageKey[e]+this.params.IdentityPoolId+(this.params.LoginId||"")]=t}catch(e){}},storage:function(){try{var e=a.util.isBrowser()&&null!==window.localStorage&&"object"==typeof window.localStorage?window.localStorage:{};return e["aws.test-storage"]="foobar",delete e["aws.test-storage"],e}catch(e){return{}}}()})},{"../../clients/cognitoidentity":179,"../../clients/sts":226,"../core":239}],242:[function(e,t,r){var a=e("../core");a.CredentialProviderChain=a.util.inherit(a.Credentials,{constructor:function(e){this.providers=e||a.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(e){function t(s,i){if(!s&&i||r===a.length)return void e(s,i);var o=a[r++];i="function"==typeof o?o.call():o,i.get?i.get(function(e){t(e,e?null:i)}):t(null,i)}if(0===this.providers.length)return e(new Error("No providers")),this;var r=0,a=this.providers.slice(0);return t(),this}}),a.CredentialProviderChain.defaultProviders=[],a.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=a.util.promisifyMethod("resolve",e)},a.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},a.util.addPromises(a.CredentialProviderChain)},{"../core":239}],243:[function(e,t,r){var a=e("../core"),s=e("../../clients/sts");a.SAMLCredentials=a.util.inherit(a.Credentials,{constructor:function(e){a.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithSAML(function(r,a){r||t.service.credentialsFrom(a,t),e(r)})},createClients:function(){this.service=this.service||new s({params:this.params})}})},{"../../clients/sts":226,"../core":239}],244:[function(e,t,r){var a=e("../core"),s=e("../../clients/sts");a.TemporaryCredentials=a.util.inherit(a.Credentials,{constructor:function(e,t){a.Credentials.call(this),this.loadMasterCredentials(t),this.expired=!0,this.params=e||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.masterCredentials.get(function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,function(r,a){r||t.service.credentialsFrom(a,t),e(r)})})},loadMasterCredentials:function(e){for(this.masterCredentials=e||a.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;"function"!=typeof this.masterCredentials.get&&(this.masterCredentials=new a.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new s({params:this.params})}})},{"../../clients/sts":226,"../core":239}],245:[function(e,t,r){var a=e("../core"),s=e("../../clients/sts");a.WebIdentityCredentials=a.util.inherit(a.Credentials,{constructor:function(e,t){a.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null,this._clientConfig=a.util.copy(t||{})},refresh:function(e){var t=this;t.createClients(),e||(e=function(e){if(e)throw e}),t.service.assumeRoleWithWebIdentity(function(r,a){t.data=null,r||(t.data=a,t.service.credentialsFrom(a,t)),e(r)})},createClients:function(){if(!this.service){var e=a.util.merge({},this._clientConfig);e.params=this.params,this.service=new s(e)}}})},{"../../clients/sts":226,"../core":239}],246:[function(e,t,r){function a(e,t){for(var r={L:[]},a=0;a=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();s.util.computeSha256(i,function(r,a){r?t(r):(e.httpRequest.headers["X-Amz-Content-Sha256"]=a,t())})}else t()}}),e("SET_CONTENT_LENGTH","afterBuild",function(e){var t=a(e);if(void 0===e.httpRequest.headers["Content-Length"]&&-1===t.indexOf("unsigned-body")){var r=s.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=r}}),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 s.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(e){e?t(e):o()}):o()}),e("HTTP_HEADERS","httpHeaders",function(e,t,r,a){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=a,r.httpResponse.headers=t,r.httpResponse.body=new s.util.Buffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var i=t.date||t.Date,o=r.request.service;if(i){var n=Date.parse(i);o.config.correctClockSkew&&o.isClockSkewed(n)&&o.applyClockOffset(n)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(s.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],a={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[a,t])}t.httpResponse.buffers.push(new s.util.Buffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=s.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 s.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount=this.HEADERS_RECEIVED&&!c&&(u.statusCode=m.status,u.headers=o.parseHeaders(m.getAllResponseHeaders()),u.emit("headers",u.statusCode,u.headers,m.statusText),c=!0),this.readyState===this.DONE&&o.finishRequest(m,u)},!1),m.upload.addEventListener("progress",function(e){u.emit("sendProgress",e)}),m.addEventListener("progress",function(e){u.emit("receiveProgress",e)},!1),m.addEventListener("timeout",function(){i(a.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),m.addEventListener("error",function(){i(a.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),m.addEventListener("abort",function(){i(a.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))},!1),r(u),m.open(e.method,p,!1!==t.xhrAsync),a.util.each(e.headers,function(e,t){"Content-Length"!==e&&"User-Agent"!==e&&"Host"!==e&&m.setRequestHeader(e,t)}),t.timeout&&!1!==t.xhrAsync&&(m.timeout=t.timeout),t.xhrWithCredentials&&(m.withCredentials=!0);try{m.responseType="arraybuffer"}catch(e){}try{e.body?m.send(e.body):m.send()}catch(t){if(!e.body||"object"!=typeof e.body.buffer)throw t;m.send(e.body.buffer)}return u},parseHeaders:function(e){var t={};return a.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],a=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=a)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var s=e.response;r=new a.util.Buffer(s.byteLength);for(var i=new Uint8Array(s),o=0;o-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 l(){i.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseFloat(e)},this.toWireFormat=this.toType}function d(){i.apply(this,arguments),this.toType=function(e){return null===e||void 0===e?null:parseInt(e,10)},this.toWireFormat=this.toType}function y(){i.apply(this,arguments),this.toType=g.base64.decode,this.toWireFormat=g.base64.encode}function b(){y.apply(this,arguments)}function h(){i.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null===e||void 0===e?null:"true"===e}}var S=e("./collection"),g=e("../util");i.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},i.types={structure:n,list:u,map:p,boolean:h,timestamp:m,float:l,integer:d,string:c,base64:b,binary:y},i.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},i.create=function(e,t,r){if(e.isShape)return e;var a=i.resolve(e,t);if(a){var s=Object.keys(e);t.documentation||(s=s.filter(function(e){return!e.match(/documentation/)}));var o=function(){a.constructor.call(this,e,t,r)};return o.prototype=a,new o}e.type||(e.members?e.type="structure":e.member?e.type="list":e.key?e.type="map":e.type="string");var n=e.type;if(i.normalizedTypes[e.type]&&(e.type=i.normalizedTypes[e.type]),i.types[e.type])return new i.types[e.type](e,t,r);throw new Error("Unrecognized shape type: "+n)},i.shapes={StructureShape:n,ListShape:u,MapShape:p,StringShape:c,BooleanShape:h,Base64Shape:b},t.exports=i},{"../util":303,"./collection":258}],263:[function(e,t,r){var a=e("./core");a.ParamValidator=a.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 s=this.errors.join("\n* ");throw s="There were "+this.errors.length+" validation errors:\n* "+s,a.util.error(new Error(s),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(e,t){this.errors.push(a.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var a,s=0;e.required&&s= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+a+" <= "+e.max+", but found "+t+" for "+r)},validateEnum:function(e,t,r){this.validation.enum&&void 0!==e.enum&&-1===e.enum.indexOf(t)&&this.fail("EnumError","Found string value of "+t+", but expected "+e.enum.join("|")+" for "+r)},validateType:function(e,t,r,s){if(null===e||void 0===e)return!1;for(var i=!1,o=0;o0)try{var a=JSON.parse(r.body.toString());(a.__type||a.code)&&(t.code=(a.__type||a.code).split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=a.message||a.Message||null}catch(a){t.statusCode=r.statusCode,t.message=r.statusMessage}else t.statusCode=r.statusCode,t.message=r.statusCode.toString();e.error=o.error(new Error,t)}function i(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],a=r.output||{},s=new u;e.data=s.parse(t,a)}}var o=e("../util"),n=e("../json/builder"),u=e("../json/parser");t.exports={buildRequest:a,extractError:s,extractData:i}},{"../json/builder":255,"../json/parser":256,"../util":303}],266:[function(e,t,r){function a(e){var t=e.service.api.operations[e.operation],r=e.httpRequest;r.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",r.params={Version:e.service.api.apiVersion,Action:t.name},(new u).serialize(e.params,t.input,function(e,t){r.params[e]=t}),r.body=n.queryParamsToString(r.params)}function s(e){var t,r=e.httpResponse.body.toString();if(r.match("=0?"&":"?";var n=[];m.arrayEach(Object.keys(i).sort(),function(e){Array.isArray(i[e])||(i[e]=[i[e]]);for(var t=0;t0){t=new n.XML.Parser;var c=t.parse(a.toString(),i);u.update(e.data,c)}}var n=e("../core"),u=e("../util"),p=e("./rest");t.exports={buildRequest:s,extractError:i,extractData:o}},{"../core":239,"../util":303,"./rest":267}],270:[function(e,t,r){function a(){}function s(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function i(e,t,r,a){p.each(r.members,function(r,i){var o=t[r];if(null!==o&&void 0!==o){var n=s(i);n=e?e+"."+n:n,u(n,o,i,a)}})}function o(e,t,r,a){var s=1;p.each(t,function(t,i){var o=r.flattened?".":".entry.",n=o+s+++".",p=n+(r.key.name||"key"),m=n+(r.value.name||"value");u(e+p,t,r.key,a),u(e+m,i,r.value,a)})}function n(e,t,r,a){var i=r.member||{};if(0===t.length)return void a.call(this,e,null);p.arrayEach(t,function(t,o){var n="."+(o+1);if("ec2"===r.api.protocol)n+="";else if(r.flattened){if(i.name){var p=e.split(".");p.pop(),p.push(s(i)),e=p.join(".")}}else n="."+(i.name?i.name:"member")+n;u(e+n,t,i,a)})}function u(e,t,r,a){null!==t&&void 0!==t&&("structure"===r.type?i(e,t,r,a):"list"===r.type?n(e,t,r,a):"map"===r.type?o(e,t,r,a):a(e,r.toWireFormat(t).toString()))}var p=e("../util");a.prototype.serialize=function(e,t,r){i("",e,t,r)},t.exports=a},{"../util":303}],271:[function(e,t,r){var a=e("../core"),s=null,i={signatureVersion:"v4",signingName:"rds-db"},o={region:"string",hostname:"string",port:"number",username:"string"};a.RDS.Signer=a.util.inherit({constructor:function(e){this.options=e||{}},convertUrlToAuthToken:function(e){if(0===e.indexOf("https://"))return e.substring("https://".length)},getAuthToken:function(e,t){"function"==typeof e&&void 0===t&&(t=e,e={});var r=this,o="function"==typeof t;e=a.util.merge(this.options,e);var n=this.validateAuthTokenOptions(e);if(!0!==n){if(o)return t(n,null);throw n}var u={region:e.region,endpoint:new a.Endpoint(e.hostname+":"+e.port),paramValidation:!1,signatureVersion:"v4"};e.credentials&&(u.credentials=e.credentials),s=new a.Service(u),s.api=i;var p=s.makeRequest();if(this.modifyRequestForAuthToken(p,e),!o){var m=p.presign(900);return this.convertUrlToAuthToken(m)}p.presign(900,function(e,a){a&&(a=r.convertUrlToAuthToken(a)),t(e,a)})},modifyRequestForAuthToken:function(e,t){e.on("build",e.buildAsGet),e.httpRequest.body=a.util.queryParamsToString({Action:"connect",DBUser:t.username})},validateAuthTokenOptions:function(e){var t="";e=e||{} +;for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&typeof e[r]!==o[r]&&(t+="option '"+r+"' should have been type '"+o[r]+"', was '"+typeof e[r]+"'.\n");return!t.length||a.util.error(new Error,{code:"InvalidParameter",message:t})}})},{"../core":239}],272:[function(e,t,r){function a(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}function s(e){var t=e.config.region,r=a(t),s=e.api.endpointPrefix;return[[t,s],[r,s],[t,"*"],[r,"*"],["*",s],["*","*"]].map(function(e){return e[0]&&e[1]?e.join("/"):null})}function i(e,t){n.each(t,function(t,r){"globalEndpoint"!==t&&(void 0!==e.config[t]&&null!==e.config[t]||(e.config[t]=r))})}function o(e){for(var t=s(e),r=0;r=0){u=!0;var p=0}var m=function(){u&&p!==n?s.emit("error",a.util.error(new Error("Stream content length mismatch. Received "+p+" of "+n+" bytes."),{code:"StreamContentLengthMismatch"})):2===a.HttpClient.streamsApiVersion?s.end():s.emit("end")},c=o.httpResponse.createUnbufferedStream();if(2===a.HttpClient.streamsApiVersion)if(u){var l=new e.PassThrough;l._write=function(t){return t&&t.length&&(p+=t.length),e.PassThrough.prototype._write.apply(this,arguments)},l.on("end",m),s.on("error",function(e){u=!1,c.unpipe(l),l.emit("end"),l.end()}),c.pipe(l).pipe(s,{end:!1})}else c.pipe(s);else u&&c.on("data",function(e){e&&e.length&&(p+=e.length)}),c.on("data",function(e){s.emit("data",e)}),c.on("end",m);c.on("error",function(e){u=!1,s.emit("error",e)})}}),s},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),a.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 a.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this.removeListener("validate",a.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",a.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(e){e.httpRequest.method="GET",e.httpRequest.path=e.service.endpoint.path+"?"+e.httpRequest.body,e.httpRequest.body="",delete e.httpRequest.headers["Content-Length"],delete e.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),a.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()})}},a.Request.deletePromisesFromClass=function(){delete this.prototype.promise},a.util.addPromises(a.Request),a.util.mixin(a.Request,a.SequentialExecutor)}).call(this,e("_process"))},{"./core":239,"./state_machine":302,_process:453,jmespath:312}],275:[function(e,t,r){function a(e){var t=e.request._waiter,r=t.config.acceptors,a=!1,s="retry";r.forEach(function(r){if(!a){var i=t.matchers[r.matcher];i&&i(e,r.expected,r.argument)&&(a=!0,s=r.state)}}),!a&&e.error&&(s="failure"),"success"===s?t.setSuccess(e):t.setError(e,"retry"===s)}var s=e("./core"),i=s.util.inherit,o=e("jmespath");s.ResourceWaiter=i({constructor:function(e,t){this.service=e,this.state=t,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(e,t,r){try{var a=o.search(e.data,r)}catch(e){return!1}return o.strictDeepEqual(a,t)},pathAll:function(e,t,r){try{var a=o.search(e.data,r)}catch(e){return!1}Array.isArray(a)||(a=[a]);var s=a.length;if(!s)return!1;for(var i=0;i=1&&t.doneParts===t.numParts&&t.finishMultiPart()}))}r&&t.fillQueue.call(t)},abort:function(){this.cleanup(a.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 a.util.Buffer(e.body);else if(!e.body)throw new Error("params.Body is required");e.sliceFn=a.util.arraySliceFn(e.body)},bindServiceObject:function(e){e=e||{};var t=this;if(t.service){var r=t.service,s=a.util.copy(r.config);s.signatureVersion=r.getSignatureVersion(),t.service=new r.constructor.__super__(s),t.service.config.params=a.util.merge(t.service.config.params||{},e)}else t.service=new a.S3({params:e})},adjustTotalBytes:function(){var e=this;try{e.totalBytes=s(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=s(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]:i.concat(e.partBuffers);if(e.partBuffers=[],e.partBufferLength=0,r.length>e.partSize){var a=r.slice(e.partSize);e.partBuffers.push(a),e.partBufferLength+=a.length,r=r.slice(0,e.partSize)}e.nextChunk(r)}e.isDoneChunking&&!e.isDoneSending&&(r=1===e.partBuffers.length?e.partBuffers[0]:i.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 s={Body:e};this.tags&&(s.Tagging=this.getTaggingHeader());var i=t.service.putObject(s);return i._managedUpload=t,i.on("httpUploadProgress",t.progress).send(t.finishSinglePart),null}if(t.service.config.params.ContentMD5){var o=a.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-1&&r.splice(s,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var a=this.listeners(e),s=a.length;return this.callListeners(a,t,r),s>0},callListeners:function(e,t,r,s){function i(s){if(s&&(n=a.util.error(n||new Error,s),o._haltHandlersOnError))return r.call(o,n);o.callListeners(e,t,r,n)}for(var o=this,n=s||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(o,t.concat([i]));try{u.apply(o,t)}catch(e){n=a.util.error(n||new Error,e)}if(n&&o._haltHandlersOnError)return void r.call(o,n)}r.call(o,n)},addListeners:function(e){var t=this;return e._events&&(e=e._events),a.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),a.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r){return this[e]=r,this.addListener(t,r),this},addNamedAsyncListener:function(e,t,r){return r._isAsync=!0,this.addNamedListener(e,t,r)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),a.SequentialExecutor.prototype.addListener=a.SequentialExecutor.prototype.on,t.exports=a.SequentialExecutor},{"./core":239}],279:[function(e,t,r){var a=e("./core"),s=e("./model/api"),i=e("./region_config"),o=a.util.inherit,n=0;a.Service=o({constructor:function(e){if(!this.loadServiceClass)throw a.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var r=a.util.copy(e),s=new t(e);return Object.defineProperty(s,"_originalConfig",{get:function(){return r},enumerable:!1,configurable:!0}),s._clientId=++n,s}this.initialize(e)},initialize:function(e){var t=a.config[this.serviceIdentifier];this.config=new a.Config(a.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||i(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(e){var t=e;if(a.util.isEmpty(this.api)){if(t.apiConfig)return a.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new a.Config(a.config),t.update(e,!0);var r=t.apiVersions[this.constructor.serviceIdentifier];return r=r||t.apiVersion,this.getLatestServiceClass(r)}return null}return null},getLatestServiceClass:function(e){return e=this.getLatestServiceVersion(e),null===this.constructor.services[e]&&a.Service.defineServiceApi(this.constructor,e),this.constructor.services[e]},getLatestServiceVersion:function(e){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(e?a.util.isType(e,Date)&&(e=a.util.date.iso8601(e).split("T")[0]):e="latest",Object.hasOwnProperty(this.constructor.services,e))return e;for(var t=Object.keys(this.constructor.services).sort(),r=null,s=t.length-1;s>=0;s--)if("*"!==t[s][t[s].length-1]&&(r=t[s]),t[s].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 s=this.api.operations[e];s&&(t=a.util.copy(t),a.util.each(this.config.params,function(e,r){s.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var i=new a.Request(this,e,t);return this.addAllRequestListeners(i),r&&i.send(r),i},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var a=this.makeRequest(e,t).toUnauthenticated();return r?a.send(r):a},waitFor:function(e,t,r){return new a.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[a.events,a.EventListeners.Core,this.serviceInterface(),a.EventListeners.CorePost],r=0;r=500)))},networkingError:function(e){return"NetworkingError"===e.code},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":return!0;default:return!1}},endpointFromTemplate:function(e){if("string"!=typeof e)return e;var t=e;return t=t.replace(/\{service\}/g,this.api.endpointPrefix),t=t.replace(/\{region\}/g,this.config.region),t=t.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(e){this.endpoint=new a.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var s=new Error;throw a.util.error(s,"No pagination configuration for "+e)}return null}return r}}),a.util.update(a.Service,{defineMethods:function(e){a.util.each(e.prototype.api.operations,function(t){if(!e.prototype[t]){"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){a.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var s=o(a.Service,r||{});if("string"==typeof e){a.Service.addVersions(s,t);var i=s.serviceIdentifier||e;s.serviceIdentifier=i}else s.prototype.api=e,a.Service.defineMethods(s);return s},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r=0){throw a.util.error(new Error,{name:"InvalidEndpoint",message:"AWS.IotData requires an explicit `endpoint' configuration option."})}},setupRequestListeners:function(e){e.addListener("validateResponse",this.validateResponseBody),s.indexOf(e.operation)>-1&&e.addListener("extractData",a.util.convertPayloadToString)},validateResponseBody:function(e){var t=e.httpResponse.body.toString()||"{}",r=t.trim();r&&"{"===r.charAt(0)||(e.httpResponse.body="")}})},{"../core":239}],286:[function(e,t,r){var a=e("../core");a.util.update(a.Lambda.prototype,{setupRequestListeners:function(e){"invoke"===e.operation&&e.addListener("extractData",a.util.convertPayloadToString)}})},{"../core":239}],287:[function(e,t,r){var a=e("../core");a.util.update(a.MachineLearning.prototype,{setupRequestListeners:function(e){"predict"===e.operation&&e.addListener("build",this.buildEndpoint)},buildEndpoint:function(e){var t=e.params.PredictEndpoint;t&&(e.httpRequest.endpoint=new a.Endpoint(t))}})},{"../core":239}],288:[function(e,t,r){e("../polly/presigner")},{"../polly/presigner":264}],289:[function(e,t,r){var a=e("../core");e("../rds/signer");var s=["copyDBSnapshot","createDBInstanceReadReplica","createDBCluster","copyDBClusterSnapshot"];a.util.update(a.RDS.prototype,{setupRequestListeners:function(e){if(-1!==s.indexOf(e.operation)&&e.params.SourceRegion)if(e.params=a.util.copy(e.params),e.params.PreSignedUrl||e.params.SourceRegion===this.config.region)delete e.params.SourceRegion;else{var t=!!this.config.paramValidation;t&&e.removeListener("validate",a.EventListeners.Core.VALIDATE_PARAMETERS),e.onAsync("validate",this.buildCrossRegionPresignedUrl),t&&e.addListener("validate",a.EventListeners.Core.VALIDATE_PARAMETERS)}},buildCrossRegionPresignedUrl:function(e,t){var r=a.util.copy(e.service.config);r.region=e.params.SourceRegion,delete e.params.SourceRegion,delete r.endpoint,delete r.params,r.signatureVersion="v4";var s=e.service.config.region,i=new e.service.constructor(r),o=i[e.operation](a.util.copy(e.params));o.on("build",function(e){var t=e.httpRequest;t.params.DestinationRegion=s,t.body=a.util.queryParamsToString(t.params)}),o.presign(function(r,a){r?t(r):(e.params.PreSignedUrl=a,t())})}})},{"../core":239,"../rds/signer":271}],290:[function(e,t,r){var a=e("../core");a.util.update(a.Route53.prototype,{setupRequestListeners:function(e){e.on("build",this.sanitizeUrl)},sanitizeUrl:function(e){var t=e.httpRequest.path;e.httpRequest.path=t.replace(/\/%2F\w+%2F/,"/")},retryableError:function(e){return"PriorRequestNotComplete"===e.code&&400===e.statusCode||a.Service.prototype.retryableError.call(this,e)}})},{"../core":239}],291:[function(e,t,r){var a=e("../core"),s=e("../signers/v4_credentials");e("../s3/managed_upload");var i={completeMultipartUpload:!0,copyObject:!0,uploadPartCopy:!0},o=["AuthorizationHeaderMalformed","BadRequest","PermanentRedirect",301];a.util.update(a.S3.prototype,{getSignatureVersion:function(e){var t=this.api.signatureVersion,r=this._originalConfig?this._originalConfig.signatureVersion:null,a=this.config.signatureVersion,s=!!e&&e.isPresigned();return r?r="v2"===r?"s3":r:(!0!==s?t="v4":a&&(t=a),t)},getSignerClass:function(e){var t=this.getSignatureVersion(e);return a.Signers.RequestSigner.getVersion(t)},validateService:function(){var e,t=[];if(this.config.region||(this.config.region="us-east-1"),!this.config.endpoint&&this.config.s3BucketEndpoint&&t.push("An endpoint must be provided when configuring `s3BucketEndpoint` to true."),1===t.length?e=t[0]:t.length>1&&(e="Multiple configuration errors:\n"+t.join("\n")),e)throw a.util.error(new Error,{name:"InvalidEndpoint",message:e})},shouldDisableBodySigning:function(e){var t=this.getSignerClass();return!0===this.config.s3DisableBodySigning&&t===a.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),e.addListener("build",this.addContentType),e.addListener("build",this.populateURI),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("afterBuild",this.addExpect100Continue),e.removeListener("validate",a.EventListeners.Core.VALIDATE_REGION),e.addListener("extractError",this.extractError),e.onAsync("extractError",this.requestBucketRegion),e.addListener("extractData",this.extractData),e.addListener("extractData",a.util.hoistPayloadMember),e.addListener("beforePresign",this.prepareSignedUrl),a.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError),this.shouldDisableBodySigning(e)&&(e.removeListener("afterBuild",a.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 a.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 a.util.error(new Error,{code:"ConfigError",message:"Cannot send requests to root API with `s3BucketEndpoint` set."})}},validateBucketName:function(e){if("v4"===e.service.getSignatureVersion(e)){var t=e.params&&e.params.Bucket,r=e.params&&e.params.Key,s=t&&t.indexOf("/");if(t&&s>=0){if("string"!=typeof r){var i="Bucket names cannot contain forward slashes. Bucket: "+t;throw a.util.error(new Error,{code:"InvalidBucket",message:i})}e.params=a.util.copy(e.params);var o=t.substr(s+1)||"";e.params.Key=o+"/"+r,e.params.Bucket=t.substr(0,s)}}},isValidAccelerateOperation:function(e){return-1===["createBucket","deleteBucket","listBuckets"].indexOf(e)},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,a=e.service,s=t.endpoint;if(r&&!a.pathStyleBucketName(r)){a.config.useAccelerateEndpoint&&a.isValidAccelerateOperation(e.operation)?a.config.useDualstack?s.hostname=r+".s3-accelerate.dualstack.amazonaws.com":s.hostname=r+".s3-accelerate.amazonaws.com":a.config.s3BucketEndpoint||(s.hostname=r+"."+s.hostname);var i=s.port;s.host=80!==i&&443!==i?s.hostname+":"+s.port:s.hostname,t.virtualHostedBucket=r,a.removeVirtualHostedBucketFromPath(e)}},removeVirtualHostedBucketFromPath:function(e){var t=e.httpRequest,r=t.virtualHostedBucket;r&&t.path&&(t.path=t.path.replace(new RegExp("/"+r),""),"/"!==t.path[0]&&(t.path="/"+t.path))},addExpect100Continue:function(e){var t=e.httpRequest.headers["Content-Length"];a.util.isNode()&&t>=1048576&&(e.httpRequest.headers.Expect="100-continue")},addContentType:function(e){var t=e.httpRequest;if("GET"===t.method||"HEAD"===t.method)return void delete t.headers["Content-Type"];t.headers["Content-Type"]||(t.headers["Content-Type"]="application/octet-stream");var r=t.headers["Content-Type"];if(a.util.isBrowser())if("string"!=typeof t.body||r.match(/;\s*charset=/)){var s=function(e,t,r){return t+r.toUpperCase()};t.headers["Content-Type"]=r.replace(/(;\s*charset=)(.+)$/,s)}else{t.headers["Content-Type"]+="; charset=UTF-8"}},computableChecksumOperations:{putBucketCors:!0,putBucketLifecycle:!0,putBucketLifecycleConfiguration:!0,putBucketTagging:!0,deleteObjects:!0,putBucketReplication:!0},willComputeChecksums:function(e){if(this.computableChecksumOperations[e.operation])return!0;if(!this.config.computeChecksums)return!1;if(!a.util.Buffer.isBuffer(e.httpRequest.body)&&"string"!=typeof e.httpRequest.body)return!1;var t=e.service.api.operations[e.operation].input.members;return!(!e.service.shouldDisableBodySigning(e)||Object.prototype.hasOwnProperty.call(e.httpRequest.headers,"presigned-expires")||!t.ContentMD5||e.params.ContentMD5)||!(e.service.getSignerClass(e)===a.Signers.V4&&t.ContentMD5&&!t.ContentMD5.required)&&(!(!t.ContentMD5||e.params.ContentMD5)||void 0)},computeContentMd5:function(e){if(e.service.willComputeChecksums(e)){var t=a.util.crypto.md5(e.httpRequest.body,"base64");e.httpRequest.headers["Content-MD5"]=t}},computeSseCustomerKeyMd5:function(e){var t={SSECustomerKey:"x-amz-server-side-encryption-customer-key-MD5",CopySourceSSECustomerKey:"x-amz-copy-source-server-side-encryption-customer-key-MD5"};a.util.each(t,function(t,r){if(e.params[t]){var s=a.util.crypto.md5(e.params[t],"base64");e.httpRequest.headers[r]=s}})},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]$/),a=new RegExp(/(\d+\.){3}\d+/),s=new RegExp(/\.\./);return!(!t.match(r)||t.match(a)||t.match(s))},successfulResponse:function(e){var t=e.request,r=e.httpResponse;return(!i[t.operation]||!r.body.toString().match(""))&&r.statusCode<300},retryableError:function(e,t){return!(!i[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):a.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 s=e.service,i=s.config,o=i.s3BucketEndpoint;o&&delete i.s3BucketEndpoint;var n=a.util.copy(i);delete n.endpoint,n.region=r.region,r.endpoint=new a.S3(n).endpoint,s.populateURI(e),i.s3BucketEndpoint=o,r.headers.Host=r.endpoint.host,"validate"===e._asm.currentState&&(e.removeListener("build",s.populateURI),e.addListener("build",s.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 a=t.params.Bucket||null;if("deleteBucket"!==t.operation||"string"!=typeof a||e.error){var s=e.httpResponse.headers||{},i=s["x-amz-bucket-region"]||null;if(!i&&"createBucket"===t.operation&&!e.error){var o=t.params.CreateBucketConfiguration;i=o?"EU"===o.LocationConstraint?"eu-west-1":o.LocationConstraint:"us-east-1"}i&&a&&i!==t.service.bucketRegionCache[a]&&(t.service.bucketRegionCache[a]=i)}else t.service.clearBucketRegionCache(a);t.service.extractRequestIds(e)},extractError:function(e){var t={304:"NotModified",403:"Forbidden",400:"BadRequest",404:"NotFound"},r=e.request,s=e.httpResponse.statusCode,i=e.httpResponse.body||"",o=e.httpResponse.headers||{},n=o["x-amz-bucket-region"]||null,u=r.params.Bucket||null,p=r.service.bucketRegionCache;n&&u&&n!==p[u]&&(p[u]=n);var m;if(t[s]&&0===i.length)u&&!n&&(m=p[u]||null)!==r.httpRequest.region&&(n=m),e.error=a.util.error(new Error,{code:t[s],message:null,region:n});else{var c=(new a.XML.Parser).parse(i.toString());c.Region&&!n?(n=c.Region,u&&n!==p[u]&&(p[u]=n)):!u||n||c.Region||(m=p[u]||null)!==r.httpRequest.region&&(n=m),e.error=a.util.error(new Error,{code:c.Code||s,message:c.Message||null,region:n})}r.service.extractRequestIds(e)},requestBucketRegion:function(e,t){var r=e.error,s=e.request,i=s.params.Bucket||null;if(!r||!i||r.region||"listObjects"===s.operation||a.util.isNode()&&"headBucket"===s.operation||400===r.statusCode&&"headObject"!==s.operation||-1===o.indexOf(r.code))return t();var n=a.util.isNode()?"headBucket":"listObjects",u={Bucket:i};"listObjects"===n&&(u.MaxKeys=0);var p=s.service[n](u);p._requestRegionForBucket=i,p.send(function(){var e=s.service.bucketRegionCache[i]||null;r.region=e,t()})},reqRegionForNetworkingError:function(e,t){if(!a.util.isBrowser())return t();var r=e.error,s=e.request,i=s.params.Bucket;if(!r||"NetworkingError"!==r.code||!i||"us-east-1"===s.httpRequest.region)return t();var o=s.service,n=o.bucketRegionCache,u=n[i]||null;if(u&&u!==s.httpRequest.region)o.updateReqBucketRegion(s,u),t();else if(o.dnsCompatibleBucketName(i))if(s.httpRequest.virtualHostedBucket){var p=o.listObjects({Bucket:i,MaxKeys:0});o.updateReqBucketRegion(p,"us-east-1"),p._requestRegionForBucket=i,p.send(function(){var e=o.bucketRegionCache[i]||null;e&&e!==s.httpRequest.region&&o.updateReqBucketRegion(s,e),t()})}else t();else o.updateReqBucketRegion(s,"us-east-1"),"us-east-1"!==n[i]&&(n[i]="us-east-1"),t()},bucketRegionCache:{},clearBucketRegionCache:function(e){var t=this.bucketRegionCache;e?"string"==typeof e&&(e=[e]):e=Object.keys(t);for(var r=0;r0&&t.throwInvalidChecksumError(e,i,"Invalid messages: "+s.join(", "))}},verifyReceiveMessageChecksum:function(e){if(e.data){var t=this.service,r=[];a.util.arrayEach(e.data.Messages,function(e){var a=e.MD5OfBody,s=e.Body;t.isChecksumValid(a,s)||r.push(e.MessageId)}),r.length>0&&t.throwInvalidChecksumError(e,r,"Invalid messages: "+r.join(", "))}},throwInvalidChecksumError:function(e,t,r){e.error=a.util.error(new Error,{retryable:!0,code:"InvalidChecksum",messageIds:t,message:e.request.operation+" returned an invalid MD5 response. "+r})},isChecksumValid:function(e,t){return this.calculateChecksum(t)===e},calculateChecksum:function(e){return a.util.crypto.md5(e,"hex")},buildEndpoint:function(e){var t=e.httpRequest.params.QueueUrl;if(t){e.httpRequest.endpoint=new a.Endpoint(t);var r=e.httpRequest.endpoint.host.match(/^sqs\.(.+?)\./);r&&(e.httpRequest.region=r[1])}}})},{"../core":239}],293:[function(e,t,r){var a=e("../core");a.util.update(a.STS.prototype,{credentialsFrom:function(e,t){return e?(t||(t=new a.TemporaryCredentials),t.expired=!1,t.accessKeyId=e.Credentials.AccessKeyId,t.secretAccessKey=e.Credentials.SecretAccessKey,t.sessionToken=e.Credentials.SessionToken,t.expireTime=e.Credentials.Expiration,t):null},assumeRoleWithWebIdentity:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithWebIdentity",e,t)},assumeRoleWithSAML:function(e,t){return this.makeUnauthenticatedRequest("assumeRoleWithSAML",e,t)}})},{"../core":239}],294:[function(e,t,r){function a(e){var t=e.httpRequest.headers[n],r=e.service.getSignerClass(e);if(delete e.httpRequest.headers["User-Agent"],delete e.httpRequest.headers["X-Amz-User-Agent"],r===i.Signers.V4){if(t>604800){throw i.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[n]=t}else{if(r!==i.Signers.S3)throw i.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});var a=e.service?e.service.getSkewCorrectedDate():i.util.date.getDate();e.httpRequest.headers[n]=parseInt(i.util.date.unixTimestamp(a)+t,10).toString()}}function s(e){var t=e.httpRequest.endpoint,r=i.util.urlParse(e.httpRequest.path),a={};r.search&&(a=i.util.queryStringParse(r.search.substr(1)));var s=e.httpRequest.headers.Authorization.split(" ");if("AWS"===s[0])s=s[1].split(":"),a.AWSAccessKeyId=s[0],a.Signature=s[1],i.util.each(e.httpRequest.headers,function(e,t){e===n&&(e="Expires"),0===e.indexOf("x-amz-meta-")&&(delete a[e],e=e.toLowerCase()),a[e]=t}),delete e.httpRequest.headers[n],delete a.Authorization,delete a.Host;else if("AWS4-HMAC-SHA256"===s[0]){s.shift();var o=s.join(" "),u=o.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];a["X-Amz-Signature"]=u,delete a.Expires}t.pathname=r.pathname,t.search=i.util.queryParamsToString(a)}var i=e("../core"),o=i.util.inherit,n="presigned-expires";i.Signers.Presign=o({sign:function(e,t,r){if(e.httpRequest.headers[n]=t||3600,e.on("build",a),e.on("sign",s),e.removeListener("afterBuild",i.EventListeners.Core.SET_CONTENT_LENGTH),e.removeListener("afterBuild",i.EventListeners.Core.COMPUTE_SHA256),e.emit("beforePresign",[e]),!r){if(e.build(),e.response.error)throw e.response.error;return i.util.urlFormat(e.httpRequest.endpoint)}e.build(function(){this.response.error?r(this.response.error):r(null,i.util.urlFormat(e.httpRequest.endpoint))})}}),t.exports=i.Signers.Presign},{"../core":239}],295:[function(e,t,r){var a=e("../core"),s=a.util.inherit;a.Signers.RequestSigner=s({constructor:function(e){this.request=e},setServiceClientId:function(e){this.serviceClientId=e},getServiceClientId:function(){return this.serviceClientId}}),a.Signers.RequestSigner.getVersion=function(e){switch(e){case"v2":return a.Signers.V2;case"v3":return a.Signers.V3;case"v4":return a.Signers.V4;case"s3":return a.Signers.S3;case"v3https":return a.Signers.V3Https}throw new Error("Unknown signing version "+e)},e("./v2"),e("./v3"),e("./v3https"),e("./v4"),e("./s3"),e("./presign")},{"../core":239,"./presign":294,"./s3":296,"./v2":297,"./v3":298,"./v3https":299,"./v4":300}],296:[function(e,t,r){var a=e("../core"),s=a.util.inherit;a.Signers.S3=s(a.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"]=a.util.date.rfc822(t)),e.sessionToken&&(this.request.headers["x-amz-security-token"]=e.sessionToken);var r=this.sign(e.secretAccessKey,this.stringToSign()),s="AWS "+e.accessKeyId+":"+r;this.request.headers.Authorization=s},stringToSign:function(){var e=this.request,t=[];t.push(e.method),t.push(e.headers["Content-MD5"]||""),t.push(e.headers["Content-Type"]||""),t.push(e.headers["presigned-expires"]||"");var r=this.canonicalizedAmzHeaders();return r&&t.push(r),t.push(this.canonicalizedResource()),t.join("\n")},canonicalizedAmzHeaders:function(){var e=[];a.util.each(this.request.headers,function(t){t.match(/^x-amz-/i)&&e.push(t)}),e.sort(function(e,t){return e.toLowerCase()=0?"&":"?";this.request.path+=i+a.util.queryParamsToString(s)},authorization:function(e,t){var r=[],a=this.credentialString(t);return r.push(this.algorithm+" Credential="+e.accessKeyId+"/"+a),r.push("SignedHeaders="+this.signedHeaders()),r.push("Signature="+this.signature(e,t)),r.join(", ")},signature:function(e,t){var r=s.getSigningKey(e,t.substr(0,8),this.request.region,this.serviceName,this.signatureCache);return a.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&&(t=a.util.uriEscapePath(t)),e.push(this.request.method),e.push(t),e.push(this.request.search()),e.push(this.canonicalHeaders()+"\n"),e.push(this.signedHeaders()),e.push(this.hexEncodedBodyHash()),e.join("\n")},canonicalHeaders:function(){var e=[];a.util.each.call(this,this.request.headers,function(t,r){e.push([t,r])}),e.sort(function(e,t){return e[0].toLowerCase()50&&delete s[i.shift()]),d},emptyCache:function(){s={},i=[]}}},{"../core":239}],302:[function(e,t,r){function a(e,t){this.currentState=t||null,this.states=e||{}}a.prototype.runTo=function(e,t,r,a){"function"==typeof e&&(a=r,r=t,t=e,e=null);var s=this,i=s.states[s.currentState];i.fn.call(r||s,a,function(a){if(a){if(!i.fail)return t?t.call(r,a):null;s.currentState=i.fail}else{if(!i.accept)return t?t.call(r):null;s.currentState=i.accept}if(s.currentState===e)return t?t.call(r,a):null;s.runTo(e,t,r,a)})},a.prototype.addState=function(e,t,r,a){return"function"==typeof t?(a=t,t=null,r=null):"function"==typeof r&&(a=r,r=null),this.currentState||(this.currentState=e),this.states[e]={accept:t,fail:r,fn:a},this},t.exports=a},{}],303:[function(e,t,r){(function(r){var a,s={environment:"nodejs",engine:function(){if(s.isBrowser()&&"undefined"!=typeof navigator)return navigator.userAgent;var e=r.platform+"/"+r.version +;return r.env.AWS_EXECUTION_ENV&&(e+=" exec-env/"+r.env.AWS_EXECUTION_ENV),e},userAgent:function(){var t=s.environment,r="aws-sdk-"+t+"/"+e("./core").VERSION;return"nodejs"===t&&(r+=" "+s.engine()),r},isBrowser:function(){return r&&r.browser},isNode:function(){return!s.isBrowser()},uriEscape:function(e){var t=encodeURIComponent(e);return t=t.replace(/[^A-Za-z0-9_.~\-%]+/g,escape),t=t.replace(/[*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})},uriEscapePath:function(e){var t=[];return s.arrayEach(e.split("/"),function(e){t.push(s.uriEscape(e))}),t.join("/")},urlParse:function(e){return s.url.parse(e)},urlFormat:function(e){return s.url.format(e)},queryStringParse:function(e){return s.querystring.parse(e)},queryParamsToString:function(e){var t=[],r=s.uriEscape,a=Object.keys(e).sort();return s.arrayEach(a,function(a){var i=e[a],o=r(a),n=o+"=";if(Array.isArray(i)){var u=[];s.arrayEach(i,function(e){u.push(r(e))}),n=o+"="+u.sort().join("&"+o+"=")}else void 0!==i&&null!==i&&(n=o+"="+r(i));t.push(n)}),t.join("&")},readFileSync:function(t){return s.isBrowser()?null:e("fs").readFileSync(t,"utf-8")},base64:{encode:function(e){if("number"==typeof e)throw s.error(new Error("Cannot base64 encode number "+e));return null===e||void 0===e?e:("function"==typeof s.Buffer.from&&s.Buffer.from!==Uint8Array.from?s.Buffer.from(e):new s.Buffer(e)).toString("base64")},decode:function(e){if("number"==typeof e)throw s.error(new Error("Cannot base64 decode number "+e));return null===e||void 0===e?e:"function"==typeof s.Buffer.from&&s.Buffer.from!==Uint8Array.from?s.Buffer.from(e,"base64"):new s.Buffer(e,"base64")}},buffer:{toStream:function(e){s.Buffer.isBuffer(e)||(e=new s.Buffer(e));var t=new s.stream.Readable,r=0;return t._read=function(a){if(r>=e.length)return t.push(null);var s=r+a;s>e.length&&(s=e.length),t.push(e.slice(r,s)),r=s},t},concat:function(e){var t,r=0,a=0,i=null;for(t=0;t>>8^t[255&(r^e.readUInt8(a))]}return(-1^r)>>>0},hmac:function(e,t,r,a){return r||(r="binary"),"buffer"===r&&(r=void 0),a||(a="sha256"),"string"==typeof t&&(t=new s.Buffer(t)),s.crypto.lib.createHmac(a,e).update(t).digest(r)},md5:function(e,t,r){return s.crypto.hash("md5",e,t,r)},sha256:function(e,t,r){return s.crypto.hash("sha256",e,t,r)},hash:function(e,t,r,a){var i=s.crypto.createHash(e);r||(r="binary"),"buffer"===r&&(r=void 0),"string"==typeof t&&(t=new s.Buffer(t));var o=s.arraySliceFn(t),n=s.Buffer.isBuffer(t);if(s.isBrowser()&&"undefined"!=typeof ArrayBuffer&&t&&t.buffer instanceof ArrayBuffer&&(n=!0),a&&"object"==typeof t&&"function"==typeof t.on&&!n)t.on("data",function(e){i.update(e)}),t.on("error",function(e){a(e)}),t.on("end",function(){a(null,i.digest(r))});else{if(!a||!o||n||"undefined"==typeof FileReader){s.isBrowser()&&"object"==typeof t&&!n&&(t=new s.Buffer(new Uint8Array(t)));var u=i.update(t).digest(r);return a&&a(null,u),u}var p=0,m=new FileReader;m.onerror=function(){a(new Error("Failed to read data."))},m.onload=function(){var e=new s.Buffer(new Uint8Array(m.result));i.update(e),p+=e.length,m._continueReading()},m._continueReading=function(){if(p>=t.size)return void a(null,i.digest(r));var e=p+524288;e>t.size&&(e=t.size),m.readAsArrayBuffer(o.call(t,p,e))},m._continueReading()}},toHex:function(e){for(var t=[],r=0;r=3e5,!1),a.config.isClockSkewed},applyClockOffset:function(e){e&&(a.config.systemClockOffset=e-(new Date).getTime())},extractRequestId:function(e){var t=e.httpResponse.headers["x-amz-request-id"]||e.httpResponse.headers["x-amzn-requestid"];!t&&e.data&&e.data.ResponseMetadata&&(t=e.data.ResponseMetadata.RequestId),t&&(e.requestId=t),e.error&&(e.error.requestId=t)},addPromises:function(e,t){if(void 0===t&&a&&a.config&&(t=a.config.getPromisesDependency()),void 0===t&&"undefined"!=typeof Promise&&(t=Promise),"function"!=typeof t)var r=!0;Array.isArray(e)||(e=[e]);for(var s=0;s=500||429===a});i&&o.retryable&&(o.retryAfter=i),u(o)}})},u)};a.util.defer(p)},uuid:{v4:function(){return e("uuid").v4()}},convertPayloadToString:function(e){var t=e.request,r=t.operation,a=t.service.api.operations[r].output||{};a.payload&&e.data[a.payload]&&(e.data[a.payload]=e.data[a.payload].toString())},defer:function(e){"object"==typeof r&&"function"==typeof r.nextTick?r.nextTick(e):"function"==typeof setImmediate?setImmediate(e):setTimeout(e,0)},defaultProfile:"default",configOptInEnv:"AWS_SDK_LOAD_CONFIG",sharedCredentialsFileEnv:"AWS_SHARED_CREDENTIALS_FILE",sharedConfigFileEnv:"AWS_CONFIG_FILE"};t.exports=s}).call(this,e("_process"))},{"../apis/metadata.json":107,"./core":239,_process:453,fs:307,uuid:465}],304:[function(e,t,r){function a(){}function s(e,t){switch(t||(t={}),t.type){case"structure":return i(e,t);case"map":return o(e,t);case"list":return n(e,t);case void 0:case null:return p(e);default:return u(e,t)}}function i(e,t){var r={};return null===e?r:(m.each(t.members,function(t,a){if(a.isXmlAttribute){if(Object.prototype.hasOwnProperty.call(e.attributes,a.name)){var i=e.attributes[a.name].value;r[t]=s({textContent:i},a)}}else{var o=a.flattened?e:e.getElementsByTagName(a.name)[0];o?r[t]=s(o,a):a.flattened||"list"!==a.type||(r[t]=a.defaultValue)}}),r)}function o(e,t){for(var r={},a=t.key.name||"key",i=t.value.name||"value",o=t.flattened?t.name:"entry",n=e.firstElementChild;n;){if(n.nodeName===o){var u=n.getElementsByTagName(a)[0].textContent,p=n.getElementsByTagName(i)[0];r[u]=s(p,t.value)}n=n.nextElementSibling}return r}function n(e,t){for(var r=[],a=t.flattened?t.name:t.member.name||"member",i=e.firstElementChild;i;)i.nodeName===a&&r.push(s(i,t.member)),i=i.nextElementSibling;return r}function u(e,t){if(e.getAttribute){var r=e.getAttribute("encoding");"base64"===r&&(t=new c.create({type:r}))}var a=e.textContent;return""===a&&(a=null),"function"==typeof t.toType?t.toType(a):a}function p(e){if(void 0===e||null===e)return"";if(!e.firstElementChild)return null===e.parentNode.parentNode?{}:0===e.childNodes.length?"":e.textContent;for(var t={type:"structure",members:{}},r=e.firstElementChild;r;){var a=r.nodeName;Object.prototype.hasOwnProperty.call(t.members,a)?t.members[a].type="list":t.members[a]={name:a},r=r.nextElementSibling}return i(e,t)}var m=e("../util"),c=e("../model/shape");a.prototype.parse=function(e,t){if(""===e.replace(/^\s+/,""))return{};var r,a;try{if(window.DOMParser){try{r=(new DOMParser).parseFromString(e,"text/xml")}catch(e){throw m.error(new Error("Parse error in document"),{originalError:e,code:"XMLParserError",retryable:!0})}if(null===r.documentElement)throw m.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var i=r.getElementsByTagName("parsererror")[0];if(i&&(i.parentNode===r||"body"===i.parentNode.nodeName||i.parentNode.parentNode===r||"body"===i.parentNode.parentNode.nodeName)){var o=i.getElementsByTagName("div")[0]||i;throw m.error(new Error(o.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(r=new window.ActiveXObject("Microsoft.XMLDOM"),r.async=!1,!r.loadXML(e))throw m.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(e){a=e}if(r&&r.documentElement&&!a){var n=s(r.documentElement,t),u=r.getElementsByTagName("ResponseMetadata")[0];return u&&(n.ResponseMetadata=s(u,{})),n}if(a)throw m.error(a||new Error,{code:"XMLParserError",retryable:!0});return{}},t.exports=a},{"../model/shape":262,"../util":303}],305:[function(e,t,r){function a(){}function s(e,t,r){switch(r.type){case"structure":return i(e,t,r);case"map":return o(e,t,r);case"list":return n(e,t,r);default:return u(e,t,r)}}function i(e,t,r){m.arrayEach(r.memberNames,function(a){var i=r.members[a];if("body"===i.location){var o=t[a],n=i.name;if(void 0!==o&&null!==o)if(i.isXmlAttribute)e.att(n,o);else if(i.flattened)s(e,o,i);else{var u=e.ele(n);p(u,i),s(u,o,i)}}})}function o(e,t,r){var a=r.key.name||"key",i=r.value.name||"value";m.each(t,function(t,o){var n=e.ele(r.flattened?r.name:"entry");s(n.ele(a),t,r.key),s(n.ele(i),o,r.value)})}function n(e,t,r){r.flattened?m.arrayEach(t,function(t){var a=r.member.name||r.name;s(e.ele(a),t,r.member)}):m.arrayEach(t,function(t){var a=r.member.name||"member";s(e.ele(a),t,r.member)})}function u(e,t,r){e.txt(r.toWireFormat(t))}function p(e,t){var r,a="xmlns";t.xmlNamespaceUri?(r=t.xmlNamespaceUri,t.xmlNamespacePrefix&&(a+=":"+t.xmlNamespacePrefix)):e.isRoot&&t.api.xmlNamespaceUri&&(r=t.api.xmlNamespaceUri),r&&e.att(a,r)}var m=e("../util"),c=e("xmlbuilder");a.prototype.toXML=function(e,t,r,a){var i=c.create(r);return p(i,t),s(i,e,t),i.children.length>0||a?i.root().toString():""},t.exports=a},{"../util":303,xmlbuilder:486}],306:[function(e,t,r){"use strict";function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");return"="===e[t-2]?2:"="===e[t-1]?1:0}function s(e){return 3*e.length/4-a(e)}function i(e){var t,r,s,i,o,n=e.length;i=a(e),o=new c(3*n/4-i),r=i>0?n-4:n;var u=0;for(t=0;t>16&255,o[u++]=s>>8&255,o[u++]=255&s;return 2===i?(s=m[e.charCodeAt(t)]<<2|m[e.charCodeAt(t+1)]>>4,o[u++]=255&s):1===i&&(s=m[e.charCodeAt(t)]<<10|m[e.charCodeAt(t+1)]<<4|m[e.charCodeAt(t+2)]>>2,o[u++]=s>>8&255,o[u++]=255&s),o}function o(e){return p[e>>18&63]+p[e>>12&63]+p[e>>6&63]+p[63&e]}function n(e,t,r){for(var a,s=[],i=t;iu?u:o+16383));return 1===a?(t=e[r-1],s+=p[t>>2],s+=p[t<<4&63],s+="=="):2===a&&(t=(e[r-2]<<8)+e[r-1],s+=p[t>>10],s+=p[t>>4&63],s+=p[t<<2&63],s+="="),i.push(s),i.join("")}r.byteLength=s,r.toByteArray=i,r.fromByteArray=u;for(var p=[],m=[],c="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0,y=l.length;d=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function b(e){return+e!=e&&(e=0),i.alloc(+e)}function h(e,t){if(i.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 a=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return W(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(a)return W(e).length;t=(""+t).toLowerCase(),a=!0}}function S(e,t,r){var a=!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 E(this,t,r);case"utf8":case"utf-8":return R(this,t,r);case"ascii":return P(this,t,r);case"latin1":case"binary":return x(this,t,r);case"base64":return A(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function g(e,t,r){var a=e[t];e[t]=e[r],e[r]=a}function I(e,t,r,a,s){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=s?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(s)return-1;r=e.length-1}else if(r<0){if(!s)return-1;r=0}if("string"==typeof t&&(t=i.from(t,a)),i.isBuffer(t))return 0===t.length?-1:f(e,t,r,a,s);if("number"==typeof t)return t&=255,i.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):f(e,[t],r,a,s);throw new TypeError("val must be string, number or Buffer")}function f(e,t,r,a,s){function i(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}var o=1,n=e.length,u=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;o=2,n/=2,u/=2,r/=2}var p;if(s){var m=-1;for(p=r;pn&&(r=n-u),p=r;p>=0;p--){for(var c=!0,l=0;ls&&(a=s):a=s;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");a>i/2&&(a=i/2);for(var o=0;o239?4:i>223?3:i>191?2:1;if(s+n<=r){var u,p,m,c;switch(n){case 1:i<128&&(o=i);break;case 2:u=e[s+1],128==(192&u)&&(c=(31&i)<<6|63&u)>127&&(o=c);break;case 3:u=e[s+1],p=e[s+2],128==(192&u)&&128==(192&p)&&(c=(15&i)<<12|(63&u)<<6|63&p)>2047&&(c<55296||c>57343)&&(o=c);break;case 4:u=e[s+1],p=e[s+2],m=e[s+3],128==(192&u)&&128==(192&p)&&128==(192&m)&&(c=(15&i)<<18|(63&u)<<12|(63&p)<<6|63&m)>65535&&c<1114112&&(o=c)}}null===o?(o=65533,n=1):o>65535&&(o-=65536,a.push(o>>>10&1023|55296),o=56320|1023&o),a.push(o),s+=n}return q(a)}function q(e){var t=e.length;if(t<=$)return String.fromCharCode.apply(String,e);for(var r="",a=0;aa)&&(r=a);for(var s="",i=t;ir)throw new RangeError("Trying to access beyond buffer length")}function L(e,t,r,a,s,o){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||te.length)throw new RangeError("Index out of range")}function G(e,t,r,a){t<0&&(t=65535+t+1);for(var s=0,i=Math.min(e.length-r,2);s>>8*(a?s:1-s)}function w(e,t,r,a){t<0&&(t=4294967295+t+1);for(var s=0,i=Math.min(e.length-r,4);s>>8*(a?s:3-s)&255}function _(e,t,r,a,s,i){if(r+a>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function U(e,t,r,a,s){return s||_(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),X.write(e,t,r,a,23,4),r+4}function V(e,t,r,a,s){return s||_(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),X.write(e,t,r,a,52,8),r+8}function O(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 j(e){return e<16?"0"+e.toString(16):e.toString(16)}function W(e,t){t=t||1/0;for(var r,a=e.length,s=null,i=[],o=0;o55295&&r<57344){if(!s){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(o+1===a){(t-=3)>-1&&i.push(239,191,189);continue}s=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),s=r;continue}r=65536+(s-55296<<10|r-56320)}else s&&(t-=3)>-1&&i.push(239,191,189);if(s=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.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;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function z(e){for(var t=[],r=0;r>8,s=r%256,i.push(s),i.push(a);return i}function H(e){return J.toByteArray(O(e))}function Z(e,t,r,a){for(var s=0;s=t.length||s>=e.length);++s)t[s+r]=e[s];return s}function Q(e){return e!==e}var J=e("base64-js"),X=e("ieee754"),Y=e("isarray");r.Buffer=i,r.SlowBuffer=b,r.INSPECT_MAX_BYTES=50,i.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=a(),i.poolSize=8192,i._augment=function(e){return e.__proto__=i.prototype,e},i.from=function(e,t,r){return o(null,e,t,r)},i.TYPED_ARRAY_SUPPORT&&(i.prototype.__proto__=Uint8Array.prototype,i.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&i[Symbol.species]===i&&Object.defineProperty(i,Symbol.species,{value:null,configurable:!0})),i.alloc=function(e,t,r){return u(null,e,t,r)},i.allocUnsafe=function(e){return p(null,e)},i.allocUnsafeSlow=function(e){return p(null,e)},i.isBuffer=function(e){return!(null==e||!e._isBuffer)},i.compare=function(e,t){if(!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,a=t.length,s=0,o=Math.min(r,a);s0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""},i.prototype.compare=function(e,t,r,a,s){if(!i.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===a&&(a=0),void 0===s&&(s=this.length),t<0||r>e.length||a<0||s>this.length)throw new RangeError("out of range index");if(a>=s&&t>=r)return 0;if(a>=s)return-1;if(t>=r)return 1;if(t>>>=0,r>>>=0,a>>>=0,s>>>=0,this===e)return 0;for(var o=s-a,n=r-t,u=Math.min(o,n),p=this.slice(a,s),m=e.slice(t,r),c=0;cs)&&(r=s),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");a||(a="utf8");for(var i=!1;;)switch(a){case"hex":return N(this,e,t,r);case"utf8":case"utf-8":return T(this,e,t,r);case"ascii":return C(this,e,t,r);case"latin1":case"binary":return v(this,e,t,r);case"base64":return D(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),i=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var $=4096;i.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&&(s*=256);)a+=this[e+--t]*s;return a},i.prototype.readUInt8=function(e,t){return t||B(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return t||B(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return t||B(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return t||B(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},i.prototype.readUInt32BE=function(e,t){return t||B(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||B(e,t,this.length);for(var a=this[e],s=1,i=0;++i=s&&(a-=Math.pow(2,8*t)),a},i.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||B(e,t,this.length);for(var a=t,s=1,i=this[e+--a];a>0&&(s*=256);)i+=this[e+--a]*s;return s*=128,i>=s&&(i-=Math.pow(2,8*t)),i},i.prototype.readInt8=function(e,t){return t||B(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){t||B(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt16BE=function(e,t){t||B(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},i.prototype.readInt32LE=function(e,t){return t||B(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return t||B(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readFloatLE=function(e,t){return t||B(e,4,this.length),X.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return t||B(e,4,this.length),X.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return t||B(e,8,this.length),X.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return t||B(e,8,this.length),X.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,a){if(e=+e,t|=0,r|=0,!a){L(this,e,t,r,Math.pow(2,8*r)-1,0)}var s=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+s]=e/i&255;return t+r},i.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,1,255,0),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},i.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):G(this,e,t,!0),t+2},i.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,2,65535,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):G(this,e,t,!1),t+2},i.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):w(this,e,t,!0),t+4},i.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,4,4294967295,0),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):w(this,e,t,!1),t+4},i.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t|=0,!a){var s=Math.pow(2,8*r-1);L(this,e,t,r,s-1,-s)}var i=0,o=1,n=0;for(this[t]=255&e;++i>0)-n&255;return t+r},i.prototype.writeIntBE=function(e,t,r,a){if(e=+e,t|=0,!a){var s=Math.pow(2,8*r-1);L(this,e,t,r,s-1,-s)}var i=r-1,o=1,n=0;for(this[t+i]=255&e;--i>=0&&(o*=256);)e<0&&0===n&&0!==this[t+i+1]&&(n=1),this[t+i]=(e/o>>0)-n&255;return t+r},i.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,1,127,-128),i.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},i.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):G(this,e,t,!0),t+2},i.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,2,32767,-32768),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):G(this,e,t,!1),t+2},i.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,4,2147483647,-2147483648),i.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):w(this,e,t,!0),t+4},i.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||L(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),i.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):w(this,e,t,!1),t+4},i.prototype.writeFloatLE=function(e,t,r){return U(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return U(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return V(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return V(this,e,t,!1,r)},i.prototype.copy=function(e,t,r,a){if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a=this.length)throw new RangeError("sourceStart out of bounds");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t=0;--s)e[s+t]=this[s+r];else if(o<1e3||!i.TYPED_ARRAY_SUPPORT)for(s=0;s>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o0&&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},a.prototype.on=a.prototype.addListener,a.prototype.once=function(e,t){function r(){this.removeListener(e,r),a||(a=!0,t.apply(this,arguments))}if(!s(t))throw TypeError("listener must be a function");var a=!1;return r.listener=t,this.on(e,r),this},a.prototype.removeListener=function(e,t){var r,a,i,n;if(!s(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],i=r.length,a=-1,r===t||s(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(r)){for(n=i;n-- >0;)if(r[n]===t||r[n].listener&&r[n].listener===t){a=n;break}if(a<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(a,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},a.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],s(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},a.prototype.listeners=function(e){return this._events&&this._events[e]?s(this._events[e])?[this._events[e]]:this._events[e].slice():[]},a.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(s(t))return 1;if(t)return t.length}return 0},a.listenerCount=function(e,t){return e.listenerCount(t)}},{}],310:[function(e,t,r){r.read=function(e,t,r,a,s){var i,o,n=8*s-a-1,u=(1<>1,m=-7,c=r?s-1:0,l=r?-1:1,d=e[t+c];for(c+=l,i=d&(1<<-m)-1,d>>=-m,m+=n;m>0;i=256*i+e[t+c],c+=l,m-=8);for(o=i&(1<<-m)-1,i>>=-m,m+=a;m>0;o=256*o+e[t+c],c+=l,m-=8);if(0===i)i=1-p;else{if(i===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,a),i-=p}return(d?-1:1)*o*Math.pow(2,i-a)},r.write=function(e,t,r,a,s,i){var o,n,u,p=8*i-s-1,m=(1<>1,l=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,d=a?0:i-1,y=a?1:-1,b=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(n=isNaN(t)?1:0,o=m):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),t+=o+c>=1?l/u:l*Math.pow(2,1-c),t*u>=2&&(o++,u/=2),o+c>=m?(n=0,o=m):o+c>=1?(n=(t*u-1)*Math.pow(2,s),o+=c):(n=t*Math.pow(2,c-1)*Math.pow(2,s),o=0));s>=8;e[r+d]=255&n,d+=y,n/=256,s-=8);for(o=o<0;e[r+d]=255&o,d+=y,o/=256,p-=8);e[r+d-y]|=128*b}},{}],311:[function(e,t,r){var a={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==a.call(e)}},{}],312:[function(e,t,r){!function(e){"use strict";function t(e){return null!==e&&"[object Array]"===Object.prototype.toString.call(e)}function r(e){return null!==e&&"[object Object]"===Object.prototype.toString.call(e)}function a(e,s){if(e===s)return!0;if(Object.prototype.toString.call(e)!==Object.prototype.toString.call(s))return!1;if(!0===t(e)){if(e.length!==s.length)return!1;for(var i=0;i="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}function n(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 p(){}function m(){}function c(e){this.runtime=e}function l(e){this._interpreter=e,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[S]}]},avg:{_func:this._functionAvg,_signature:[{types:[C]}]},ceil:{_func:this._functionCeil,_signature:[{types:[S]}]},contains:{_func:this._functionContains,_signature:[{types:[I,f]},{types:[g]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[I]},{types:[I]}]},floor:{_func:this._functionFloor,_signature:[{types:[S]}]},length:{_func:this._functionLength,_signature:[{types:[I,f,N]}]},map:{_func:this._functionMap,_signature:[{types:[T]},{types:[f]}]},max:{_func:this._functionMax,_signature:[{types:[C,v]}]},merge:{_func:this._functionMerge,_signature:[{types:[N],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[f]},{types:[T]}]},sum:{_func:this._functionSum,_signature:[{types:[C]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[I]},{types:[I]}]},min:{_func:this._functionMin,_signature:[{types:[C,v]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[f]},{types:[T]}]},type:{_func:this._functionType,_signature:[{types:[g]}]},keys:{_func:this._functionKeys,_signature:[{types:[N]}]},values:{_func:this._functionValues,_signature:[{types:[N]}]},sort:{_func:this._functionSort,_signature:[{types:[v,C]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[f]},{types:[T]}]},join:{_func:this._functionJoin,_signature:[{types:[I]},{types:[v]}]},reverse:{_func:this._functionReverse,_signature:[{types:[I,f]}]},to_array:{_func:this._functionToArray,_signature:[{types:[g]}]},to_string:{_func:this._functionToString,_signature:[{types:[g]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[g]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[g],variadic:!0}]}}}function d(e){return(new m).parse(e)}function y(e){return(new p).tokenize(e)}function b(e,t){var r=new m,a=new l,s=new c(a);a._interpreter=s;var i=r.parse(t);return s.search(i,e)}var h;h="function"==typeof String.prototype.trimLeft?function(e){return e.trimLeft()}:function(e){return e.match(/^\s*(.*)/)[1]};var S=0,g=1,I=2,f=3,N=4,T=6,C=8,v=9,D={".":"Dot","*":"Star",",":"Comma",":":"Colon","{":"Lbrace","}":"Rbrace","]":"Rbracket","(":"Lparen",")":"Rparen","@":"Current"},k={"<":!0,">":!0,"=":!0,"!":!0},A={" ":!0,"\t":!0,"\n":!0};p.prototype={tokenize:function(e){var t=[];this._current=0;for(var r,a,s;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,a=e.length;"`"!==e[this._current]&&this._current=0)return!0;if(r.indexOf(e)>=0)return!0;if(!(a.indexOf(e[0])>=0))return!1;try{return JSON.parse(e),!0}catch(e){return!1}}};var R={};R.EOF=0,R.UnquotedIdentifier=0,R.QuotedIdentifier=0,R.Rbracket=0,R.Rparen=0,R.Comma=0,R.Rbrace=0,R.Number=0,R.Current=0,R.Expref=0,R.Pipe=1,R.Or=2,R.And=3,R.EQ=5,R.GT=5,R.LT=5,R.GTE=5,R.LTE=5,R.NE=5,R.Flatten=9,R.Star=20,R.Filter=21,R.Dot=40,R.Not=45,R.Lbrace=50,R.Lbracket=55,R.Lparen=60,m.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),a=new Error("Unexpected token type: "+r.type+", value: "+r.value);throw a.name="ParserError",a}return t},_loadTokens:function(e){var t=new p,r=t.tokenize(e);r.push({type:"EOF",value:"",start:e.length}),this.tokens=r},expression:function(e){var t=this._lookaheadToken(0);this._advance();for(var r=this.nud(t),a=this._lookahead(0);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(R[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),a=new Error("Sytanx error, unexpected token: "+r.value+"("+r.type+")");throw a.name="ParserError",a}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,a,s=[],i=["UnquotedIdentifier","QuotedIdentifier"];;){if(e=this._lookaheadToken(0),i.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),a={type:"KeyValuePair",name:t,value:r},s.push(a),"Comma"===this._lookahead(0))this._match("Comma");else if("Rbrace"===this._lookahead(0)){this._match("Rbrace");break}}return{type:"MultiSelectHash",children:s}}},c.prototype={search:function(e,t){return this.visit(e,t)},visit:function(e,o){var n,u,p,m,c,l,d,y,b;switch(e.type){case"Field":return null===o?null:r(o)?(l=o[e.name],void 0===l?null:l):null;case"Subexpression":for(p=this.visit(e.children[0],o),b=1;b0)for(b=I;bf;b+=N)p.push(o[b]);return p;case"Projection":var T=this.visit(e.children[0],o);if(!t(T))return null;for(y=[],b=0;bc;break;case"GTE":p=m>=c;break;case"LT":p=m=e&&(t=r<0?e-1:e),t}},l.prototype={callFunction:function(e,t){var r=this.functionTable[e];if(void 0===r)throw new Error("Unknown function: "+e+"()");return this._validateArgs(e,t,r._signature),r._func.call(this,t)},_validateArgs:function(e,t,r){var a;if(r[r.length-1].variadic){if(t.length=0;a--)r+=t[a];return r}var s=e[0].slice(0);return s.reverse(),s},_functionAbs:function(e){return Math.abs(e[0])},_functionCeil:function(e){return Math.ceil(e[0])},_functionAvg:function(e){for(var t=0,r=e[0],a=0;a=0},_functionFloor:function(e){return Math.floor(e[0])},_functionLength:function(e){return r(e[0])?Object.keys(e[0]).length:e[0].length},_functionMap:function(e){for(var t=[],r=this._interpreter,a=e[0],s=e[1],i=0;i0){if(this._getTypeName(e[0][0])===S)return Math.max.apply(Math,e[0]);for(var t=e[0],r=t[0],a=1;a0){if(this._getTypeName(e[0][0])===S)return Math.min.apply(Math,e[0]);for(var t=e[0],r=t[0],a=1;an?1:oo&&(o=r,t=s[n]);return t},_functionMinBy:function(e){for(var t,r,a=e[1],s=e[0],i=this.createKeyFunction(a,[S,I]),o=1/0,n=0;n1?r[s-1]:void 0,n=s>2?r[2]:void 0;for(o=e.length>3&&"function"==typeof o?(s--,o):void 0,n&&i(r[0],r[1],n)&&(o=s<3?void 0:o,s=1),t=Object(t);++al))return!1;var y=m.get(e);if(y&&m.get(t))return y==t;var b=-1,h=!0,S=r&u?new s:void 0;for(m.set(e,t),m.set(t,e);++b-1&&e%1==0&&e-1}var s=e("./_assocIndexOf");t.exports=a},{"./_assocIndexOf":333}],399:[function(e,t,r){function a(e,t){var r=this.__data__,a=s(r,e);return a<0?(++this.size,r.push([e,t])):r[a][1]=t,this}var s=e("./_assocIndexOf");t.exports=a},{"./_assocIndexOf":333}],400:[function(e,t,r){function a(){this.size=0,this.__data__={hash:new s,map:new(o||i),string:new s}}var s=e("./_Hash"),i=e("./_ListCache"),o=e("./_Map");t.exports=a},{"./_Hash":314,"./_ListCache":315,"./_Map":316}],401:[function(e,t,r){function a(e){var t=s(this,e).delete(e);return this.size-=t?1:0,t}var s=e("./_getMapData");t.exports=a},{"./_getMapData":375}],402:[function(e,t,r){function a(e){return s(this,e).get(e)}var s=e("./_getMapData");t.exports=a},{"./_getMapData":375}],403:[function(e,t,r){function a(e){return s(this,e).has(e)}var s=e("./_getMapData");t.exports=a},{"./_getMapData":375}],404:[function(e,t,r){function a(e,t){var r=s(this,e),a=r.size;return r.set(e,t),this.size+=r.size==a?0:1,this}var s=e("./_getMapData");t.exports=a},{"./_getMapData":375}],405:[function(e,t,r){function a(e){var t=-1,r=Array(e.size);return e.forEach(function(e,a){r[++t]=[a,e]}),r}t.exports=a},{}],406:[function(e,t,r){function a(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}t.exports=a},{}],407:[function(e,t,r){function a(e){var t=s(e,function(e){return r.size===i&&r.clear(),e}),r=t.cache;return t}var s=e("./memoize"),i=500;t.exports=a},{"./memoize":448}],408:[function(e,t,r){var a=e("./_getNative"),s=a(Object,"create");t.exports=s},{"./_getNative":377}],409:[function(e,t,r){var a=e("./_overArg"),s=a(Object.keys,Object);t.exports=s},{"./_overArg":412}],410:[function(e,t,r){var a=e("./_freeGlobal"),s="object"==typeof r&&r&&!r.nodeType&&r,i=s&&"object"==typeof t&&t&&!t.nodeType&&t,o=i&&i.exports===s,n=o&&a.process,u=function(){try{return n&&n.binding&&n.binding("util")}catch(e){}}();t.exports=u},{"./_freeGlobal":373}],411:[function(e,t,r){function a(e){return i.call(e)}var s=Object.prototype,i=s.toString;t.exports=a},{}],412:[function(e,t,r){function a(e,t){return function(r){return e(t(r))}}t.exports=a},{}],413:[function(e,t,r){function a(e,t,r){return t=i(void 0===t?e.length-1:t,0),function(){for(var a=arguments,o=-1,n=i(a.length-t,0),u=Array(n);++o0){if(++t>=s)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var s=800,i=16,o=Date.now;t.exports=a},{}],420:[function(e,t,r){function a(){this.__data__=new s,this.size=0}var s=e("./_ListCache");t.exports=a},{"./_ListCache":315}],421:[function(e,t,r){function a(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}t.exports=a},{}],422:[function(e,t,r){function a(e){return this.__data__.get(e)}t.exports=a},{}],423:[function(e,t,r){function a(e){return this.__data__.has(e)}t.exports=a},{}],424:[function(e,t,r){function a(e,t){var r=this.__data__;if(r instanceof s){var a=r.__data__;if(!i||a.length-1&&e%1==0&&e<=s}var s=9007199254740991;t.exports=a},{}],443:[function(e,t,r){function a(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}t.exports=a},{}],444:[function(e,t,r){function a(e){ +return null!=e&&"object"==typeof e}t.exports=a},{}],445:[function(e,t,r){function a(e){return"symbol"==typeof e||i(e)&&s(e)==o}var s=e("./_baseGetTag"),i=e("./isObjectLike"),o="[object Symbol]";t.exports=a},{"./_baseGetTag":343,"./isObjectLike":444}],446:[function(e,t,r){var a=e("./_baseIsTypedArray"),s=e("./_baseUnary"),i=e("./_nodeUtil"),o=i&&i.isTypedArray,n=o?s(o):a;t.exports=n},{"./_baseIsTypedArray":350,"./_baseUnary":361,"./_nodeUtil":410}],447:[function(e,t,r){function a(e){return o(e)?s(e):i(e)}var s=e("./_arrayLikeKeys"),i=e("./_baseKeys"),o=e("./isArrayLike");t.exports=a},{"./_arrayLikeKeys":328,"./_baseKeys":352,"./isArrayLike":438}],448:[function(e,t,r){function a(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(i);var r=function(){var a=arguments,s=t?t.apply(this,a):a[0],i=r.cache;if(i.has(s))return i.get(s);var o=e.apply(this,a);return r.cache=i.set(s,o)||i,o};return r.cache=new(a.Cache||s),r}var s=e("./_MapCache"),i="Expected a function";a.Cache=s,t.exports=a},{"./_MapCache":317}],449:[function(e,t,r){function a(e){return o(e)?s(n(e)):i(e)}var s=e("./_baseProperty"),i=e("./_basePropertyDeep"),o=e("./_isKey"),n=e("./_toKey");t.exports=a},{"./_baseProperty":355,"./_basePropertyDeep":356,"./_isKey":390,"./_toKey":426}],450:[function(e,t,r){function a(){return[]}t.exports=a},{}],451:[function(e,t,r){function a(){return!1}t.exports=a},{}],452:[function(e,t,r){function a(e){return null==e?"":s(e)}var s=e("./_baseToString");t.exports=a},{"./_baseToString":360}],453:[function(e,t,r){function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function i(e){if(c===setTimeout)return setTimeout(e,0);if((c===a||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function o(e){if(l===clearTimeout)return clearTimeout(e);if((l===s||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(e);try{return l(e)}catch(t){try{return l.call(null,e)}catch(t){return l.call(this,e)}}}function n(){h&&y&&(h=!1,y.length?b=y.concat(b):S=-1,b.length&&u())}function u(){if(!h){var e=i(n);h=!0;for(var t=b.length;t;){for(y=b,b=[];++S1)for(var r=1;r1&&(a=r[0]+"@",e=r[1]),e=e.replace(E,"."),a+i(e.split("."),t).join(".")}function n(e){for(var t,r,a=[],s=0,i=e.length;s=55296&&t<=56319&&s65535&&(e-=65536,t+=G(e>>>10&1023|55296),e=56320|1023&e),t+=G(e)}).join("")}function p(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:T}function m(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function c(e,t,r){var a=0;for(e=r?L(e/k):e>>1,e+=L(e/t);e>B*v>>1;a+=T)e=L(e/B);return L(a+(B+1)*e/(e+D))}function l(e){var t,r,a,i,o,n,m,l,d,y,b=[],h=e.length,S=0,g=R,I=A;for(r=e.lastIndexOf(q),r<0&&(r=0),a=0;a=128&&s("not-basic"),b.push(e.charCodeAt(a));for(i=r>0?r+1:0;i=h&&s("invalid-input"),l=p(e.charCodeAt(i++)),(l>=T||l>L((N-S)/n))&&s("overflow"),S+=l*n,d=m<=I?C:m>=I+v?v:m-I,!(lL(N/y)&&s("overflow"),n*=y;t=b.length+1,I=c(S-o,t,0==o),L(S/t)>N-g&&s("overflow"),g+=L(S/t),S%=t,b.splice(S++,0,g)}return u(b)}function d(e){var t,r,a,i,o,u,p,l,d,y,b,h,S,g,I,f=[];for(e=n(e),h=e.length,t=R,r=0,o=A,u=0;u=t&&bL((N-r)/S)&&s("overflow"),r+=(p-t)*S,t=p,u=0;uN&&s("overflow"),b==t){for(l=r,d=T;y=d<=o?C:d>=o+v?v:d-o,!(l= 0x80 (not a basic code point)","invalid-input":"Invalid input"},B=T-C,L=Math.floor,G=String.fromCharCode;if(I={version:"1.3.2",ucs2:{decode:n,encode:u},decode:l,encode:d,toASCII:b,toUnicode:y},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return I});else if(h&&S)if(t.exports==h)S.exports=I;else for(f in I)I.hasOwnProperty(f)&&(h[f]=I[f]);else a.punycode=I}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],455:[function(e,t,r){"use strict";function a(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 n=/\+/g;e=e.split(t);var u=1e3;i&&"number"==typeof i.maxKeys&&(u=i.maxKeys);var p=e.length;u>0&&p>u&&(p=u);for(var m=0;m=0?(c=b.substr(0,h),l=b.substr(h+1)):(c=b,l=""),d=decodeURIComponent(c),y=decodeURIComponent(l),a(o,d)?s(o[d])?o[d].push(y):o[d]=[o[d],y]:o[d]=y}return o};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],456:[function(e,t,r){"use strict";function a(e,t){if(e.map)return e.map(t);for(var r=[],a=0;a0&&u>n&&(u=n);for(var p=0;p=0?(m=y.substr(0,b),c=y.substr(b+1)):(m=y,c=""),l=decodeURIComponent(m),d=decodeURIComponent(c),a(i,l)?Array.isArray(i[l])?i[l].push(d):i[l]=[i[l],d]:i[l]=d}return i}},{}],459:[function(e,t,r){"use strict";var a=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,s){return t=t||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(s){var i=encodeURIComponent(a(s))+r;return Array.isArray(e[s])?e[s].map(function(e){return i+encodeURIComponent(a(e))}).join(t):i+encodeURIComponent(a(e[s]))}).join(t):s?encodeURIComponent(a(s))+r+encodeURIComponent(a(e)):""}},{}],460:[function(e,t,r){arguments[4][457][0].apply(r,arguments)},{"./decode":458,"./encode":459,dup:457}],461:[function(e,t,r){function a(){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 s(e,t,r){if(e&&p(e)&&e instanceof a)return e;var s=new a;return s.parse(e,t,r),s}function i(e){return u(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)}function o(e,t){return s(e,!1,!0).resolve(t)}function n(e,t){return e?s(e,!1,!0).resolveObject(t):t}function u(e){return"string"==typeof e}function p(e){return"object"==typeof e&&null!==e}function m(e){return null===e}function c(e){return null==e}var l=e("punycode");r.parse=s,r.resolve=o,r.resolveObject=n,r.format=i,r.Url=a;var d=/^([a-z0-9.+-]+:)/i,y=/:[0-9]*$/,b=["<",">",'"',"`"," ","\r","\n","\t"],h=["{","}","|","\\","^","`"].concat(b),S=["'"].concat(h),g=["%","/","?",";","#"].concat(S),I=["/","?","#"],f=/^[a-z0-9A-Z_-]{0,63}$/,N=/^([a-z0-9A-Z_-]{0,63})(.*)$/,T={javascript:!0,"javascript:":!0},C={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},D=e("querystring");a.prototype.parse=function(e,t,r){if(!u(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e;a=a.trim();var s=d.exec(a);if(s){s=s[0];var i=s.toLowerCase();this.protocol=i,a=a.substr(s.length)}if(r||s||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var o="//"===a.substr(0,2);!o||s&&C[s]||(a=a.substr(2),this.slashes=!0)}if(!C[s]&&(o||s&&!v[s])){for(var n=-1,p=0;p127?R+="x":R+=A[q];if(!R.match(f)){var x=h.slice(0,p),E=h.slice(p+1),M=A.match(N);M&&(x.push(M[1]),E.unshift(M[2])),E.length&&(a="/"+E.join(".")+a),this.hostname=x.join(".");break}}}if(this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),!b){for(var B=this.hostname.split("."),L=[],p=0;p0)&&r.host.split("@");h&&(r.auth=h.shift(),r.host=r.hostname=h.shift())}return r.search=e.search,r.query=e.query,m(r.pathname)&&m(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!y.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var S=y.slice(-1)[0],g=(r.host||e.host)&&("."===S||".."===S)||""===S,I=0,f=y.length;f>=0;f--)S=y[f],"."==S?y.splice(f,1):".."===S?(y.splice(f,1),I++):I&&(y.splice(f,1),I--);if(!l&&!d)for(;I--;I)y.unshift("..");!l||""===y[0]||y[0]&&"/"===y[0].charAt(0)||y.unshift(""),g&&"/"!==y.join("/").substr(-1)&&y.push("");var N=""===y[0]||y[0]&&"/"===y[0].charAt(0);if(b){r.hostname=r.host=N?"":y.length?y.shift():"";var h=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@");h&&(r.auth=h.shift(),r.host=r.hostname=h.shift())}return l=l||r.host&&y.length,l&&!N&&y.unshift(""),y.length?r.pathname=y.join("/"):(r.pathname=null,r.path=null),m(r.pathname)&&m(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=y.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},{punycode:454,querystring:457}],462:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],463:[function(e,t,r){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],464:[function(e,t,r){(function(t,a){function s(e,t){var a={seen:[],stylize:o};return arguments.length>=3&&(a.depth=arguments[2]),arguments.length>=4&&(a.colors=arguments[3]),b(t)?a.showHidden=t:t&&r._extend(a,t),N(a.showHidden)&&(a.showHidden=!1),N(a.depth)&&(a.depth=2),N(a.colors)&&(a.colors=!1),N(a.customInspect)&&(a.customInspect=!0),a.colors&&(a.stylize=i),u(a,e,a.depth)}function i(e,t){var r=s.styles[t];return r?"["+s.colors[r][0]+"m"+e+"["+s.colors[r][1]+"m":e}function o(e,t){return e}function n(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,a){if(e.customInspect&&t&&k(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var s=t.inspect(a,e);return I(s)||(s=u(e,s,a)),s}var i=p(e,t);if(i)return i;var o=Object.keys(t),b=n(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(t)),D(t)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return m(t);if(0===o.length){if(k(t)){var h=t.name?": "+t.name:"";return e.stylize("[Function"+h+"]","special")}if(T(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(v(t))return e.stylize(Date.prototype.toString.call(t),"date");if(D(t))return m(t)}var S="",g=!1,f=["{","}"];if(y(t)&&(g=!0,f=["[","]"]),k(t)){S=" [Function"+(t.name?": "+t.name:"")+"]"}if(T(t)&&(S=" "+RegExp.prototype.toString.call(t)),v(t)&&(S=" "+Date.prototype.toUTCString.call(t)),D(t)&&(S=" "+m(t)),0===o.length&&(!g||0==t.length))return f[0]+S+f[1];if(a<0)return T(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var N;return N=g?c(e,t,a,b,o):o.map(function(r){return l(e,t,a,b,r,g)}),e.seen.pop(),d(N,S,f)}function p(e,t){if(N(t))return e.stylize("undefined","undefined");if(I(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return g(t)?e.stylize(""+t,"number"):b(t)?e.stylize(""+t,"boolean"):h(t)?e.stylize("null","null"):void 0}function m(e){return"["+Error.prototype.toString.call(e)+"]"}function c(e,t,r,a,s){for(var i=[],o=0,n=t.length;o-1&&(n=i?n.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+n.split("\n").map(function(e){return" "+e}).join("\n"))):n=e.stylize("[Circular]","special")),N(o)){if(i&&s.match(/^\d+$/))return n;o=JSON.stringify(""+s),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+n}function d(e,t,r){var a=0;return e.reduce(function(e,t){return a++,t.indexOf("\n")>=0&&a++,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 y(e){return Array.isArray(e)}function b(e){return"boolean"==typeof e}function h(e){return null===e}function S(e){return null==e}function g(e){return"number"==typeof e}function I(e){return"string"==typeof e}function f(e){return"symbol"==typeof e}function N(e){return void 0===e}function T(e){return C(e)&&"[object RegExp]"===R(e)}function C(e){return"object"==typeof e&&null!==e}function v(e){return C(e)&&"[object Date]"===R(e)}function D(e){return C(e)&&("[object Error]"===R(e)||e instanceof Error)}function k(e){return"function"==typeof e}function A(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function R(e){return Object.prototype.toString.call(e)}function q(e){return e<10?"0"+e.toString(10):e.toString(10)}function P(){var e=new Date,t=[q(e.getHours()),q(e.getMinutes()),q(e.getSeconds())].join(":");return[e.getDate(),L[e.getMonth()],t].join(" ")}function x(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var E=/%[sdj%]/g;r.format=function(e){if(!I(e)){for(var t=[],r=0;r=i)return e;switch(e){case"%s":return String(a[r++]);case"%d":return Number(a[r++]);case"%j":try{return JSON.stringify(a[r++])}catch(e){return"[Circular]"}default:return e}}),n=a[r];r>>((3&t)<<3)&255;return i}}t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],468:[function(e,t,r){function a(e,t,r){var a=t&&r||0,s=t||[];e=e||{};var o=void 0!==e.clockseq?e.clockseq:u,c=void 0!==e.msecs?e.msecs:(new Date).getTime(),l=void 0!==e.nsecs?e.nsecs:m+1,d=c-p+(l-m)/1e4;if(d<0&&void 0===e.clockseq&&(o=o+1&16383),(d<0||c>p)&&void 0===e.nsecs&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");p=c,m=l,u=o,c+=122192928e5;var y=(1e4*(268435455&c)+l)%4294967296;s[a++]=y>>>24&255,s[a++]=y>>>16&255,s[a++]=y>>>8&255,s[a++]=255&y;var b=c/4294967296*1e4&268435455;s[a++]=b>>>8&255,s[a++]=255&b,s[a++]=b>>>24&15|16,s[a++]=b>>>16&255,s[a++]=o>>>8|128,s[a++]=255&o;for(var h=e.node||n,S=0;S<6;++S)s[a+S]=h[S];return t||i(s)}var s=e("./lib/rng"),i=e("./lib/bytesToUuid"),o=s(),n=[1|o[0],o[1],o[2],o[3],o[4],o[5]],u=16383&(o[6]<<8|o[7]),p=0,m=0;t.exports=a},{"./lib/bytesToUuid":466,"./lib/rng":467}],469:[function(e,t,r){function a(e,t,r){var a=t&&r||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var o=e.random||(e.rng||s)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,t)for(var n=0;n<16;++n)t[a+n]=o[n];return t||i(o)}var s=e("./lib/rng"),i=e("./lib/bytesToUuid");t.exports=a},{"./lib/bytesToUuid":466,"./lib/rng":467}],470:[function(e,t,r){(function(){var r;r=e("lodash/create"),t.exports=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing attribute name of element "+e.name);if(null==r)throw new Error("Missing attribute value for attribute "+t+" of element "+e.name);this.name=this.stringify.attName(t),this.value=this.stringify.attValue(r)}return e.prototype.clone=function(){return r(e.prototype,this)},e.prototype.toString=function(e,t){return" "+this.name+'="'+this.value+'"'},e}()}).call(this)},{"lodash/create":430}],471:[function(e,t,r){(function(){var r,a;a=e("./XMLStringifier"),e("./XMLDeclaration"),e("./XMLDocType"),r=e("./XMLElement"),t.exports=function(){function e(e,t){var s,i;if(null==e)throw new Error("Root element needs a name");null==t&&(t={}),this.options=t,this.stringify=new a(t),i=new r(this,"doc"),s=i.element(e),s.isRoot=!0,s.documentObject=this,this.rootObject=s,t.headless||(s.declaration(t),null==t.pubID&&null==t.sysID||s.doctype(t))}return e.prototype.root=function(){return this.rootObject},e.prototype.end=function(e){return this.toString(e)},e.prototype.toString=function(e){var t,r,a,s,i,o;return r=(null!=e?e.pretty:void 0)||!1,null!=(s=null!=e?e.indent:void 0)?s:" ",null!=(i=null!=e?e.offset:void 0)?i:0,t=null!=(o=null!=e?e.newline:void 0)?o:"\n",a="",null!=this.xmldec&&(a+=this.xmldec.toString(e)),null!=this.doctype&&(a+=this.doctype.toString(e)),a+=this.rootObject.toString(e),r&&a.slice(-t.length)===t&&(a=a.slice(0,-t.length)),a},e}()}).call(this)},{"./XMLDeclaration":478,"./XMLDocType":479,"./XMLElement":480,"./XMLStringifier":484}],472:[function(e,t,r){(function(){var r,a,s=function(e,t){function r(){this.constructor=e}for(var a in t)i.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i={}.hasOwnProperty;a=e("lodash/create"),r=e("./XMLNode"),t.exports=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(r)}return s(t,e),t.prototype.clone=function(){return a(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="",i&&(o+=a),o},t}(r)}).call(this)},{"./XMLNode":481,"lodash/create":430}],473:[function(e,t,r){(function(){var r,a,s=function(e,t){function r(){this.constructor=e}for(var a in t)i.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i={}.hasOwnProperty;a=e("lodash/create"),r=e("./XMLNode"),t.exports=function(e){function t(e,r){if(t.__super__.constructor.call(this,e),null==r)throw new Error("Missing comment text");this.text=this.stringify.comment(r)}return s(t,e),t.prototype.clone=function(){return a(t.prototype,this)},t.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="\x3c!-- "+this.text+" --\x3e",i&&(o+=a),o},t}(r)}).call(this)},{"./XMLNode":481,"lodash/create":430}],474:[function(e,t,r){(function(){e("lodash/create"),t.exports=function(){function e(e,t,r,a,s,i){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");if(null==r)throw new Error("Missing DTD attribute name");if(!a)throw new Error("Missing DTD attribute type");if(!s)throw new Error("Missing DTD attribute default");if(0!==s.indexOf("#")&&(s="#"+s),!s.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");if(i&&!s.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(t),this.attributeName=this.stringify.attName(r),this.attributeType=this.stringify.dtdAttType(a),this.defaultValue=this.stringify.dtdAttDefault(i),this.defaultValueType=s}return e.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="",i&&(o+=a),o},e}()}).call(this)},{"lodash/create":430}],475:[function(e,t,r){(function(){e("lodash/create"),t.exports=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing DTD element name");r||(r="(#PCDATA)"),Array.isArray(r)&&(r="("+r.join(",")+")"),this.name=this.stringify.eleName(t),this.value=this.stringify.dtdElementValue(r)}return e.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="",i&&(o+=a),o},e}()}).call(this)},{"lodash/create":430}],476:[function(e,t,r){(function(){var r;e("lodash/create"),r=e("lodash/isObject"),t.exports=function(){function e(e,t,a,s){if(this.stringify=e.stringify,null==a)throw new Error("Missing entity name");if(null==s)throw new Error("Missing entity value");if(this.pe=!!t,this.name=this.stringify.eleName(a),r(s)){if(!s.pubID&&!s.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(s.pubID&&!s.sysID)throw new Error("System identifier is required for a public external entity");if(null!=s.pubID&&(this.pubID=this.stringify.dtdPubID(s.pubID)),null!=s.sysID&&(this.sysID=this.stringify.dtdSysID(s.sysID)),null!=s.nData&&(this.nData=this.stringify.dtdNData(s.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(s)}return e.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="",i&&(o+=a),o},e}()}).call(this)},{"lodash/create":430,"lodash/isObject":443}],477:[function(e,t,r){(function(){e("lodash/create"),t.exports=function(){function e(e,t,r){if(this.stringify=e.stringify,null==t)throw new Error("Missing notation name") +;if(!r.pubID&&!r.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(t),null!=r.pubID&&(this.pubID=this.stringify.dtdPubID(r.pubID)),null!=r.sysID&&(this.sysID=this.stringify.dtdSysID(r.sysID))}return e.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="",i&&(o+=a),o},e}()}).call(this)},{"lodash/create":430}],478:[function(e,t,r){(function(){var r,a,s=function(e,t){function r(){this.constructor=e}for(var a in t)i.call(t,a)&&(e[a]=t[a]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i={}.hasOwnProperty;e("lodash/create"),a=e("lodash/isObject"),r=e("./XMLNode"),t.exports=function(e){function t(e,r,s,i){var o;t.__super__.constructor.call(this,e),a(r)&&(o=r,r=o.version,s=o.encoding,i=o.standalone),r||(r="1.0"),this.version=this.stringify.xmlVersion(r),null!=s&&(this.encoding=this.stringify.xmlEncoding(s)),null!=i&&(this.standalone=this.stringify.xmlStandalone(i))}return s(t,e),t.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m;return i=(null!=e?e.pretty:void 0)||!1,r=null!=(n=null!=e?e.indent:void 0)?n:" ",s=null!=(u=null!=e?e.offset:void 0)?u:0,a=null!=(p=null!=e?e.newline:void 0)?p:"\n",t||(t=0),m=new Array(t+s+1).join(r),o="",i&&(o+=m),o+="",i&&(o+=a),o},t}(r)}).call(this)},{"./XMLNode":481,"lodash/create":430,"lodash/isObject":443}],479:[function(e,t,r){(function(){var r,a,s,i,o,n,u,p;e("lodash/create"),p=e("lodash/isObject"),r=e("./XMLCData"),a=e("./XMLComment"),s=e("./XMLDTDAttList"),o=e("./XMLDTDEntity"),i=e("./XMLDTDElement"),n=e("./XMLDTDNotation"),u=e("./XMLProcessingInstruction"),t.exports=function(){function e(e,t,r){var a,s;this.documentObject=e,this.stringify=this.documentObject.stringify,this.children=[],p(t)&&(a=t,t=a.pubID,r=a.sysID),null==r&&(s=[t,r],r=s[0],t=s[1]),null!=t&&(this.pubID=this.stringify.dtdPubID(t)),null!=r&&(this.sysID=this.stringify.dtdSysID(r))}return e.prototype.element=function(e,t){var r;return r=new i(this,e,t),this.children.push(r),this},e.prototype.attList=function(e,t,r,a,i){var o;return o=new s(this,e,t,r,a,i),this.children.push(o),this},e.prototype.entity=function(e,t){var r;return r=new o(this,!1,e,t),this.children.push(r),this},e.prototype.pEntity=function(e,t){var r;return r=new o(this,!0,e,t),this.children.push(r),this},e.prototype.notation=function(e,t){var r;return r=new n(this,e,t),this.children.push(r),this},e.prototype.cdata=function(e){var t;return t=new r(this,e),this.children.push(t),this},e.prototype.comment=function(e){var t;return t=new a(this,e),this.children.push(t),this},e.prototype.instruction=function(e,t){var r;return r=new u(this,e,t),this.children.push(r),this},e.prototype.root=function(){return this.documentObject.root()},e.prototype.document=function(){return this.documentObject},e.prototype.toString=function(e,t){var r,a,s,i,o,n,u,p,m,c,l,d,y;if(u=(null!=e?e.pretty:void 0)||!1,s=null!=(m=null!=e?e.indent:void 0)?m:" ",n=null!=(c=null!=e?e.offset:void 0)?c:0,o=null!=(l=null!=e?e.newline:void 0)?l:"\n",t||(t=0),y=new Array(t+n+1).join(s),p="",u&&(p+=y),p+="0){for(p+=" [",u&&(p+=o),d=this.children,a=0,i=d.length;a",b&&(h+=d);else if(b&&1===this.children.length&&null!=this.children[0].value)h+=">",h+=this.children[0].value,h+="",h+=d;else{for(h+=">",b&&(h+=d),T=this.children,u=0,c=T.length;u",b&&(h+=d)}return h},t.prototype.att=function(e,t){return this.attribute(e,t)},t.prototype.ins=function(e,t){return this.instruction(e,t)},t.prototype.a=function(e,t){return this.attribute(e,t)},t.prototype.i=function(e,t){return this.instruction(e,t)},t}(a)}).call(this)},{"./XMLAttribute":470,"./XMLNode":481,"./XMLProcessingInstruction":482,"lodash/create":430,"lodash/every":432,"lodash/isFunction":441,"lodash/isObject":443}],481:[function(e,t,r){(function(){var r,a,s,i,o,n,u,p,m,c,l={}.hasOwnProperty;c=e("lodash/isObject"),m=e("lodash/isFunction"),p=e("lodash/isEmpty"),o=null,r=null,a=null,s=null,i=null,n=null,u=null,t.exports=function(){function t(t){this.parent=t,this.options=this.parent.options,this.stringify=this.parent.stringify,null===o&&(o=e("./XMLElement"),r=e("./XMLCData"),a=e("./XMLComment"),s=e("./XMLDeclaration"),i=e("./XMLDocType"),n=e("./XMLRaw"),u=e("./XMLText"))}return t.prototype.element=function(e,t,r){var a,s,i,o,n,u,d,y,b,h;if(u=null,null==t&&(t={}),t=t.valueOf(),c(t)||(b=[t,r],r=b[0],t=b[1]),null!=e&&(e=e.valueOf()),Array.isArray(e))for(i=0,d=e.length;i/))throw new Error("Invalid CDATA text: "+e);return this.assertLegalChar(e)},t.prototype.comment=function(e){if(e=""+e||"",e.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+e);return this.assertLegalChar(e)},t.prototype.raw=function(e){return""+e||""},t.prototype.attName=function(e){return""+e||""},t.prototype.attValue=function(e){return e=""+e||"",this.attEscape(e)},t.prototype.insTarget=function(e){return""+e||""},t.prototype.insValue=function(e){if(e=""+e||"",e.match(/\?>/))throw new Error("Invalid processing instruction value: "+e);return e},t.prototype.xmlVersion=function(e){if(e=""+e||"",!e.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+e);return e},t.prototype.xmlEncoding=function(e){if(e=""+e||"",!e.match(/^[A-Za-z](?:[A-Za-z0-9._-]|-)*$/))throw new Error("Invalid encoding: "+e);return e},t.prototype.xmlStandalone=function(e){return e?"yes":"no"},t.prototype.dtdPubID=function(e){return""+e||""},t.prototype.dtdSysID=function(e){return""+e||""},t.prototype.dtdElementValue=function(e){return""+e||""},t.prototype.dtdAttType=function(e){return""+e||""},t.prototype.dtdAttDefault=function(e){return null!=e?""+e||"":e},t.prototype.dtdEntityValue=function(e){return""+e||""},t.prototype.dtdNData=function(e){return""+e||""},t.prototype.convertAttKey="@",t.prototype.convertPIKey="?",t.prototype.convertTextKey="#text",t.prototype.convertCDataKey="#cdata",t.prototype.convertCommentKey="#comment",t.prototype.convertRawKey="#raw",t.prototype.assertLegalChar=function(e){var t,r;if(t=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,r=e.match(t))throw new Error("Invalid character ("+r+") in string: "+e+" at index "+r.index);return e},t.prototype.elEscape=function(e){var t;return t=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,e.replace(t,"&").replace(//g,">").replace(/\r/g," ")},t.prototype.attEscape=function(e){var t;return t=this.noDoubleEncoding?/(?!&\S+;)&/g:/&/g,e.replace(t,"&").replace(/