From 2c11b2ff8f517a8feedb36fcfe8d1b066d2ffeeb Mon Sep 17 00:00:00 2001 From: awstools Date: Wed, 13 Jan 2021 19:23:08 +0000 Subject: [PATCH] Updates SDK to v2.827.0 --- .changes/2.827.0.json | 7 ++++ CHANGELOG.md | 5 ++- README.md | 2 +- apis/frauddetector-2019-11-15.normal.json | 21 ++++++------ apis/personalize-2018-05-22.normal.json | 34 +++++++++---------- clients/frauddetector.d.ts | 38 ++++++++++----------- clients/personalize.d.ts | 40 +++++++++++------------ dist/aws-sdk-core-react-native.js | 2 +- dist/aws-sdk-react-native.js | 2 +- dist/aws-sdk.js | 6 ++-- dist/aws-sdk.min.js | 4 +-- lib/core.js | 2 +- package.json | 2 +- 13 files changed, 88 insertions(+), 77 deletions(-) create mode 100644 .changes/2.827.0.json diff --git a/.changes/2.827.0.json b/.changes/2.827.0.json new file mode 100644 index 0000000000..6802e8dbe7 --- /dev/null +++ b/.changes/2.827.0.json @@ -0,0 +1,7 @@ +[ + { + "type": "feature", + "category": "FraudDetector", + "description": "Added support for cancelling a model version that is TRAINING_IN_PROGRESS." + } +] \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 464dca5224..c9e36763d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,10 @@ # Changelog for AWS SDK for JavaScript - + +## 2.827.0 +* feature: FraudDetector: Added support for cancelling a model version that is TRAINING_IN_PROGRESS. + ## 2.826.0 * feature: AppStream: Adds support for the Smart Card Redirection feature * feature: AuditManager: This release introduces tag support for assessment frameworks. You can now add, remove, and get tags from existing frameworks, and specify the tags to apply when creating a custom framework. diff --git a/README.md b/README.md index 3c0a788dee..af776e594b 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ For release notes, see the [CHANGELOG](https://github.com/aws/aws-sdk-js/blob/ma 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/frauddetector-2019-11-15.normal.json b/apis/frauddetector-2019-11-15.normal.json index 828b594273..322857c69f 100644 --- a/apis/frauddetector-2019-11-15.normal.json +++ b/apis/frauddetector-2019-11-15.normal.json @@ -299,7 +299,7 @@ "shape": "AccessDeniedException" } ], - "documentation": "

Deletes an entity type.

You cannot delete an entity type that is included in an event type.

When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes an entity type.

You cannot delete an entity type that is included in an event type.

When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteEvent": { "name": "DeleteEvent", @@ -327,7 +327,7 @@ "shape": "ValidationException" } ], - "documentation": "

Deletes the specified event.

When you delete an event, Amazon Fraud Detector permanently deletes that event from the evaluation history, and the event data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes the specified event.

When you delete an event, Amazon Fraud Detector permanently deletes that event and the event data is no longer stored in Amazon Fraud Detector.

" }, "DeleteEventType": { "name": "DeleteEventType", @@ -355,7 +355,7 @@ "shape": "AccessDeniedException" } ], - "documentation": "

Deletes an event type.

You cannot delete an event type that is used in a detector or a model.

When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes an event type.

You cannot delete an event type that is used in a detector or a model.

When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteExternalModel": { "name": "DeleteExternalModel", @@ -411,7 +411,7 @@ "shape": "InternalServerException" } ], - "documentation": "

Deletes a label.

You cannot delete labels that are included in an event type in Amazon Fraud Detector.

You cannot delete a label assigned to an event ID. You must first delete the relevant event ID.

When you delete a label, Amazon Fraud Detector permanently deletes that label from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes a label.

You cannot delete labels that are included in an event type in Amazon Fraud Detector.

You cannot delete a label assigned to an event ID. You must first delete the relevant event ID.

When you delete a label, Amazon Fraud Detector permanently deletes that label and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteModel": { "name": "DeleteModel", @@ -439,7 +439,7 @@ "shape": "AccessDeniedException" } ], - "documentation": "

Deletes a model.

You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version.

When you delete a model, Amazon Fraud Detector permanently deletes that model from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes a model.

You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version.

When you delete a model, Amazon Fraud Detector permanently deletes that model and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteModelVersion": { "name": "DeleteModelVersion", @@ -467,7 +467,7 @@ "shape": "ConflictException" } ], - "documentation": "

Deletes a model version.

You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version.

When you delete a model version, Amazon Fraud Detector permanently deletes that model version from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes a model version.

You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version.

When you delete a model version, Amazon Fraud Detector permanently deletes that model version and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteOutcome": { "name": "DeleteOutcome", @@ -498,7 +498,7 @@ "shape": "AccessDeniedException" } ], - "documentation": "

Deletes an outcome.

You cannot delete an outcome that is used in a rule version.

When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes an outcome.

You cannot delete an outcome that is used in a rule version.

When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteRule": { "name": "DeleteRule", @@ -529,7 +529,7 @@ "shape": "AccessDeniedException" } ], - "documentation": "

Deletes the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version.

When you delete a rule, Amazon Fraud Detector permanently deletes that rule from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version.

When you delete a rule, Amazon Fraud Detector permanently deletes that rule and the data is no longer stored in Amazon Fraud Detector.

" }, "DeleteVariable": { "name": "DeleteVariable", @@ -560,7 +560,7 @@ "shape": "AccessDeniedException" } ], - "documentation": "

Deletes a variable.

You can't delete variables that are included in an event type in Amazon Fraud Detector.

Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually.

When you delete a variable, Amazon Fraud Detector permanently deletes that variable from the evaluation history, and the data is no longer stored in Amazon Fraud Detector.

" + "documentation": "

Deletes a variable.

You can't delete variables that are included in an event type in Amazon Fraud Detector.

Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually.

When you delete a variable, Amazon Fraud Detector permanently deletes that variable and the data is no longer stored in Amazon Fraud Detector.

" }, "DescribeDetector": { "name": "DescribeDetector", @@ -3366,7 +3366,8 @@ "type": "string", "enum": [ "ACTIVE", - "INACTIVE" + "INACTIVE", + "TRAINING_CANCELLED" ] }, "NameList": { diff --git a/apis/personalize-2018-05-22.normal.json b/apis/personalize-2018-05-22.normal.json index f226b8bdc7..c67b486638 100644 --- a/apis/personalize-2018-05-22.normal.json +++ b/apis/personalize-2018-05-22.normal.json @@ -73,7 +73,7 @@ "shape": "ResourceInUseException" } ], - "documentation": "

Creates a campaign by deploying a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request.

Minimum Provisioned TPS and Auto-Scaling

A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge. If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS, to maintain a 70% utilization. There's a short time delay while the capacity is increased that might cause loss of transactions. It's recommended to start with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary.

Status

A campaign can be in one of the following states:

To get the campaign status, call DescribeCampaign.

Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations.

Related APIs

", + "documentation": "

Creates a campaign by deploying a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request.

Minimum Provisioned TPS and Auto-Scaling

A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge.

If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS. There's a short time delay while the capacity is increased that might cause loss of transactions.

The actual TPS used is calculated as the average requests/second within a 5-minute window. You pay for maximum of either the minimum provisioned TPS or the actual TPS. We recommend starting with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary.

Status

A campaign can be in one of the following states:

To get the campaign status, call DescribeCampaign.

Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations.

Related APIs

", "idempotent": true }, "CreateDataset": { @@ -162,7 +162,7 @@ "shape": "ResourceInUseException" } ], - "documentation": "

Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system.

The dataset import job replaces any previous data in the dataset.

Status

A dataset import job can be in one of the following states:

To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.

Related APIs

" + "documentation": "

Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system.

The dataset import job replaces any existing data in the dataset that you imported in bulk.

Status

A dataset import job can be in one of the following states:

To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed.

Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset.

Related APIs

" }, "CreateEventTracker": { "name": "CreateEventTracker", @@ -193,7 +193,7 @@ "shape": "ResourceInUseException" } ], - "documentation": "

Creates an event tracker that you use when sending event data to the specified dataset group using the PutEvents API.

When Amazon Personalize creates an event tracker, it also creates an event-interactions dataset in the dataset group associated with the event tracker. The event-interactions dataset stores the event data from the PutEvents call. The contents of this dataset are not available to the user.

Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker.

When you send event data you include your tracking ID. The tracking ID identifies the customer and authorizes the customer to send the data.

The event tracker can be in one of the following states:

To get the status of the event tracker, call DescribeEventTracker.

The event tracker must be in the ACTIVE state before using the tracking ID.

Related APIs

", + "documentation": "

Creates an event tracker that you use when adding event data to a specified dataset group using the PutEvents API.

Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker.

When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use the PutEvents operation. Amazon Personalize then appends the event data to the Interactions dataset of the dataset group you specify in your event tracker.

The event tracker can be in one of the following states:

To get the status of the event tracker, call DescribeEventTracker.

The event tracker must be in the ACTIVE state before using the tracking ID.

Related APIs

", "idempotent": true }, "CreateFilter": { @@ -222,7 +222,7 @@ "shape": "LimitExceededException" } ], - "documentation": "

Creates a recommendation filter. For more information, see Using Filters with Amazon Personalize.

" + "documentation": "

Creates a recommendation filter. For more information, see filter.

" }, "CreateSchema": { "name": "CreateSchema", @@ -279,7 +279,7 @@ "shape": "ResourceInUseException" } ], - "documentation": "

Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created.

After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API.

To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify performAutoML and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you.

Status

A solution can be in one of the following states:

To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion.

Related APIs

" + "documentation": "

Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created.

After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API.

To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify performAutoML and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you.

Amazon Personalize doesn't support configuring the hpoObjective for solution hyperparameter optimization at this time.

Status

A solution can be in one of the following states:

To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion.

Related APIs

" }, "CreateSolutionVersion": { "name": "CreateSolutionVersion", @@ -1238,7 +1238,7 @@ "members": { "itemExplorationConfig": { "shape": "HyperParameters", - "documentation": "

A string to string map specifying the inference hyperparameters you wish to use for hyperparameter optimization. See customizing-solution-config-hpo.

" + "documentation": "

A string to string map specifying the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. See native-recipe-new-item-USER_PERSONALIZATION.

" } }, "documentation": "

The configuration details of a batch inference job.

" @@ -1363,7 +1363,7 @@ "members": { "itemExplorationConfig": { "shape": "HyperParameters", - "documentation": "

A string to string map specifying the inference hyperparameters you wish to use for hyperparameter optimization. See customizing-solution-config-hpo.

" + "documentation": "

A string to string map specifying the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide itemExplorationConfig data only if your solution uses the User-Personalization recipe.

" } }, "documentation": "

The configuration details of a campaign.

" @@ -1740,7 +1740,7 @@ }, "filterExpression": { "shape": "FilterExpression", - "documentation": "

The filter expression that designates the interaction types that the filter will filter out. A filter expression must follow the following format:

EXCLUDE itemId WHERE INTERACTIONS.event_type in (\"EVENT_TYPE\")

Where \"EVENT_TYPE\" is the type of event to filter out. To filter out all items with any interactions history, set \"*\" as the EVENT_TYPE. For more information, see Using Filters with Amazon Personalize.

" + "documentation": "

The filter expression defines which items are included or excluded from recommendations. Filter expression must follow specific format rules. For information about filter expression structure and syntax, see filter-expressions.

" } } }, @@ -1808,11 +1808,11 @@ }, "eventType": { "shape": "EventType", - "documentation": "

When your have multiple event types (using an EVENT_TYPE schema field), this parameter specifies which event type (for example, 'click' or 'like') is used for training the model.

" + "documentation": "

When your have multiple event types (using an EVENT_TYPE schema field), this parameter specifies which event type (for example, 'click' or 'like') is used for training the model.

If you do not provide an eventType, Amazon Personalize will use all interactions for training with equal weight regardless of type.

" }, "solutionConfig": { "shape": "SolutionConfig", - "documentation": "

The configuration to use with the solution. When performAutoML is set to true, Amazon Personalize only evaluates the autoMLConfig section of the solution configuration.

" + "documentation": "

The configuration to use with the solution. When performAutoML is set to true, Amazon Personalize only evaluates the autoMLConfig section of the solution configuration.

Amazon Personalize doesn't support configuring the hpoObjective at this time.

" } } }, @@ -1837,7 +1837,7 @@ }, "trainingMode": { "shape": "TrainingMode", - "documentation": "

The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one.

The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the native-recipe-hrnn-coldstart recipe.

" + "documentation": "

The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one.

The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe.

" } } }, @@ -2770,7 +2770,7 @@ }, "filterExpression": { "shape": "FilterExpression", - "documentation": "

Specifies the type of item interactions to filter out of recommendation results. The filter expression must follow the following format:

EXCLUDE itemId WHERE INTERACTIONS.event_type in (\"EVENT_TYPE\")

Where \"EVENT_TYPE\" is the type of event to filter out. For more information, see Using Filters with Amazon Personalize.

" + "documentation": "

Specifies the type of item interactions to filter out of recommendation results. The filter expression must follow specific format rules. For information about filter expression structure and syntax, see filter-expressions.

" }, "status": { "shape": "Status", @@ -2856,7 +2856,7 @@ "members": { "hpoObjective": { "shape": "HPOObjective", - "documentation": "

The metric to optimize during HPO.

" + "documentation": "

The metric to optimize during HPO.

Amazon Personalize doesn't support configuring the hpoObjective at this time.

" }, "hpoResourceConfig": { "shape": "HPOResourceConfig", @@ -2867,7 +2867,7 @@ "documentation": "

The hyperparameters and their allowable ranges.

" } }, - "documentation": "

Describes the properties for hyperparameter optimization (HPO). For use with the bring-your-own-recipe feature. Do not use for Amazon Personalize native recipes.

" + "documentation": "

Describes the properties for hyperparameter optimization (HPO).

" }, "HPOObjective": { "type": "structure", @@ -2885,7 +2885,7 @@ "documentation": "

A regular expression for finding the metric in the training job logs.

" } }, - "documentation": "

The metric to optimize during hyperparameter optimization (HPO).

" + "documentation": "

The metric to optimize during hyperparameter optimization (HPO).

Amazon Personalize doesn't support configuring the hpoObjective at this time.

" }, "HPOObjectiveType": { "type": "string", @@ -3505,7 +3505,7 @@ }, "eventType": { "shape": "EventType", - "documentation": "

The event type (for example, 'click' or 'like') that is used for training the model.

" + "documentation": "

The event type (for example, 'click' or 'like') that is used for training the model. If no eventType is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type.

" }, "solutionConfig": { "shape": "SolutionConfig", @@ -3627,7 +3627,7 @@ }, "trainingMode": { "shape": "TrainingMode", - "documentation": "

The scope of training used to create the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the training data that has changed since the creation of the last solution version. Choose UPDATE when you want to start recommending items added to the dataset without retraining the model.

The UPDATE option can only be used after you've created a solution version with the FULL option and the training solution uses the native-recipe-hrnn-coldstart.

" + "documentation": "

The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one.

The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe.

" }, "tunedHPOParams": { "shape": "TunedHPOParams", diff --git a/clients/frauddetector.d.ts b/clients/frauddetector.d.ts index 3d28fd58ed..a71d6657a6 100644 --- a/clients/frauddetector.d.ts +++ b/clients/frauddetector.d.ts @@ -84,27 +84,27 @@ declare class FraudDetector extends Service { */ deleteDetectorVersion(callback?: (err: AWSError, data: FraudDetector.Types.DeleteDetectorVersionResult) => void): Request; /** - * Deletes an entity type. You cannot delete an entity type that is included in an event type. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes an entity type. You cannot delete an entity type that is included in an event type. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector. */ deleteEntityType(params: FraudDetector.Types.DeleteEntityTypeRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteEntityTypeResult) => void): Request; /** - * Deletes an entity type. You cannot delete an entity type that is included in an event type. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes an entity type. You cannot delete an entity type that is included in an event type. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector. */ deleteEntityType(callback?: (err: AWSError, data: FraudDetector.Types.DeleteEntityTypeResult) => void): Request; /** - * Deletes the specified event. When you delete an event, Amazon Fraud Detector permanently deletes that event from the evaluation history, and the event data is no longer stored in Amazon Fraud Detector. + * Deletes the specified event. When you delete an event, Amazon Fraud Detector permanently deletes that event and the event data is no longer stored in Amazon Fraud Detector. */ deleteEvent(params: FraudDetector.Types.DeleteEventRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteEventResult) => void): Request; /** - * Deletes the specified event. When you delete an event, Amazon Fraud Detector permanently deletes that event from the evaluation history, and the event data is no longer stored in Amazon Fraud Detector. + * Deletes the specified event. When you delete an event, Amazon Fraud Detector permanently deletes that event and the event data is no longer stored in Amazon Fraud Detector. */ deleteEvent(callback?: (err: AWSError, data: FraudDetector.Types.DeleteEventResult) => void): Request; /** - * Deletes an event type. You cannot delete an event type that is used in a detector or a model. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes an event type. You cannot delete an event type that is used in a detector or a model. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector. */ deleteEventType(params: FraudDetector.Types.DeleteEventTypeRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteEventTypeResult) => void): Request; /** - * Deletes an event type. You cannot delete an event type that is used in a detector or a model. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes an event type. You cannot delete an event type that is used in a detector or a model. When you delete an entity type, Amazon Fraud Detector permanently deletes that entity type and the data is no longer stored in Amazon Fraud Detector. */ deleteEventType(callback?: (err: AWSError, data: FraudDetector.Types.DeleteEventTypeResult) => void): Request; /** @@ -116,51 +116,51 @@ declare class FraudDetector extends Service { */ deleteExternalModel(callback?: (err: AWSError, data: FraudDetector.Types.DeleteExternalModelResult) => void): Request; /** - * Deletes a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID. When you delete a label, Amazon Fraud Detector permanently deletes that label from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID. When you delete a label, Amazon Fraud Detector permanently deletes that label and the data is no longer stored in Amazon Fraud Detector. */ deleteLabel(params: FraudDetector.Types.DeleteLabelRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteLabelResult) => void): Request; /** - * Deletes a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID. When you delete a label, Amazon Fraud Detector permanently deletes that label from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a label. You cannot delete labels that are included in an event type in Amazon Fraud Detector. You cannot delete a label assigned to an event ID. You must first delete the relevant event ID. When you delete a label, Amazon Fraud Detector permanently deletes that label and the data is no longer stored in Amazon Fraud Detector. */ deleteLabel(callback?: (err: AWSError, data: FraudDetector.Types.DeleteLabelResult) => void): Request; /** - * Deletes a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model, Amazon Fraud Detector permanently deletes that model from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model, Amazon Fraud Detector permanently deletes that model and the data is no longer stored in Amazon Fraud Detector. */ deleteModel(params: FraudDetector.Types.DeleteModelRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteModelResult) => void): Request; /** - * Deletes a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model, Amazon Fraud Detector permanently deletes that model from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a model. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model, Amazon Fraud Detector permanently deletes that model and the data is no longer stored in Amazon Fraud Detector. */ deleteModel(callback?: (err: AWSError, data: FraudDetector.Types.DeleteModelResult) => void): Request; /** - * Deletes a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model version, Amazon Fraud Detector permanently deletes that model version from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model version, Amazon Fraud Detector permanently deletes that model version and the data is no longer stored in Amazon Fraud Detector. */ deleteModelVersion(params: FraudDetector.Types.DeleteModelVersionRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteModelVersionResult) => void): Request; /** - * Deletes a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model version, Amazon Fraud Detector permanently deletes that model version from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a model version. You can delete models and model versions in Amazon Fraud Detector, provided that they are not associated with a detector version. When you delete a model version, Amazon Fraud Detector permanently deletes that model version and the data is no longer stored in Amazon Fraud Detector. */ deleteModelVersion(callback?: (err: AWSError, data: FraudDetector.Types.DeleteModelVersionResult) => void): Request; /** - * Deletes an outcome. You cannot delete an outcome that is used in a rule version. When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes an outcome. You cannot delete an outcome that is used in a rule version. When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome and the data is no longer stored in Amazon Fraud Detector. */ deleteOutcome(params: FraudDetector.Types.DeleteOutcomeRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteOutcomeResult) => void): Request; /** - * Deletes an outcome. You cannot delete an outcome that is used in a rule version. When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes an outcome. You cannot delete an outcome that is used in a rule version. When you delete an outcome, Amazon Fraud Detector permanently deletes that outcome and the data is no longer stored in Amazon Fraud Detector. */ deleteOutcome(callback?: (err: AWSError, data: FraudDetector.Types.DeleteOutcomeResult) => void): Request; /** - * Deletes the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version. When you delete a rule, Amazon Fraud Detector permanently deletes that rule from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version. When you delete a rule, Amazon Fraud Detector permanently deletes that rule and the data is no longer stored in Amazon Fraud Detector. */ deleteRule(params: FraudDetector.Types.DeleteRuleRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteRuleResult) => void): Request; /** - * Deletes the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version. When you delete a rule, Amazon Fraud Detector permanently deletes that rule from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes the rule. You cannot delete a rule if it is used by an ACTIVE or INACTIVE detector version. When you delete a rule, Amazon Fraud Detector permanently deletes that rule and the data is no longer stored in Amazon Fraud Detector. */ deleteRule(callback?: (err: AWSError, data: FraudDetector.Types.DeleteRuleResult) => void): Request; /** - * Deletes a variable. You can't delete variables that are included in an event type in Amazon Fraud Detector. Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually. When you delete a variable, Amazon Fraud Detector permanently deletes that variable from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a variable. You can't delete variables that are included in an event type in Amazon Fraud Detector. Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually. When you delete a variable, Amazon Fraud Detector permanently deletes that variable and the data is no longer stored in Amazon Fraud Detector. */ deleteVariable(params: FraudDetector.Types.DeleteVariableRequest, callback?: (err: AWSError, data: FraudDetector.Types.DeleteVariableResult) => void): Request; /** - * Deletes a variable. You can't delete variables that are included in an event type in Amazon Fraud Detector. Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually. When you delete a variable, Amazon Fraud Detector permanently deletes that variable from the evaluation history, and the data is no longer stored in Amazon Fraud Detector. + * Deletes a variable. You can't delete variables that are included in an event type in Amazon Fraud Detector. Amazon Fraud Detector automatically deletes model output variables and SageMaker model output variables when you delete the model. You can't delete these variables manually. When you delete a variable, Amazon Fraud Detector permanently deletes that variable and the data is no longer stored in Amazon Fraud Detector. */ deleteVariable(callback?: (err: AWSError, data: FraudDetector.Types.DeleteVariableResult) => void): Request; /** @@ -1689,7 +1689,7 @@ declare namespace FraudDetector { */ arn?: fraudDetectorArn; } - export type ModelVersionStatus = "ACTIVE"|"INACTIVE"|string; + export type ModelVersionStatus = "ACTIVE"|"INACTIVE"|"TRAINING_CANCELLED"|string; export type NameList = string[]; export type NonEmptyListOfStrings = string[]; export interface Outcome { diff --git a/clients/personalize.d.ts b/clients/personalize.d.ts index 8847fbf623..8bbe683d07 100644 --- a/clients/personalize.d.ts +++ b/clients/personalize.d.ts @@ -20,11 +20,11 @@ declare class Personalize extends Service { */ createBatchInferenceJob(callback?: (err: AWSError, data: Personalize.Types.CreateBatchInferenceJobResponse) => void): Request; /** - * Creates a campaign by deploying a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request. Minimum Provisioned TPS and Auto-Scaling A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge. If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS, to maintain a 70% utilization. There's a short time delay while the capacity is increased that might cause loss of transactions. It's recommended to start with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary. Status A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the campaign status, call DescribeCampaign. Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations. Related APIs ListCampaigns DescribeCampaign UpdateCampaign DeleteCampaign + * Creates a campaign by deploying a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request. Minimum Provisioned TPS and Auto-Scaling A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge. If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS. There's a short time delay while the capacity is increased that might cause loss of transactions. The actual TPS used is calculated as the average requests/second within a 5-minute window. You pay for maximum of either the minimum provisioned TPS or the actual TPS. We recommend starting with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary. Status A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the campaign status, call DescribeCampaign. Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations. Related APIs ListCampaigns DescribeCampaign UpdateCampaign DeleteCampaign */ createCampaign(params: Personalize.Types.CreateCampaignRequest, callback?: (err: AWSError, data: Personalize.Types.CreateCampaignResponse) => void): Request; /** - * Creates a campaign by deploying a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request. Minimum Provisioned TPS and Auto-Scaling A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge. If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS, to maintain a 70% utilization. There's a short time delay while the capacity is increased that might cause loss of transactions. It's recommended to start with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary. Status A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the campaign status, call DescribeCampaign. Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations. Related APIs ListCampaigns DescribeCampaign UpdateCampaign DeleteCampaign + * Creates a campaign by deploying a solution version. When a client calls the GetRecommendations and GetPersonalizedRanking APIs, a campaign is specified in the request. Minimum Provisioned TPS and Auto-Scaling A transaction is a single GetRecommendations or GetPersonalizedRanking call. Transactions per second (TPS) is the throughput and unit of billing for Amazon Personalize. The minimum provisioned TPS (minProvisionedTPS) specifies the baseline throughput provisioned by Amazon Personalize, and thus, the minimum billing charge. If your TPS increases beyond minProvisionedTPS, Amazon Personalize auto-scales the provisioned capacity up and down, but never below minProvisionedTPS. There's a short time delay while the capacity is increased that might cause loss of transactions. The actual TPS used is calculated as the average requests/second within a 5-minute window. You pay for maximum of either the minimum provisioned TPS or the actual TPS. We recommend starting with a low minProvisionedTPS, track your usage using Amazon CloudWatch metrics, and then increase the minProvisionedTPS as necessary. Status A campaign can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the campaign status, call DescribeCampaign. Wait until the status of the campaign is ACTIVE before asking the campaign for recommendations. Related APIs ListCampaigns DescribeCampaign UpdateCampaign DeleteCampaign */ createCampaign(callback?: (err: AWSError, data: Personalize.Types.CreateCampaignResponse) => void): Request; /** @@ -44,27 +44,27 @@ declare class Personalize extends Service { */ createDatasetGroup(callback?: (err: AWSError, data: Personalize.Types.CreateDatasetGroupResponse) => void): Request; /** - * Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system. The dataset import job replaces any previous data in the dataset. Status A dataset import job can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed. Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset. Related APIs ListDatasetImportJobs DescribeDatasetImportJob + * Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system. The dataset import job replaces any existing data in the dataset that you imported in bulk. Status A dataset import job can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed. Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset. Related APIs ListDatasetImportJobs DescribeDatasetImportJob */ createDatasetImportJob(params: Personalize.Types.CreateDatasetImportJobRequest, callback?: (err: AWSError, data: Personalize.Types.CreateDatasetImportJobResponse) => void): Request; /** - * Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system. The dataset import job replaces any previous data in the dataset. Status A dataset import job can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed. Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset. Related APIs ListDatasetImportJobs DescribeDatasetImportJob + * Creates a job that imports training data from your data source (an Amazon S3 bucket) to an Amazon Personalize dataset. To allow Amazon Personalize to import the training data, you must specify an AWS Identity and Access Management (IAM) role that has permission to read from the data source, as Amazon Personalize makes a copy of your data and processes it in an internal AWS system. The dataset import job replaces any existing data in the dataset that you imported in bulk. Status A dataset import job can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED To get the status of the import job, call DescribeDatasetImportJob, providing the Amazon Resource Name (ARN) of the dataset import job. The dataset import is complete when the status shows as ACTIVE. If the status shows as CREATE FAILED, the response includes a failureReason key, which describes why the job failed. Importing takes time. You must wait until the status shows as ACTIVE before training a model using the dataset. Related APIs ListDatasetImportJobs DescribeDatasetImportJob */ createDatasetImportJob(callback?: (err: AWSError, data: Personalize.Types.CreateDatasetImportJobResponse) => void): Request; /** - * Creates an event tracker that you use when sending event data to the specified dataset group using the PutEvents API. When Amazon Personalize creates an event tracker, it also creates an event-interactions dataset in the dataset group associated with the event tracker. The event-interactions dataset stores the event data from the PutEvents call. The contents of this dataset are not available to the user. Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker. When you send event data you include your tracking ID. The tracking ID identifies the customer and authorizes the customer to send the data. The event tracker can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the event tracker, call DescribeEventTracker. The event tracker must be in the ACTIVE state before using the tracking ID. Related APIs ListEventTrackers DescribeEventTracker DeleteEventTracker + * Creates an event tracker that you use when adding event data to a specified dataset group using the PutEvents API. Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker. When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use the PutEvents operation. Amazon Personalize then appends the event data to the Interactions dataset of the dataset group you specify in your event tracker. The event tracker can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the event tracker, call DescribeEventTracker. The event tracker must be in the ACTIVE state before using the tracking ID. Related APIs ListEventTrackers DescribeEventTracker DeleteEventTracker */ createEventTracker(params: Personalize.Types.CreateEventTrackerRequest, callback?: (err: AWSError, data: Personalize.Types.CreateEventTrackerResponse) => void): Request; /** - * Creates an event tracker that you use when sending event data to the specified dataset group using the PutEvents API. When Amazon Personalize creates an event tracker, it also creates an event-interactions dataset in the dataset group associated with the event tracker. The event-interactions dataset stores the event data from the PutEvents call. The contents of this dataset are not available to the user. Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker. When you send event data you include your tracking ID. The tracking ID identifies the customer and authorizes the customer to send the data. The event tracker can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the event tracker, call DescribeEventTracker. The event tracker must be in the ACTIVE state before using the tracking ID. Related APIs ListEventTrackers DescribeEventTracker DeleteEventTracker + * Creates an event tracker that you use when adding event data to a specified dataset group using the PutEvents API. Only one event tracker can be associated with a dataset group. You will get an error if you call CreateEventTracker using the same dataset group as an existing event tracker. When you create an event tracker, the response includes a tracking ID, which you pass as a parameter when you use the PutEvents operation. Amazon Personalize then appends the event data to the Interactions dataset of the dataset group you specify in your event tracker. The event tracker can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the event tracker, call DescribeEventTracker. The event tracker must be in the ACTIVE state before using the tracking ID. Related APIs ListEventTrackers DescribeEventTracker DeleteEventTracker */ createEventTracker(callback?: (err: AWSError, data: Personalize.Types.CreateEventTrackerResponse) => void): Request; /** - * Creates a recommendation filter. For more information, see Using Filters with Amazon Personalize. + * Creates a recommendation filter. For more information, see filter. */ createFilter(params: Personalize.Types.CreateFilterRequest, callback?: (err: AWSError, data: Personalize.Types.CreateFilterResponse) => void): Request; /** - * Creates a recommendation filter. For more information, see Using Filters with Amazon Personalize. + * Creates a recommendation filter. For more information, see filter. */ createFilter(callback?: (err: AWSError, data: Personalize.Types.CreateFilterResponse) => void): Request; /** @@ -76,11 +76,11 @@ declare class Personalize extends Service { */ createSchema(callback?: (err: AWSError, data: Personalize.Types.CreateSchemaResponse) => void): Request; /** - * Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created. After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify performAutoML and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you. Status A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion. Related APIs ListSolutions CreateSolutionVersion DescribeSolution DeleteSolution ListSolutionVersions DescribeSolutionVersion + * Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created. After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify performAutoML and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you. Amazon Personalize doesn't support configuring the hpoObjective for solution hyperparameter optimization at this time. Status A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion. Related APIs ListSolutions CreateSolutionVersion DescribeSolution DeleteSolution ListSolutionVersions DescribeSolutionVersion */ createSolution(params: Personalize.Types.CreateSolutionRequest, callback?: (err: AWSError, data: Personalize.Types.CreateSolutionResponse) => void): Request; /** - * Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created. After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify performAutoML and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you. Status A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion. Related APIs ListSolutions CreateSolutionVersion DescribeSolution DeleteSolution ListSolutionVersions DescribeSolutionVersion + * Creates the configuration for training a model. A trained model is known as a solution. After the configuration is created, you train the model (create a solution) by calling the CreateSolutionVersion operation. Every time you call CreateSolutionVersion, a new version of the solution is created. After creating a solution version, you check its accuracy by calling GetSolutionMetrics. When you are satisfied with the version, you deploy it using CreateCampaign. The campaign provides recommendations to a client through the GetRecommendations API. To train a model, Amazon Personalize requires training data and a recipe. The training data comes from the dataset group that you provide in the request. A recipe specifies the training algorithm and a feature transformation. You can specify one of the predefined recipes provided by Amazon Personalize. Alternatively, you can specify performAutoML and Amazon Personalize will analyze your data and select the optimum USER_PERSONALIZATION recipe for you. Amazon Personalize doesn't support configuring the hpoObjective for solution hyperparameter optimization at this time. Status A solution can be in one of the following states: CREATE PENDING > CREATE IN_PROGRESS > ACTIVE -or- CREATE FAILED DELETE PENDING > DELETE IN_PROGRESS To get the status of the solution, call DescribeSolution. Wait until the status shows as ACTIVE before calling CreateSolutionVersion. Related APIs ListSolutions CreateSolutionVersion DescribeSolution DeleteSolution ListSolutionVersions DescribeSolutionVersion */ createSolution(callback?: (err: AWSError, data: Personalize.Types.CreateSolutionResponse) => void): Request; /** @@ -485,7 +485,7 @@ declare namespace Personalize { } export interface BatchInferenceJobConfig { /** - * A string to string map specifying the inference hyperparameters you wish to use for hyperparameter optimization. See customizing-solution-config-hpo. + * A string to string map specifying the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. See native-recipe-new-item-USER_PERSONALIZATION. */ itemExplorationConfig?: HyperParameters; } @@ -574,7 +574,7 @@ declare namespace Personalize { } export interface CampaignConfig { /** - * A string to string map specifying the inference hyperparameters you wish to use for hyperparameter optimization. See customizing-solution-config-hpo. + * A string to string map specifying the exploration configuration hyperparameters, including explorationWeight and explorationItemAgeCutOff, you want to use to configure the amount of item exploration Amazon Personalize uses when recommending items. Provide itemExplorationConfig data only if your solution uses the User-Personalization recipe. */ itemExplorationConfig?: HyperParameters; } @@ -824,7 +824,7 @@ declare namespace Personalize { */ datasetGroupArn: Arn; /** - * The filter expression that designates the interaction types that the filter will filter out. A filter expression must follow the following format: EXCLUDE itemId WHERE INTERACTIONS.event_type in ("EVENT_TYPE") Where "EVENT_TYPE" is the type of event to filter out. To filter out all items with any interactions history, set "*" as the EVENT_TYPE. For more information, see Using Filters with Amazon Personalize. + * The filter expression defines which items are included or excluded from recommendations. Filter expression must follow specific format rules. For information about filter expression structure and syntax, see filter-expressions. */ filterExpression: FilterExpression; } @@ -872,11 +872,11 @@ declare namespace Personalize { */ datasetGroupArn: Arn; /** - * When your have multiple event types (using an EVENT_TYPE schema field), this parameter specifies which event type (for example, 'click' or 'like') is used for training the model. + * When your have multiple event types (using an EVENT_TYPE schema field), this parameter specifies which event type (for example, 'click' or 'like') is used for training the model. If you do not provide an eventType, Amazon Personalize will use all interactions for training with equal weight regardless of type. */ eventType?: EventType; /** - * The configuration to use with the solution. When performAutoML is set to true, Amazon Personalize only evaluates the autoMLConfig section of the solution configuration. + * The configuration to use with the solution. When performAutoML is set to true, Amazon Personalize only evaluates the autoMLConfig section of the solution configuration. Amazon Personalize doesn't support configuring the hpoObjective at this time. */ solutionConfig?: SolutionConfig; } @@ -892,7 +892,7 @@ declare namespace Personalize { */ solutionArn: Arn; /** - * The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one. The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the native-recipe-hrnn-coldstart recipe. + * The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one. The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe. */ trainingMode?: TrainingMode; } @@ -1518,7 +1518,7 @@ declare namespace Personalize { */ failureReason?: FailureReason; /** - * Specifies the type of item interactions to filter out of recommendation results. The filter expression must follow the following format: EXCLUDE itemId WHERE INTERACTIONS.event_type in ("EVENT_TYPE") Where "EVENT_TYPE" is the type of event to filter out. For more information, see Using Filters with Amazon Personalize. + * Specifies the type of item interactions to filter out of recommendation results. The filter expression must follow specific format rules. For information about filter expression structure and syntax, see filter-expressions. */ filterExpression?: FilterExpression; /** @@ -1576,7 +1576,7 @@ declare namespace Personalize { } export interface HPOConfig { /** - * The metric to optimize during HPO. + * The metric to optimize during HPO. Amazon Personalize doesn't support configuring the hpoObjective at this time. */ hpoObjective?: HPOObjective; /** @@ -2018,7 +2018,7 @@ declare namespace Personalize { */ datasetGroupArn?: Arn; /** - * The event type (for example, 'click' or 'like') that is used for training the model. + * The event type (for example, 'click' or 'like') that is used for training the model. If no eventType is provided, Amazon Personalize uses all interactions for training with equal weight regardless of type. */ eventType?: EventType; /** @@ -2128,7 +2128,7 @@ declare namespace Personalize { */ trainingHours?: TrainingHours; /** - * The scope of training used to create the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the training data that has changed since the creation of the last solution version. Choose UPDATE when you want to start recommending items added to the dataset without retraining the model. The UPDATE option can only be used after you've created a solution version with the FULL option and the training solution uses the native-recipe-hrnn-coldstart. + * The scope of training to be performed when creating the solution version. The FULL option trains the solution version based on the entirety of the input solution's training data, while the UPDATE option processes only the data that has changed in comparison to the input solution. Choose UPDATE when you want to incrementally update your solution version instead of creating an entirely new one. The UPDATE option can only be used when you already have an active solution version created from the input solution using the FULL option and the input solution was trained with the User-Personalization recipe or the HRNN-Coldstart recipe. */ trainingMode?: TrainingMode; /** diff --git a/dist/aws-sdk-core-react-native.js b/dist/aws-sdk-core-react-native.js index 4e74ef954f..b890ef508b 100644 --- a/dist/aws-sdk-core-react-native.js +++ b/dist/aws-sdk-core-react-native.js @@ -83,7 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * @constant */ - VERSION: '2.826.0', + VERSION: '2.827.0', /** * @api private diff --git a/dist/aws-sdk-react-native.js b/dist/aws-sdk-react-native.js index cb0619426b..59568eefcf 100644 --- a/dist/aws-sdk-react-native.js +++ b/dist/aws-sdk-react-native.js @@ -395,7 +395,7 @@ return /******/ (function(modules) { // webpackBootstrap /** * @constant */ - VERSION: '2.826.0', + VERSION: '2.827.0', /** * @api private diff --git a/dist/aws-sdk.js b/dist/aws-sdk.js index c87df5f09f..ce18aba29b 100644 --- a/dist/aws-sdk.js +++ b/dist/aws-sdk.js @@ -1,4 +1,4 @@ -// AWS SDK for JavaScript v2.826.0 +// AWS SDK for JavaScript v2.827.0 // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // License at https://sdk.amazonaws.com/js/BUNDLE_LICENSE.txt (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i-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:i,convertToBuffer:a}},{"buffer/":412}],321:[function(e,t,r){function i(e,t){this.hash=new e,this.outer=new e;var r=a(e,t),i=new Uint8Array(e.BLOCK_SIZE);i.set(r);for(var s=0;se.BLOCK_SIZE){var i=new e;i.update(r),r=i.digest()}var a=new Uint8Array(e.BLOCK_SIZE);return a.set(r),a}var s=e("./browserHashUtils");t.exports=i,i.prototype.update=function(e){if(s.isEmptyData(e)||this.error)return this;try{this.hash.update(s.convertToBuffer(e))}catch(e){this.error=e}return this},i.prototype.digest=function(e){return this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest(e)}},{"./browserHashUtils":320}],322:[function(e,t,r){function i(){this.state=[1732584193,4023233417,2562383102,271733878],this.buffer=new DataView(new ArrayBuffer(c)),this.bufferLength=0,this.bytesHashed=0,this.finished=!1}function a(e,t,r,i,a,s){return((t=(t+e&4294967295)+(i+s&4294967295)&4294967295)<>>32-a)+r&4294967295}function s(e,t,r,i,s,o,n){return a(t&r|~t&i,e,t,s,o,n)}function o(e,t,r,i,s,o,n){return a(t&i|r&~i,e,t,s,o,n)}function n(e,t,r,i,s,o,n){return a(t^r^i,e,t,s,o,n)}function u(e,t,r,i,s,o,n){return a(r^(t|~i),e,t,s,o,n)}var p=e("./browserHashUtils"),m=e("buffer/").Buffer,c=64;t.exports=i,i.BLOCK_SIZE=c,i.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,i=t.byteLength;for(this.bytesHashed+=i;i>0;)this.buffer.setUint8(this.bufferLength++,t[r++]),i--,this.bufferLength===c&&(this.hashBuffer(),this.bufferLength=0);return this},i.prototype.digest=function(e){if(!this.finished){var t=this,r=t.buffer,i=t.bufferLength,a=t.bytesHashed,s=8*a;if(r.setUint8(this.bufferLength++,128),i%c>=c-8){for(var o=this.bufferLength;o>>0,!0),r.setUint32(c-4,Math.floor(s/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},i.prototype.hashBuffer=function(){var e=this,t=e.buffer,r=e.state,i=r[0],a=r[1],p=r[2],m=r[3];i=s(i,a,p,m,t.getUint32(0,!0),7,3614090360),m=s(m,i,a,p,t.getUint32(4,!0),12,3905402710),p=s(p,m,i,a,t.getUint32(8,!0),17,606105819),a=s(a,p,m,i,t.getUint32(12,!0),22,3250441966),i=s(i,a,p,m,t.getUint32(16,!0),7,4118548399),m=s(m,i,a,p,t.getUint32(20,!0),12,1200080426),p=s(p,m,i,a,t.getUint32(24,!0),17,2821735955),a=s(a,p,m,i,t.getUint32(28,!0),22,4249261313),i=s(i,a,p,m,t.getUint32(32,!0),7,1770035416),m=s(m,i,a,p,t.getUint32(36,!0),12,2336552879),p=s(p,m,i,a,t.getUint32(40,!0),17,4294925233),a=s(a,p,m,i,t.getUint32(44,!0),22,2304563134),i=s(i,a,p,m,t.getUint32(48,!0),7,1804603682),m=s(m,i,a,p,t.getUint32(52,!0),12,4254626195),p=s(p,m,i,a,t.getUint32(56,!0),17,2792965006),a=s(a,p,m,i,t.getUint32(60,!0),22,1236535329),i=o(i,a,p,m,t.getUint32(4,!0),5,4129170786),m=o(m,i,a,p,t.getUint32(24,!0),9,3225465664),p=o(p,m,i,a,t.getUint32(44,!0),14,643717713),a=o(a,p,m,i,t.getUint32(0,!0),20,3921069994),i=o(i,a,p,m,t.getUint32(20,!0),5,3593408605),m=o(m,i,a,p,t.getUint32(40,!0),9,38016083),p=o(p,m,i,a,t.getUint32(60,!0),14,3634488961),a=o(a,p,m,i,t.getUint32(16,!0),20,3889429448),i=o(i,a,p,m,t.getUint32(36,!0),5,568446438),m=o(m,i,a,p,t.getUint32(56,!0),9,3275163606),p=o(p,m,i,a,t.getUint32(12,!0),14,4107603335),a=o(a,p,m,i,t.getUint32(32,!0),20,1163531501),i=o(i,a,p,m,t.getUint32(52,!0),5,2850285829),m=o(m,i,a,p,t.getUint32(8,!0),9,4243563512),p=o(p,m,i,a,t.getUint32(28,!0),14,1735328473),a=o(a,p,m,i,t.getUint32(48,!0),20,2368359562),i=n(i,a,p,m,t.getUint32(20,!0),4,4294588738),m=n(m,i,a,p,t.getUint32(32,!0),11,2272392833),p=n(p,m,i,a,t.getUint32(44,!0),16,1839030562),a=n(a,p,m,i,t.getUint32(56,!0),23,4259657740),i=n(i,a,p,m,t.getUint32(4,!0),4,2763975236),m=n(m,i,a,p,t.getUint32(16,!0),11,1272893353),p=n(p,m,i,a,t.getUint32(28,!0),16,4139469664),a=n(a,p,m,i,t.getUint32(40,!0),23,3200236656),i=n(i,a,p,m,t.getUint32(52,!0),4,681279174),m=n(m,i,a,p,t.getUint32(0,!0),11,3936430074),p=n(p,m,i,a,t.getUint32(12,!0),16,3572445317),a=n(a,p,m,i,t.getUint32(24,!0),23,76029189),i=n(i,a,p,m,t.getUint32(36,!0),4,3654602809),m=n(m,i,a,p,t.getUint32(48,!0),11,3873151461),p=n(p,m,i,a,t.getUint32(60,!0),16,530742520),a=n(a,p,m,i,t.getUint32(8,!0),23,3299628645),i=u(i,a,p,m,t.getUint32(0,!0),6,4096336452),m=u(m,i,a,p,t.getUint32(28,!0),10,1126891415),p=u(p,m,i,a,t.getUint32(56,!0),15,2878612391),a=u(a,p,m,i,t.getUint32(20,!0),21,4237533241),i=u(i,a,p,m,t.getUint32(48,!0),6,1700485571),m=u(m,i,a,p,t.getUint32(12,!0),10,2399980690),p=u(p,m,i,a,t.getUint32(40,!0),15,4293915773),a=u(a,p,m,i,t.getUint32(4,!0),21,2240044497),i=u(i,a,p,m,t.getUint32(32,!0),6,1873313359),m=u(m,i,a,p,t.getUint32(60,!0),10,4264355552),p=u(p,m,i,a,t.getUint32(24,!0),15,2734768916),a=u(a,p,m,i,t.getUint32(52,!0),21,1309151649),i=u(i,a,p,m,t.getUint32(16,!0),6,4149444226),m=u(m,i,a,p,t.getUint32(44,!0),10,3174756917),p=u(p,m,i,a,t.getUint32(8,!0),15,718787259),a=u(a,p,m,i,t.getUint32(36,!0),21,3951481745),r[0]=i+r[0]&4294967295,r[1]=a+r[1]&4294967295,r[2]=p+r[2]&4294967295,r[3]=m+r[3]&4294967295}},{"./browserHashUtils":320,"buffer/":412}],323:[function(e,t,r){function i(){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 a=e("buffer/").Buffer,s=e("./browserHashUtils");new Uint32Array([1518500249,1859775393,-1894007588,-899497514]),Math.pow(2,53);t.exports=i,i.BLOCK_SIZE=64,i.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(s.isEmptyData(e))return this;e=s.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 a(20),i=new DataView(r.buffer);return i.setUint32(0,this.h0,!1),i.setUint32(4,this.h1,!1),i.setUint32(8,this.h2,!1),i.setUint32(12,this.h3,!1),i.setUint32(16,this.h4,!1),e?r.toString(e):r},i.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,i,a=this.h0,s=this.h1,o=this.h2,n=this.h3,u=this.h4;for(e=0;e<80;e++){e<20?(r=n^s&(o^n),i=1518500249):e<40?(r=s^o^n,i=1859775393):e<60?(r=s&o|n&(s|o),i=2400959708):(r=s^o^n,i=3395469782);var p=(a<<5|a>>>27)+r+u+i+(0|this.block[e]);u=n,n=o,o=s<<30|s>>>2,s=a,a=p}for(this.h0=this.h0+a|0,this.h1=this.h1+s|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":320,"buffer/":412}],324:[function(e,t,r){function i(){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 a=e("buffer/").Buffer,s=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=i,i.BLOCK_SIZE=64,i.prototype.update=function(e){if(this.finished)throw new Error("Attempted to update an already finished hash.");if(s.isEmptyData(e))return this;e=s.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},i.prototype.digest=function(e){if(!this.finished){var t=8*this.bytesHashed,r=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),i=this.bufferLength;if(r.setUint8(this.bufferLength++,128),i%64>=56){for(var s=this.bufferLength;s<64;s++)r.setUint8(s,0);this.hashBuffer(),this.bufferLength=0}for(var s=this.bufferLength;s<56;s++)r.setUint8(s,0);r.setUint32(56,Math.floor(t/4294967296),!0),r.setUint32(60,t),this.hashBuffer(),this.finished=!0}for(var o=new a(32),s=0;s<8;s++)o[4*s]=this.state[s]>>>24&255,o[4*s+1]=this.state[s]>>>16&255,o[4*s+2]=this.state[s]>>>8&255,o[4*s+3]=this.state[s]>>>0&255;return e?o.toString(e):o},i.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,r=e.state,i=r[0],a=r[1],s=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 S=(((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,h=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&a^i&s^a&s)|0;c=m,m=p,p=u,u=n+S|0,n=s,s=a,a=i,i=S+h|0}r[0]+=i,r[1]+=a,r[2]+=s,r[3]+=n,r[4]+=u,r[5]+=p,r[6]+=m,r[7]+=c}},{"./browserHashUtils":320,"buffer/":412}],325:[function(e,t,r){(function(r){(function(){var r=e("./util");r.crypto.lib=e("./browserCryptoLib"),r.Buffer=e("buffer/").Buffer,r.url=e("url/"),r.querystring=e("querystring/"),r.realClock=e("./realclock/browserClock"),r.environment="js",r.createEventStream=e("./event-stream/buffered-create-event-stream").createEventStream,r.isBrowser=function(){return!0},r.isNode=function(){return!1};var i=e("./core");if(t.exports=i,e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/chainable_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===a)var a={browser:!0}}).call(this)}).call(this,e("_process"))},{"./browserCryptoLib":319,"./core":329,"./credentials":330,"./credentials/chainable_temporary_credentials":331,"./credentials/cognito_identity_credentials":332,"./credentials/credential_provider_chain":333,"./credentials/saml_credentials":334,"./credentials/temporary_credentials":335,"./credentials/web_identity_credentials":336,"./event-stream/buffered-create-event-stream":344,"./http/xhr":352,"./realclock/browserClock":371,"./util":403,"./xml/browser_parser":404,_process:417,"buffer/":412,"querystring/":424,"url/":426}],326:[function(e,t,r){var i=e("../core"),a=i.util.url,s=i.util.crypto.lib,o=i.util.base64.encode,n=i.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"))},m=function(e,t,r,i){var a=JSON.stringify({Statement:[{Resource:e,Condition:{DateLessThan:{"AWS:EpochTime":t}}}]});return{Expires:t,"Key-Pair-Id":r,Signature:p(a.toString(),i)}},c=function(e,t,r){return e=e.replace(/\s/gm,""),{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=a.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)},S=function(e,t){if(!t||"function"!=typeof t)return e;t(null,e)};i.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),i={};for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(i["CloudFront-"+a]=r[a]);return S(i,t)},getSignedUrl:function(e,t){try{var r=y(e.url)}catch(e){return b(e,t)}var i=a.parse(e.url,!0),s=Object.prototype.hasOwnProperty.call(e,"policy")?c(e.policy,this.keyPairId,this.privateKey):m(r,e.expires,this.keyPairId,this.privateKey);i.search=null;for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(i.query[o]=s[o]);try{var n="rtmp"===l(e.url)?d(a.format(i)):a.format(i)}catch(e){return b(e,t)}return S(n,t)}}),t.exports=i.CloudFront.Signer},{"../core":329}],327:[function(e,t,r){var i=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var a;i.Config=i.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),i.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:a.credentials)}function r(e,t){return new i.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var a=this;a.credentials?"function"==typeof a.credentials.get?function(){a.credentials.get(function(e){e&&(e=r("Could not load credentials from "+a.credentials.constructor.name,e)),t(e)})}():function(){var e=null;a.credentials.accessKeyId&&a.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}():a.credentialProvider?a.credentialProvider.resolve(function(e,i){e&&(e=r("Could not load credentials from any providers",e)),a.credentials=i,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),i.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||i.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(i.util.readFileSync(e)),r=new i.FileSystemCredentials(e),a=new i.CredentialProviderChain;return a.providers.unshift(r),a.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){i.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]=i.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:"legacy",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:"legacy"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=i.util.copy(e),e.credentials=new i.Credentials(e)),e},setPromisesDependency:function(e){a=e,null===e&&"function"==typeof Promise&&(a=Promise);var t=[i.Request,i.Credentials,i.CredentialProviderChain];i.S3&&(t.push(i.S3),i.S3.ManagedUpload&&t.push(i.S3.ManagedUpload)),i.util.addPromises(t,a)},getPromisesDependency:function(){return a}}),i.config=new i.Config},{"./core":329,"./credentials":330,"./credentials/credential_provider_chain":333}],328:[function(e,t,r){(function(r){(function(){function i(e,t){if("string"==typeof e){if(["legacy","regional"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw s.util.error(new Error,t)}}function a(e,t){e=e||{};var a;if(e[t.clientConfig]&&(a=i(e[t.clientConfig],{code:"InvalidConfiguration",message:'invalid "'+t.clientConfig+'" configuration. Expect "legacy" or "regional". Got "'+e[t.clientConfig]+'".'})))return a;if(!s.util.isNode())return a;if(Object.prototype.hasOwnProperty.call(r.env,t.env)){if(a=i(r.env[t.env],{code:"InvalidEnvironmentalVariable",message:"invalid "+t.env+' environmental variable. Expect "legacy" or "regional". Got "'+r.env[t.env]+'".'}))return a}var o={};try{o=s.util.getProfilesFromSharedConfig(s.util.iniLoader)[r.env.AWS_PROFILE||s.util.defaultProfile]}catch(e){}if(o&&Object.prototype.hasOwnProperty.call(o,t.sharedConfig)){if(a=i(o[t.sharedConfig],{code:"InvalidConfiguration",message:"invalid "+t.sharedConfig+' profile config. Expect "legacy" or "regional". Got "'+o[t.sharedConfig]+'".'}))return a}return a}var s=e("./core");t.exports=a}).call(this)}).call(this,e("_process"))},{"./core":329,_process:417}],329:[function(e,t,r){var i={util:e("./util")};({}).toString(),t.exports=i,i.util.update(i,{VERSION:"2.826.0",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},apiLoader:e("./api_loader"),EndpointCache:e("../vendor/endpoint-cache").EndpointCache}),e("./sequential_executor"),e("./service"),e("./config"),e("./http"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),i.events=new i.SequentialExecutor,i.util.memoizedProperty(i,"endpointCache",function(){return new i.EndpointCache(i.config.endpointCacheSize)},!0)},{"../vendor/endpoint-cache":435,"./api_loader":318,"./config":327,"./event_listeners":350,"./http":351,"./json/builder":353,"./json/parser":354,"./model/api":355,"./model/operation":357,"./model/paginator":358,"./model/resource_waiter":359,"./model/shape":360,"./param_validator":361,"./protocol/json":364,"./protocol/query":365,"./protocol/rest":366,"./protocol/rest_json":367,"./protocol/rest_xml":368,"./request":374,"./resource_waiter":375,"./response":376,"./sequential_executor":378,"./service":379,"./signers/request_signer":395,"./util":403,"./xml/builder":405}],330:[function(e,t,r){var i=e("./core");i.Credentials=i.util.inherit({constructor:function(){if(i.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=i.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){i.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):i.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),i.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=i.util.promisifyMethod("get",e),this.prototype.refreshPromise=i.util.promisifyMethod("refresh",e)},i.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},i.util.addPromises(i.Credentials)},{"./core":329}],331:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.ChainableTemporaryCredentials=i.util.inherit(i.Credentials,{constructor:function(e){i.Credentials.call(this),e=e||{},this.errorCode="ChainableTemporaryCredentialsProviderFailure",this.expired=!0,this.tokenCodeFn=null;var t=i.util.copy(e.params)||{};if(t.RoleArn&&(t.RoleSessionName=t.RoleSessionName||"temporary-credentials"),t.SerialNumber){if(!e.tokenCodeFn||"function"!=typeof e.tokenCodeFn)throw new i.util.error(new Error("tokenCodeFn must be a function when params.SerialNumber is given"),{code:this.errorCode});this.tokenCodeFn=e.tokenCodeFn}var r=i.util.merge({params:t,credentials:e.masterCredentials||i.config.credentials},e.stsConfig||{});this.service=new a(r)},refresh:function(e){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this,r=t.service.config.params.RoleArn?"assumeRole":"getSessionToken";this.getTokenCode(function(i,a){var s={};if(i)return void e(i);a&&(s.TokenCode=a),t.service[r](s,function(r,i){r||t.service.credentialsFrom(i,t),e(r)})})},getTokenCode:function(e){var t=this;this.tokenCodeFn?this.tokenCodeFn(this.service.config.params.SerialNumber,function(r,a){if(r){var s=r;return r instanceof Error&&(s=r.message),void e(i.util.error(new Error("Error fetching MFA token: "+s),{code:t.errorCode}))}e(null,a)}):e(null)}})},{"../../clients/sts":313,"../core":329}],332:[function(e,t,r){var i=e("../core"),a=e("../../clients/cognitoidentity"),s=e("../../clients/sts");i.CognitoIdentityCredentials=i.util.inherit(i.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e,t){i.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=i.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){this.coalesceRefresh(e||i.util.fn.callback)},load: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,i){!r&&i.IdentityId?(t.params.IdentityId=i.IdentityId,e(null,i.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,i){r?t.clearIdOnNotAuthorized(r):(t.cacheId(i),t.data=i,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,i){r?(t.clearIdOnNotAuthorized(r),e(r)):(t.cacheId(i),t.params.WebIdentityToken=i.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(i.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 i.WebIdentityCredentials(this.params,e),!this.cognito){var t=i.util.merge({},e);t.params=this.params,this.cognito=new a(t)}this.sts=this.sts||new s(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,i.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=i.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":247,"../../clients/sts":313,"../core":329}],333:[function(e,t,r){var i=e("../core");i.CredentialProviderChain=i.util.inherit(i.Credentials,{constructor:function(e){this.providers=e||i.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,o){if(!e&&o||a===s.length)return i.util.arrayEach(r.resolveCallbacks,function(t){t(e,o)}),void(r.resolveCallbacks.length=0);var n=s[a++];o="function"==typeof n?n.call():n,o.get?o.get(function(e){t(e,e?null:o)}):t(null,o)}var r=this;if(0===r.providers.length)return e(new Error("No providers")),r;if(1===r.resolveCallbacks.push(e)){var a=0,s=r.providers.slice(0);t()}return r}}),i.CredentialProviderChain.defaultProviders=[],i.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=i.util.promisifyMethod("resolve",e)},i.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},i.util.addPromises(i.CredentialProviderChain)},{"../core":329}],334:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.SAMLCredentials=i.util.inherit(i.Credentials,{constructor:function(e){i.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithSAML(function(r,i){r||t.service.credentialsFrom(i,t),e(r)})},createClients:function(){this.service=this.service||new a({params:this.params})}})},{"../../clients/sts":313,"../core":329}],335:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.TemporaryCredentials=i.util.inherit(i.Credentials,{constructor:function(e,t){i.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){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.masterCredentials.get(function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,function(r,i){r||t.service.credentialsFrom(i,t),e(r)})})},loadMasterCredentials:function(e){for(this.masterCredentials=e||i.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;"function"!=typeof this.masterCredentials.get&&(this.masterCredentials=new i.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new a({params:this.params})}})},{"../../clients/sts":313,"../core":329}],336:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.WebIdentityCredentials=i.util.inherit(i.Credentials,{constructor:function(e,t){i.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null,this._clientConfig=i.util.copy(t||{})},refresh:function(e){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithWebIdentity(function(r,i){t.data=null,r||(t.data=i,t.service.credentialsFrom(i,t)),e(r)})},createClients:function(){if(!this.service){var e=i.util.merge({},this._clientConfig);e.params=this.params,this.service=new a(e)}}})},{"../../clients/sts":313,"../core":329}],337:[function(e,t,r){(function(r){(function(){function i(e){var t=e.service,r=t.api||{},i={};return t.config.region&&(i.region=t.config.region),r.serviceId&&(i.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(i.accessKeyId=t.config.credentials.accessKeyId),i}function a(e,t,r){r&&void 0!==t&&null!==t&&"structure"===r.type&&r.required&&r.required.length>0&&b.arrayEach(r.required,function(i){var s=r.members[i];if(!0===s.endpointDiscoveryId){var o=s.isLocationName?s.name:i;e[o]=String(t[i])}else a(e,t[i],s)})}function s(e,t){var r={};return a(r,e.params,t),r}function o(e){var t=e.service,r=t.api,a=r.operations?r.operations[e.operation]:void 0,o=a?a.input:void 0,n=s(e,o),p=i(e);Object.keys(n).length>0&&(p=b.update(p,n),a&&(p.operation=a.name));var m=y.endpointCache.get(p);if(!m||1!==m.length||""!==m[0].Address)if(m&&m.length>0)e.httpRequest.updateEndpoint(m[0].Address);else{var c=t.makeRequest(r.endpointOperation,{Operation:a.name,Identifiers:n});u(c),c.removeListener("validate",y.EventListeners.Core.VALIDATE_PARAMETERS),c.removeListener("retry",y.EventListeners.Core.RETRY_CHECK),y.endpointCache.put(p,[{Address:"",CachePeriodInMinutes:1}]),c.send(function(e,t){t&&t.Endpoints?y.endpointCache.put(p,t.Endpoints):e&&y.endpointCache.put(p,[{Address:"",CachePeriodInMinutes:1}])})}}function n(e,t){var r=e.service,a=r.api,o=a.operations?a.operations[e.operation]:void 0,n=o?o.input:void 0,p=s(e,n),m=i(e);Object.keys(p).length>0&&(m=b.update(m,p),o&&(m.operation=o.name));var c=y.EndpointCache.getKeyString(m),l=y.endpointCache.get(c);if(l&&1===l.length&&""===l[0].Address)return h[c]||(h[c]=[]),void h[c].push({request:e,callback:t});if(l&&l.length>0)e.httpRequest.updateEndpoint(l[0].Address),t();else{var d=r.makeRequest(a.endpointOperation,{Operation:o.name,Identifiers:p});d.removeListener("validate",y.EventListeners.Core.VALIDATE_PARAMETERS),u(d),y.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:60}]),d.send(function(r,i){if(r){if(e.response.error=b.error(r,{retryable:!1}),y.endpointCache.remove(m),h[c]){var a=h[c];b.arrayEach(a,function(e){e.request.response.error=b.error(r,{retryable:!1}),e.callback()}),delete h[c]}}else if(i&&(y.endpointCache.put(c,i.Endpoints),e.httpRequest.updateEndpoint(i.Endpoints[0].Address),h[c])){var a=h[c];b.arrayEach(a,function(e){e.request.httpRequest.updateEndpoint(i.Endpoints[0].Address),e.callback()}),delete h[c]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=r)}function p(e){var t=e.error,r=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===r.statusCode)){var a=e.request,o=a.service.api.operations||{},n=o[a.operation]?o[a.operation].input:void 0,u=s(a,n),p=i(a);Object.keys(u).length>0&&(p=b.update(p,u),o[a.operation]&&(p.operation=o[a.operation].name)),y.endpointCache.remove(p)}}function m(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw b.error(new Error,{code:"ConfigurationException",message:"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true."});var t=y.config[e.serviceIdentifier]||{};return Boolean(y.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function c(e){return["false","0"].indexOf(e)>=0}function l(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!b.isBrowser()){for(var i=0;i>>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,h=((i>>>2|i<<30)^(i>>>13|i<<19)^(i>>>22|i<<10))+(i&a^i&s^a&s)|0;c=m,m=p,p=u,u=n+S|0,n=s,s=a,a=i,i=S+h|0}r[0]+=i,r[1]+=a,r[2]+=s,r[3]+=n,r[4]+=u,r[5]+=p,r[6]+=m,r[7]+=c}},{"./browserHashUtils":320,"buffer/":412}],325:[function(e,t,r){(function(r){(function(){var r=e("./util");r.crypto.lib=e("./browserCryptoLib"),r.Buffer=e("buffer/").Buffer,r.url=e("url/"),r.querystring=e("querystring/"),r.realClock=e("./realclock/browserClock"),r.environment="js",r.createEventStream=e("./event-stream/buffered-create-event-stream").createEventStream,r.isBrowser=function(){return!0},r.isNode=function(){return!1};var i=e("./core");if(t.exports=i,e("./credentials"),e("./credentials/credential_provider_chain"),e("./credentials/temporary_credentials"),e("./credentials/chainable_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===a)var a={browser:!0}}).call(this)}).call(this,e("_process"))},{"./browserCryptoLib":319,"./core":329,"./credentials":330,"./credentials/chainable_temporary_credentials":331,"./credentials/cognito_identity_credentials":332,"./credentials/credential_provider_chain":333,"./credentials/saml_credentials":334,"./credentials/temporary_credentials":335,"./credentials/web_identity_credentials":336,"./event-stream/buffered-create-event-stream":344,"./http/xhr":352,"./realclock/browserClock":371,"./util":403,"./xml/browser_parser":404,_process:417,"buffer/":412,"querystring/":424,"url/":426}],326:[function(e,t,r){var i=e("../core"),a=i.util.url,s=i.util.crypto.lib,o=i.util.base64.encode,n=i.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"))},m=function(e,t,r,i){var a=JSON.stringify({Statement:[{Resource:e,Condition:{DateLessThan:{"AWS:EpochTime":t}}}]});return{Expires:t,"Key-Pair-Id":r,Signature:p(a.toString(),i)}},c=function(e,t,r){return e=e.replace(/\s/gm,""),{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=a.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)},S=function(e,t){if(!t||"function"!=typeof t)return e;t(null,e)};i.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),i={};for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(i["CloudFront-"+a]=r[a]);return S(i,t)},getSignedUrl:function(e,t){try{var r=y(e.url)}catch(e){return b(e,t)}var i=a.parse(e.url,!0),s=Object.prototype.hasOwnProperty.call(e,"policy")?c(e.policy,this.keyPairId,this.privateKey):m(r,e.expires,this.keyPairId,this.privateKey);i.search=null;for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(i.query[o]=s[o]);try{var n="rtmp"===l(e.url)?d(a.format(i)):a.format(i)}catch(e){return b(e,t)}return S(n,t)}}),t.exports=i.CloudFront.Signer},{"../core":329}],327:[function(e,t,r){var i=e("./core");e("./credentials"),e("./credentials/credential_provider_chain");var a;i.Config=i.util.inherit({constructor:function(e){void 0===e&&(e={}),e=this.extractCredentials(e),i.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:a.credentials)}function r(e,t){return new i.util.error(t||new Error,{code:"CredentialsError",message:e,name:"CredentialsError"})}var a=this;a.credentials?"function"==typeof a.credentials.get?function(){a.credentials.get(function(e){e&&(e=r("Could not load credentials from "+a.credentials.constructor.name,e)),t(e)})}():function(){var e=null;a.credentials.accessKeyId&&a.credentials.secretAccessKey||(e=r("Missing credentials")),t(e)}():a.credentialProvider?a.credentialProvider.resolve(function(e,i){e&&(e=r("Could not load credentials from any providers",e)),a.credentials=i,t(e)}):t(r("No credentials to load"))},update:function(e,t){t=t||!1,e=this.extractCredentials(e),i.util.each.call(this,e,function(e,r){(t||Object.prototype.hasOwnProperty.call(this.keys,e)||i.Service.hasService(e))&&this.set(e,r)})},loadFromPath:function(e){this.clear();var t=JSON.parse(i.util.readFileSync(e)),r=new i.FileSystemCredentials(e),a=new i.CredentialProviderChain;return a.providers.unshift(r),a.resolve(function(e,r){if(e)throw e;t.credentials=r}),this.constructor(t),this},clear:function(){i.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]=i.util.merge(this[e],t):this[e]=t},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,s3UsEast1RegionalEndpoint:"legacy",s3UseArnRegion:void 0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{},useAccelerateEndpoint:!1,clientSideMonitoring:!1,endpointDiscoveryEnabled:void 0,endpointCacheSize:1e3,hostPrefixEnabled:!0,stsRegionalEndpoints:"legacy"},extractCredentials:function(e){return e.accessKeyId&&e.secretAccessKey&&(e=i.util.copy(e),e.credentials=new i.Credentials(e)),e},setPromisesDependency:function(e){a=e,null===e&&"function"==typeof Promise&&(a=Promise);var t=[i.Request,i.Credentials,i.CredentialProviderChain];i.S3&&(t.push(i.S3),i.S3.ManagedUpload&&t.push(i.S3.ManagedUpload)),i.util.addPromises(t,a)},getPromisesDependency:function(){return a}}),i.config=new i.Config},{"./core":329,"./credentials":330,"./credentials/credential_provider_chain":333}],328:[function(e,t,r){(function(r){(function(){function i(e,t){if("string"==typeof e){if(["legacy","regional"].indexOf(e.toLowerCase())>=0)return e.toLowerCase();throw s.util.error(new Error,t)}}function a(e,t){e=e||{};var a;if(e[t.clientConfig]&&(a=i(e[t.clientConfig],{code:"InvalidConfiguration",message:'invalid "'+t.clientConfig+'" configuration. Expect "legacy" or "regional". Got "'+e[t.clientConfig]+'".'})))return a;if(!s.util.isNode())return a;if(Object.prototype.hasOwnProperty.call(r.env,t.env)){if(a=i(r.env[t.env],{code:"InvalidEnvironmentalVariable",message:"invalid "+t.env+' environmental variable. Expect "legacy" or "regional". Got "'+r.env[t.env]+'".'}))return a}var o={};try{o=s.util.getProfilesFromSharedConfig(s.util.iniLoader)[r.env.AWS_PROFILE||s.util.defaultProfile]}catch(e){}if(o&&Object.prototype.hasOwnProperty.call(o,t.sharedConfig)){if(a=i(o[t.sharedConfig],{code:"InvalidConfiguration",message:"invalid "+t.sharedConfig+' profile config. Expect "legacy" or "regional". Got "'+o[t.sharedConfig]+'".'}))return a}return a}var s=e("./core");t.exports=a}).call(this)}).call(this,e("_process"))},{"./core":329,_process:417}],329:[function(e,t,r){var i={util:e("./util")};({}).toString(),t.exports=i,i.util.update(i,{VERSION:"2.827.0",Signers:{},Protocol:{Json:e("./protocol/json"),Query:e("./protocol/query"),Rest:e("./protocol/rest"),RestJson:e("./protocol/rest_json"),RestXml:e("./protocol/rest_xml")},XML:{Builder:e("./xml/builder"),Parser:null},JSON:{Builder:e("./json/builder"),Parser:e("./json/parser")},Model:{Api:e("./model/api"),Operation:e("./model/operation"),Shape:e("./model/shape"),Paginator:e("./model/paginator"),ResourceWaiter:e("./model/resource_waiter")},apiLoader:e("./api_loader"),EndpointCache:e("../vendor/endpoint-cache").EndpointCache}),e("./sequential_executor"),e("./service"),e("./config"),e("./http"),e("./event_listeners"),e("./request"),e("./response"),e("./resource_waiter"),e("./signers/request_signer"),e("./param_validator"),i.events=new i.SequentialExecutor,i.util.memoizedProperty(i,"endpointCache",function(){return new i.EndpointCache(i.config.endpointCacheSize)},!0)},{"../vendor/endpoint-cache":435,"./api_loader":318,"./config":327,"./event_listeners":350,"./http":351,"./json/builder":353,"./json/parser":354,"./model/api":355,"./model/operation":357,"./model/paginator":358,"./model/resource_waiter":359,"./model/shape":360,"./param_validator":361,"./protocol/json":364,"./protocol/query":365,"./protocol/rest":366,"./protocol/rest_json":367,"./protocol/rest_xml":368,"./request":374,"./resource_waiter":375,"./response":376,"./sequential_executor":378,"./service":379,"./signers/request_signer":395,"./util":403,"./xml/builder":405}],330:[function(e,t,r){var i=e("./core");i.Credentials=i.util.inherit({constructor:function(){if(i.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,this.refreshCallbacks=[],1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0].credentials||arguments[0];this.accessKeyId=e.accessKeyId,this.secretAccessKey=e.secretAccessKey,this.sessionToken=e.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var e=i.util.date.getDate().getTime(),t=new Date(e+1e3*this.expiryWindow);return!!(this.expireTime&&t>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(e){var t=this;this.needsRefresh()?this.refresh(function(r){r||(t.expired=!1),e&&e(r)}):e&&e()},refresh:function(e){this.expired=!1,e()},coalesceRefresh:function(e,t){var r=this;1===r.refreshCallbacks.push(e)&&r.load(function(e){i.util.arrayEach(r.refreshCallbacks,function(r){t?r(e):i.util.defer(function(){r(e)})}),r.refreshCallbacks.length=0})},load:function(e){e()}}),i.Credentials.addPromisesToClass=function(e){this.prototype.getPromise=i.util.promisifyMethod("get",e),this.prototype.refreshPromise=i.util.promisifyMethod("refresh",e)},i.Credentials.deletePromisesFromClass=function(){delete this.prototype.getPromise,delete this.prototype.refreshPromise},i.util.addPromises(i.Credentials)},{"./core":329}],331:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.ChainableTemporaryCredentials=i.util.inherit(i.Credentials,{constructor:function(e){i.Credentials.call(this),e=e||{},this.errorCode="ChainableTemporaryCredentialsProviderFailure",this.expired=!0,this.tokenCodeFn=null;var t=i.util.copy(e.params)||{};if(t.RoleArn&&(t.RoleSessionName=t.RoleSessionName||"temporary-credentials"),t.SerialNumber){if(!e.tokenCodeFn||"function"!=typeof e.tokenCodeFn)throw new i.util.error(new Error("tokenCodeFn must be a function when params.SerialNumber is given"),{code:this.errorCode});this.tokenCodeFn=e.tokenCodeFn}var r=i.util.merge({params:t,credentials:e.masterCredentials||i.config.credentials},e.stsConfig||{});this.service=new a(r)},refresh:function(e){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this,r=t.service.config.params.RoleArn?"assumeRole":"getSessionToken";this.getTokenCode(function(i,a){var s={};if(i)return void e(i);a&&(s.TokenCode=a),t.service[r](s,function(r,i){r||t.service.credentialsFrom(i,t),e(r)})})},getTokenCode:function(e){var t=this;this.tokenCodeFn?this.tokenCodeFn(this.service.config.params.SerialNumber,function(r,a){if(r){var s=r;return r instanceof Error&&(s=r.message),void e(i.util.error(new Error("Error fetching MFA token: "+s),{code:t.errorCode}))}e(null,a)}):e(null)}})},{"../../clients/sts":313,"../core":329}],332:[function(e,t,r){var i=e("../core"),a=e("../../clients/cognitoidentity"),s=e("../../clients/sts");i.CognitoIdentityCredentials=i.util.inherit(i.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(e,t){i.Credentials.call(this),this.expired=!0,this.params=e,this.data=null,this._identityId=null,this._clientConfig=i.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){this.coalesceRefresh(e||i.util.fn.callback)},load: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,i){!r&&i.IdentityId?(t.params.IdentityId=i.IdentityId,e(null,i.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,i){r?t.clearIdOnNotAuthorized(r):(t.cacheId(i),t.data=i,t.loadCredentials(t.data,t)),e(r)})},getCredentialsFromSTS:function(e){var t=this;t.cognito.getOpenIdToken(function(r,i){r?(t.clearIdOnNotAuthorized(r),e(r)):(t.cacheId(i),t.params.WebIdentityToken=i.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(i.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 i.WebIdentityCredentials(this.params,e),!this.cognito){var t=i.util.merge({},e);t.params=this.params,this.cognito=new a(t)}this.sts=this.sts||new s(e)},cacheId:function(e){this._identityId=e.IdentityId,this.params.IdentityId=this._identityId,i.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=i.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":247,"../../clients/sts":313,"../core":329}],333:[function(e,t,r){var i=e("../core");i.CredentialProviderChain=i.util.inherit(i.Credentials,{constructor:function(e){this.providers=e||i.CredentialProviderChain.defaultProviders.slice(0),this.resolveCallbacks=[]},resolve:function(e){function t(e,o){if(!e&&o||a===s.length)return i.util.arrayEach(r.resolveCallbacks,function(t){t(e,o)}),void(r.resolveCallbacks.length=0);var n=s[a++];o="function"==typeof n?n.call():n,o.get?o.get(function(e){t(e,e?null:o)}):t(null,o)}var r=this;if(0===r.providers.length)return e(new Error("No providers")),r;if(1===r.resolveCallbacks.push(e)){var a=0,s=r.providers.slice(0);t()}return r}}),i.CredentialProviderChain.defaultProviders=[],i.CredentialProviderChain.addPromisesToClass=function(e){this.prototype.resolvePromise=i.util.promisifyMethod("resolve",e)},i.CredentialProviderChain.deletePromisesFromClass=function(){delete this.prototype.resolvePromise},i.util.addPromises(i.CredentialProviderChain)},{"../core":329}],334:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.SAMLCredentials=i.util.inherit(i.Credentials,{constructor:function(e){i.Credentials.call(this),this.expired=!0,this.params=e},refresh:function(e){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithSAML(function(r,i){r||t.service.credentialsFrom(i,t),e(r)})},createClients:function(){this.service=this.service||new a({params:this.params})}})},{"../../clients/sts":313,"../core":329}],335:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.TemporaryCredentials=i.util.inherit(i.Credentials,{constructor:function(e,t){i.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){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.masterCredentials.get(function(){t.service.config.credentials=t.masterCredentials,(t.params.RoleArn?t.service.assumeRole:t.service.getSessionToken).call(t.service,function(r,i){r||t.service.credentialsFrom(i,t),e(r)})})},loadMasterCredentials:function(e){for(this.masterCredentials=e||i.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials;"function"!=typeof this.masterCredentials.get&&(this.masterCredentials=new i.Credentials(this.masterCredentials))},createClients:function(){this.service=this.service||new a({params:this.params})}})},{"../../clients/sts":313,"../core":329}],336:[function(e,t,r){var i=e("../core"),a=e("../../clients/sts");i.WebIdentityCredentials=i.util.inherit(i.Credentials,{constructor:function(e,t){i.Credentials.call(this),this.expired=!0,this.params=e,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null,this._clientConfig=i.util.copy(t||{})},refresh:function(e){this.coalesceRefresh(e||i.util.fn.callback)},load:function(e){var t=this;t.createClients(),t.service.assumeRoleWithWebIdentity(function(r,i){t.data=null,r||(t.data=i,t.service.credentialsFrom(i,t)),e(r)})},createClients:function(){if(!this.service){var e=i.util.merge({},this._clientConfig);e.params=this.params,this.service=new a(e)}}})},{"../../clients/sts":313,"../core":329}],337:[function(e,t,r){(function(r){(function(){function i(e){var t=e.service,r=t.api||{},i={};return t.config.region&&(i.region=t.config.region),r.serviceId&&(i.serviceId=r.serviceId),t.config.credentials.accessKeyId&&(i.accessKeyId=t.config.credentials.accessKeyId),i}function a(e,t,r){r&&void 0!==t&&null!==t&&"structure"===r.type&&r.required&&r.required.length>0&&b.arrayEach(r.required,function(i){var s=r.members[i];if(!0===s.endpointDiscoveryId){var o=s.isLocationName?s.name:i;e[o]=String(t[i])}else a(e,t[i],s)})}function s(e,t){var r={};return a(r,e.params,t),r}function o(e){var t=e.service,r=t.api,a=r.operations?r.operations[e.operation]:void 0,o=a?a.input:void 0,n=s(e,o),p=i(e);Object.keys(n).length>0&&(p=b.update(p,n),a&&(p.operation=a.name));var m=y.endpointCache.get(p);if(!m||1!==m.length||""!==m[0].Address)if(m&&m.length>0)e.httpRequest.updateEndpoint(m[0].Address);else{var c=t.makeRequest(r.endpointOperation,{Operation:a.name,Identifiers:n});u(c),c.removeListener("validate",y.EventListeners.Core.VALIDATE_PARAMETERS),c.removeListener("retry",y.EventListeners.Core.RETRY_CHECK),y.endpointCache.put(p,[{Address:"",CachePeriodInMinutes:1}]),c.send(function(e,t){t&&t.Endpoints?y.endpointCache.put(p,t.Endpoints):e&&y.endpointCache.put(p,[{Address:"",CachePeriodInMinutes:1}])})}}function n(e,t){var r=e.service,a=r.api,o=a.operations?a.operations[e.operation]:void 0,n=o?o.input:void 0,p=s(e,n),m=i(e);Object.keys(p).length>0&&(m=b.update(m,p),o&&(m.operation=o.name));var c=y.EndpointCache.getKeyString(m),l=y.endpointCache.get(c);if(l&&1===l.length&&""===l[0].Address)return h[c]||(h[c]=[]),void h[c].push({request:e,callback:t});if(l&&l.length>0)e.httpRequest.updateEndpoint(l[0].Address),t();else{var d=r.makeRequest(a.endpointOperation,{Operation:o.name,Identifiers:p});d.removeListener("validate",y.EventListeners.Core.VALIDATE_PARAMETERS),u(d),y.endpointCache.put(c,[{Address:"",CachePeriodInMinutes:60}]),d.send(function(r,i){if(r){if(e.response.error=b.error(r,{retryable:!1}),y.endpointCache.remove(m),h[c]){var a=h[c];b.arrayEach(a,function(e){e.request.response.error=b.error(r,{retryable:!1}),e.callback()}),delete h[c]}}else if(i&&(y.endpointCache.put(c,i.Endpoints),e.httpRequest.updateEndpoint(i.Endpoints[0].Address),h[c])){var a=h[c];b.arrayEach(a,function(e){e.request.httpRequest.updateEndpoint(i.Endpoints[0].Address),e.callback()}),delete h[c]}t()})}}function u(e){var t=e.service.api,r=t.apiVersion;r&&!e.httpRequest.headers["x-amz-api-version"]&&(e.httpRequest.headers["x-amz-api-version"]=r)}function p(e){var t=e.error,r=e.httpResponse;if(t&&("InvalidEndpointException"===t.code||421===r.statusCode)){var a=e.request,o=a.service.api.operations||{},n=o[a.operation]?o[a.operation].input:void 0,u=s(a,n),p=i(a);Object.keys(u).length>0&&(p=b.update(p,u),o[a.operation]&&(p.operation=o[a.operation].name)),y.endpointCache.remove(p)}}function m(e){if(e._originalConfig&&e._originalConfig.endpoint&&!0===e._originalConfig.endpointDiscoveryEnabled)throw b.error(new Error,{code:"ConfigurationException",message:"Custom endpoint is supplied; endpointDiscoveryEnabled must not be true."});var t=y.config[e.serviceIdentifier]||{};return Boolean(y.config.endpoint||t.endpoint||e._originalConfig&&e._originalConfig.endpoint)}function c(e){return["false","0"].indexOf(e)>=0}function l(e){var t=e.service||{};if(void 0!==t.config.endpointDiscoveryEnabled)return t.config.endpointDiscoveryEnabled;if(!b.isBrowser()){for(var i=0;i-1&&0===++e[t];t--);}var s=e("../core").util,o=s.buffer.toBuffer;i.fromNumber=function(e){if(e>0x8000000000000000||e<-0x8000000000000000)throw new Error(e+" is too large (or, if negative, too small) to represent as an Int64");for(var t=new Uint8Array(8),r=7,s=Math.abs(Math.round(e));r>-1&&s>0;r--,s/=256)t[r]=s;return e<0&&a(t),new i(t)},i.prototype.valueOf=function(){var e=this.bytes.slice(0),t=128&e[0];return t&&a(e),parseInt(e.toString("hex"),16)*(t?-1:1)},i.prototype.toString=function(){return String(this.valueOf())},t.exports={Int64:i}},{"../core":329}],347:[function(e,t,r){function i(e,t,r){var i=s(t),o=i.headers[":message-type"];if(o){if("error"===o.value)throw a(i);if("event"!==o.value)return}var n=i.headers[":event-type"],u=r.members[n.value];if(u){var p={},m=u.eventPayloadMemberName;if(m){var c=u.members[m];"binary"===c.type?p[m]=i.body:p[m]=e.parse(i.body.toString(),c)}for(var l=u.eventHeaderMemberNames,d=0;d=0)return e.httpRequest.headers["X-Amz-Content-Sha256"]="UNSIGNED-PAYLOAD",t();a.util.computeSha256(s,function(r,i){r?t(r):(e.httpRequest.headers["X-Amz-Content-Sha256"]=i,t())})}else t()}}),e("SET_CONTENT_LENGTH","afterBuild",function(e){var t=i(e),r=a.util.getRequestPayloadShape(e);if(void 0===e.httpRequest.headers["Content-Length"])try{var s=a.util.string.byteLength(e.httpRequest.body);e.httpRequest.headers["Content-Length"]=s}catch(i){if(r&&r.isStreaming){if(r.requiresLength)throw i;if(t.indexOf("unsigned-body")>=0)return void(e.httpRequest.headers["Transfer-Encoding"]="chunked");throw i}throw i}}),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 a.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,i){r.httpResponse.statusCode=e,r.httpResponse.statusMessage=i,r.httpResponse.headers=t,r.httpResponse.body=a.util.buffer.toBuffer(""),r.httpResponse.buffers=[],r.httpResponse.numBytes=0;var s=t.date||t.Date,o=r.request.service;if(s){var n=Date.parse(s);o.config.correctClockSkew&&o.isClockSkewed(n)&&o.applyClockOffset(n)}}),e("HTTP_DATA","httpData",function(e,t){if(e){if(a.util.isNode()){t.httpResponse.numBytes+=e.length;var r=t.httpResponse.headers["content-length"],i={loaded:t.httpResponse.numBytes,total:r};t.request.emit("httpDownloadProgress",[i,t])}t.httpResponse.buffers.push(a.util.buffer.toBuffer(e))}}),e("HTTP_DONE","httpDone",function(e){if(e.httpResponse.buffers&&e.httpResponse.buffers.length>0){var t=a.util.buffer.concat(e.httpResponse.buffers);e.httpResponse.body=t}delete e.httpResponse.numBytes,delete e.httpResponse.buffers}),e("FINALIZE_ERROR","retry",function(e){e.httpResponse.statusCode&&(e.error.statusCode=e.httpResponse.statusCode,void 0===e.error.retryable&&(e.error.retryable=this.service.retryableError(e.error,this)))}),e("INVALIDATE_CREDENTIALS","retry",function(e){if(e.error)switch(e.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":e.error.retryable=!0,e.request.service.config.credentials.expired=!0}}),e("EXPIRED_SIGNATURE","retry",function(e){var t=e.error;t&&"string"==typeof t.code&&"string"==typeof t.message&&t.code.match(/Signature/)&&t.message.match(/expired/)&&(e.error.retryable=!0)}),e("CLOCK_SKEWED","retry",function(e){e.error&&this.service.clockSkewError(e.error)&&this.service.config.correctClockSkew&&(e.error.retryable=!0)}),e("REDIRECT","retry",function(e){e.error&&e.error.statusCode>=300&&e.error.statusCode<400&&e.httpResponse.headers.location&&(this.httpRequest.endpoint=new a.Endpoint(e.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,e.error.redirect=!0,e.error.retryable=!0)}),e("RETRY_CHECK","retry",function(e){e.error&&(e.error.redirect&&e.redirectCount=0?(e.error=null,setTimeout(t,r)):t()})}),CorePost:(new s).addNamedListeners(function(e){e("EXTRACT_REQUEST_ID","extractData",a.util.extractRequestId),e("EXTRACT_REQUEST_ID","extractError",a.util.extractRequestId),e("ENOTFOUND_ERROR","httpError",function(e){if("NetworkingError"===e.code&&function(e){return"ENOTFOUND"===e.errno||"number"==typeof e.errno&&"function"==typeof a.util.getSystemErrorName&&["EAI_NONAME","EAI_NODATA"].indexOf(a.util.getSystemErrorName(e.errno)>=0)}(e)){var t="Inaccessible host: `"+e.hostname+"'. This service may not be available in the `"+e.region+"' region.";this.response.error=a.util.error(new Error(t),{code:"UnknownEndpoint",region:e.region,hostname:e.hostname,retryable:!0,originalError:e})}})}),Logger:(new s).addNamedListeners(function(t){t("LOG_REQUEST","complete",function(t){function r(e,t){if(!t)return t;if(e.isSensitive)return"***SensitiveInformation***";switch(e.type){case"structure":var i={};return a.util.each(t,function(t,a){Object.prototype.hasOwnProperty.call(e.members,t)?i[t]=r(e.members[t],a):i[t]=a}),i;case"list":var s=[];return a.util.arrayEach(t,function(t,i){s.push(r(e.member,t))}),s;case"map":var o={};return a.util.each(t,function(t,i){o[t]=r(e.value,i)}),o;default:return t}}var i=t.request,s=i.service.config.logger;if(s){var o=function(){var o=t.request.service.getSkewCorrectedDate().getTime(),n=(o-i.startTime.getTime())/1e3,u=!!s.isTTY,p=t.httpResponse.statusCode,m=i.params;if(i.service.api.operations&&i.service.api.operations[i.operation]&&i.service.api.operations[i.operation].input){m=r(i.service.api.operations[i.operation].input,i.params)}var c=e("util").inspect(m,!0,null),l="";return u&&(l+=""),l+="[AWS "+i.service.serviceIdentifier+" "+p,l+=" "+n.toString()+"s "+t.retryCount+" retries]",u&&(l+=""),l+=" "+a.util.string.lowerFirst(i.operation),l+="("+c+")",u&&(l+=""),l}();"function"==typeof s.log?s.log(o):"function"==typeof s.write&&s.write(o+"\n")}})}),Json:(new s).addNamedListeners(function(t){var r=e("./protocol/json");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),Rest:(new s).addNamedListeners(function(t){var r=e("./protocol/rest");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),RestJson:(new s).addNamedListeners(function(t){var r=e("./protocol/rest_json");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),RestXml:(new s).addNamedListeners(function(t){var r=e("./protocol/rest_xml");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)}),Query:(new s).addNamedListeners(function(t){var r=e("./protocol/query");t("BUILD","build",r.buildRequest),t("EXTRACT_DATA","extractData",r.extractData),t("EXTRACT_ERROR","extractError",r.extractError)})}},{"./core":329,"./discover_endpoint":337,"./protocol/json":364,"./protocol/query":365,"./protocol/rest":366,"./protocol/rest_json":367,"./protocol/rest_xml":368,"./sequential_executor":378,util:429}],351:[function(e,t,r){var i=e("./core"),a=i.util.inherit;i.Endpoint=a({constructor:function(e,t){if(i.util.hideProperties(this,["slashes","auth","hash","search","query"]),void 0===e||null===e)throw new Error("Invalid endpoint: "+e);if("string"!=typeof e)return i.util.copy(e);if(!e.match(/^http/)){e=((t&&void 0!==t.sslEnabled?t.sslEnabled:i.config.sslEnabled)?"https":"http")+"://"+e}i.util.update(this,i.util.urlParse(e)),this.port?this.port=parseInt(this.port,10):this.port="https:"===this.protocol?443:80}}),i.HttpRequest=a({constructor:function(e,t){e=new i.Endpoint(e),this.method="POST",this.path=e.path||"/",this.headers={},this.body="",this.endpoint=e,this.region=t,this._userAgent="",this.setUserAgent()},setUserAgent:function(){this._userAgent=this.headers[this.getUserAgentHeaderName()]=i.util.userAgent()},getUserAgentHeaderName:function(){return(i.util.isBrowser()?"X-Amz-":"")+"User-Agent"},appendToUserAgent:function(e){"string"==typeof e&&e&&(this._userAgent+=" "+e),this.headers[this.getUserAgentHeaderName()]=this._userAgent},getUserAgent:function(){return this._userAgent},pathname:function(){return this.path.split("?",1)[0]},search:function(){var e=this.path.split("?",2)[1];return e?(e=i.util.queryStringParse(e),i.util.queryParamsToString(e)):""},updateEndpoint:function(e){var t=new i.Endpoint(e);this.endpoint=t,this.path=t.path||"/",this.headers.Host&&(this.headers.Host=t.host)}}),i.HttpResponse=a({constructor:function(){this.statusCode=void 0,this.headers={},this.body=void 0,this.streaming=!1,this.stream=null},createUnbufferedStream:function(){return this.streaming=!0,this.stream}}),i.HttpClient=a({}),i.HttpClient.getInstance=function(){return void 0===this.singleton&&(this.singleton=new this),this.singleton}},{"./core":329}],352:[function(e,t,r){var i=e("../core"),a=e("events").EventEmitter;e("../http"),i.XHRClient=i.util.inherit({handleRequest:function(e,t,r,s){var o=this,n=e.endpoint,u=new a,p=n.protocol+"//"+n.hostname;80!==n.port&&443!==n.port&&(p+=":"+n.port),p+=e.path;var m=new XMLHttpRequest,c=!1;e.stream=m,m.addEventListener("readystatechange",function(){try{if(0===m.status)return}catch(e){return}this.readyState>=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(){s(i.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),m.addEventListener("error",function(){s(i.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),m.addEventListener("abort",function(){s(i.util.error(new Error("Request aborted"),{code:"RequestAbortedError"}))},!1),r(u),m.open(e.method,p,!1!==t.xhrAsync),i.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 i.util.arrayEach(e.split(/\r?\n/),function(e){var r=e.split(":",1)[0],i=e.substring(r.length+2);r.length>0&&(t[r.toLowerCase()]=i)}),t},finishRequest:function(e,t){var r;if("arraybuffer"===e.responseType&&e.response){var a=e.response;r=new i.util.Buffer(a.byteLength);for(var s=new Uint8Array(a),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(){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=function(e){var t=g.base64.decode(e);if(this.isSensitive&&g.isNode()&&"function"==typeof g.Buffer.alloc){var r=g.Buffer.alloc(t.length,t);t.fill(0),t=r}return t},this.toWireFormat=g.base64.encode}function b(){y.apply(this,arguments)}function S(){s.apply(this,arguments),this.toType=function(e){return"boolean"==typeof e?e:null===e||void 0===e?null:"true"===e}}var h=e("./collection"),g=e("../util");s.normalizedTypes={character:"string",double:"float",long:"integer",short:"integer",biginteger:"integer",bigdecimal:"float",blob:"binary"},s.types={structure:n,list:u,map:p,boolean:S,timestamp:m,float:l,integer:d,string:c,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 i=s.resolve(e,t);if(i){var a=Object.keys(e);t.documentation||(a=a.filter(function(e){return!e.match(/documentation/)}));var o=function(){i.constructor.call(this,e,t,r)};return o.prototype=i,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(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: "+n)},s.shapes={StructureShape:n,ListShape:u,MapShape:p,StringShape:c,BooleanShape:S,Base64Shape:b},t.exports=s},{"../util":403,"./collection":356}],361:[function(e,t,r){var i=e("./core");i.ParamValidator=i.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 a=this.errors.join("\n* ");throw a="There were "+this.errors.length+" validation errors:\n* "+a,i.util.error(new Error(a),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0}, fail:function(e,t){this.errors.push(i.util.error(new Error(t),{code:e}))},validateStructure:function(e,t,r){this.validateType(t,r,["object"],"structure");for(var i,a=0;e.required&&a= 1, but found "'+t+'" for '+r)},validatePattern:function(e,t,r){this.validation.pattern&&void 0!==e.pattern&&(new RegExp(e.pattern).test(t)||this.fail("PatternMatchError",'Provided value "'+t+'" does not match regex pattern /'+e.pattern+"/ for "+r))},validateRange:function(e,t,r,i){this.validation.min&&void 0!==e.min&&t= "+e.min+", but found "+t+" for "+r),this.validation.max&&void 0!==e.max&&t>e.max&&this.fail("MaxRangeError","Expected "+i+" <= "+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,a){if(null===e||void 0===e)return!1;for(var s=!1,o=0;o63)throw u.error(new Error,{code:"ValidationError",message:"Hostname label length should be between 1 to 63 characters, inclusive."});if(!r.test(e))throw p.util.error(new Error,{code:"ValidationError",message:e+" is not hostname compatible."})})}var u=e("../util"),p=e("../core");t.exports={populateHostPrefix:i}},{"../core":329,"../util":403}],364:[function(e,t,r){function i(e){var t=e.httpRequest,r=e.service.api,i=r.targetPrefix+"."+r.operations[e.operation].name,a=r.jsonVersion||"1.0",s=r.operations[e.operation].input,o=new n;1===a&&(a="1.0"),t.body=o.build(e.params||{},s),t.headers["Content-Type"]="application/x-amz-json-"+a,t.headers["X-Amz-Target"]=i,p(e)}function a(e){var t={},r=e.httpResponse;if(t.code=r.headers["x-amzn-errortype"]||"UnknownError","string"==typeof t.code&&(t.code=t.code.split(":")[0]),r.body.length>0)try{var i=JSON.parse(r.body.toString()),a=i.__type||i.code||i.Code;a&&(t.code=a.split("#").pop()),"RequestEntityTooLarge"===t.code?t.message="Request body must be less than 1 MB":t.message=i.message||i.Message||null}catch(i){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 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],i=r.output||{},a=new u;e.data=a.parse(t,i)}}var o=e("../util"),n=e("../json/builder"),u=e("../json/parser"),p=e("./helpers").populateHostPrefix;t.exports={buildRequest:i,extractError:a,extractData:s}},{"../json/builder":353,"../json/parser":354,"../util":403,"./helpers":363}],365:[function(e,t,r){function i(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),m(e)}function a(e){var t,r=e.httpResponse.body.toString();if(r.match("=0?"&":"?";var n=[];m.arrayEach(Object.keys(s).sort(),function(e){Array.isArray(s[e])||(s[e]=[s[e]]);for(var t=0;t0){t=new n.XML.Parser;var c=t.parse(i.toString(),s);u.update(e.data,c)}}var n=e("../core"),u=e("../util"),p=e("./rest");t.exports={buildRequest:a,extractError:s,extractData:o}},{"../core":329,"../util":403,"./rest":366}],369:[function(e,t,r){function i(){}function a(e){return e.isQueryName||"ec2"!==e.api.protocol?e.name:e.name[0].toUpperCase()+e.name.substr(1)}function s(e,t,r,i){p.each(r.members,function(r,s){var o=t[r];if(null!==o&&void 0!==o){var n=a(s);n=e?e+"."+n:n,u(n,o,s,i)}})}function o(e,t,r,i){var a=1;p.each(t,function(t,s){var o=r.flattened?".":".entry.",n=o+a+++".",p=n+(r.key.name||"key"),m=n+(r.value.name||"value");u(e+p,t,r.key,i),u(e+m,s,r.value,i)})}function n(e,t,r,i){var s=r.member||{};if(0===t.length)return void i.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(s.name){var p=e.split(".");p.pop(),p.push(a(s)),e=p.join(".")}}else n="."+(s.name?s.name:"member")+n;u(e+n,t,s,i)})}function u(e,t,r,i){null!==t&&void 0!==t&&("structure"===r.type?s(e,t,r,i):"list"===r.type?n(e,t,r,i):"map"===r.type?o(e,t,r,i):i(e,r.toWireFormat(t).toString()))}var p=e("../util");i.prototype.serialize=function(e,t,r){s("",e,t,r)},t.exports=i},{"../util":403}],370:[function(e,t,r){var i=e("../core"),a=null,s={signatureVersion:"v4",signingName:"rds-db",operations:{}},o={region:"string",hostname:"string",port:"number",username:"string"};i.RDS.Signer=i.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=i.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 i.Endpoint(e.hostname+":"+e.port),paramValidation:!1,signatureVersion:"v4"};e.credentials&&(u.credentials=e.credentials),a=new i.Service(u),a.api=s;var p=a.makeRequest();if(this.modifyRequestForAuthToken(p,e),!o){var m=p.presign(900);return this.convertUrlToAuthToken(m)}p.presign(900,function(e,i){i&&(i=r.convertUrlToAuthToken(i)),t(e,i)})},modifyRequestForAuthToken:function(e,t){e.on("build",e.buildAsGet),e.httpRequest.body=i.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||i.util.error(new Error,{code:"InvalidParameter",message:t})}})},{"../core":329}],371:[function(e,t,r){t.exports={now:function(){return"undefined"!=typeof performance&&"function"==typeof performance.now?performance.now():Date.now()}}},{}],372:[function(e,t,r){function i(e){if(!e)return null;var t=e.split("-");return t.length<3?null:t.slice(0,t.length-2).join("-")+"-*"}function a(e){var t=e.config.region,r=i(t),a=e.api.endpointPrefix;return[[t,a],[r,a],[t,"*"],[r,"*"],["*",a],["*","*"]].map(function(e){return e[0]&&e[1]?e.join("/"):null})}function s(e,t){u.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=a(e),r=0;r=0){u=!0;var p=0}var m=function(){u&&p!==n?a.emit("error",i.util.error(new Error("Stream content length mismatch. Received "+p+" of "+n+" bytes."),{code:"StreamContentLengthMismatch"})):2===i.HttpClient.streamsApiVersion?a.end():a.emit("end")},c=o.httpResponse.createUnbufferedStream();if(2===i.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),a.on("error",function(e){u=!1,c.unpipe(l),l.emit("end"),l.end()}),c.pipe(l).pipe(a,{end:!1})}else c.pipe(a);else u&&c.on("data",function(e){e&&e.length&&(p+=e.length)}),c.on("data",function(e){a.emit("data",e)}),c.on("end",m);c.on("error",function(e){u=!1,a.emit("error",e)})}}),a},emitEvent:function(e,t,r){"function"==typeof t&&(r=t,t=null),r||(r=function(){}),t||(t=this.eventParameters(e,this.response)),i.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 i.Signers.Presign).sign(this.toGet(),e,t)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this._unAuthenticated=!0,this.removeListener("validate",i.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",i.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}}),i.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()})}},i.Request.deletePromisesFromClass=function(){delete this.prototype.promise},i.util.addPromises(i.Request),i.util.mixin(i.Request,i.SequentialExecutor)}).call(this)}).call(this,e("_process"))},{"./core":329,"./state_machine":402,_process:417,jmespath:416}],375:[function(e,t,r){function i(e){var t=e.request._waiter,r=t.config.acceptors,i=!1,a="retry";r.forEach(function(r){if(!i){var s=t.matchers[r.matcher];s&&s(e,r.expected,r.argument)&&(i=!0,a=r.state)}}),!i&&e.error&&(a="failure"),"success"===a?t.setSuccess(e):t.setError(e,"retry"===a)}var a=e("./core"),s=a.util.inherit,o=e("jmespath");a.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 i=o.search(e.data,r)}catch(e){return!1}return o.strictDeepEqual(i,t)},pathAll:function(e,t,r){try{var i=o.search(e.data,r)}catch(e){return!1}Array.isArray(i)||(i=[i]);var a=i.length;if(!a)return!1;for(var s=0;s=1&&t.doneParts===t.numParts&&t.finishMultiPart()}))}r&&t.fillQueue.call(t)},abort:function(){var e=this;!0===e.isDoneChunking&&1===e.totalPartNumbers&&e.singlePart?e.singlePart.abort():e.cleanup(i.util.error(new Error("Request aborted by user"),{code:"RequestAbortedError",retryable:!1}))},validateBody:function(){var e=this;if(e.body=e.service.config.params.Body,"string"==typeof e.body)e.body=i.util.buffer.toBuffer(e.body);else if(!e.body)throw new Error("params.Body is required");e.sliceFn=i.util.arraySliceFn(e.body)},bindServiceObject:function(e){e=e||{};var t=this;if(t.service){var r=t.service,a=i.util.copy(r._originalConfig||{});a.signatureVersion=r.getSignatureVersion(),t.service=new r.constructor.__super__(a),t.service.config.params=i.util.merge(t.service.config.params||{},e)}else t.service=new i.S3({params:e})},adjustTotalBytes:function(){var e=this;try{e.totalBytes=a(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=a(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 i=r.slice(e.partSize);e.partBuffers.push(i),e.partBufferLength+=i.length,r=r.slice(0,e.partSize)}e.nextChunk(r)}e.isDoneChunking&&!e.isDoneSending&&(r=1===e.partBuffers.length?e.partBuffers[0]: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 a={Body:e};this.tags&&(a.Tagging=this.getTaggingHeader());var s=t.service.putObject(a);return s._managedUpload=t,s.on("httpUploadProgress",t.progress).send(t.finishSinglePart),t.singlePart=s,null}if(t.service.config.params.ContentMD5){var o=i.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(a,1)}return this},removeAllListeners:function(e){return e?delete this._events[e]:this._events={},this},emit:function(e,t,r){r||(r=function(){});var i=this.listeners(e),a=i.length;return this.callListeners(i,t,r),a>0},callListeners:function(e,t,r,a){function s(a){if(a&&(n=i.util.error(n||new Error,a),o._haltHandlersOnError))return r.call(o,n);o.callListeners(e,t,r,n)}for(var o=this,n=a||null;e.length>0;){var u=e.shift();if(u._isAsync)return void u.apply(o,t.concat([s]));try{u.apply(o,t)}catch(e){n=i.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),i.util.each(e,function(e,r){"function"==typeof r&&(r=[r]),i.util.arrayEach(r,function(r){t.on(e,r)})}),t},addNamedListener:function(e,t,r,i){return this[e]=r,this.addListener(t,r,i),this},addNamedAsyncListener:function(e,t,r,i){return r._isAsync=!0,this.addNamedListener(e,t,r,i)},addNamedListeners:function(e){var t=this;return e(function(){t.addNamedListener.apply(t,arguments)},function(){t.addNamedAsyncListener.apply(t,arguments)}),this}}),i.SequentialExecutor.prototype.addListener=i.SequentialExecutor.prototype.on,t.exports=i.SequentialExecutor},{"./core":329}],379:[function(e,t,r){(function(r){(function(){var i=e("./core"),a=e("./model/api"),s=e("./region_config"),o=i.util.inherit,n=0;i.Service=o({constructor:function(e){if(!this.loadServiceClass)throw i.util.error(new Error,"Service must be constructed with `new' operator");var t=this.loadServiceClass(e||{});if(t){var r=i.util.copy(e),a=new t(e);return Object.defineProperty(a,"_originalConfig",{get:function(){return r},enumerable:!1,configurable:!0}),a._clientId=++n,a}this.initialize(e)},initialize:function(e){var t=i.config[this.serviceIdentifier];if(this.config=new i.Config(i.config),t&&this.config.update(t,!0),e&&this.config.update(e,!0),this.validateService(),this.config.endpoint||s.configureEndpoint(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint),i.SequentialExecutor.call(this),i.Service.addDefaultMonitoringListeners(this),(this.config.clientSideMonitoring||i.Service._clientSideMonitoring)&&this.publisher){var a=this.publisher;this.addNamedListener("PUBLISH_API_CALL","apiCall",function(e){r.nextTick(function(){a.eventHandler(e)})}),this.addNamedListener("PUBLISH_API_ATTEMPT","apiCallAttempt",function(e){r.nextTick(function(){a.eventHandler(e)})})}},validateService:function(){},loadServiceClass:function(e){var t=e;if(i.util.isEmpty(this.api)){if(t.apiConfig)return i.Service.defineServiceApi(this.constructor,t.apiConfig);if(this.constructor.services){t=new i.Config(i.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]&&i.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?i.util.isType(e,Date)&&(e=i.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,a=t.length-1;a>=0;a--)if("*"!==t[a][t[a].length-1]&&(r=t[a]),t[a].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 a=this.api.operations[e];a&&(t=i.util.copy(t),i.util.each(this.config.params,function(e,r){a.input.members[e]&&(void 0!==t[e]&&null!==t[e]||(t[e]=r))}))}var s=new i.Request(this,e,t);return this.addAllRequestListeners(s),this.attachMonitoringEmitter(s),r&&s.send(r),s},makeUnauthenticatedRequest:function(e,t,r){"function"==typeof t&&(r=t,t={});var i=this.makeRequest(e,t).toUnauthenticated();return r?i.send(r):i},waitFor:function(e,t,r){return new i.ResourceWaiter(this,e).wait(t,r)},addAllRequestListeners:function(e){for(var t=[i.events,i.EventListeners.Core,this.serviceInterface(),i.EventListeners.CorePost],r=0;r299?(a.code&&(r.FinalAwsException=a.code),a.message&&(r.FinalAwsExceptionMessage=a.message)):((a.code||a.name)&&(r.FinalSdkException=a.code||a.name),a.message&&(r.FinalSdkExceptionMessage=a.message))}return r},apiAttemptEvent:function(e){var t=e.service.api.operations[e.operation],r={Type:"ApiCallAttempt",Api:t?t.name:e.operation,Version:1,Service:e.service.api.serviceId||e.service.api.endpointPrefix,Fqdn:e.httpRequest.endpoint.hostname,UserAgent:e.httpRequest.getUserAgent()},i=e.response;return i.httpResponse.statusCode&&(r.HttpStatusCode=i.httpResponse.statusCode),!e._unAuthenticated&&e.service.config.credentials&&e.service.config.credentials.accessKeyId&&(r.AccessKey=e.service.config.credentials.accessKeyId),i.httpResponse.headers?(e.httpRequest.headers["x-amz-security-token"]&&(r.SessionToken=e.httpRequest.headers["x-amz-security-token"]),i.httpResponse.headers["x-amzn-requestid"]&&(r.XAmznRequestId=i.httpResponse.headers["x-amzn-requestid"]),i.httpResponse.headers["x-amz-request-id"]&&(r.XAmzRequestId=i.httpResponse.headers["x-amz-request-id"]),i.httpResponse.headers["x-amz-id-2"]&&(r.XAmzId2=i.httpResponse.headers["x-amz-id-2"]),r):r},attemptFailEvent:function(e){var t=this.apiAttemptEvent(e),r=e.response,i=r.error;return r.httpResponse.statusCode>299?(i.code&&(t.AwsException=i.code),i.message&&(t.AwsExceptionMessage=i.message)):((i.code||i.name)&&(t.SdkException=i.code||i.name),i.message&&(t.SdkExceptionMessage=i.message)),t},attachMonitoringEmitter:function(e){var t,r,a,s,o,n,u=0,p=this;e.on("validate",function(){s=i.util.realClock.now(),n=Date.now()},!0),e.on("sign",function(){r=i.util.realClock.now(),t=Date.now(),o=e.httpRequest.region,u++},!0),e.on("validateResponse",function(){a=Math.round(i.util.realClock.now()-r)}),e.addNamedListener("API_CALL_ATTEMPT","success",function(){var r=p.apiAttemptEvent(e);r.Timestamp=t,r.AttemptLatency=a>=0?a:0,r.Region=o,p.emit("apiCallAttempt",[r])}),e.addNamedListener("API_CALL_ATTEMPT_RETRY","retry",function(){var s=p.attemptFailEvent(e);s.Timestamp=t,a=a||Math.round(i.util.realClock.now()-r),s.AttemptLatency=a>=0?a:0,s.Region=o,p.emit("apiCallAttempt",[s])}),e.addNamedListener("API_CALL","complete",function(){var t=p.apiCallEvent(e);if(t.AttemptCount=u,!(t.AttemptCount<=0)){t.Timestamp=n;var r=Math.round(i.util.realClock.now()-s);t.Latency=r>=0?r:0;var a=e.response;a.error&&a.error.retryable&&"number"==typeof a.retryCount&&"number"==typeof a.maxRetries&&a.retryCount>=a.maxRetries&&(t.MaxRetriesExceeded=1),p.emit("apiCall",[t])}})},setupRequestListeners:function(e){},getSigningName:function(){return this.api.signingName||this.api.endpointPrefix},getSignerClass:function(e){var t,r=null,a="";if(e){r=(e.service.api.operations||{})[e.operation]||null,a=r?r.authtype:""}return t=this.config.signatureVersion?this.config.signatureVersion:"v4"===a||"v4-unsigned-body"===a?"v4":this.api.signatureVersion,i.Signers.RequestSigner.getVersion(t)},serviceInterface:function(){switch(this.api.protocol){case"ec2":case"query":return i.EventListeners.Query;case"json":return i.EventListeners.Json;case"rest-json":return i.EventListeners.RestJson;case"rest-xml":return i.EventListeners.RestXml}if(this.api.protocol)throw new Error("Invalid service `protocol' "+this.api.protocol+" in API config")},successfulResponse:function(e){return e.httpResponse.statusCode<300},numRetries:function(){return void 0!==this.config.maxRetries?this.config.maxRetries:this.defaultRetryCount},retryDelays:function(e,t){return i.util.calculateRetryDelay(e,this.config.retryDelayOptions,t)},retryableError:function(e){return!!this.timeoutError(e)||(!!this.networkingError(e)||(!!this.expiredCredentialsError(e)||(!!this.throttledError(e)||e.statusCode>=500)))},networkingError:function(e){return"NetworkingError"===e.code},timeoutError:function(e){return"TimeoutError"===e.code},expiredCredentialsError:function(e){return"ExpiredTokenException"===e.code},clockSkewError:function(e){switch(e.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},getSkewCorrectedDate:function(){return new Date(Date.now()+this.config.systemClockOffset)},applyClockOffset:function(e){e&&(this.config.systemClockOffset=e-Date.now())},isClockSkewed:function(e){if(e)return Math.abs(this.getSkewCorrectedDate().getTime()-e)>=3e5},throttledError:function(e){if(429===e.statusCode)return!0;switch(e.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":case"RequestThrottledException":case"TooManyRequestsException":case"TransactionInProgressException":case"EC2ThrottledException":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 i.Endpoint(e,this.config)},paginationConfig:function(e,t){var r=this.api.operations[e].paginator;if(!r){if(t){var a=new Error;throw i.util.error(a,"No pagination configuration for "+e)}return null}return r}}),i.util.update(i.Service,{defineMethods:function(e){i.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){i.Service._serviceMap[e]=!0,Array.isArray(t)||(r=t,t=[]);var a=o(i.Service,r||{});if("string"==typeof e){i.Service.addVersions(a,t);var s=a.serviceIdentifier||e;a.serviceIdentifier=s}else a.prototype.api=e,i.Service.defineMethods(a);if(i.SequentialExecutor.call(this.prototype),!this.prototype.publisher&&i.util.clientSideMonitoring){var n=i.util.clientSideMonitoring.Publisher,u=i.util.clientSideMonitoring.configProvider,p=u();this.prototype.publisher=new n(p),p.enabled&&(i.Service._clientSideMonitoring=!0)}return i.SequentialExecutor.call(a.prototype),i.Service.addDefaultMonitoringListeners(a.prototype),a},addVersions:function(e,t){Array.isArray(t)||(t=[t]),e.services=e.services||{};for(var r=0;r=0){throw i.util.error(new Error,{name:"InvalidEndpoint",message:"AWS.IotData requires an explicit `endpoint' configuration option."})}},setupRequestListeners:function(e){e.addListener("validateResponse",this.validateResponseBody),a.indexOf(e.operation)>-1&&e.addListener("extractData",i.util.convertPayloadToString)},validateResponseBody:function(e){var t=e.httpResponse.body.toString()||"{}",r=t.trim();r&&"{"===r.charAt(0)||(e.httpResponse.body="")}})},{"../core":329}],385:[function(e,t,r){var i=e("../core");i.util.update(i.Lambda.prototype,{setupRequestListeners:function(e){"invoke"===e.operation&&e.addListener("extractData",i.util.convertPayloadToString)}})},{"../core":329}],386:[function(e,t,r){var i=e("../core");i.util.update(i.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 i.Endpoint(t))}})},{"../core":329}],387:[function(e,t,r){e("../polly/presigner")},{"../polly/presigner":362}],388:[function(e,t,r){var i=e("../core");e("../rds/signer");var a=["copyDBSnapshot","createDBInstanceReadReplica","createDBCluster","copyDBClusterSnapshot","startDBInstanceAutomatedBackupsReplication"];i.util.update(i.RDS.prototype,{setupRequestListeners:function(e){if(-1!==a.indexOf(e.operation)&&e.params.SourceRegion)if(e.params=i.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",i.EventListeners.Core.VALIDATE_PARAMETERS),e.onAsync("validate",this.buildCrossRegionPresignedUrl),t&&e.addListener("validate",i.EventListeners.Core.VALIDATE_PARAMETERS)}},buildCrossRegionPresignedUrl:function(e,t){var r=i.util.copy(e.service.config);r.region=e.params.SourceRegion,delete e.params.SourceRegion,delete r.endpoint,delete r.params,r.signatureVersion="v4";var a=e.service.config.region,s=new e.service.constructor(r),o=s[e.operation](i.util.copy(e.params));o.on("build",function(e){var t=e.httpRequest;t.params.DestinationRegion=a,t.body=i.util.queryParamsToString(t.params)}),o.presign(function(r,i){r?t(r):(e.params.PreSignedUrl=i,t())})}})},{"../core":329,"../rds/signer":370}],389:[function(e,t,r){var i=e("../core");i.util.update(i.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||i.Service.prototype.retryableError.call(this,e)}})},{"../core":329}],390:[function(e,t,r){var i=e("../core"),a=e("../signers/v4_credentials"),s=e("../config_regional_endpoint"),o=e("./s3util"),n=e("../region_config");e("../s3/managed_upload");var u={completeMultipartUpload:!0,copyObject:!0,uploadPartCopy:!0},p=["AuthorizationHeaderMalformed","BadRequest","PermanentRedirect",301];i.util.update(i.S3.prototype,{getSignatureVersion:function(e){var t=this.api.signatureVersion,r=this._originalConfig?this._originalConfig.signatureVersion:null,i=this.config.signatureVersion,a=!!e&&e.isPresigned();return r?r="v2"===r?"s3":r:(!0!==a?t="v4":i&&(t=i),t)},getSigningName:function(){var e=i.Service.prototype.getSigningName;return this._parsedArn&&this._parsedArn.service?this._parsedArn.service:e.call(this)},getSignerClass:function(e){var t=this.getSignatureVersion(e);return i.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 i.util.error(new Error,{name:"InvalidEndpoint",message:e})},shouldDisableBodySigning:function(e){var t=this.getSignerClass();return!0===this.config.s3DisableBodySigning&&t===i.Signers.V4&&"https:"===e.httpRequest.endpoint.protocol},setupRequestListeners:function(e){if(e.addListener("validate",this.validateScheme),e.addListener("validate",this.validateBucketName,!0),e.addListener("validate",this.optInUsEast1RegionalEndpoint,!0),e.removeListener("validate",i.EventListeners.Core.VALIDATE_REGION),e.addListener("build",this.addContentType),e.addListener("build",this.computeContentMd5),e.addListener("build",this.computeSseCustomerKeyMd5),e.addListener("build",this.populateURI),e.addListener("afterBuild",this.addExpect100Continue),e.addListener("extractError",this.extractError),e.addListener("extractData",i.util.hoistPayloadMember),e.addListener("extractData",this.extractData),e.addListener("extractData",this.extractErrorFrom200Response),e.addListener("beforePresign",this.prepareSignedUrl),this.shouldDisableBodySigning(e)&&(e.removeListener("afterBuild",i.EventListeners.Core.COMPUTE_SHA256),e.addListener("afterBuild",this.disableBodySigning)),"createBucket"!==e.operation&&o.isArnInParam(e,"Bucket"))return e.service._parsedArn=i.util.ARN.parse(e.params.Bucket),e.removeListener("validate",this.validateBucketName),e.removeListener("build",this.populateURI),"s3"===e.service._parsedArn.service?(e.addListener("validate",o.validateS3AccessPointArn),e.addListener("validate",this.validateArnResourceType)):"s3-outposts"===e.service._parsedArn.service&&(e.addListener("validate",o.validateOutpostsAccessPointArn),e.addListener("validate",o.validateOutpostsArn)),e.addListener("validate",o.validateArnRegion),e.addListener("validate",o.validateArnAccount),e.addListener("validate",o.validateArnService),e.addListener("build",this.populateUriFromAccessPointArn),void e.addListener("build",o.validatePopulateUriFromArn);e.addListener("validate",this.validateBucketEndpoint),e.addListener("validate",this.correctBucketRegionFromCache),e.onAsync("extractError",this.requestBucketRegion),i.util.isBrowser()&&e.onAsync("retry",this.reqRegionForNetworkingError)},validateScheme:function(e){var t=e.params,r=e.httpRequest.endpoint.protocol;if((t.SSECustomerKey||t.CopySourceSSECustomerKey)&&"https:"!==r)throw i.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 i.util.error(new Error,{code:"ConfigError",message:"Cannot send requests to root API with `s3BucketEndpoint` set."})}},validateArnResourceType:function(e){var t=e.service._parsedArn.resource;if(0!==t.indexOf("accesspoint:")&&0!==t.indexOf("accesspoint/"))throw i.util.error(new Error,{code:"InvalidARN",message:"ARN resource should begin with 'accesspoint/'"})},validateBucketName:function(e){var t=e.service,r=t.getSignatureVersion(e),a=e.params&&e.params.Bucket,s=e.params&&e.params.Key,o=a&&a.indexOf("/");if(a&&o>=0)if("string"==typeof s&&o>0){e.params=i.util.copy(e.params);var n=a.substr(o+1)||"";e.params.Key=n+"/"+s,e.params.Bucket=a.substr(0,o)}else if("v4"===r){var u="Bucket names cannot contain forward slashes. Bucket: "+a;throw i.util.error(new Error,{code:"InvalidBucket",message:u})}},isValidAccelerateOperation:function(e){return-1===["createBucket","deleteBucket","listBuckets"].indexOf(e)},optInUsEast1RegionalEndpoint:function(e){var t=e.service,r=t.config;if(r.s3UsEast1RegionalEndpoint=s(t._originalConfig,{env:"AWS_S3_US_EAST_1_REGIONAL_ENDPOINT",sharedConfig:"s3_us_east_1_regional_endpoint",clientConfig:"s3UsEast1RegionalEndpoint"}),!(t._originalConfig||{}).endpoint&&"us-east-1"===e.httpRequest.region&&"regional"===r.s3UsEast1RegionalEndpoint&&e.httpRequest.endpoint.hostname.indexOf("s3.amazonaws.com")>=0){var i=r.endpoint.indexOf(".amazonaws.com");regionalEndpoint=r.endpoint.substring(0,i)+".us-east-1"+r.endpoint.substring(i),e.httpRequest.updateEndpoint(regionalEndpoint)}},populateURI:function(e){var t=e.httpRequest,r=e.params.Bucket,i=e.service,a=t.endpoint;if(r&&!i.pathStyleBucketName(r)){ diff --git a/lib/core.js b/lib/core.js index 46d142c74d..6a7be50110 100644 --- a/lib/core.js +++ b/lib/core.js @@ -20,7 +20,7 @@ AWS.util.update(AWS, { /** * @constant */ - VERSION: '2.826.0', + VERSION: '2.827.0', /** * @api private diff --git a/package.json b/package.json index a1987ce35d..e6d60f7572 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "aws-sdk", "description": "AWS SDK for JavaScript", - "version": "2.826.0", + "version": "2.827.0", "author": { "name": "Amazon Web Services", "email": "",