Menu
Amazon Lex
Developer Guide

CreateIntentVersion

Creates a new version of an intent based on the $LATEST version of the intent. If the $LATEST version of this intent hasn't changed since you last updated it, Amazon Lex doesn't create a new version. It returns the last version you created.

Note

You can update only the $LATEST version of the intent. You can't update the numbered versions that you create with the CreateIntentVersion operation.

When you create a version of an intent, Amazon Lex sets the version to 1. Subsequent versions increment by 1. For more information, see Versioning.

This operation requires permissions to perform the lex:CreateIntentVersion action.

Request Syntax

POST /intents/name/versions HTTP/1.1 Content-type: application/json { "checksum": "string" }

URI Request Parameters

The request requires the following URI parameters.

name

The name of the intent that you want to create a new version of. The name is case sensitive.

Length Constraints: Minimum length of 1. Maximum length of 100.

Pattern: ^[a-zA-Z]+((_[a-zA-Z]+)*|([a-zA-Z]+_)*|_)

Request Body

The request accepts the following data in JSON format.

checksum

Checksum of the $LATEST version of the intent that should be used to create the new version. If you specify a checksum and the $LATEST version of the intent has a different checksum, Amazon Lex returns a PreconditionFailedException exception and doesn't publish a new version. If you don't specify a checksum, Amazon Lex publishes the $LATEST version.

Type: String

Required: No

Response Syntax

HTTP/1.1 201 Content-type: application/json { "checksum": "string", "conclusionStatement": { "messages": [ { "content": "string", "contentType": "string" } ], "responseCard": "string" }, "confirmationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string" } ], "responseCard": "string" }, "createdDate": number, "description": "string", "dialogCodeHook": { "messageVersion": "string", "uri": "string" }, "followUpPrompt": { "prompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string" } ], "responseCard": "string" }, "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string" } ], "responseCard": "string" } }, "fulfillmentActivity": { "codeHook": { "messageVersion": "string", "uri": "string" }, "type": "string" }, "lastUpdatedDate": number, "name": "string", "parentIntentSignature": "string", "rejectionStatement": { "messages": [ { "content": "string", "contentType": "string" } ], "responseCard": "string" }, "sampleUtterances": [ "string" ], "slots": [ { "description": "string", "name": "string", "priority": number, "responseCard": "string", "sampleUtterances": [ "string" ], "slotConstraint": "string", "slotType": "string", "slotTypeVersion": "string", "valueElicitationPrompt": { "maxAttempts": number, "messages": [ { "content": "string", "contentType": "string" } ], "responseCard": "string" } } ], "version": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 201 response.

The following data is returned in JSON format by the service.

checksum

Checksum of the intent version created.

Type: String

conclusionStatement

After the Lambda function specified in the fulfillmentActivity field fulfills the intent, Amazon Lex conveys this statement to the user.

Type: Statement object

confirmationPrompt

If defined, the prompt that Amazon Lex uses to confirm the user's intent before fulfilling it.

Type: Prompt object

createdDate

The date that the intent was created.

Type: Timestamp

description

A description of the intent.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 200.

dialogCodeHook

If defined, Amazon Lex invokes this Lambda function for each user input.

Type: CodeHook object

followUpPrompt

If defined, Amazon Lex uses this prompt to solicit additional user activity after the intent is fulfilled.

Type: FollowUpPrompt object

fulfillmentActivity

Describes how the intent is fulfilled.

Type: FulfillmentActivity object

lastUpdatedDate

The date that the intent was updated.

Type: Timestamp

name

The name of the intent.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 100.

Pattern: ^[a-zA-Z]+((_[a-zA-Z]+)*|([a-zA-Z]+_)*|_)

parentIntentSignature

A unique identifier for a built-in intent.

Type: String

rejectionStatement

If the user answers "no" to the question defined in confirmationPrompt, Amazon Lex responds with this statement to acknowledge that the intent was canceled.

Type: Statement object

sampleUtterances

An array of sample utterances configured for the intent.

Type: Array of strings

Array Members: Minimum number of 0 items. Maximum number of 1500 items.

Length Constraints: Minimum length of 1. Maximum length of 200.

slots

An array of slot types that defines the information required to fulfill the intent.

Type: Array of Slot objects

Array Members: Minimum number of 0 items. Maximum number of 100 items.

version

The version number assigned to the new version of the intent.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 64.

Pattern: \$LATEST|[0-9]+

Errors

BadRequestException

The request is not well formed. For example, a value is invalid or a required field is missing. Check the field values, and try again.

HTTP Status Code: 400

ConflictException

There was a conflict processing the request. Try your request again.

HTTP Status Code: 409

InternalFailureException

An internal Amazon Lex error occurred. Try your request again.

HTTP Status Code: 500

LimitExceededException

The request exceeded a limit. Try your request again.

HTTP Status Code: 429

NotFoundException

The resource specified in the request was not found. Check the resource and try again.

HTTP Status Code: 404

PreconditionFailedException

The checksum of the resource that you are trying to change does not match the checksum in the request. Check the resource's checksum and try again.

HTTP Status Code: 412

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: