{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2020-08-07",
    "endpointPrefix":"models-v2-lex",
    "jsonVersion":"1.1",
    "protocol":"rest-json",
    "serviceAbbreviation":"Lex Models V2",
    "serviceFullName":"Amazon Lex Model Building V2",
    "serviceId":"Lex Models V2",
    "signatureVersion":"v4",
    "signingName":"lex",
    "uid":"models.lex.v2-2020-08-07"
  },
  "operations":{
    "BuildBotLocale":{
      "name":"BuildBotLocale",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
        "responseCode":202
      },
      "input":{"shape":"BuildBotLocaleRequest"},
      "output":{"shape":"BuildBotLocaleResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Builds a bot, its intents, and its slot types into a specific locale. A bot can be built into multiple locales. At runtime the locale is used to choose a specific build of the bot.</p>"
    },
    "CreateBot":{
      "name":"CreateBot",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/",
        "responseCode":202
      },
      "input":{"shape":"CreateBotRequest"},
      "output":{"shape":"CreateBotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates an Amazon Lex conversational bot. </p>"
    },
    "CreateBotAlias":{
      "name":"CreateBotAlias",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botaliases/",
        "responseCode":202
      },
      "input":{"shape":"CreateBotAliasRequest"},
      "output":{"shape":"CreateBotAliasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates an alias for the specified version of a bot. Use an alias to enable you to change the version of a bot without updating applications that use the bot.</p> <p>For example, you can create an alias called \"PROD\" that your applications use to call the Amazon Lex bot. </p>"
    },
    "CreateBotLocale":{
      "name":"CreateBotLocale",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/",
        "responseCode":202
      },
      "input":{"shape":"CreateBotLocaleRequest"},
      "output":{"shape":"CreateBotLocaleResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a locale in the bot. The locale contains the intents and slot types that the bot uses in conversations with users in the specified language and locale. You must add a locale to a bot before you can add intents and slot types to the bot.</p>"
    },
    "CreateBotVersion":{
      "name":"CreateBotVersion",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/",
        "responseCode":202
      },
      "input":{"shape":"CreateBotVersionRequest"},
      "output":{"shape":"CreateBotVersionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a new version of the bot based on the <code>DRAFT</code> version. If the <code>DRAFT</code> version of this resource hasn't changed since you created the last version, Amazon Lex doesn't create a new version, it returns the last created version.</p> <p>When you create the first version of a bot, Amazon Lex sets the version to 1. Subsequent versions increment by 1.</p>"
    },
    "CreateIntent":{
      "name":"CreateIntent",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/",
        "responseCode":200
      },
      "input":{"shape":"CreateIntentRequest"},
      "output":{"shape":"CreateIntentResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates an intent.</p> <p>To define the interaction between the user and your bot, you define one or more intents. For example, for a pizza ordering bot you would create an <code>OrderPizza</code> intent.</p> <p>When you create an intent, you must provide a name. You can optionally provide the following:</p> <ul> <li> <p>Sample utterances. For example, \"I want to order a pizza\" and \"Can I order a pizza.\" You can't provide utterances for built-in intents.</p> </li> <li> <p>Information to be gathered. You specify slots for the information that you bot requests from the user. You can specify standard slot types, such as date and time, or custom slot types for your application.</p> </li> <li> <p>How the intent is fulfilled. You can provide a Lambda function or configure the intent to return the intent information to your client application. If you use a Lambda function, Amazon Lex invokes the function when all of the intent information is available.</p> </li> <li> <p>A confirmation prompt to send to the user to confirm an intent. For example, \"Shall I order your pizza?\"</p> </li> <li> <p>A conclusion statement to send to the user after the intent is fulfilled. For example, \"I ordered your pizza.\"</p> </li> <li> <p>A follow-up prompt that asks the user for additional activity. For example, \"Do you want a drink with your pizza?\"</p> </li> </ul>"
    },
    "CreateSlot":{
      "name":"CreateSlot",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/",
        "responseCode":200
      },
      "input":{"shape":"CreateSlotRequest"},
      "output":{"shape":"CreateSlotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a slot in an intent. A slot is a variable needed to fulfill an intent. For example, an <code>OrderPizza</code> intent might need slots for size, crust, and number of pizzas. For each slot, you define one or more utterances that Amazon Lex uses to elicit a response from the user. </p>"
    },
    "CreateSlotType":{
      "name":"CreateSlotType",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/",
        "responseCode":200
      },
      "input":{"shape":"CreateSlotTypeRequest"},
      "output":{"shape":"CreateSlotTypeResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a custom slot type</p> <p> To create a custom slot type, specify a name for the slot type and a set of enumeration values, the values that a slot of this type can assume. </p>"
    },
    "DeleteBot":{
      "name":"DeleteBot",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteBotRequest"},
      "output":{"shape":"DeleteBotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes all versions of a bot, including the <code>Draft</code> version. To delete a specific version, use the <code>DeleteBotVersion</code> operation.</p> <p>When you delete a bot, all of the resources contained in the bot are also deleted. Deleting a bot removes all locales, intents, slot, and slot types defined for the bot.</p> <p>If a bot has an alias, the <code>DeleteBot</code> operation returns a <code>ResourceInUseException</code> exception. If you want to delete the bot and the alias, set the <code>skipResourceInUseCheck</code> parameter to <code>true</code>.</p>"
    },
    "DeleteBotAlias":{
      "name":"DeleteBotAlias",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botaliases/{botAliasId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteBotAliasRequest"},
      "output":{"shape":"DeleteBotAliasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes the specified bot alias.</p>"
    },
    "DeleteBotLocale":{
      "name":"DeleteBotLocale",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteBotLocaleRequest"},
      "output":{"shape":"DeleteBotLocaleResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes a locale from a bot.</p> <p>When you delete a locale, all intents, slots, and slot types defined for the locale are also deleted.</p>"
    },
    "DeleteBotVersion":{
      "name":"DeleteBotVersion",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteBotVersionRequest"},
      "output":{"shape":"DeleteBotVersionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a specific version of a bot. To delete all version of a bot, use the <a>DeleteBot</a> operation.</p>"
    },
    "DeleteIntent":{
      "name":"DeleteIntent",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/",
        "responseCode":204
      },
      "input":{"shape":"DeleteIntentRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes the specified intent.</p> <p>Deleting an intent also deletes the slots associated with the intent.</p>"
    },
    "DeleteSlot":{
      "name":"DeleteSlot",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/{slotId}/",
        "responseCode":204
      },
      "input":{"shape":"DeleteSlotRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes the specified slot from an intent.</p>"
    },
    "DeleteSlotType":{
      "name":"DeleteSlotType",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/{slotTypeId}/",
        "responseCode":204
      },
      "input":{"shape":"DeleteSlotTypeRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes a slot type from a bot locale.</p> <p>If a slot is using the slot type, Amazon Lex throws a <code>ResourceInUseException</code> exception. To avoid the exception, set the <code>skipResourceInUseCheck</code> parameter to <code>true</code>.</p>"
    },
    "DescribeBot":{
      "name":"DescribeBot",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotRequest"},
      "output":{"shape":"DescribeBotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides metadata information about a bot. </p>"
    },
    "DescribeBotAlias":{
      "name":"DescribeBotAlias",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botaliases/{botAliasId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotAliasRequest"},
      "output":{"shape":"DescribeBotAliasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Get information about a specific bot alias.</p>"
    },
    "DescribeBotLocale":{
      "name":"DescribeBotLocale",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotLocaleRequest"},
      "output":{"shape":"DescribeBotLocaleResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Describes the settings that a bot has for a specific locale. </p>"
    },
    "DescribeBotVersion":{
      "name":"DescribeBotVersion",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotVersionRequest"},
      "output":{"shape":"DescribeBotVersionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides metadata about a version of a bot.</p>"
    },
    "DescribeIntent":{
      "name":"DescribeIntent",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeIntentRequest"},
      "output":{"shape":"DescribeIntentResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns metadata about an intent.</p>"
    },
    "DescribeSlot":{
      "name":"DescribeSlot",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/{slotId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeSlotRequest"},
      "output":{"shape":"DescribeSlotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets metadata information about a slot.</p>"
    },
    "DescribeSlotType":{
      "name":"DescribeSlotType",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/{slotTypeId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeSlotTypeRequest"},
      "output":{"shape":"DescribeSlotTypeResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets metadata information about a slot type.</p>"
    },
    "ListBotAliases":{
      "name":"ListBotAliases",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botaliases/",
        "responseCode":200
      },
      "input":{"shape":"ListBotAliasesRequest"},
      "output":{"shape":"ListBotAliasesResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of aliases for the specified bot.</p>"
    },
    "ListBotLocales":{
      "name":"ListBotLocales",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/",
        "responseCode":200
      },
      "input":{"shape":"ListBotLocalesRequest"},
      "output":{"shape":"ListBotLocalesResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of locales for the specified bot.</p>"
    },
    "ListBotVersions":{
      "name":"ListBotVersions",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/",
        "responseCode":200
      },
      "input":{"shape":"ListBotVersionsRequest"},
      "output":{"shape":"ListBotVersionsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about all of the versions of a bot.</p> <p>The <code>ListBotVersions</code> operation returns a summary of each version of a bot. For example, if a bot has three numbered versions, the <code>ListBotVersions</code> operation returns for summaries, one for each numbered version and one for the <code>DRAFT</code> version.</p> <p>The <code>ListBotVersions</code> operation always returns at least one version, the <code>DRAFT</code> version.</p>"
    },
    "ListBots":{
      "name":"ListBots",
      "http":{
        "method":"POST",
        "requestUri":"/bots/",
        "responseCode":200
      },
      "input":{"shape":"ListBotsRequest"},
      "output":{"shape":"ListBotsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of available bots.</p>"
    },
    "ListBuiltInIntents":{
      "name":"ListBuiltInIntents",
      "http":{
        "method":"POST",
        "requestUri":"/builtins/locales/{localeId}/intents/",
        "responseCode":200
      },
      "input":{"shape":"ListBuiltInIntentsRequest"},
      "output":{"shape":"ListBuiltInIntentsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of built-in intents provided by Amazon Lex that you can use in your bot. </p> <p>To use a built-in intent as a the base for your own intent, include the built-in intent signature in the <code>parentIntentSignature</code> parameter when you call the <code>CreateIntent</code> operation. For more information, see <a>CreateIntent</a>.</p>"
    },
    "ListBuiltInSlotTypes":{
      "name":"ListBuiltInSlotTypes",
      "http":{
        "method":"POST",
        "requestUri":"/builtins/locales/{localeId}/slottypes/",
        "responseCode":200
      },
      "input":{"shape":"ListBuiltInSlotTypesRequest"},
      "output":{"shape":"ListBuiltInSlotTypesResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of built-in slot types that meet the specified criteria.</p>"
    },
    "ListIntents":{
      "name":"ListIntents",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/",
        "responseCode":200
      },
      "input":{"shape":"ListIntentsRequest"},
      "output":{"shape":"ListIntentsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Get a list of intents that meet the specified criteria.</p>"
    },
    "ListSlotTypes":{
      "name":"ListSlotTypes",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/",
        "responseCode":200
      },
      "input":{"shape":"ListSlotTypesRequest"},
      "output":{"shape":"ListSlotTypesResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of slot types that match the specified criteria.</p>"
    },
    "ListSlots":{
      "name":"ListSlots",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/",
        "responseCode":200
      },
      "input":{"shape":"ListSlotsRequest"},
      "output":{"shape":"ListSlotsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of slots that match the specified criteria.</p>"
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"GET",
        "requestUri":"/tags/{resourceARN}",
        "responseCode":200
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Gets a list of tags associated with a resource. Only bots, bot aliases, and bot channels can have tags associated with them.</p>"
    },
    "TagResource":{
      "name":"TagResource",
      "http":{
        "method":"POST",
        "requestUri":"/tags/{resourceARN}",
        "responseCode":200
      },
      "input":{"shape":"TagResourceRequest"},
      "output":{"shape":"TagResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Adds the specified tags to the specified resource. If a tag key already exists, the existing value is replaced with the new value.</p>"
    },
    "UntagResource":{
      "name":"UntagResource",
      "http":{
        "method":"DELETE",
        "requestUri":"/tags/{resourceARN}",
        "responseCode":200
      },
      "input":{"shape":"UntagResourceRequest"},
      "output":{"shape":"UntagResourceResponse"},
      "errors":[
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"}
      ],
      "documentation":"<p>Removes tags from a bot, bot alias, or bot channel.</p>"
    },
    "UpdateBot":{
      "name":"UpdateBot",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateBotRequest"},
      "output":{"shape":"UpdateBotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the configuration of an existing bot. </p>"
    },
    "UpdateBotAlias":{
      "name":"UpdateBotAlias",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botaliases/{botAliasId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateBotAliasRequest"},
      "output":{"shape":"UpdateBotAliasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the configuration of an existing bot alias.</p>"
    },
    "UpdateBotLocale":{
      "name":"UpdateBotLocale",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateBotLocaleRequest"},
      "output":{"shape":"UpdateBotLocaleResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the settings that a bot has for a specific locale.</p>"
    },
    "UpdateIntent":{
      "name":"UpdateIntent",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/",
        "responseCode":200
      },
      "input":{"shape":"UpdateIntentRequest"},
      "output":{"shape":"UpdateIntentResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the settings for an intent.</p>"
    },
    "UpdateSlot":{
      "name":"UpdateSlot",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/intents/{intentId}/slots/{slotId}/",
        "responseCode":200
      },
      "input":{"shape":"UpdateSlotRequest"},
      "output":{"shape":"UpdateSlotResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the settings for a slot.</p>"
    },
    "UpdateSlotType":{
      "name":"UpdateSlotType",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/slottypes/{slotTypeId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateSlotTypeRequest"},
      "output":{"shape":"UpdateSlotTypeResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the configuration of an existing slot type.</p>"
    }
  },
  "shapes":{
    "AmazonResourceName":{
      "type":"string",
      "max":1011,
      "min":1
    },
    "AttachmentTitle":{
      "type":"string",
      "max":250,
      "min":1
    },
    "AttachmentUrl":{
      "type":"string",
      "max":250,
      "min":1
    },
    "AudioLogDestination":{
      "type":"structure",
      "required":["s3Bucket"],
      "members":{
        "s3Bucket":{
          "shape":"S3BucketLogDestination",
          "documentation":"<p>The Amazon S3 bucket where the audio log files are stored. The IAM role specified in the <code>roleArn</code> parameter of the <a>CreateBot</a> operation must have permission to write to this bucket.</p>"
        }
      },
      "documentation":"<p>The location of audio log files collected when conversation logging is enabled for a bot.</p>"
    },
    "AudioLogSetting":{
      "type":"structure",
      "required":[
        "enabled",
        "destination"
      ],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Determines whether audio logging in enabled for the bot.</p>"
        },
        "destination":{"shape":"AudioLogDestination"}
      },
      "documentation":"<p>Settings for logging audio of conversations between Amazon Lex and a user. You specify whether to log audio and the Amazon S3 bucket where the audio file is stored.</p>"
    },
    "AudioLogSettingsList":{
      "type":"list",
      "member":{"shape":"AudioLogSetting"},
      "max":1,
      "min":1
    },
    "Boolean":{"type":"boolean"},
    "BotAliasHistoryEvent":{
      "type":"structure",
      "members":{
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that was used in the event. </p>"
        },
        "startDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the event started.</p>"
        },
        "endDate":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the event ended.</p>"
        }
      },
      "documentation":"<p>Provides a record of an event that affects a bot alias. For example, when the version of a bot that the alias points to changes.</p>"
    },
    "BotAliasHistoryEventsList":{
      "type":"list",
      "member":{"shape":"BotAliasHistoryEvent"}
    },
    "BotAliasId":{
      "type":"string",
      "max":10,
      "min":10,
      "pattern":"^(\\bTSTALIASID\\b|[0-9a-zA-Z]+)$"
    },
    "BotAliasLocaleSettings":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Determines whether the locale is enabled for the bot. If the value is <code>false</code>, the locale isn't available for use.</p>"
        },
        "codeHookSpecification":{
          "shape":"CodeHookSpecification",
          "documentation":"<p>Specifies the Lambda function that should be used in the locale.</p>"
        }
      },
      "documentation":"<p>Specifies settings that are unique to a locale. For example, you can use different Lambda function depending on the bot's locale.</p>"
    },
    "BotAliasLocaleSettingsMap":{
      "type":"map",
      "key":{"shape":"LocaleId"},
      "value":{"shape":"BotAliasLocaleSettings"},
      "min":1
    },
    "BotAliasStatus":{
      "type":"string",
      "enum":[
        "Creating",
        "Available",
        "Deleting",
        "Failed"
      ]
    },
    "BotAliasSummary":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The unique identifier assigned to the bot alias. You can use this ID to get detailed information about the alias using the <a>DescribeBotAlias</a> operation.</p>"
        },
        "botAliasName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot alias.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the bot alias.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that the bot alias references.</p>"
        },
        "botAliasStatus":{
          "shape":"BotAliasStatus",
          "documentation":"<p>The current state of the bot alias. If the status is <code>Available</code>, the alias is ready for use.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot alias was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot alias was last updated.</p>"
        }
      },
      "documentation":"<p>Summary information about bot aliases returned from the <a>ListBotAliases</a> operation.</p>"
    },
    "BotAliasSummaryList":{
      "type":"list",
      "member":{"shape":"BotAliasSummary"}
    },
    "BotFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"BotFilterName",
          "documentation":"<p>The name of the field to filter the list of bots.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The value to use for filtering the list of bots.</p>"
        },
        "operator":{
          "shape":"BotFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify <code>EQ</code> when the <code>ListBots</code> operation should return only aliases that equal the specified value. Specify <code>CO</code> when the <code>ListBots</code> operation should return aliases that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters the responses returned by the <code>ListBots</code> operation.</p>"
    },
    "BotFilterName":{
      "type":"string",
      "enum":["BotName"]
    },
    "BotFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "BotFilters":{
      "type":"list",
      "member":{"shape":"BotFilter"},
      "max":1,
      "min":1
    },
    "BotLocaleFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"BotLocaleFilterName",
          "documentation":"<p>The name of the field to filter the list of bots.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The value to use for filtering the list of bots.</p>"
        },
        "operator":{
          "shape":"BotLocaleFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify <code>EQ</code> when the <code>ListBotLocales</code> operation should return only aliases that equal the specified value. Specify <code>CO</code> when the <code>ListBotLocales</code> operation should return aliases that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters responses returned by the <code>ListBotLocales</code> operation.</p>"
    },
    "BotLocaleFilterName":{
      "type":"string",
      "enum":["BotLocaleName"]
    },
    "BotLocaleFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "BotLocaleFilters":{
      "type":"list",
      "member":{"shape":"BotLocaleFilter"},
      "max":1,
      "min":1
    },
    "BotLocaleHistoryEvent":{
      "type":"structure",
      "required":[
        "event",
        "eventDate"
      ],
      "members":{
        "event":{
          "shape":"BotLocaleHistoryEventDescription",
          "documentation":"<p>A description of the event that occurred.</p>"
        },
        "eventDate":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the event occurred.</p>"
        }
      },
      "documentation":"<p>Provides information about an event that occurred affecting the bot locale.</p>"
    },
    "BotLocaleHistoryEventDescription":{"type":"string"},
    "BotLocaleHistoryEventsList":{
      "type":"list",
      "member":{"shape":"BotLocaleHistoryEvent"}
    },
    "BotLocaleSortAttribute":{
      "type":"string",
      "enum":["BotLocaleName"]
    },
    "BotLocaleSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"BotLocaleSortAttribute",
          "documentation":"<p>The bot locale attribute to sort by.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort the bot locales in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of bot locales.</p>"
    },
    "BotLocaleStatus":{
      "type":"string",
      "enum":[
        "Creating",
        "Building",
        "Built",
        "ReadyExpressTesting",
        "Failed",
        "Deleting",
        "NotBuilt"
      ]
    },
    "BotLocaleSummary":{
      "type":"structure",
      "members":{
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the bot locale.</p>"
        },
        "localeName":{
          "shape":"LocaleName",
          "documentation":"<p>The name of the bot locale.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the bot locale.</p>"
        },
        "botLocaleStatus":{
          "shape":"BotLocaleStatus",
          "documentation":"<p>The current status of the bot locale. When the status is <code>Built</code> the locale is ready for use.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot locale was last updated.</p>"
        },
        "lastBuildSubmittedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot locale was last built.</p>"
        }
      },
      "documentation":"<p>Summary information about bot locales returned by the <a>ListBotLocales</a> operation.</p>"
    },
    "BotLocaleSummaryList":{
      "type":"list",
      "member":{"shape":"BotLocaleSummary"}
    },
    "BotSortAttribute":{
      "type":"string",
      "enum":["BotName"]
    },
    "BotSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"BotSortAttribute",
          "documentation":"<p>The attribute to use to sort the list of bots.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can choose ascending or descending.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of bots.</p>"
    },
    "BotStatus":{
      "type":"string",
      "enum":[
        "Creating",
        "Available",
        "Inactive",
        "Deleting",
        "Failed",
        "Versioning"
      ]
    },
    "BotSummary":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned to the bot. Use this ID to get detailed information about the bot with the <a>DescribeBot</a> operation.</p>"
        },
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the bot.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>The current status of the bot. When the status is <code>Available</code> the bot is ready for use.</p>"
        },
        "latestBotVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The latest numerical version in use for the bot.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the bot was last updated.</p>"
        }
      },
      "documentation":"<p>Summary information about a bot returned by the <a>ListBots</a> operation.</p>"
    },
    "BotSummaryList":{
      "type":"list",
      "member":{"shape":"BotSummary"}
    },
    "BotVersion":{
      "type":"string",
      "max":5,
      "min":1,
      "pattern":"^(DRAFT|[0-9]+)$"
    },
    "BotVersionLocaleDetails":{
      "type":"structure",
      "required":["sourceBotVersion"],
      "members":{
        "sourceBotVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of a bot used for a bot locale.</p>"
        }
      },
      "documentation":"<p>The version of a bot used for a bot locale.</p>"
    },
    "BotVersionLocaleSpecification":{
      "type":"map",
      "key":{"shape":"LocaleId"},
      "value":{"shape":"BotVersionLocaleDetails"},
      "min":1
    },
    "BotVersionSortAttribute":{
      "type":"string",
      "enum":["BotVersion"]
    },
    "BotVersionSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"BotVersionSortAttribute",
          "documentation":"<p>The attribute to use to sort the list of versions.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can specify ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of bot versions.</p>"
    },
    "BotVersionSummary":{
      "type":"structure",
      "members":{
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot associated with the version.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The numeric version of the bot, or <code>DRAFT</code> to indicate that this is the version of the bot that can be updated..</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the version.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>The status of the bot. When the status is available, the version of the bot is ready for use.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the version was created.</p>"
        }
      },
      "documentation":"<p>Summary information about a bot version returned by the <a>ListBotVersions</a> operation.</p>"
    },
    "BotVersionSummaryList":{
      "type":"list",
      "member":{"shape":"BotVersionSummary"}
    },
    "BoxedBoolean":{
      "type":"boolean",
      "box":true
    },
    "BuildBotLocaleRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to build. The identifier is returned in the response from the operation.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot to build. This can only be the draft version of the bot.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "BuildBotLocaleResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the specified bot.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that was built. This is only the draft version of the bot.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale specified of where the bot can be used.</p>"
        },
        "botLocaleStatus":{
          "shape":"BotLocaleStatus",
          "documentation":"<p>The bot's build status. When the status is <code>ReadyExpressTesting</code> you can test the bot using the utterances defined for the intents and slot types. When the status is <code>Built</code>, the bot is ready for use and can be tested using any utterance.</p>"
        },
        "lastBuildSubmittedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating the date and time that the bot was last built for this locale.</p>"
        }
      }
    },
    "BuiltInIntentSortAttribute":{
      "type":"string",
      "enum":["IntentSignature"]
    },
    "BuiltInIntentSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"BuiltInIntentSortAttribute",
          "documentation":"<p>The attribute to use to sort the list of built-in intents.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can specify ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of built-in intents.</p>"
    },
    "BuiltInIntentSummary":{
      "type":"structure",
      "members":{
        "intentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>The signature of the built-in intent. Use this to specify the parent intent of a derived intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the intent.</p>"
        }
      },
      "documentation":"<p>Provides summary information about a built-in intent for the <a>ListBuiltInIntents</a> operation.</p>"
    },
    "BuiltInIntentSummaryList":{
      "type":"list",
      "member":{"shape":"BuiltInIntentSummary"}
    },
    "BuiltInOrCustomSlotTypeId":{
      "type":"string",
      "max":25,
      "min":1,
      "pattern":"^((AMAZON\\.)[a-zA-Z_]+?|[0-9a-zA-Z]+)$"
    },
    "BuiltInSlotTypeSortAttribute":{
      "type":"string",
      "enum":["SlotTypeSignature"]
    },
    "BuiltInSlotTypeSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"BuiltInSlotTypeSortAttribute",
          "documentation":"<p>The attribute to use to sort the list of built-in intents.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can choose ascending or descending.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of built-in slot types.</p>"
    },
    "BuiltInSlotTypeSummary":{
      "type":"structure",
      "members":{
        "slotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>The signature of the built-in slot type. Use this to specify the parent slot type of a derived slot type.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the built-in slot type.</p>"
        }
      },
      "documentation":"<p>Provides summary information about a built-in slot type for the <a>ListBuiltInSlotTypes</a> operation.</p>"
    },
    "BuiltInSlotTypeSummaryList":{
      "type":"list",
      "member":{"shape":"BuiltInSlotTypeSummary"}
    },
    "BuiltInsMaxResults":{
      "type":"integer",
      "box":true,
      "max":20,
      "min":20
    },
    "Button":{
      "type":"structure",
      "required":[
        "text",
        "value"
      ],
      "members":{
        "text":{
          "shape":"ButtonText",
          "documentation":"<p>The text that appears on the button. Use this to tell the user what value is returned when they choose this button.</p>"
        },
        "value":{
          "shape":"ButtonValue",
          "documentation":"<p>The value returned to Amazon Lex when the user chooses this button. This must be one of the slot values configured for the slot.</p>"
        }
      },
      "documentation":"<p>Describes a button to use on a response card used to gather slot values from a user.</p>"
    },
    "ButtonText":{
      "type":"string",
      "max":50,
      "min":1
    },
    "ButtonValue":{
      "type":"string",
      "max":50,
      "min":1
    },
    "ButtonsList":{
      "type":"list",
      "member":{"shape":"Button"},
      "max":5,
      "min":0
    },
    "ChildDirected":{"type":"boolean"},
    "CloudWatchLogGroupArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"^arn:[\\w\\-]+:logs:[\\w\\-]+:[\\d]{12}:log-group:[\\.\\-_/#A-Za-z0-9]{1,512}(?::\\*)?$"
    },
    "CloudWatchLogGroupLogDestination":{
      "type":"structure",
      "required":[
        "cloudWatchLogGroupArn",
        "logPrefix"
      ],
      "members":{
        "cloudWatchLogGroupArn":{
          "shape":"CloudWatchLogGroupArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the log group where text and metadata logs are delivered.</p>"
        },
        "logPrefix":{
          "shape":"LogPrefix",
          "documentation":"<p>The prefix of the log stream name within the log group that you specified </p>"
        }
      },
      "documentation":"<p>The Amazon CloudWatch Logs log group where the text and metadata logs are delivered. The log group must exist before you enable logging.</p>"
    },
    "CodeHookInterfaceVersion":{
      "type":"string",
      "max":5,
      "min":1
    },
    "CodeHookSpecification":{
      "type":"structure",
      "required":["lambdaCodeHook"],
      "members":{
        "lambdaCodeHook":{"shape":"LambdaCodeHook"}
      },
      "documentation":"<p>Contains information about code hooks that Amazon Lex calls during a conversation.</p>"
    },
    "ConfidenceThreshold":{
      "type":"double",
      "max":1,
      "min":0
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":409},
      "exception":true
    },
    "ContextTimeToLiveInSeconds":{
      "type":"integer",
      "max":86400,
      "min":5
    },
    "ContextTurnsToLive":{
      "type":"integer",
      "max":20,
      "min":1
    },
    "ConversationLogSettings":{
      "type":"structure",
      "members":{
        "textLogSettings":{
          "shape":"TextLogSettingsList",
          "documentation":"<p>The Amazon CloudWatch Logs settings for logging text and metadata.</p>"
        },
        "audioLogSettings":{
          "shape":"AudioLogSettingsList",
          "documentation":"<p>The Amazon S3 settings for logging audio to an S3 bucket.</p>"
        }
      },
      "documentation":"<p>Configures conversation logging that saves audio, text, and metadata for the conversations with your users.</p>"
    },
    "CreateBotAliasRequest":{
      "type":"structure",
      "required":[
        "botAliasName",
        "botId"
      ],
      "members":{
        "botAliasName":{
          "shape":"Name",
          "documentation":"<p>The alias to create. The name must be unique for the bot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the alias. Use this description to help identify the alias.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot that this alias points to. You can use the operation to change the bot version associated with the alias.</p>"
        },
        "botAliasLocaleSettings":{
          "shape":"BotAliasLocaleSettingsMap",
          "documentation":"<p>Maps configuration information to a specific locale. You can use this parameter to specify a specific Lambda function to run different functions in different locales.</p>"
        },
        "conversationLogSettings":{
          "shape":"ConversationLogSettings",
          "documentation":"<p>Specifies whether Amazon Lex logs text and audio for a conversation with the bot. When you enable conversation logs, text logs store text input, transcripts of audio input, and associated metadata in Amazon CloudWatch Logs. Audio logs store audio input in Amazon S3.</p>"
        },
        "sentimentAnalysisSettings":{"shape":"SentimentAnalysisSettings"},
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that the alias applies to.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags to add to the bot alias. You can only add tags when you create an alias, you can't use the <code>UpdateBotAlias</code> operation to update the tags on a bot alias. To update tags, use the <code>TagResource</code> operation.</p>"
        }
      }
    },
    "CreateBotAliasResponse":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The unique identifier of the bot alias.</p>"
        },
        "botAliasName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the bot alias.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the bot alias.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot associated with this alias.</p>"
        },
        "botAliasLocaleSettings":{
          "shape":"BotAliasLocaleSettingsMap",
          "documentation":"<p>Configuration information for a specific locale.</p>"
        },
        "conversationLogSettings":{
          "shape":"ConversationLogSettings",
          "documentation":"<p>The conversation log settings specified for the alias.</p>"
        },
        "sentimentAnalysisSettings":{"shape":"SentimentAnalysisSettings"},
        "botAliasStatus":{
          "shape":"BotAliasStatus",
          "documentation":"<p>The current status of the alias. The alias is first put into the <code>Creating</code> state. When the alias is ready to be used, it is put into the <code>Available</code> state. You can use the <code>DescribeBotAlias</code> operation to get the current state of an alias.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that this alias applies to.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A Unix timestamp indicating the date and time that the bot alias was created.</p>"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags associated with the bot alias.</p>"
        }
      }
    },
    "CreateBotLocaleRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "nluIntentConfidenceThreshold"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to create the locale for.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot to create the locale for. This can only be the draft version of the bot.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the bot will be used in. The string must match one of the supported locales. All of the intents, slot types, and slots used in the bot must have the same locale. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the bot locale. Use this to help identify the bot locale in lists.</p>"
        },
        "nluIntentConfidenceThreshold":{
          "shape":"ConfidenceThreshold",
          "documentation":"<p>Determines the threshold where Amazon Lex will insert the <code>AMAZON.FallbackIntent</code>, <code>AMAZON.KendraSearchIntent</code>, or both when returning alternative intents. <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> are only inserted if they are configured for the bot.</p> <p>For example, suppose a bot is configured with the confidence threshold of 0.80 and the <code>AMAZON.FallbackIntent</code>. Amazon Lex returns three alternative intents with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). The response from the PostText operation would be:</p> <ul> <li> <p>AMAZON.FallbackIntent</p> </li> <li> <p>IntentA</p> </li> <li> <p>IntentB</p> </li> <li> <p>IntentC</p> </li> </ul>"
        },
        "voiceSettings":{
          "shape":"VoiceSettings",
          "documentation":"<p>The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user.</p>"
        }
      }
    },
    "CreateBotLocaleResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The specified bot identifier.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The specified bot version.</p>"
        },
        "localeName":{
          "shape":"LocaleName",
          "documentation":"<p>The specified locale name.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The specified locale identifier.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The specified description of the bot locale.</p>"
        },
        "nluIntentConfidenceThreshold":{
          "shape":"ConfidenceThreshold",
          "documentation":"<p>The specified confidence threshold for inserting the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents.</p>"
        },
        "voiceSettings":{
          "shape":"VoiceSettings",
          "documentation":"<p>The Amazon Polly voice ID that Amazon Lex uses for voice interaction with the user.</p>"
        },
        "botLocaleStatus":{
          "shape":"BotLocaleStatus",
          "documentation":"<p>The status of the bot.</p> <p>When the status is <code>Creating</code> the bot locale is being configured. When the status is <code>Building</code> Amazon Lex is building the bot for testing and use.</p> <p>If the status of the bot is <code>ReadyExpressTesting</code>, you can test the bot using the exact utterances specified in the bots' intents. When the bot is ready for full testing or to run, the status is <code>Built</code>.</p> <p>If there was a problem with building the bot, the status is <code>Failed</code>. If the bot was saved but not built, the status is <code>NotBuilt</code>.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp specifying the date and time that the bot locale was created.</p>"
        }
      }
    },
    "CreateBotRequest":{
      "type":"structure",
      "required":[
        "botName",
        "roleArn",
        "dataPrivacy",
        "idleSessionTTLInSeconds"
      ],
      "members":{
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot. The bot name must be unique in the account that creates the bot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the bot. It appears in lists to help you identify a particular bot.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that has permission to access the bot.</p>"
        },
        "dataPrivacy":{
          "shape":"DataPrivacy",
          "documentation":"<p>Provides information on additional privacy protections Amazon Lex should use with the bot's data.</p>"
        },
        "idleSessionTTLInSeconds":{
          "shape":"SessionTTL",
          "documentation":"<p>The time, in seconds, that Amazon Lex should keep information about a user's conversation with the bot. </p> <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout.</p> <p>You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.</p>"
        },
        "botTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags to add to the bot. You can only add tags when you create a bot. You can't use the <code>UpdateBot</code> operation to update tags. To update tags, use the <code>TagResource</code> operation.</p>"
        },
        "testBotAliasTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags to add to the test alias for a bot. You can only add tags when you create a bot. You can't use the <code>UpdateAlias</code> operation to update tags. To update tags on the test alias, use the <code>TagResource</code> operation.</p>"
        }
      }
    },
    "CreateBotResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>A unique identifier for a particular bot. You use this to identify the bot when you call other Amazon Lex API operations.</p>"
        },
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the bot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the bot.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The IAM role specified for the bot.</p>"
        },
        "dataPrivacy":{
          "shape":"DataPrivacy",
          "documentation":"<p>The data privacy settings specified for the bot.</p>"
        },
        "idleSessionTTLInSeconds":{
          "shape":"SessionTTL",
          "documentation":"<p>The session idle time specified for the bot.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>Shows the current status of the bot. The bot is first in the <code>Creating</code> status. Once the bot is read for use, it changes to the <code>Available</code> status. After the bot is created, you can use the <code>Draft</code> version of the bot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating the date and time that the bot was created.</p>"
        },
        "botTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags associated with the bot.</p>"
        },
        "testBotAliasTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags associated with the test alias for the bot.</p>"
        }
      }
    },
    "CreateBotVersionRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersionLocaleSpecification"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to create the version for.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the version. Use the description to help identify the version in lists.</p>"
        },
        "botVersionLocaleSpecification":{
          "shape":"BotVersionLocaleSpecification",
          "documentation":"<p>Specifies the locales that Amazon Lex adds to this version. You can choose the <code>Draft</code> version or any other previously published version for each locale. When you specify a source version, the locale data is copied from the source version to the new version.</p>"
        }
      }
    },
    "CreateBotVersionResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The bot identifier specified in the request.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the version specified in the request.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version number assigned to the version.</p>"
        },
        "botVersionLocaleSpecification":{
          "shape":"BotVersionLocaleSpecification",
          "documentation":"<p>The source versions used for each locale in the new version.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>When you send a request to create or update a bot, Amazon Lex sets the status response element to <code>Creating</code>. After Amazon Lex builds the bot, it sets status to <code>Available</code>. If Amazon Lex can't build the bot, it sets status to <code>Failed</code>.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the version was created.</p>"
        }
      }
    },
    "CreateIntentRequest":{
      "type":"structure",
      "required":[
        "intentName",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent. Intent names must be unique in the locale that contains the intent and cannot match the name of any built-in intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the intent. Use the description to help identify the intent in lists.</p>"
        },
        "parentIntentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>A unique identifier for the built-in intent to base this intent on.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>An array of strings that a user might say to signal the intent. For example, \"I want a pizza\", or \"I want a {PizzaSize} pizza\". </p> <p>In an utterance, slot names are enclosed in curly braces (\"{\", \"}\") to indicate where they should be displayed in the utterance shown to the user.. </p>"
        },
        "dialogCodeHook":{
          "shape":"DialogCodeHookSettings",
          "documentation":"<p>Specifies that Amazon Lex invokes the alias Lambda function for each user input. You can invoke this Lambda function to personalize user interaction.</p> <p>For example, suppose that your bot determines that the user's name is John. You Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, <code>glutenIntolerant</code> to <code>true</code>. You might find John's phone number and set the corresponding session attribute.</p>"
        },
        "fulfillmentCodeHook":{
          "shape":"FulfillmentCodeHookSettings",
          "documentation":"<p>Specifies that Amazon Lex invokes the alias Lambda function when the intent is ready for fulfillment. You can invoke this function to complete the bot's transaction with the user.</p> <p>For example, in a pizza ordering bot, the Lambda function can look up the closest pizza restaurant to the customer's location and then place an order on the customer's behalf.</p>"
        },
        "intentConfirmationSetting":{
          "shape":"IntentConfirmationSetting",
          "documentation":"<p>Provides prompts that Amazon Lex sends to the user to confirm the completion of an intent. If the user answers \"no,\" the settings contain a statement that is sent to the user to end the intent.</p>"
        },
        "intentClosingSetting":{
          "shape":"IntentClosingSetting",
          "documentation":"<p>Sets the response that Amazon Lex sends to the user when the intent is closed.</p>"
        },
        "inputContexts":{
          "shape":"InputContextsList",
          "documentation":"<p>A list of contexts that must be active for this intent to be considered by Amazon Lex.</p> <p>When an intent has an input context list, Amazon Lex only considers using the intent in an interaction with the user when the specified contexts are included in the active context list for the session. If the contexts are not active, then Amazon Lex will not use the intent.</p> <p>A context can be automatically activated using the <code>outputContexts</code> property or it can be set at runtime.</p> <p> For example, if there are two intents with different input contexts that respond to the same utterances, only the intent with the active context will respond.</p> <p>An intent may have up to 5 input contexts. If an intent has multiple input contexts, all of the contexts must be active to consider the intent.</p>"
        },
        "outputContexts":{
          "shape":"OutputContextsList",
          "documentation":"<p>A lists of contexts that the intent activates when it is fulfilled.</p> <p>You can use an output context to indicate the intents that Amazon Lex should consider for the next turn of the conversation with a customer. </p> <p>When you use the <code>outputContextsList</code> property, all of the contexts specified in the list are activated when the intent is fulfilled. You can set up to 10 output contexts. You can also set the number of conversation turns that the context should be active, or the length of time that the context should be active.</p>"
        },
        "kendraConfiguration":{
          "shape":"KendraConfiguration",
          "documentation":"<p>Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent to connect to an Amazon Kendra index. The <code>AMAZON.KendraSearchIntent</code> intent is called when Amazon Lex can't determine another intent to invoke.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this intent.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this intent.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this intent is used. All of the bots, slot types, and slots used by the intent must have the same locale.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "CreateIntentResponse":{
      "type":"structure",
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>A unique identifier for the intent.</p>"
        },
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the intent.</p>"
        },
        "parentIntentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>The signature of the parent intent specified for the intent.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>The sample utterances specified for the intent.</p>"
        },
        "dialogCodeHook":{
          "shape":"DialogCodeHookSettings",
          "documentation":"<p>The dialog Lambda function specified for the intent.</p>"
        },
        "fulfillmentCodeHook":{
          "shape":"FulfillmentCodeHookSettings",
          "documentation":"<p>The fulfillment Lambda function specified for the intent.</p>"
        },
        "intentConfirmationSetting":{
          "shape":"IntentConfirmationSetting",
          "documentation":"<p>The confirmation setting specified for the intent.</p>"
        },
        "intentClosingSetting":{
          "shape":"IntentClosingSetting",
          "documentation":"<p>The closing setting specified for the intent.</p>"
        },
        "inputContexts":{
          "shape":"InputContextsList",
          "documentation":"<p>The list of input contexts specified for the intent.</p>"
        },
        "outputContexts":{
          "shape":"OutputContextsList",
          "documentation":"<p>The list of output contexts specified for the intent.</p>"
        },
        "kendraConfiguration":{
          "shape":"KendraConfiguration",
          "documentation":"<p>Configuration for searching a Amazon Kendra index specified for the intent.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the intent.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with the intent.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale that the intent is specified to use.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the intent was created.</p>"
        }
      }
    },
    "CreateSlotRequest":{
      "type":"structure",
      "required":[
        "slotName",
        "slotTypeId",
        "valueElicitationSetting",
        "botId",
        "botVersion",
        "localeId",
        "intentId"
      ],
      "members":{
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The name of the slot. Slot names must be unique within the bot that contains the slot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the slot. Use this to help identify the slot in lists.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The unique identifier for the slot type associated with this slot. The slot type determines the values that can be entered into the slot.</p>"
        },
        "valueElicitationSetting":{
          "shape":"SlotValueElicitationSetting",
          "documentation":"<p>Specifies prompts that Amazon Lex sends to the user to elicit a response that provides the value for the slot. </p>"
        },
        "obfuscationSetting":{
          "shape":"ObfuscationSetting",
          "documentation":"<p>Determines how slot values are used in Amazon CloudWatch logs. If the value of the <code>obfuscationSetting</code> parameter is <code>DefaultObfuscation</code>, slot values are obfuscated in the log output. If the value is <code>None</code>, the actual value is present in the log output.</p> <p>The default is to obfuscate values in the CloudWatch logs.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the slot.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the slot will be used in. The string must match one of the supported locales. All of the bots, intents, slot types used by the slot must have the same locale. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent that contains the slot.</p>",
          "location":"uri",
          "locationName":"intentId"
        }
      }
    },
    "CreateSlotResponse":{
      "type":"structure",
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier associated with the slot. Use this to identify the slot when you update or delete it.</p>"
        },
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the slot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description associated with the slot.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The unique identifier of the slot type associated with this slot.</p>"
        },
        "valueElicitationSetting":{
          "shape":"SlotValueElicitationSetting",
          "documentation":"<p>The value elicitation settings specified for the slot.</p>"
        },
        "obfuscationSetting":{
          "shape":"ObfuscationSetting",
          "documentation":"<p>Indicates whether the slot is configured to obfuscate values in Amazon CloudWatch logs.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the slot.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the slot.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and local specified for the slot.</p>"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the intent associated with the slot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the date and time that the slot was created.</p>"
        }
      }
    },
    "CreateSlotTypeRequest":{
      "type":"structure",
      "required":[
        "slotTypeName",
        "valueSelectionSetting",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The name for the slot. A slot type name must be unique within the account.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the slot type. Use the description to help identify the slot type in lists.</p>"
        },
        "slotTypeValues":{
          "shape":"SlotTypeValues",
          "documentation":"<p>A list of <code>SlotTypeValue</code> objects that defines the values that the slot type can take. Each value can have a list of synonyms, additional values that help train the machine learning model about the values that it resolves for a slot.</p>"
        },
        "valueSelectionSetting":{
          "shape":"SlotValueSelectionSetting",
          "documentation":"<p>Determines the strategy that Amazon Lex uses to select a value from the list of possible values. The field can be set to one of the following values:</p> <ul> <li> <p> <code>OriginalValue</code> - Returns the value entered by the user, if the user value is similar to the slot value.</p> </li> <li> <p> <code>TopResolution</code> - If there is a resolution list for the slot, return the first value in the resolution list. If there is no resolution list, return null.</p> </li> </ul> <p>If you don't specify the <code>valueSelectionSetting</code> parameter, the default is <code>OriginalValue</code>.</p>"
        },
        "parentSlotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>The built-in slot type used as a parent of this slot type. When you define a parent slot type, the new slot type has the configuration of the parent slot type.</p> <p>Only <code>AMAZON.AlphaNumeric</code> is supported.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this slot type.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The identifier of the bot version associated with this slot type.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the slot type will be used in. The string must match one of the supported locales. All of the bots, intents, and slots used by the slot type must have the same locale. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "CreateSlotTypeResponse":{
      "type":"structure",
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned to the slot type. Use this to identify the slot type in the <code>UpdateSlotType</code> and <code>DeleteSlotType</code> operations.</p>"
        },
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the slot type.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the slot type.</p>"
        },
        "slotTypeValues":{
          "shape":"SlotTypeValues",
          "documentation":"<p>The list of values that the slot type can assume.</p>"
        },
        "valueSelectionSetting":{
          "shape":"SlotValueSelectionSetting",
          "documentation":"<p>The strategy that Amazon Lex uses to select a value from the list of possible values.</p>"
        },
        "parentSlotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>The signature of the base slot type specified for the slot type.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot associated with the slot type.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the slot type.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The specified language and local specified for the slot type.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot type was created.</p>"
        }
      }
    },
    "CustomPayload":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"CustomPayloadValue",
          "documentation":"<p>The string that is sent to your application.</p>"
        }
      },
      "documentation":"<p>A custom response string that Amazon Lex sends to your application. You define the content and structure the string.</p>"
    },
    "CustomPayloadValue":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "DataPrivacy":{
      "type":"structure",
      "required":["childDirected"],
      "members":{
        "childDirected":{
          "shape":"ChildDirected",
          "documentation":"<p>For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must specify whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying <code>true</code> or <code>false</code> in the <code>childDirected</code> field. By specifying <code>true</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. By specifying <code>false</code> in the <code>childDirected</code> field, you confirm that your use of Amazon Lex <b>is not</b> related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. You may not specify a default value for the <code>childDirected</code> field that does not accurately reflect whether your use of Amazon Lex is related to a website, program, or other application that is directed or targeted, in whole or in part, to children under age 13 and subject to COPPA. If your use of Amazon Lex relates to a website, program, or other application that is directed in whole or in part, to children under age 13, you must obtain any required verifiable parental consent under COPPA. For information regarding the use of Amazon Lex in connection with websites, programs, or other applications that are directed or targeted, in whole or in part, to children under age 13, see the <a href=\"https://aws.amazon.com/lex/faqs#data-security\">Amazon Lex FAQ</a>.</p>"
        }
      },
      "documentation":"<p>By default, data stored by Amazon Lex is encrypted. The <code>DataPrivacy</code> structure provides settings that determine how Amazon Lex handles special cases of securing the data for your bot. </p>"
    },
    "DeleteBotAliasRequest":{
      "type":"structure",
      "required":[
        "botAliasId",
        "botId"
      ],
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The unique identifier of the bot alias to delete.</p>",
          "location":"uri",
          "locationName":"botAliasId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the alias to delete.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "skipResourceInUseCheck":{
          "shape":"SkipResourceInUseCheck",
          "documentation":"<p>When this parameter is true, Amazon Lex doesn't check to see if any other resource is using the alias before it is deleted.</p>",
          "location":"querystring",
          "locationName":"skipResourceInUseCheck"
        }
      }
    },
    "DeleteBotAliasResponse":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The unique identifier of the bot alias to delete.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the alias to delete.</p>"
        },
        "botAliasStatus":{
          "shape":"BotAliasStatus",
          "documentation":"<p>The current status of the alias. The status is <code>Deleting</code> while the alias is in the process of being deleted. Once the alias is deleted, it will no longer appear in the list of aliases returned by the <code>ListBotAliases</code> operation.</p>"
        }
      }
    },
    "DeleteBotLocaleRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the locale.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the locale. </p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that will be deleted. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DeleteBotLocaleResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contained the deleted locale.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contained the deleted locale.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the deleted locale.</p>"
        },
        "botLocaleStatus":{
          "shape":"BotLocaleStatus",
          "documentation":"<p>The status of deleting the bot locale. The locale first enters the <code>Deleting</code> status. Once the locale is deleted it no longer appears in the list of locales for the bot.</p>"
        }
      }
    },
    "DeleteBotRequest":{
      "type":"structure",
      "required":["botId"],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to delete. </p>",
          "location":"uri",
          "locationName":"botId"
        },
        "skipResourceInUseCheck":{
          "shape":"SkipResourceInUseCheck",
          "documentation":"<p>When <code>true</code>, Amazon Lex doesn't check to see if another resource, such as an alias, is using the bot before it is deleted.</p>",
          "location":"querystring",
          "locationName":"skipResourceInUseCheck"
        }
      }
    },
    "DeleteBotResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that Amazon Lex is deleting.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>The current status of the bot. The status is <code>Deleting</code> while the bot and its associated resources are being deleted.</p>"
        }
      }
    },
    "DeleteBotVersionRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the version.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot to delete.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "skipResourceInUseCheck":{
          "shape":"SkipResourceInUseCheck",
          "documentation":"<p>By default, the <code>DeleteBotVersion</code> operations throws a <code>ResourceInUseException</code> exception if you try to delete a bot version that has an alias pointing at it. Set the <code>skipResourceInUseCheck</code> parameter to <code>true</code> to skip this check and remove the version even if an alias points to it.</p>",
          "location":"querystring",
          "locationName":"skipResourceInUseCheck"
        }
      }
    },
    "DeleteBotVersionResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that is being deleted.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot that is being deleted.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>The current status of the bot. </p>"
        }
      }
    },
    "DeleteIntentRequest":{
      "type":"structure",
      "required":[
        "intentId",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the intent to delete.</p>",
          "location":"uri",
          "locationName":"intentId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the intent.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the intent.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where the bot will be deleted. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DeleteSlotRequest":{
      "type":"structure",
      "required":[
        "slotId",
        "botId",
        "botVersion",
        "localeId",
        "intentId"
      ],
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the slot to delete. </p>",
          "location":"uri",
          "locationName":"slotId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot to delete.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the slot to delete.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the slot will be deleted from. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent associated with the slot.</p>",
          "location":"uri",
          "locationName":"intentId"
        }
      }
    },
    "DeleteSlotTypeRequest":{
      "type":"structure",
      "required":[
        "slotTypeId",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the slot type to delete.</p>",
          "location":"uri",
          "locationName":"slotTypeId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot type.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the slot type.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the slot type will be deleted from. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "skipResourceInUseCheck":{
          "shape":"SkipResourceInUseCheck",
          "documentation":"<p>By default, the <code>DeleteSlotType</code> operations throws a <code>ResourceInUseException</code> exception if you try to delete a slot type used by a slot. Set the <code>skipResourceInUseCheck</code> parameter to <code>true</code> to skip this check and remove the slot type even if a slot uses it.</p>",
          "location":"querystring",
          "locationName":"skipResourceInUseCheck"
        }
      }
    },
    "DescribeBotAliasRequest":{
      "type":"structure",
      "required":[
        "botAliasId",
        "botId"
      ],
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the bot alias to describe.</p>",
          "location":"uri",
          "locationName":"botAliasId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the bot alias to describe.</p>",
          "location":"uri",
          "locationName":"botId"
        }
      }
    },
    "DescribeBotAliasResponse":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the bot alias.</p>"
        },
        "botAliasName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot alias.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the bot alias.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot associated with the bot alias.</p>"
        },
        "botAliasLocaleSettings":{
          "shape":"BotAliasLocaleSettingsMap",
          "documentation":"<p>The locale settings that are unique to the alias.</p>"
        },
        "conversationLogSettings":{
          "shape":"ConversationLogSettings",
          "documentation":"<p>Specifics of how Amazon Lex logs text and audio conversations with the bot associated with the alias.</p>"
        },
        "sentimentAnalysisSettings":{"shape":"SentimentAnalysisSettings"},
        "botAliasHistoryEvents":{
          "shape":"BotAliasHistoryEventsList",
          "documentation":"<p>A list of events that affect a bot alias. For example, an event is recorded when the version that the alias points to changes.</p>"
        },
        "botAliasStatus":{
          "shape":"BotAliasStatus",
          "documentation":"<p>The current status of the alias. When the alias is <code>Available</code>, the alias is ready for use with your bot.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the bot alias.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the alias was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the alias was last updated.</p>"
        }
      }
    },
    "DescribeBotLocaleRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the locale.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with the locale.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The unique identifier of the locale to describe. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>. </p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DescribeBotLocaleResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the locale.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with the locale.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The unique identifier of the described locale.</p>"
        },
        "localeName":{
          "shape":"LocaleName",
          "documentation":"<p>The name of the locale.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the locale.</p>"
        },
        "nluIntentConfidenceThreshold":{
          "shape":"ConfidenceThreshold",
          "documentation":"<p>The confidence threshold where Amazon Lex inserts the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents in the list of possible intents for an utterance.</p>"
        },
        "voiceSettings":{
          "shape":"VoiceSettings",
          "documentation":"<p>The Amazon Polly voice Amazon Lex uses for voice interaction with the user.</p>"
        },
        "intentsCount":{
          "shape":"ResourceCount",
          "documentation":"<p>The number of intents defined for the locale.</p>"
        },
        "slotTypesCount":{
          "shape":"ResourceCount",
          "documentation":"<p>The number of slot types defined for the locale.</p>"
        },
        "botLocaleStatus":{
          "shape":"BotLocaleStatus",
          "documentation":"<p>The status of the bot. If the status is <code>Failed</code>, the reasons for the failure are listed in the <code>failureReasons</code> field.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>if <code>botLocaleStatus</code> is <code>Failed</code>, Amazon Lex explains why it failed to build the bot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the locale was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the locale was last updated.</p>"
        },
        "lastBuildSubmittedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the locale was last submitted for building.</p>"
        },
        "botLocaleHistoryEvents":{
          "shape":"BotLocaleHistoryEventsList",
          "documentation":"<p>History of changes, such as when a locale is used in an alias, that have taken place for the locale.</p>"
        }
      }
    },
    "DescribeBotRequest":{
      "type":"structure",
      "required":["botId"],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot to describe.</p>",
          "location":"uri",
          "locationName":"botId"
        }
      }
    },
    "DescribeBotResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot.</p>"
        },
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the bot. </p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that has permission to access the bot.</p>"
        },
        "dataPrivacy":{
          "shape":"DataPrivacy",
          "documentation":"<p>Settings for managing data privacy of the bot and its conversations with users.</p>"
        },
        "idleSessionTTLInSeconds":{
          "shape":"SessionTTL",
          "documentation":"<p>The maximum time in seconds that Amazon Lex retains the data gathered in a conversation.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>The current status of the bot. When the status is <code>Available</code> the bot is ready to be used in conversations with users.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot was last updated.</p>"
        }
      }
    },
    "DescribeBotVersionRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot containing the version to return metadata for.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot to return metadata for.</p>",
          "location":"uri",
          "locationName":"botVersion"
        }
      }
    },
    "DescribeBotVersionResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the version.</p>"
        },
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot that contains the version.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot to describe.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the bot.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that has permission to access the bot version.</p>"
        },
        "dataPrivacy":{
          "shape":"DataPrivacy",
          "documentation":"<p>Data privacy settings for the bot version.</p>"
        },
        "idleSessionTTLInSeconds":{
          "shape":"SessionTTL",
          "documentation":"<p>The number of seconds that a session with the bot remains active before it is discarded by Amazon Lex.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>The current status of the bot. When the status is <code>Available</code>, the bot version is ready for use.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>If the <code>botStatus</code> is <code>Failed</code>, this contains a list of reasons that the version couldn't be built.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot version was created.</p>"
        }
      }
    },
    "DescribeIntentRequest":{
      "type":"structure",
      "required":[
        "intentId",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent to describe.</p>",
          "location":"uri",
          "locationName":"intentId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the intent.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot associated with the intent.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the intent to describe. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DescribeIntentResponse":{
      "type":"structure",
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned to the intent when it was created.</p>"
        },
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the intent.</p>"
        },
        "parentIntentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>The identifier of the built-in intent that this intent is derived from, if any.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>User utterances that trigger this intent.</p>"
        },
        "dialogCodeHook":{
          "shape":"DialogCodeHookSettings",
          "documentation":"<p>The Lambda function called during each turn of a conversation with the intent.</p>"
        },
        "fulfillmentCodeHook":{
          "shape":"FulfillmentCodeHookSettings",
          "documentation":"<p>The Lambda function called when the intent is complete and ready for fulfillment.</p>"
        },
        "slotPriorities":{
          "shape":"SlotPrioritiesList",
          "documentation":"<p>The list that determines the priority that slots should be elicited from the user.</p>"
        },
        "intentConfirmationSetting":{
          "shape":"IntentConfirmationSetting",
          "documentation":"<p>Prompts that Amazon Lex sends to the user to confirm completion of an intent.</p>"
        },
        "intentClosingSetting":{
          "shape":"IntentClosingSetting",
          "documentation":"<p>The response that Amazon Lex sends to when the intent is closed.</p>"
        },
        "inputContexts":{
          "shape":"InputContextsList",
          "documentation":"<p>A list of contexts that must be active for the intent to be considered for sending to the user.</p>"
        },
        "outputContexts":{
          "shape":"OutputContextsList",
          "documentation":"<p>A list of contexts that are activated when the intent is fulfilled.</p>"
        },
        "kendraConfiguration":{
          "shape":"KendraConfiguration",
          "documentation":"<p>Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the intent.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the intent.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale specified for the intent.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the intent was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the intent was last updated.</p>"
        }
      }
    },
    "DescribeSlotRequest":{
      "type":"structure",
      "required":[
        "slotId",
        "botId",
        "botVersion",
        "localeId",
        "intentId"
      ],
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier for the slot.</p>",
          "location":"uri",
          "locationName":"slotId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot associated with the slot.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the slot to describe. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent that contains the slot.</p>",
          "location":"uri",
          "locationName":"intentId"
        }
      }
    },
    "DescribeSlotResponse":{
      "type":"structure",
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier generated for the slot.</p>"
        },
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the slot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the slot.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The identifier of the slot type that determines the values entered into the slot.</p>"
        },
        "valueElicitationSetting":{
          "shape":"SlotValueElicitationSetting",
          "documentation":"<p>Prompts that Amazon Lex uses to elicit a value for the slot.</p>"
        },
        "obfuscationSetting":{
          "shape":"ObfuscationSetting",
          "documentation":"<p>Whether slot values are shown in Amazon CloudWatch logs. If the value is <code>None</code>, the actual value of the slot is shown in logs.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot associated with the slot.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale specified for the slot.</p>"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent associated with the slot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot was last updated.</p>"
        }
      }
    },
    "DescribeSlotTypeRequest":{
      "type":"structure",
      "required":[
        "slotTypeId",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the slot type.</p>",
          "location":"uri",
          "locationName":"slotTypeId"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot type.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot associated with the slot type.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the slot type to describe. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DescribeSlotTypeResponse":{
      "type":"structure",
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier for the slot type.</p>"
        },
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The name specified for the slot type.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description specified for the slot type.</p>"
        },
        "slotTypeValues":{
          "shape":"SlotTypeValues",
          "documentation":"<p>The values that the slot type can take. Includes any synonyms for the slot type values.</p>"
        },
        "valueSelectionSetting":{
          "shape":"SlotValueSelectionSetting",
          "documentation":"<p>The strategy that Amazon Lex uses to choose a value from a list of possible values.</p>"
        },
        "parentSlotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>The built in slot type used as a parent to this slot type.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the slot type.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot associated with the slot type.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale specified for the slot type.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot type was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot type was last updated.</p>"
        }
      }
    },
    "Description":{
      "type":"string",
      "max":200,
      "min":0
    },
    "DialogCodeHookSettings":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Enables the dialog code hook so that it processes user requests.</p>"
        }
      },
      "documentation":"<p>Settings that determine the Lambda function that Amazon Lex uses for processing user responses.</p>"
    },
    "DraftBotVersion":{
      "type":"string",
      "max":5,
      "min":5,
      "pattern":"^DRAFT$"
    },
    "ExceptionMessage":{"type":"string"},
    "FailureReason":{"type":"string"},
    "FailureReasons":{
      "type":"list",
      "member":{"shape":"FailureReason"}
    },
    "FilterValue":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^[0-9a-zA-Z_()\\s-]+$"
    },
    "FilterValues":{
      "type":"list",
      "member":{"shape":"FilterValue"},
      "max":1,
      "min":1
    },
    "FulfillmentCodeHookSettings":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether a Lambda function should be invoked to fulfill a specific intent.</p>"
        }
      },
      "documentation":"<p>Determines if a Lambda function should be invoked for a specific intent.</p>"
    },
    "Id":{
      "type":"string",
      "max":10,
      "min":10,
      "pattern":"^[0-9a-zA-Z]+$"
    },
    "ImageResponseCard":{
      "type":"structure",
      "required":["title"],
      "members":{
        "title":{
          "shape":"AttachmentTitle",
          "documentation":"<p>The title to display on the response card. The format of the title is determined by the platform displaying the response card.</p>"
        },
        "subtitle":{
          "shape":"AttachmentTitle",
          "documentation":"<p>The subtitle to display on the response card. The format of the subtitle is determined by the platform displaying the response card.</p>"
        },
        "imageUrl":{
          "shape":"AttachmentUrl",
          "documentation":"<p>The URL of an image to display on the response card. The image URL must be publicly available so that the platform displaying the response card has access to the image.</p>"
        },
        "buttons":{
          "shape":"ButtonsList",
          "documentation":"<p>A list of buttons that should be displayed on the response card. The arrangement of the buttons is determined by the platform that displays the button.</p>"
        }
      },
      "documentation":"<p>A card that is shown to the user by a messaging platform. You define the contents of the card, the card is displayed by the platform. </p> <p>When you use a response card, the response from the user is constrained to the text associated with a button on the card.</p>"
    },
    "InputContext":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the context.</p>"
        }
      },
      "documentation":"<p>The name of a context that must be active for an intent to be selected by Amazon Lex.</p>"
    },
    "InputContextsList":{
      "type":"list",
      "member":{"shape":"InputContext"},
      "max":5,
      "min":0
    },
    "IntentClosingSetting":{
      "type":"structure",
      "required":["closingResponse"],
      "members":{
        "closingResponse":{
          "shape":"ResponseSpecification",
          "documentation":"<p>The response that Amazon Lex sends to the user when the intent is complete.</p>"
        }
      },
      "documentation":"<p>Provides a statement the Amazon Lex conveys to the user when the intent is successfully fulfilled.</p>"
    },
    "IntentConfirmationSetting":{
      "type":"structure",
      "required":[
        "promptSpecification",
        "declinationResponse"
      ],
      "members":{
        "promptSpecification":{
          "shape":"PromptSpecification",
          "documentation":"<p>Prompts the user to confirm the intent. This question should have a yes or no answer.</p> <p>Amazon Lex uses this prompt to ensure that the user acknowledges that the intent is ready for fulfillment. For example, with the <code>OrderPizza</code> intent, you might want to confirm that the order is correct before placing it. For other intents, such as intents that simply respond to user questions, you might not need to ask the user for confirmation before providing the information. </p>"
        },
        "declinationResponse":{
          "shape":"ResponseSpecification",
          "documentation":"<p>When the user answers \"no\" to the question defined in <code>promptSpecification</code>, Amazon Lex responds with this response to acknowledge that the intent was canceled. </p>"
        }
      },
      "documentation":"<p>Provides a prompt for making sure that the user is ready for the intent to be fulfilled.</p>"
    },
    "IntentFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"IntentFilterName",
          "documentation":"<p>The name of the field to use for the filter.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The value to use for the filter.</p>"
        },
        "operator":{
          "shape":"IntentFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify <code>EQ</code> when the <code>ListIntents</code> operation should return only aliases that equal the specified value. Specify <code>CO</code> when the <code>ListIntents</code> operation should return aliases that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters the response from the <code>ListIntents</code> operation.</p>"
    },
    "IntentFilterName":{
      "type":"string",
      "enum":["IntentName"]
    },
    "IntentFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "IntentFilters":{
      "type":"list",
      "member":{"shape":"IntentFilter"},
      "max":1,
      "min":1
    },
    "IntentSignature":{"type":"string"},
    "IntentSortAttribute":{
      "type":"string",
      "enum":[
        "IntentName",
        "LastUpdatedDateTime"
      ]
    },
    "IntentSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"IntentSortAttribute",
          "documentation":"<p>The attribute to use to sort the list of intents.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can choose ascending or descending.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of intents.</p>"
    },
    "IntentSummary":{
      "type":"structure",
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned to the intent. Use this ID to get detailed information about the intent with the <code>DescribeIntent</code> operation.</p>"
        },
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the intent.</p>"
        },
        "parentIntentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>If this intent is derived from a built-in intent, the name of the parent intent.</p>"
        },
        "inputContexts":{
          "shape":"InputContextsList",
          "documentation":"<p>The input contexts that must be active for this intent to be considered for recognition.</p>"
        },
        "outputContexts":{
          "shape":"OutputContextsList",
          "documentation":"<p>The output contexts that are activated when this intent is fulfilled.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the date and time that the intent was last updated.</p>"
        }
      },
      "documentation":"<p>Summary information about an intent returned by the <code>ListIntents</code> operation.</p>"
    },
    "IntentSummaryList":{
      "type":"list",
      "member":{"shape":"IntentSummary"}
    },
    "InternalServerException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "KendraConfiguration":{
      "type":"structure",
      "required":["kendraIndex"],
      "members":{
        "kendraIndex":{
          "shape":"KendraIndexArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the AMAZON.KendraSearchIntent intent to search. The index must be in the same account and Region as the Amazon Lex bot.</p>"
        },
        "queryFilterStringEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Determines whether the AMAZON.KendraSearchIntent intent uses a custom query string to query the Amazon Kendra index.</p>"
        },
        "queryFilterString":{
          "shape":"QueryFilterString",
          "documentation":"<p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response from a query. The filter is in the format defined by Amazon Kendra. For more information, see <a href=\"https://docs.aws.amazon.com/kendra/latest/dg/filtering.html\">Filtering queries</a>.</p>"
        }
      },
      "documentation":"<p>Provides configuration information for the AMAZON.KendraSearchIntent intent. When you use this intent, Amazon Lex searches the specified Amazon Kendra index and returns documents from the index that match the user's utterance.</p>"
    },
    "KendraIndexArn":{
      "type":"string",
      "max":2048,
      "min":32,
      "pattern":"^arn:aws:kendra:[a-z]+-[a-z]+-[0-9]:[0-9]{12}:index\\/[a-zA-Z0-9][a-zA-Z0-9_-]*$"
    },
    "KmsKeyArn":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"^arn:[\\w\\-]+:kms:[\\w\\-]+:[\\d]{12}:(?:key\\/[\\w\\-]+|alias\\/[a-zA-Z0-9:\\/_\\-]{1,256})$"
    },
    "LambdaARN":{
      "type":"string",
      "max":2048,
      "min":20,
      "pattern":"arn:aws:lambda:[a-z]+-[a-z]+-[0-9]:[0-9]{12}:function:[a-zA-Z0-9-_]+(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})?(:[a-zA-Z0-9-_]+)?"
    },
    "LambdaCodeHook":{
      "type":"structure",
      "required":[
        "lambdaARN",
        "codeHookInterfaceVersion"
      ],
      "members":{
        "lambdaARN":{
          "shape":"LambdaARN",
          "documentation":"<p>The Amazon Resource Name (ARN) of the Lambda function.</p>"
        },
        "codeHookInterfaceVersion":{
          "shape":"CodeHookInterfaceVersion",
          "documentation":"<p>The version of the request-response that you want Amazon Lex to use to invoke your Lambda function.</p>"
        }
      },
      "documentation":"<p>Specifies a Lambda function that verifies requests to a bot or fulfilles the user's request to a bot.</p>"
    },
    "ListBotAliasesRequest":{
      "type":"structure",
      "required":["botId"],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to list aliases for.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of aliases to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListBotAliases</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListBotAliasesResponse":{
      "type":"structure",
      "members":{
        "botAliasSummaries":{
          "shape":"BotAliasSummaryList",
          "documentation":"<p>Summary information for the bot aliases that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more aliases available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListBotAliases</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotAliases</code> operation request to get the next page of results.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the aliases.</p>"
        }
      }
    },
    "ListBotLocalesRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to list locales for.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot to list locales for.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "sortBy":{
          "shape":"BotLocaleSortBy",
          "documentation":"<p>Specifies sorting parameters for the list of locales. You can sort by locale name in ascending or descending order.</p>"
        },
        "filters":{
          "shape":"BotLocaleFilters",
          "documentation":"<p>Provides the specification for a filter used to limit the response to only those locales that match the filter specification. You can only specify one filter and one value to filter on.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of aliases to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListBotLocales</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token as the <code>nextToken</code> parameter to return the next page of results. </p>"
        }
      }
    },
    "ListBotLocalesResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to list locales for.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListBotLocales</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotLocales</code> operation request to get the next page of results.</p>"
        },
        "botLocaleSummaries":{
          "shape":"BotLocaleSummaryList",
          "documentation":"<p>Summary information for the locales that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more locales available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        }
      }
    },
    "ListBotVersionsRequest":{
      "type":"structure",
      "required":["botId"],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to list versions for.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "sortBy":{
          "shape":"BotVersionSortBy",
          "documentation":"<p>Specifies sorting parameters for the list of versions. You can specify that the list be sorted by version name in either ascending or descending order.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of versions to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response to the <code>ListBotVersion</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListBotVersionsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to list versions for.</p>"
        },
        "botVersionSummaries":{
          "shape":"BotVersionSummaryList",
          "documentation":"<p>Summary information for the bot versions that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more versions available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListBotVersions</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotAliases</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListBotsRequest":{
      "type":"structure",
      "members":{
        "sortBy":{
          "shape":"BotSortBy",
          "documentation":"<p>Specifies sorting parameters for the list of bots. You can specify that the list be sorted by bot name in ascending or descending order.</p>"
        },
        "filters":{
          "shape":"BotFilters",
          "documentation":"<p>Provides the specification of a filter used to limit the bots in the response to only those that match the filter specification. You can only specify one filter and one string to filter on.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of bots to return in each page of results. If there are fewer results than the maximum page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListBots</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListBotsResponse":{
      "type":"structure",
      "members":{
        "botSummaries":{
          "shape":"BotSummaryList",
          "documentation":"<p>Summary information for the bots that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more bots available, the <code>nextToken</code> field contains a token to the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListBots</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBots</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListBuiltInIntentsRequest":{
      "type":"structure",
      "required":["localeId"],
      "members":{
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the intents to list. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "sortBy":{
          "shape":"BuiltInIntentSortBy",
          "documentation":"<p>Specifies sorting parameters for the list of built-in intents. You can specify that the list be sorted by the built-in intent signature in either ascending or descending order.</p>"
        },
        "maxResults":{
          "shape":"BuiltInsMaxResults",
          "documentation":"<p>The maximum number of built-in intents to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListBuiltInIntents</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListBuiltInIntentsResponse":{
      "type":"structure",
      "members":{
        "builtInIntentSummaries":{
          "shape":"BuiltInIntentSummaryList",
          "documentation":"<p>Summary information for the built-in intents that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more intents available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListBuiltInIntents</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListBotAliases</code> operation request to get the next page of results.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the intents in the list.</p>"
        }
      }
    },
    "ListBuiltInSlotTypesRequest":{
      "type":"structure",
      "required":["localeId"],
      "members":{
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the slot types to list. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "sortBy":{
          "shape":"BuiltInSlotTypeSortBy",
          "documentation":"<p>Determines the sort order for the response from the <code>ListBuiltInSlotTypes</code> operation. You can choose to sort by the slot type signature in either ascending or descending order.</p>"
        },
        "maxResults":{
          "shape":"BuiltInsMaxResults",
          "documentation":"<p>The maximum number of built-in slot types to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListBuiltInSlotTypes</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListBuiltInSlotTypesResponse":{
      "type":"structure",
      "members":{
        "builtInSlotTypeSummaries":{
          "shape":"BuiltInSlotTypeSummaryList",
          "documentation":"<p>Summary information for the built-in slot types that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more slot types available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListBuiltInSlotTypes</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>LIstBuiltInSlotTypes</code> operation request to get the next page of results.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the slot types in the list.</p>"
        }
      }
    },
    "ListIntentsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the intent.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the intent.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the intents to list. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "sortBy":{
          "shape":"IntentSortBy",
          "documentation":"<p>Determines the sort order for the response from the <code>ListIntents</code> operation. You can choose to sort by the intent name or last updated date in either ascending or descending order.</p>"
        },
        "filters":{
          "shape":"IntentFilters",
          "documentation":"<p>Provides the specification of a filter used to limit the intents in the response to only those that match the filter specification. You can only specify one filter and only one string to filter on.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of intents to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListIntents</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListIntentsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the intent.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the intent.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the intents in the list.</p>"
        },
        "intentSummaries":{
          "shape":"IntentSummaryList",
          "documentation":"<p>Summary information for the intents that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more intents available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListIntents</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListIntents</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListSlotTypesRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the slot types.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the slot type.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the slot types to list. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "sortBy":{
          "shape":"SlotTypeSortBy",
          "documentation":"<p>Determines the sort order for the response from the <code>ListSlotTypes</code> operation. You can choose to sort by the slot type name or last updated date in either ascending or descending order.</p>"
        },
        "filters":{
          "shape":"SlotTypeFilters",
          "documentation":"<p>Provides the specification of a filter used to limit the slot types in the response to only those that match the filter specification. You can only specify one filter and only one string to filter on.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of slot types to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListSlotTypes</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListSlotTypesResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the slot types.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the slot types.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and local of the slot types in the list.</p>"
        },
        "slotTypeSummaries":{
          "shape":"SlotTypeSummaryList",
          "documentation":"<p>Summary information for the slot types that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more slot types available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListSlotTypes</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListSlotTypes</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListSlotsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "intentId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the slot.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the slot.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the slots to list. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the intent that contains the slot.</p>",
          "location":"uri",
          "locationName":"intentId"
        },
        "sortBy":{
          "shape":"SlotSortBy",
          "documentation":"<p>Determines the sort order for the response from the <code>ListSlots</code> operation. You can choose to sort by the slot name or last updated date in either ascending or descending order.</p>"
        },
        "filters":{
          "shape":"SlotFilters",
          "documentation":"<p>Provides the specification of a filter used to limit the slots in the response to only those that match the filter specification. You can only specify one filter and only one string to filter on.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of slots to return in each page of results. If there are fewer results than the max page size, only the actual number of results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListSlots</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response. Use that token in the <code>nextToken</code> parameter to return the next page of results.</p>"
        }
      }
    },
    "ListSlotsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the slots.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the slots.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the slots in the list.</p>"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent that contains the slots.</p>"
        },
        "slotSummaries":{
          "shape":"SlotSummaryList",
          "documentation":"<p>Summary information for the slots that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter of the request. If there are more slots available, the <code>nextToken</code> field contains a token to get the next page of results.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListSlots</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListSlots</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["resourceARN"],
      "members":{
        "resourceARN":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to get a list of tags for.</p>",
          "location":"uri",
          "locationName":"resourceARN"
        }
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "members":{
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>The tags associated with a resource.</p>"
        }
      }
    },
    "LocaleId":{"type":"string"},
    "LocaleName":{"type":"string"},
    "LogPrefix":{
      "type":"string",
      "max":1024
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "Message":{
      "type":"structure",
      "members":{
        "plainTextMessage":{
          "shape":"PlainTextMessage",
          "documentation":"<p>A message in plain text format.</p>"
        },
        "customPayload":{
          "shape":"CustomPayload",
          "documentation":"<p>A message in a custom format defined by the client application.</p>"
        },
        "ssmlMessage":{
          "shape":"SSMLMessage",
          "documentation":"<p>A message in Speech Synthesis Markup Language (SSML).</p>"
        },
        "imageResponseCard":{
          "shape":"ImageResponseCard",
          "documentation":"<p>A message that defines a response card that the client application can show to the user.</p>"
        }
      },
      "documentation":"<p>The object that provides message text and it's type.</p>"
    },
    "MessageGroup":{
      "type":"structure",
      "required":["message"],
      "members":{
        "message":{
          "shape":"Message",
          "documentation":"<p>The primary message that Amazon Lex should send to the user.</p>"
        },
        "variations":{
          "shape":"MessageVariationsList",
          "documentation":"<p>Message variations to send to the user. When variations are defined, Amazon Lex chooses the primary message or one of the variations to send to the user.</p>"
        }
      },
      "documentation":"<p>Provides one or more messages that Amazon Lex should send to the user.</p>"
    },
    "MessageGroupsList":{
      "type":"list",
      "member":{"shape":"MessageGroup"},
      "max":5,
      "min":1
    },
    "MessageVariationsList":{
      "type":"list",
      "member":{"shape":"Message"},
      "max":2,
      "min":0
    },
    "Name":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^([0-9a-zA-Z][_-]?)+$"
    },
    "NextToken":{"type":"string"},
    "NumericalBotVersion":{
      "type":"string",
      "max":5,
      "min":1,
      "pattern":"^[0-9]+$"
    },
    "ObfuscationSetting":{
      "type":"structure",
      "required":["obfuscationSettingType"],
      "members":{
        "obfuscationSettingType":{
          "shape":"ObfuscationSettingType",
          "documentation":"<p>Value that determines whether Amazon Lex obscures slot values in conversation logs. The default is to obscure the values.</p>"
        }
      },
      "documentation":"<p>Determines whether Amazon Lex obscures slot values in conversation logs. </p>"
    },
    "ObfuscationSettingType":{
      "type":"string",
      "enum":[
        "None",
        "DefaultObfuscation"
      ]
    },
    "OutputContext":{
      "type":"structure",
      "required":[
        "name",
        "timeToLiveInSeconds",
        "turnsToLive"
      ],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the output context.</p>"
        },
        "timeToLiveInSeconds":{
          "shape":"ContextTimeToLiveInSeconds",
          "documentation":"<p>The amount of time, in seconds, that the output context should remain active. The time is figured from the first time the context is sent to the user.</p>"
        },
        "turnsToLive":{
          "shape":"ContextTurnsToLive",
          "documentation":"<p>The number of conversation turns that the output context should remain active. The number of turns is counted from the first time that the context is sent to the user.</p>"
        }
      },
      "documentation":"<p>Describes a session context that is activated when an intent is fulfilled.</p>"
    },
    "OutputContextsList":{
      "type":"list",
      "member":{"shape":"OutputContext"},
      "max":10,
      "min":0
    },
    "PlainTextMessage":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"PlainTextMessageValue",
          "documentation":"<p>The message to send to the user.</p>"
        }
      },
      "documentation":"<p>Defines an ASCII text message to send to the user.</p>"
    },
    "PlainTextMessageValue":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "PreconditionFailedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":412},
      "exception":true
    },
    "PriorityValue":{
      "type":"integer",
      "max":25,
      "min":0
    },
    "PromptMaxRetries":{
      "type":"integer",
      "max":5,
      "min":0
    },
    "PromptSpecification":{
      "type":"structure",
      "required":[
        "messageGroups",
        "maxRetries"
      ],
      "members":{
        "messageGroups":{
          "shape":"MessageGroupsList",
          "documentation":"<p>A collection of messages that Amazon Lex can send to the user. Amazon Lex chooses the actual message to send at runtime.</p>"
        },
        "maxRetries":{
          "shape":"PromptMaxRetries",
          "documentation":"<p>The maximum number of times the bot tries to elicit a resonse from the user using this prompt.</p>"
        },
        "allowInterrupt":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether the user can interrupt a speech prompt from the bot.</p>"
        }
      },
      "documentation":"<p>Specifies a list of message groups that Amazon Lex sends to a user to elicit a response.</p>"
    },
    "QueryFilterString":{
      "type":"string",
      "max":5000,
      "min":1
    },
    "RegexPattern":{
      "type":"string",
      "max":100,
      "min":1
    },
    "ResourceCount":{"type":"integer"},
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":404},
      "exception":true
    },
    "ResponseSpecification":{
      "type":"structure",
      "required":["messageGroups"],
      "members":{
        "messageGroups":{
          "shape":"MessageGroupsList",
          "documentation":"<p>A collection of responses that Amazon Lex can send to the user. Amazon Lex chooses the actual response to send at runtime.</p>"
        },
        "allowInterrupt":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether the user can interrupt a speech response from Amazon Lex.</p>"
        }
      },
      "documentation":"<p>Specifies a list of message groups that Amazon Lex uses to respond the user input.</p>"
    },
    "RetryAfterSeconds":{"type":"integer"},
    "RoleArn":{
      "type":"string",
      "max":2048,
      "min":32,
      "pattern":"^arn:aws:iam::[0-9]{12}:role/.*$"
    },
    "S3BucketArn":{
      "type":"string",
      "max":2048,
      "min":1,
      "pattern":"^arn:[\\w\\-]+:s3:::[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$"
    },
    "S3BucketLogDestination":{
      "type":"structure",
      "required":[
        "s3BucketArn",
        "logPrefix"
      ],
      "members":{
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an AWS Key Management Service (KMS) key for encrypting audio log files stored in an S3 bucket.</p>"
        },
        "s3BucketArn":{
          "shape":"S3BucketArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an Amazon S3 bucket where audio log files are stored.</p>"
        },
        "logPrefix":{
          "shape":"LogPrefix",
          "documentation":"<p>The S3 prefix to assign to audio log files.</p>"
        }
      },
      "documentation":"<p>Specifies an Amazon S3 bucket for logging audio conversations</p>"
    },
    "SSMLMessage":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"SSMLMessageValue",
          "documentation":"<p>The SSML text that defines the prompt.</p>"
        }
      },
      "documentation":"<p>Defines a Speech Synthesis Markup Language (SSML) prompt.</p>"
    },
    "SSMLMessageValue":{
      "type":"string",
      "max":1000,
      "min":1
    },
    "SampleUtterance":{
      "type":"structure",
      "required":["utterance"],
      "members":{
        "utterance":{
          "shape":"Utterance",
          "documentation":"<p>The sample utterance that Amazon Lex uses to build its machine-learning model to recognize intents.</p>"
        }
      },
      "documentation":"<p>A sample utterance that invokes an intent or respond to a slot elicitation prompt.</p>"
    },
    "SampleUtterancesList":{
      "type":"list",
      "member":{"shape":"SampleUtterance"}
    },
    "SampleValue":{
      "type":"structure",
      "required":["value"],
      "members":{
        "value":{
          "shape":"Value",
          "documentation":"<p>The value that can be used for a slot type.</p>"
        }
      },
      "documentation":"<p>Defines one of the values for a slot type.</p>"
    },
    "SentimentAnalysisSettings":{
      "type":"structure",
      "required":["detectSentiment"],
      "members":{
        "detectSentiment":{
          "shape":"Boolean",
          "documentation":"<p>Sets whether Amazon Lex uses Amazon Comprehend to detect the sentiment of user utterances.</p>"
        }
      },
      "documentation":"<p>Determines whether Amazon Lex will use Amazon Comprehend to detect the sentiment of user utterances.</p>"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":402},
      "exception":true
    },
    "SessionTTL":{
      "type":"integer",
      "max":86400,
      "min":60
    },
    "SkipResourceInUseCheck":{"type":"boolean"},
    "SlotConstraint":{
      "type":"string",
      "enum":[
        "Required",
        "Optional"
      ]
    },
    "SlotDefaultValue":{
      "type":"structure",
      "required":["defaultValue"],
      "members":{
        "defaultValue":{
          "shape":"SlotDefaultValueString",
          "documentation":"<p>The default value to use when a user doesn't provide a value for a slot.</p>"
        }
      },
      "documentation":"<p>Specifies the default value to use when a user doesn't provide a value for a slot.</p>"
    },
    "SlotDefaultValueList":{
      "type":"list",
      "member":{"shape":"SlotDefaultValue"},
      "max":10,
      "min":0
    },
    "SlotDefaultValueSpecification":{
      "type":"structure",
      "required":["defaultValueList"],
      "members":{
        "defaultValueList":{
          "shape":"SlotDefaultValueList",
          "documentation":"<p>A list of default values. Amazon Lex chooses the default value to use in the order that they are presented in the list.</p>"
        }
      },
      "documentation":"<p>Defines a list of values that Amazon Lex should use as the default value for a slot.</p>"
    },
    "SlotDefaultValueString":{
      "type":"string",
      "max":202,
      "min":1
    },
    "SlotFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"SlotFilterName",
          "documentation":"<p>The name of the field to use for filtering.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The value to use to filter the response.</p>"
        },
        "operator":{
          "shape":"SlotFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify <code>EQ</code> when the <code>ListSlots</code> operation should return only aliases that equal the specified value. Specify <code>CO</code> when the <code>ListSlots</code> operation should return aliases that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters the response from the <code>ListSlots</code> operation.</p>"
    },
    "SlotFilterName":{
      "type":"string",
      "enum":["SlotName"]
    },
    "SlotFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "SlotFilters":{
      "type":"list",
      "member":{"shape":"SlotFilter"},
      "max":1,
      "min":1
    },
    "SlotPrioritiesList":{
      "type":"list",
      "member":{"shape":"SlotPriority"}
    },
    "SlotPriority":{
      "type":"structure",
      "required":[
        "priority",
        "slotId"
      ],
      "members":{
        "priority":{
          "shape":"PriorityValue",
          "documentation":"<p>The priority that a slot should be elicited.</p>"
        },
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the slot.</p>"
        }
      },
      "documentation":"<p>Sets the priority that Amazon Lex should use when eliciting slot values from a user.</p>"
    },
    "SlotSortAttribute":{
      "type":"string",
      "enum":[
        "SlotName",
        "LastUpdatedDateTime"
      ]
    },
    "SlotSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"SlotSortAttribute",
          "documentation":"<p>The attribute to use to sort the list.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can choose ascending or descending.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of bots.</p>"
    },
    "SlotSummary":{
      "type":"structure",
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the slot.</p>"
        },
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The name given to the slot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the slot.</p>"
        },
        "slotConstraint":{
          "shape":"SlotConstraint",
          "documentation":"<p>Whether the slot is required or optional. An intent is complete when all required slots are filled.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The unique identifier for the slot type that defines the values for the slot.</p>"
        },
        "valueElicitationPromptSpecification":{
          "shape":"PromptSpecification",
          "documentation":"<p>Prompts that are sent to the user to elicit a value for the slot.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the last date and time that the slot was updated.</p>"
        }
      },
      "documentation":"<p>Summary information about a slot, a value that the bot elicits from the user.</p>"
    },
    "SlotSummaryList":{
      "type":"list",
      "member":{"shape":"SlotSummary"}
    },
    "SlotTypeFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"SlotTypeFilterName",
          "documentation":"<p>The name of the field to use for filtering.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The value to use to filter the response.</p>"
        },
        "operator":{
          "shape":"SlotTypeFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify <code>EQ</code> when the <code>ListSlotTypes</code> operation should return only aliases that equal the specified value. Specify <code>CO</code> when the <code>ListSlotTypes</code> operation should return aliases that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters the response from the <code>ListSlotTypes</code> operation.</p>"
    },
    "SlotTypeFilterName":{
      "type":"string",
      "enum":["SlotTypeName"]
    },
    "SlotTypeFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "SlotTypeFilters":{
      "type":"list",
      "member":{"shape":"SlotTypeFilter"},
      "max":1,
      "min":1
    },
    "SlotTypeSignature":{"type":"string"},
    "SlotTypeSortAttribute":{
      "type":"string",
      "enum":[
        "SlotTypeName",
        "LastUpdatedDateTime"
      ]
    },
    "SlotTypeSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"SlotTypeSortAttribute",
          "documentation":"<p>The attribute to use to sort the list of slot types.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list. You can say ascending or descending.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of slot types.</p>"
    },
    "SlotTypeSummary":{
      "type":"structure",
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned to the slot type.</p>"
        },
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The name of the slot type.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the slot type.</p>"
        },
        "parentSlotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>If the slot type is derived from a built-on slot type, the name of the parent slot type.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot type was last updated.</p>"
        }
      },
      "documentation":"<p>Provides summary information about a slot type.</p>"
    },
    "SlotTypeSummaryList":{
      "type":"list",
      "member":{"shape":"SlotTypeSummary"}
    },
    "SlotTypeValue":{
      "type":"structure",
      "members":{
        "sampleValue":{
          "shape":"SampleValue",
          "documentation":"<p>The value of the slot type entry.</p>"
        },
        "synonyms":{
          "shape":"SynonymList",
          "documentation":"<p>Additional values releated to the slot type entry.</p>"
        }
      },
      "documentation":"<p>Each slot type can have a set of values. Each <code>SlotTypeValue</code> represents a value that the slot type can take.</p>"
    },
    "SlotTypeValues":{
      "type":"list",
      "member":{"shape":"SlotTypeValue"},
      "max":10000,
      "min":1
    },
    "SlotValueElicitationSetting":{
      "type":"structure",
      "required":["slotConstraint"],
      "members":{
        "defaultValueSpecification":{
          "shape":"SlotDefaultValueSpecification",
          "documentation":"<p>A list of default values for a slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, sesion attributes, and defined values.</p>"
        },
        "slotConstraint":{
          "shape":"SlotConstraint",
          "documentation":"<p>Specifies whether the slot is required or optional.</p>"
        },
        "promptSpecification":{
          "shape":"PromptSpecification",
          "documentation":"<p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>If you know a specific pattern that users might respond to an Amazon Lex request for a slot value, you can provide those utterances to improve accuracy. This is optional. In most cases, Amazon Lex is capable of understanding user utterances.</p>"
        },
        "waitAndContinueSpecification":{"shape":"WaitAndContinueSpecification"}
      },
      "documentation":"<p>Settings that you can use for eliciting a slot value.</p>"
    },
    "SlotValueRegexFilter":{
      "type":"structure",
      "required":["pattern"],
      "members":{
        "pattern":{
          "shape":"RegexPattern",
          "documentation":"<p>A regular expression used to validate the value of a slot.</p> <p> Use a standard regular expression. Amazon Lex supports the following characters in the regular expression: </p> <ul> <li> <p>A-Z, a-z</p> </li> <li> <p>0-9</p> </li> <li> <p>Unicode characters (\"\\ u&lt;Unicode&gt;\")</p> </li> </ul> <p> Represent Unicode characters with four digits, for example \"\\u0041\" or \"\\u005A\". </p> <p> The following regular expression operators are not supported: </p> <ul> <li> <p>Infinite repeaters: *, +, or {x,} with no upper bound.</p> </li> <li> <p>Wild card (.)</p> </li> </ul>"
        }
      },
      "documentation":"<p>Provides a regular expression used to validate the value of a slot.</p>"
    },
    "SlotValueResolutionStrategy":{
      "type":"string",
      "enum":[
        "OriginalValue",
        "TopResolution"
      ]
    },
    "SlotValueSelectionSetting":{
      "type":"structure",
      "required":["resolutionStrategy"],
      "members":{
        "resolutionStrategy":{
          "shape":"SlotValueResolutionStrategy",
          "documentation":"<p>Determines the slot resolution strategy that Amazon Lex uses to return slot type values. The field can be set to one of the following values:</p> <ul> <li> <p>OriginalValue - Returns the value entered by the user, if the user value is similar to the slot value.</p> </li> <li> <p>TopResolution - If there is a resolution list for the slot, return the first value in the resolution list as the slot type value. If there is no resolution list, null is returned.</p> </li> </ul> <p>If you don't specify the valueSelectionStrategy, the default is OriginalValue. </p>"
        },
        "regexFilter":{
          "shape":"SlotValueRegexFilter",
          "documentation":"<p>A regular expression used to validate the value of a slot.</p>"
        }
      },
      "documentation":"<p>Contains settings used by Amazon Lex to select a slot value.</p>"
    },
    "SortOrder":{
      "type":"string",
      "enum":[
        "Ascending",
        "Descending"
      ]
    },
    "StillWaitingResponseFrequency":{
      "type":"integer",
      "max":300,
      "min":1
    },
    "StillWaitingResponseSpecification":{
      "type":"structure",
      "required":[
        "messageGroups",
        "frequencyInSeconds",
        "timeoutInSeconds"
      ],
      "members":{
        "messageGroups":{
          "shape":"MessageGroupsList",
          "documentation":"<p>One or more message groups, each containing one or more messages, that define the prompts that Amazon Lex sends to the user.</p>"
        },
        "frequencyInSeconds":{
          "shape":"StillWaitingResponseFrequency",
          "documentation":"<p>How often a message should be sent to the user. Minimum of 1 second, maximum of 5 minutes.</p>"
        },
        "timeoutInSeconds":{
          "shape":"StillWaitingResponseTimeout",
          "documentation":"<p>If Amazon Lex waits longer than this length of time for a response, it will stop sending messages.</p>"
        },
        "allowInterrupt":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates that the user can interrupt the response by speaking while the message is being played.</p>"
        }
      },
      "documentation":"<p>Defines the messages that Amazon Lex sends to a user to remind them that the bot is waiting for a response.</p>"
    },
    "StillWaitingResponseTimeout":{
      "type":"integer",
      "max":900,
      "min":1
    },
    "SynonymList":{
      "type":"list",
      "member":{"shape":"SampleValue"},
      "max":10000,
      "min":1
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"},
      "max":200,
      "min":0
    },
    "TagMap":{
      "type":"map",
      "key":{"shape":"TagKey"},
      "value":{"shape":"TagValue"},
      "max":200,
      "min":0
    },
    "TagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceARN",
        "tags"
      ],
      "members":{
        "resourceARN":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot, bot alias, or bot channel to tag.</p>",
          "location":"uri",
          "locationName":"resourceARN"
        },
        "tags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tag keys to add to the resource. If a tag key already exists, the existing value is replaced with the new value.</p>"
        }
      }
    },
    "TagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "TextLogDestination":{
      "type":"structure",
      "required":["cloudWatch"],
      "members":{
        "cloudWatch":{
          "shape":"CloudWatchLogGroupLogDestination",
          "documentation":"<p>Defines the Amazon CloudWatch Logs log group where text and metadata logs are delivered.</p>"
        }
      },
      "documentation":"<p>Defines the Amazon CloudWatch Logs destination log group for conversation text logs.</p>"
    },
    "TextLogSetting":{
      "type":"structure",
      "required":[
        "enabled",
        "destination"
      ],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Determines whether conversation logs should be stored for an alias.</p>"
        },
        "destination":{"shape":"TextLogDestination"}
      },
      "documentation":"<p>Defines settings to enable text conversation logs.</p>"
    },
    "TextLogSettingsList":{
      "type":"list",
      "member":{"shape":"TextLogSetting"},
      "max":1,
      "min":1
    },
    "ThrottlingException":{
      "type":"structure",
      "members":{
        "retryAfterSeconds":{
          "shape":"RetryAfterSeconds",
          "location":"header",
          "locationName":"Retry-After"
        },
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":429},
      "exception":true
    },
    "Timestamp":{"type":"timestamp"},
    "UntagResourceRequest":{
      "type":"structure",
      "required":[
        "resourceARN",
        "tagKeys"
      ],
      "members":{
        "resourceARN":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the resource to remove the tags from.</p>",
          "location":"uri",
          "locationName":"resourceARN"
        },
        "tagKeys":{
          "shape":"TagKeyList",
          "documentation":"<p>A list of tag keys to remove from the resource. If a tag key does not exist on the resource, it is ignored.</p>",
          "location":"querystring",
          "locationName":"tagKeys"
        }
      }
    },
    "UntagResourceResponse":{
      "type":"structure",
      "members":{
      }
    },
    "UpdateBotAliasRequest":{
      "type":"structure",
      "required":[
        "botAliasId",
        "botAliasName",
        "botId"
      ],
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The unique identifier of the bot alias.</p>",
          "location":"uri",
          "locationName":"botAliasId"
        },
        "botAliasName":{
          "shape":"Name",
          "documentation":"<p>The new name to assign to the bot alias.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The new description to assign to the bot alias.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The new bot version to assign to the bot alias.</p>"
        },
        "botAliasLocaleSettings":{
          "shape":"BotAliasLocaleSettingsMap",
          "documentation":"<p>The new Lambda functions to use in each locale for the bot alias.</p>"
        },
        "conversationLogSettings":{
          "shape":"ConversationLogSettings",
          "documentation":"<p>The new settings for storing conversation logs in Amazon CloudWatch Logs and Amazon S3 buckets.</p>"
        },
        "sentimentAnalysisSettings":{"shape":"SentimentAnalysisSettings"},
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot with the updated alias.</p>",
          "location":"uri",
          "locationName":"botId"
        }
      }
    },
    "UpdateBotAliasResponse":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the updated bot alias.</p>"
        },
        "botAliasName":{
          "shape":"Name",
          "documentation":"<p>The updated name of the bot alias.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the bot alias.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The updated version of the bot that the alias points to.</p>"
        },
        "botAliasLocaleSettings":{
          "shape":"BotAliasLocaleSettingsMap",
          "documentation":"<p>The updated Lambda functions to use in each locale for the bot alias.</p>"
        },
        "conversationLogSettings":{
          "shape":"ConversationLogSettings",
          "documentation":"<p>The updated settings for storing conversation logs in Amazon CloudWatch Logs and Amazon S3 buckets.</p>"
        },
        "sentimentAnalysisSettings":{"shape":"SentimentAnalysisSettings"},
        "botAliasStatus":{
          "shape":"BotAliasStatus",
          "documentation":"<p>The current status of the bot alias. When the status is <code>Available</code> the alias is ready for use.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot with the updated alias.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot was last updated.</p>"
        }
      }
    },
    "UpdateBotLocaleRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "nluIntentConfidenceThreshold"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the locale.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the locale to be updated. The version can only be the <code>DRAFT</code> version.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale to update. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The new description of the locale.</p>"
        },
        "nluIntentConfidenceThreshold":{
          "shape":"ConfidenceThreshold",
          "documentation":"<p>The new confidence threshold where Amazon Lex inserts the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents in the list of possible intents for an utterance.</p>"
        },
        "voiceSettings":{
          "shape":"VoiceSettings",
          "documentation":"<p>The new Amazon Polly voice Amazon Lex should use for voice interaction with the user.</p>"
        }
      }
    },
    "UpdateBotLocaleResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the updated locale.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the updated locale.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the updated bot locale.</p>"
        },
        "localeName":{
          "shape":"LocaleName",
          "documentation":"<p>The updated locale name for the locale.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the locale.</p>"
        },
        "nluIntentConfidenceThreshold":{
          "shape":"ConfidenceThreshold",
          "documentation":"<p>The updated confidence threshold for inserting the <code>AMAZON.FallbackIntent</code> and <code>AMAZON.KendraSearchIntent</code> intents in the list of possible intents for an utterance.</p>"
        },
        "voiceSettings":{
          "shape":"VoiceSettings",
          "documentation":"<p>The updated Amazon Polly voice to use for voice interaction with the user.</p>"
        },
        "botLocaleStatus":{
          "shape":"BotLocaleStatus",
          "documentation":"<p>The current status of the locale. When the bot status is <code>Built</code> the locale is ready for use.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>If the <code>botLocaleStatus</code> is <code>Failed</code>, the <code>failureReasons</code> field lists the errors that occurred while building the bot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the locale was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the locale was last updated.</p>"
        }
      }
    },
    "UpdateBotRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botName",
        "roleArn",
        "dataPrivacy",
        "idleSessionTTLInSeconds"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot to update. This identifier is returned by the <a>CreateBot</a> operation.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botName":{
          "shape":"Name",
          "documentation":"<p>The new name of the bot. The name must be unique in the account that creates the bot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>A description of the bot.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that has permissions to access the bot.</p>"
        },
        "dataPrivacy":{
          "shape":"DataPrivacy",
          "documentation":"<p>Provides information on additional privacy protections Amazon Lex should use with the bot's data.</p>"
        },
        "idleSessionTTLInSeconds":{
          "shape":"SessionTTL",
          "documentation":"<p>The time, in seconds, that Amazon Lex should keep information about a user's conversation with the bot.</p> <p>A user interaction remains active for the amount of time specified. If no conversation occurs during this time, the session expires and Amazon Lex deletes any data provided before the timeout.</p> <p>You can specify between 60 (1 minute) and 86,400 (24 hours) seconds.</p>"
        }
      }
    },
    "UpdateBotResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that was updated.</p>"
        },
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name of the bot after the update.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the bot after the update.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role used by the bot after the update.</p>"
        },
        "dataPrivacy":{
          "shape":"DataPrivacy",
          "documentation":"<p>The data privacy settings for the bot after the update.</p>"
        },
        "idleSessionTTLInSeconds":{
          "shape":"SessionTTL",
          "documentation":"<p>The session timeout, in seconds, for the bot after the update.</p>"
        },
        "botStatus":{
          "shape":"BotStatus",
          "documentation":"<p>Shows the current status of the bot. The bot is first in the <code>Creating</code> status. Once the bot is read for use, it changes to the <code>Available</code> status. After the bot is created, you can use the <code>DRAFT</code> version of the bot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot was last updated.</p>"
        }
      }
    },
    "UpdateIntentRequest":{
      "type":"structure",
      "required":[
        "intentId",
        "intentName",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the intent to update.</p>",
          "location":"uri",
          "locationName":"intentId"
        },
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The new name for the intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The new description of the intent.</p>"
        },
        "parentIntentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>The signature of the new built-in intent to use as the parent of this intent.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>New utterances used to invoke the intent.</p>"
        },
        "dialogCodeHook":{
          "shape":"DialogCodeHookSettings",
          "documentation":"<p>The new Lambda function to use between each turn of the conversation with the bot.</p>"
        },
        "fulfillmentCodeHook":{
          "shape":"FulfillmentCodeHookSettings",
          "documentation":"<p>The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.</p>"
        },
        "slotPriorities":{
          "shape":"SlotPrioritiesList",
          "documentation":"<p>A new list of slots and their priorities that are contained by the intent.</p>"
        },
        "intentConfirmationSetting":{
          "shape":"IntentConfirmationSetting",
          "documentation":"<p>New prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>"
        },
        "intentClosingSetting":{
          "shape":"IntentClosingSetting",
          "documentation":"<p>The new response that Amazon Lex sends the user when the intent is closed.</p>"
        },
        "inputContexts":{
          "shape":"InputContextsList",
          "documentation":"<p>A new list of contexts that must be active in order for Amazon Lex to consider the intent.</p>"
        },
        "outputContexts":{
          "shape":"OutputContextsList",
          "documentation":"<p>A new list of contexts that Amazon Lex activates when the intent is fulfilled.</p>"
        },
        "kendraConfiguration":{
          "shape":"KendraConfiguration",
          "documentation":"<p>New configuration settings for connecting to an Amazon Kendra index.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the intent.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the intent. Must be <code>DRAFT</code>.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "UpdateIntentResponse":{
      "type":"structure",
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent that was updated.</p>"
        },
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The updated name of the intent.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the intent.</p>"
        },
        "parentIntentSignature":{
          "shape":"IntentSignature",
          "documentation":"<p>The updated built-in intent that is the parent of this intent.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>The updated list of sample utterances for the intent.</p>"
        },
        "dialogCodeHook":{
          "shape":"DialogCodeHookSettings",
          "documentation":"<p>The updated Lambda function called during each turn of the conversation with the user.</p>"
        },
        "fulfillmentCodeHook":{
          "shape":"FulfillmentCodeHookSettings",
          "documentation":"<p>The updated Lambda function called when the intent is ready for fulfillment.</p>"
        },
        "slotPriorities":{
          "shape":"SlotPrioritiesList",
          "documentation":"<p>The updated list of slots and their priorities that are elicited from the user for the intent.</p>"
        },
        "intentConfirmationSetting":{
          "shape":"IntentConfirmationSetting",
          "documentation":"<p>The updated prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>"
        },
        "intentClosingSetting":{
          "shape":"IntentClosingSetting",
          "documentation":"<p>The updated response that Amazon Lex sends the user when the intent is closed.</p>"
        },
        "inputContexts":{
          "shape":"InputContextsList",
          "documentation":"<p>The updated list of contexts that must be active for the intent to be considered by Amazon Lex.</p>"
        },
        "outputContexts":{
          "shape":"OutputContextsList",
          "documentation":"<p>The updated list of contexts that Amazon Lex activates when the intent is fulfilled.</p>"
        },
        "kendraConfiguration":{
          "shape":"KendraConfiguration",
          "documentation":"<p>The updated configuration for connecting to an Amazon Kendra index with the <code>AMAZON.KendraSearchIntent</code> intent.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the intent.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the intent. Will always be <code>DRAFT</code>.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The updated language and locale of the intent.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of when the intent was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the last time that the intent was modified.</p>"
        }
      }
    },
    "UpdateSlotRequest":{
      "type":"structure",
      "required":[
        "slotId",
        "slotName",
        "slotTypeId",
        "valueElicitationSetting",
        "botId",
        "botVersion",
        "localeId",
        "intentId"
      ],
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier for the slot to update.</p>",
          "location":"uri",
          "locationName":"slotId"
        },
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The new name for the slot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The new description for the slot.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The unique identifier of the new slot type to associate with this slot. </p>"
        },
        "valueElicitationSetting":{
          "shape":"SlotValueElicitationSetting",
          "documentation":"<p>A new set of prompts that Amazon Lex sends to the user to elicit a response the provides a value for the slot.</p>"
        },
        "obfuscationSetting":{
          "shape":"ObfuscationSetting",
          "documentation":"<p>New settings that determine how slot values are formatted in Amazon CloudWatch logs. </p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the slot.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the slot. Must always be <code>DRAFT</code>.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that contains the slot. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the intent that contains the slot.</p>",
          "location":"uri",
          "locationName":"intentId"
        }
      }
    },
    "UpdateSlotResponse":{
      "type":"structure",
      "members":{
        "slotId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the slot that was updated.</p>"
        },
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The updated name of the slot.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the bot.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The updated identifier of the slot type that provides values for the slot.</p>"
        },
        "valueElicitationSetting":{
          "shape":"SlotValueElicitationSetting",
          "documentation":"<p>The updated prompts that Amazon Lex sends to the user to elicit a response that provides a value for the slot.</p>"
        },
        "obfuscationSetting":{
          "shape":"ObfuscationSetting",
          "documentation":"<p>The updated setting that determines whether the slot value is obfuscated in the Amazon CloudWatch logs.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the slot.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The identifier of the slot version that contains the slot. Will always be <code>DRAFT</code>.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale that contains the slot.</p>"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The intent that contains the slot.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the date and time that the slot was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the date and time that the slot was last updated.</p>"
        }
      }
    },
    "UpdateSlotTypeRequest":{
      "type":"structure",
      "required":[
        "slotTypeId",
        "slotTypeName",
        "valueSelectionSetting",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the slot type to update.</p>",
          "location":"uri",
          "locationName":"slotTypeId"
        },
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The new name of the slot type.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The new description of the slot type.</p>"
        },
        "slotTypeValues":{
          "shape":"SlotTypeValues",
          "documentation":"<p>A new list of values and their optional synonyms that define the values that the slot type can take.</p>"
        },
        "valueSelectionSetting":{
          "shape":"SlotValueSelectionSetting",
          "documentation":"<p>The strategy that Amazon Lex should use when deciding on a value from the list of slot type values.</p>"
        },
        "parentSlotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>The new built-in slot type that should be used as the parent of this slot type.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the slot type.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the slot type. Must be <code>DRAFT</code>.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that contains the slot type. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html\">https://docs.aws.amazon.com/lex/latest/dg/supported-locales.html</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "UpdateSlotTypeResponse":{
      "type":"structure",
      "members":{
        "slotTypeId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the updated slot type.</p>"
        },
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The updated name of the slot type.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The updated description of the slot type.</p>"
        },
        "slotTypeValues":{
          "shape":"SlotTypeValues",
          "documentation":"<p>The updated values that the slot type provides.</p>"
        },
        "valueSelectionSetting":{
          "shape":"SlotValueSelectionSetting",
          "documentation":"<p>The updated strategy that Amazon Lex uses to determine which value to select from the slot type.</p>"
        },
        "parentSlotTypeSignature":{
          "shape":"SlotTypeSignature",
          "documentation":"<p>The updated signature of the built-in slot type that is the parent of this slot type.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the slot type.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the slot type. This is always <code>DRAFT</code>.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The language and locale of the updated slot type.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp of the date and time that the slot type was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the slot type was last updated.</p>"
        }
      }
    },
    "Utterance":{"type":"string"},
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p/>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "Value":{
      "type":"string",
      "max":140,
      "min":1
    },
    "VoiceId":{"type":"string"},
    "VoiceSettings":{
      "type":"structure",
      "required":["voiceId"],
      "members":{
        "voiceId":{
          "shape":"VoiceId",
          "documentation":"<p>The identifier of the Amazon Polly voice to use.</p>"
        }
      },
      "documentation":"<p>Defines settings for using an Amazon Polly voice to communicate with a user.</p>"
    },
    "WaitAndContinueSpecification":{
      "type":"structure",
      "required":[
        "waitingResponse",
        "continueResponse"
      ],
      "members":{
        "waitingResponse":{
          "shape":"ResponseSpecification",
          "documentation":"<p>The response that Amazon Lex sends to indicate that the bot is waiting for the conversation to continue.</p>"
        },
        "continueResponse":{
          "shape":"ResponseSpecification",
          "documentation":"<p>The response that Amazon Lex sends to indicate that the bot is ready to continue the conversation.</p>"
        },
        "stillWaitingResponse":{
          "shape":"StillWaitingResponseSpecification",
          "documentation":"<p>A response that Amazon Lex sends periodically to the user to indicate that the bot is still waiting for input from the user.</p>"
        }
      },
      "documentation":"<p>Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. </p>"
    }
  },
  "documentation":"<p/>"
}
