{
  "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":{
    "BatchCreateCustomVocabularyItem":{
      "name":"BatchCreateCustomVocabularyItem",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchcreate",
        "responseCode":200
      },
      "input":{"shape":"BatchCreateCustomVocabularyItemRequest"},
      "output":{"shape":"BatchCreateCustomVocabularyItemResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Create a batch of custom vocabulary items for a given bot locale's custom vocabulary.</p>"
    },
    "BatchDeleteCustomVocabularyItem":{
      "name":"BatchDeleteCustomVocabularyItem",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchdelete",
        "responseCode":200
      },
      "input":{"shape":"BatchDeleteCustomVocabularyItemRequest"},
      "output":{"shape":"BatchDeleteCustomVocabularyItemResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Delete a batch of custom vocabulary items for a given bot locale's custom vocabulary.</p>"
    },
    "BatchUpdateCustomVocabularyItem":{
      "name":"BatchUpdateCustomVocabularyItem",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchupdate",
        "responseCode":200
      },
      "input":{"shape":"BatchUpdateCustomVocabularyItemRequest"},
      "output":{"shape":"BatchUpdateCustomVocabularyItemResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Update a batch of custom vocabulary items for a given bot locale's custom vocabulary.</p>"
    },
    "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>"
    },
    "CreateBotReplica":{
      "name":"CreateBotReplica",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/replicas/",
        "responseCode":202
      },
      "input":{"shape":"CreateBotReplicaRequest"},
      "output":{"shape":"CreateBotReplicaResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Action to create a replication of the source bot in the secondary region.</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 an immutable version of the bot. When you create the first version of a bot, Amazon Lex sets the version number to 1. Subsequent bot versions increase in an increment of 1. The version number will always represent the total number of versions created of the bot, not the current number of versions. If a bot version is deleted, that bot version number will not be reused.</p>"
    },
    "CreateExport":{
      "name":"CreateExport",
      "http":{
        "method":"PUT",
        "requestUri":"/exports/",
        "responseCode":202
      },
      "input":{"shape":"CreateExportRequest"},
      "output":{"shape":"CreateExportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Creates a zip archive containing the contents of a bot or a bot locale. The archive contains a directory structure that contains JSON files that define the bot.</p> <p>You can create an archive that contains the complete definition of a bot, or you can specify that the archive contain only the definition of a single bot locale.</p> <p>For more information about exporting bots, and about the structure of the export archive, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/importing-exporting.html\"> Importing and exporting bots </a> </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>"
    },
    "CreateResourcePolicy":{
      "name":"CreateResourcePolicy",
      "http":{
        "method":"POST",
        "requestUri":"/policy/{resourceArn}/",
        "responseCode":200
      },
      "input":{"shape":"CreateResourcePolicyRequest"},
      "output":{"shape":"CreateResourcePolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Creates a new resource policy with the specified policy statements.</p>"
    },
    "CreateResourcePolicyStatement":{
      "name":"CreateResourcePolicyStatement",
      "http":{
        "method":"POST",
        "requestUri":"/policy/{resourceArn}/statements/",
        "responseCode":200
      },
      "input":{"shape":"CreateResourcePolicyStatementRequest"},
      "output":{"shape":"CreateResourcePolicyStatementResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Adds a new resource policy statement to a bot or bot alias. If a resource policy exists, the statement is added to the current resource policy. If a policy doesn't exist, a new policy is created.</p> <p>You can't create a resource policy statement that allows cross-account access.</p>"
    },
    "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>"
    },
    "CreateTestSetDiscrepancyReport":{
      "name":"CreateTestSetDiscrepancyReport",
      "http":{
        "method":"POST",
        "requestUri":"/testsets/{testSetId}/testsetdiscrepancy",
        "responseCode":202
      },
      "input":{"shape":"CreateTestSetDiscrepancyReportRequest"},
      "output":{"shape":"CreateTestSetDiscrepancyReportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Create a report that describes the differences between the bot and the test set.</p>"
    },
    "CreateUploadUrl":{
      "name":"CreateUploadUrl",
      "http":{
        "method":"POST",
        "requestUri":"/createuploadurl/",
        "responseCode":200
      },
      "input":{"shape":"CreateUploadUrlRequest"},
      "output":{"shape":"CreateUploadUrlResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a pre-signed S3 write URL that you use to upload the zip archive when importing a bot or a bot locale. </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>"
    },
    "DeleteBotReplica":{
      "name":"DeleteBotReplica",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/replicas/{replicaRegion}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteBotReplicaRequest"},
      "output":{"shape":"DeleteBotReplicaResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to delete the replicated bot in the secondary region.</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 versions of a bot, use the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DeleteBot.html\">DeleteBot</a> operation.</p>"
    },
    "DeleteCustomVocabulary":{
      "name":"DeleteCustomVocabulary",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary",
        "responseCode":202
      },
      "input":{"shape":"DeleteCustomVocabularyRequest"},
      "output":{"shape":"DeleteCustomVocabularyResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes a custom vocabulary from the specified locale in the specified bot.</p>"
    },
    "DeleteExport":{
      "name":"DeleteExport",
      "http":{
        "method":"DELETE",
        "requestUri":"/exports/{exportId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteExportRequest"},
      "output":{"shape":"DeleteExportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes a previous export and the associated files stored in an S3 bucket.</p>"
    },
    "DeleteImport":{
      "name":"DeleteImport",
      "http":{
        "method":"DELETE",
        "requestUri":"/imports/{importId}/",
        "responseCode":202
      },
      "input":{"shape":"DeleteImportRequest"},
      "output":{"shape":"DeleteImportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Removes a previous import and the associated file stored in an S3 bucket.</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>"
    },
    "DeleteResourcePolicy":{
      "name":"DeleteResourcePolicy",
      "http":{
        "method":"DELETE",
        "requestUri":"/policy/{resourceArn}/",
        "responseCode":204
      },
      "input":{"shape":"DeleteResourcePolicyRequest"},
      "output":{"shape":"DeleteResourcePolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Removes an existing policy from a bot or bot alias. If the resource doesn't have a policy attached, Amazon Lex returns an exception.</p>"
    },
    "DeleteResourcePolicyStatement":{
      "name":"DeleteResourcePolicyStatement",
      "http":{
        "method":"DELETE",
        "requestUri":"/policy/{resourceArn}/statements/{statementId}/",
        "responseCode":204
      },
      "input":{"shape":"DeleteResourcePolicyStatementRequest"},
      "output":{"shape":"DeleteResourcePolicyStatementResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Deletes a policy statement from a resource policy. If you delete the last statement from a policy, the policy is deleted. If you specify a statement ID that doesn't exist in the policy, or if the bot or bot alias doesn't have a policy attached, Amazon Lex returns an exception.</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>"
    },
    "DeleteTestSet":{
      "name":"DeleteTestSet",
      "http":{
        "method":"DELETE",
        "requestUri":"/testsets/{testSetId}",
        "responseCode":204
      },
      "input":{"shape":"DeleteTestSetRequest"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to delete the selected test set.</p>",
      "idempotent":true
    },
    "DeleteUtterances":{
      "name":"DeleteUtterances",
      "http":{
        "method":"DELETE",
        "requestUri":"/bots/{botId}/utterances/",
        "responseCode":204
      },
      "input":{"shape":"DeleteUtterancesRequest"},
      "output":{"shape":"DeleteUtterancesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Deletes stored utterances.</p> <p>Amazon Lex stores the utterances that users send to your bot. Utterances are stored for 15 days for use with the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListAggregatedUtterances.html\">ListAggregatedUtterances</a> operation, and then stored indefinitely for use in improving the ability of your bot to respond to user input..</p> <p>Use the <code>DeleteUtterances</code> operation to manually delete utterances for a specific session. When you use the <code>DeleteUtterances</code> operation, utterances stored for improving your bot's ability to respond to user input are deleted immediately. Utterances stored for use with the <code>ListAggregatedUtterances</code> operation are deleted after 15 days.</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>"
    },
    "DescribeBotRecommendation":{
      "name":"DescribeBotRecommendation",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/{botRecommendationId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotRecommendationRequest"},
      "output":{"shape":"DescribeBotRecommendationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides metadata information about a bot recommendation. This information will enable you to get a description on the request inputs, to download associated transcripts after processing is complete, and to download intents and slot-types generated by the bot recommendation.</p>"
    },
    "DescribeBotReplica":{
      "name":"DescribeBotReplica",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/replicas/{replicaRegion}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotReplicaRequest"},
      "output":{"shape":"DescribeBotReplicaResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Monitors the bot replication status through the UI console.</p>"
    },
    "DescribeBotResourceGeneration":{
      "name":"DescribeBotResourceGeneration",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generations/{generationId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeBotResourceGenerationRequest"},
      "output":{"shape":"DescribeBotResourceGenerationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Returns information about a request to generate a bot through natural language description, made through the <code>StartBotResource</code> API. Use the <code>generatedBotLocaleUrl</code> to retrieve the Amazon S3 object containing the bot locale configuration. You can then modify and import this configuration.</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>"
    },
    "DescribeCustomVocabularyMetadata":{
      "name":"DescribeCustomVocabularyMetadata",
      "http":{
        "method":"GET",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/metadata",
        "responseCode":200
      },
      "input":{"shape":"DescribeCustomVocabularyMetadataRequest"},
      "output":{"shape":"DescribeCustomVocabularyMetadataResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides metadata information about a custom vocabulary.</p>"
    },
    "DescribeExport":{
      "name":"DescribeExport",
      "http":{
        "method":"GET",
        "requestUri":"/exports/{exportId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeExportRequest"},
      "output":{"shape":"DescribeExportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a specific export.</p>"
    },
    "DescribeImport":{
      "name":"DescribeImport",
      "http":{
        "method":"GET",
        "requestUri":"/imports/{importId}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeImportRequest"},
      "output":{"shape":"DescribeImportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets information about a specific import.</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>"
    },
    "DescribeResourcePolicy":{
      "name":"DescribeResourcePolicy",
      "http":{
        "method":"GET",
        "requestUri":"/policy/{resourceArn}/",
        "responseCode":200
      },
      "input":{"shape":"DescribeResourcePolicyRequest"},
      "output":{"shape":"DescribeResourcePolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Gets the resource policy and policy revision for a bot or bot alias.</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>"
    },
    "DescribeTestExecution":{
      "name":"DescribeTestExecution",
      "http":{
        "method":"GET",
        "requestUri":"/testexecutions/{testExecutionId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeTestExecutionRequest"},
      "output":{"shape":"DescribeTestExecutionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets metadata information about the test execution.</p>"
    },
    "DescribeTestSet":{
      "name":"DescribeTestSet",
      "http":{
        "method":"GET",
        "requestUri":"/testsets/{testSetId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeTestSetRequest"},
      "output":{"shape":"DescribeTestSetResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets metadata information about the test set.</p>"
    },
    "DescribeTestSetDiscrepancyReport":{
      "name":"DescribeTestSetDiscrepancyReport",
      "http":{
        "method":"GET",
        "requestUri":"/testsetdiscrepancy/{testSetDiscrepancyReportId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeTestSetDiscrepancyReportRequest"},
      "output":{"shape":"DescribeTestSetDiscrepancyReportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets metadata information about the test set discrepancy report.</p>"
    },
    "DescribeTestSetGeneration":{
      "name":"DescribeTestSetGeneration",
      "http":{
        "method":"GET",
        "requestUri":"/testsetgenerations/{testSetGenerationId}",
        "responseCode":200
      },
      "input":{"shape":"DescribeTestSetGenerationRequest"},
      "output":{"shape":"DescribeTestSetGenerationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets metadata information about the test set generation.</p>"
    },
    "GenerateBotElement":{
      "name":"GenerateBotElement",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generate",
        "responseCode":202
      },
      "input":{"shape":"GenerateBotElementRequest"},
      "output":{"shape":"GenerateBotElementResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Generates sample utterances for an intent.</p>"
    },
    "GetTestExecutionArtifactsUrl":{
      "name":"GetTestExecutionArtifactsUrl",
      "http":{
        "method":"GET",
        "requestUri":"/testexecutions/{testExecutionId}/artifacturl",
        "responseCode":200
      },
      "input":{"shape":"GetTestExecutionArtifactsUrlRequest"},
      "output":{"shape":"GetTestExecutionArtifactsUrlResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The pre-signed Amazon S3 URL to download the test execution result artifacts.</p>"
    },
    "ListAggregatedUtterances":{
      "name":"ListAggregatedUtterances",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/aggregatedutterances/",
        "responseCode":200
      },
      "input":{"shape":"ListAggregatedUtterancesRequest"},
      "output":{"shape":"ListAggregatedUtterancesResponse"},
      "errors":[
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ThrottlingException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Provides a list of utterances that users have sent to the bot.</p> <p>Utterances are aggregated by the text of the utterance. For example, all instances where customers used the phrase \"I want to order pizza\" are aggregated into the same line in the response.</p> <p>You can see both detected utterances and missed utterances. A detected utterance is where the bot properly recognized the utterance and activated the associated intent. A missed utterance was not recognized by the bot and didn't activate an intent.</p> <p>Utterances can be aggregated for a bot alias or for a bot version, but not both at the same time.</p> <p>Utterances statistics are not generated under the following conditions:</p> <ul> <li> <p>The <code>childDirected</code> field was set to true when the bot was created.</p> </li> <li> <p>You are using slot obfuscation with one or more slots.</p> </li> <li> <p>You opted out of participating in improving Amazon Lex.</p> </li> </ul>"
    },
    "ListBotAliasReplicas":{
      "name":"ListBotAliasReplicas",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/replicas/{replicaRegion}/botaliases/",
        "responseCode":200
      },
      "input":{"shape":"ListBotAliasReplicasRequest"},
      "output":{"shape":"ListBotAliasReplicasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to list the replicated bots created from the source bot alias.</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>"
    },
    "ListBotRecommendations":{
      "name":"ListBotRecommendations",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/",
        "responseCode":200
      },
      "input":{"shape":"ListBotRecommendationsRequest"},
      "output":{"shape":"ListBotRecommendationsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Get a list of bot recommendations that meet the specified criteria.</p>"
    },
    "ListBotReplicas":{
      "name":"ListBotReplicas",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/replicas/",
        "responseCode":200
      },
      "input":{"shape":"ListBotReplicasRequest"},
      "output":{"shape":"ListBotReplicasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to list the replicated bots.</p>"
    },
    "ListBotResourceGenerations":{
      "name":"ListBotResourceGenerations",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/generations",
        "responseCode":200
      },
      "input":{"shape":"ListBotResourceGenerationsRequest"},
      "output":{"shape":"ListBotResourceGenerationsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Lists the generation requests made for a bot locale.</p>"
    },
    "ListBotVersionReplicas":{
      "name":"ListBotVersionReplicas",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/replicas/{replicaRegion}/botversions/",
        "responseCode":200
      },
      "input":{"shape":"ListBotVersionReplicasRequest"},
      "output":{"shape":"ListBotVersionReplicasResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Contains information about all the versions replication statuses applicable for Global Resiliency.</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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html\">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>"
    },
    "ListCustomVocabularyItems":{
      "name":"ListCustomVocabularyItems",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/list",
        "responseCode":200
      },
      "input":{"shape":"ListCustomVocabularyItemsRequest"},
      "output":{"shape":"ListCustomVocabularyItemsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Paginated list of custom vocabulary items for a given bot locale's custom vocabulary.</p>"
    },
    "ListExports":{
      "name":"ListExports",
      "http":{
        "method":"POST",
        "requestUri":"/exports/",
        "responseCode":200
      },
      "input":{"shape":"ListExportsRequest"},
      "output":{"shape":"ListExportsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists the exports for a bot, bot locale, or custom vocabulary. Exports are kept in the list for 7 days.</p>"
    },
    "ListImports":{
      "name":"ListImports",
      "http":{
        "method":"POST",
        "requestUri":"/imports/",
        "responseCode":200
      },
      "input":{"shape":"ListImportsRequest"},
      "output":{"shape":"ListImportsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Lists the imports for a bot, bot locale, or custom vocabulary. Imports are kept in the list for 7 days.</p>"
    },
    "ListIntentMetrics":{
      "name":"ListIntentMetrics",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/intentmetrics",
        "responseCode":200
      },
      "input":{"shape":"ListIntentMetricsRequest"},
      "output":{"shape":"ListIntentMetricsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves summary metrics for the intents in your bot. The following fields are required:</p> <ul> <li> <p> <code>metrics</code> – A list of <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_AnalyticsIntentMetric.html\">AnalyticsIntentMetric</a> objects. In each object, use the <code>name</code> field to specify the metric to calculate, the <code>statistic</code> field to specify whether to calculate the <code>Sum</code>, <code>Average</code>, or <code>Max</code> number, and the <code>order</code> field to specify whether to sort the results in <code>Ascending</code> or <code>Descending</code> order.</p> </li> <li> <p> <code>startDateTime</code> and <code>endDateTime</code> – Define a time range for which you want to retrieve results.</p> </li> </ul> <p>Of the optional fields, you can organize the results in the following ways:</p> <ul> <li> <p>Use the <code>filters</code> field to filter the results, the <code>groupBy</code> field to specify categories by which to group the results, and the <code>binBy</code> field to specify time intervals by which to group the results.</p> </li> <li> <p>Use the <code>maxResults</code> field to limit the number of results to return in a single response and the <code>nextToken</code> field to return the next batch of results if the response does not return the full set of results.</p> </li> </ul> <p>Note that an <code>order</code> field exists in both <code>binBy</code> and <code>metrics</code>. You can specify only one <code>order</code> in a given request.</p>"
    },
    "ListIntentPaths":{
      "name":"ListIntentPaths",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/intentpaths",
        "responseCode":200
      },
      "input":{"shape":"ListIntentPathsRequest"},
      "output":{"shape":"ListIntentPathsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves summary statistics for a path of intents that users take over sessions with your bot. The following fields are required:</p> <ul> <li> <p> <code>startDateTime</code> and <code>endDateTime</code> – Define a time range for which you want to retrieve results.</p> </li> <li> <p> <code>intentPath</code> – Define an order of intents for which you want to retrieve metrics. Separate intents in the path with a forward slash. For example, populate the <code>intentPath</code> field with <code>/BookCar/BookHotel</code> to see details about how many times users invoked the <code>BookCar</code> and <code>BookHotel</code> intents in that order.</p> </li> </ul> <p>Use the optional <code>filters</code> field to filter the results.</p>"
    },
    "ListIntentStageMetrics":{
      "name":"ListIntentStageMetrics",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/intentstagemetrics",
        "responseCode":200
      },
      "input":{"shape":"ListIntentStageMetricsRequest"},
      "output":{"shape":"ListIntentStageMetricsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves summary metrics for the stages within intents in your bot. The following fields are required:</p> <ul> <li> <p> <code>metrics</code> – A list of <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_AnalyticsIntentStageMetric.html\">AnalyticsIntentStageMetric</a> objects. In each object, use the <code>name</code> field to specify the metric to calculate, the <code>statistic</code> field to specify whether to calculate the <code>Sum</code>, <code>Average</code>, or <code>Max</code> number, and the <code>order</code> field to specify whether to sort the results in <code>Ascending</code> or <code>Descending</code> order.</p> </li> <li> <p> <code>startDateTime</code> and <code>endDateTime</code> – Define a time range for which you want to retrieve results.</p> </li> </ul> <p>Of the optional fields, you can organize the results in the following ways:</p> <ul> <li> <p>Use the <code>filters</code> field to filter the results, the <code>groupBy</code> field to specify categories by which to group the results, and the <code>binBy</code> field to specify time intervals by which to group the results.</p> </li> <li> <p>Use the <code>maxResults</code> field to limit the number of results to return in a single response and the <code>nextToken</code> field to return the next batch of results if the response does not return the full set of results.</p> </li> </ul> <p>Note that an <code>order</code> field exists in both <code>binBy</code> and <code>metrics</code>. You can only specify one <code>order</code> in a given request.</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>"
    },
    "ListRecommendedIntents":{
      "name":"ListRecommendedIntents",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/{botRecommendationId}/intents",
        "responseCode":200
      },
      "input":{"shape":"ListRecommendedIntentsRequest"},
      "output":{"shape":"ListRecommendedIntentsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Gets a list of recommended intents provided by the bot recommendation that you can use in your bot. Intents in the response are ordered by relevance.</p>"
    },
    "ListSessionAnalyticsData":{
      "name":"ListSessionAnalyticsData",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/sessions",
        "responseCode":200
      },
      "input":{"shape":"ListSessionAnalyticsDataRequest"},
      "output":{"shape":"ListSessionAnalyticsDataResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves a list of metadata for individual user sessions with your bot. The <code>startDateTime</code> and <code>endDateTime</code> fields are required. These fields define a time range for which you want to retrieve results. Of the optional fields, you can organize the results in the following ways:</p> <ul> <li> <p>Use the <code>filters</code> field to filter the results and the <code>sortBy</code> field to specify the values by which to sort the results.</p> </li> <li> <p>Use the <code>maxResults</code> field to limit the number of results to return in a single response and the <code>nextToken</code> field to return the next batch of results if the response does not return the full set of results.</p> </li> </ul>"
    },
    "ListSessionMetrics":{
      "name":"ListSessionMetrics",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/sessionmetrics",
        "responseCode":200
      },
      "input":{"shape":"ListSessionMetricsRequest"},
      "output":{"shape":"ListSessionMetricsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Retrieves summary metrics for the user sessions with your bot. The following fields are required:</p> <ul> <li> <p> <code>metrics</code> – A list of <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_AnalyticsSessionMetric.html\">AnalyticsSessionMetric</a> objects. In each object, use the <code>name</code> field to specify the metric to calculate, the <code>statistic</code> field to specify whether to calculate the <code>Sum</code>, <code>Average</code>, or <code>Max</code> number, and the <code>order</code> field to specify whether to sort the results in <code>Ascending</code> or <code>Descending</code> order.</p> </li> <li> <p> <code>startDateTime</code> and <code>endDateTime</code> – Define a time range for which you want to retrieve results.</p> </li> </ul> <p>Of the optional fields, you can organize the results in the following ways:</p> <ul> <li> <p>Use the <code>filters</code> field to filter the results, the <code>groupBy</code> field to specify categories by which to group the results, and the <code>binBy</code> field to specify time intervals by which to group the results.</p> </li> <li> <p>Use the <code>maxResults</code> field to limit the number of results to return in a single response and the <code>nextToken</code> field to return the next batch of results if the response does not return the full set of results.</p> </li> </ul> <p>Note that an <code>order</code> field exists in both <code>binBy</code> and <code>metrics</code>. Currently, you can specify it in either field, but not in both.</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>"
    },
    "ListTestExecutionResultItems":{
      "name":"ListTestExecutionResultItems",
      "http":{
        "method":"POST",
        "requestUri":"/testexecutions/{testExecutionId}/results",
        "responseCode":200
      },
      "input":{"shape":"ListTestExecutionResultItemsRequest"},
      "output":{"shape":"ListTestExecutionResultItemsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Gets a list of test execution result items.</p>"
    },
    "ListTestExecutions":{
      "name":"ListTestExecutions",
      "http":{
        "method":"POST",
        "requestUri":"/testexecutions",
        "responseCode":200
      },
      "input":{"shape":"ListTestExecutionsRequest"},
      "output":{"shape":"ListTestExecutionsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The list of test set executions.</p>"
    },
    "ListTestSetRecords":{
      "name":"ListTestSetRecords",
      "http":{
        "method":"POST",
        "requestUri":"/testsets/{testSetId}/records",
        "responseCode":200
      },
      "input":{"shape":"ListTestSetRecordsRequest"},
      "output":{"shape":"ListTestSetRecordsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The list of test set records.</p>"
    },
    "ListTestSets":{
      "name":"ListTestSets",
      "http":{
        "method":"POST",
        "requestUri":"/testsets",
        "responseCode":200
      },
      "input":{"shape":"ListTestSetsRequest"},
      "output":{"shape":"ListTestSetsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The list of the test sets</p>"
    },
    "ListUtteranceAnalyticsData":{
      "name":"ListUtteranceAnalyticsData",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/utterances",
        "responseCode":200
      },
      "input":{"shape":"ListUtteranceAnalyticsDataRequest"},
      "output":{"shape":"ListUtteranceAnalyticsDataResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<note> <p>To use this API operation, your IAM role must have permissions to perform the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListAggregatedUtterances.html\">ListAggregatedUtterances</a> operation, which provides access to utterance-related analytics. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/monitoring-utterances.html\">Viewing utterance statistics</a> for the IAM policy to apply to the IAM role.</p> </note> <p>Retrieves a list of metadata for individual user utterances to your bot. The following fields are required:</p> <ul> <li> <p> <code>startDateTime</code> and <code>endDateTime</code> – Define a time range for which you want to retrieve results.</p> </li> </ul> <p>Of the optional fields, you can organize the results in the following ways:</p> <ul> <li> <p>Use the <code>filters</code> field to filter the results and the <code>sortBy</code> field to specify the values by which to sort the results.</p> </li> <li> <p>Use the <code>maxResults</code> field to limit the number of results to return in a single response and the <code>nextToken</code> field to return the next batch of results if the response does not return the full set of results.</p> </li> </ul>"
    },
    "ListUtteranceMetrics":{
      "name":"ListUtteranceMetrics",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/analytics/utterancemetrics",
        "responseCode":200
      },
      "input":{"shape":"ListUtteranceMetricsRequest"},
      "output":{"shape":"ListUtteranceMetricsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<note> <p>To use this API operation, your IAM role must have permissions to perform the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListAggregatedUtterances.html\">ListAggregatedUtterances</a> operation, which provides access to utterance-related analytics. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/monitoring-utterances.html\">Viewing utterance statistics</a> for the IAM policy to apply to the IAM role.</p> </note> <p>Retrieves summary metrics for the utterances in your bot. The following fields are required:</p> <ul> <li> <p> <code>metrics</code> – A list of <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_AnalyticsUtteranceMetric.html\">AnalyticsUtteranceMetric</a> objects. In each object, use the <code>name</code> field to specify the metric to calculate, the <code>statistic</code> field to specify whether to calculate the <code>Sum</code>, <code>Average</code>, or <code>Max</code> number, and the <code>order</code> field to specify whether to sort the results in <code>Ascending</code> or <code>Descending</code> order.</p> </li> <li> <p> <code>startDateTime</code> and <code>endDateTime</code> – Define a time range for which you want to retrieve results.</p> </li> </ul> <p>Of the optional fields, you can organize the results in the following ways:</p> <ul> <li> <p>Use the <code>filters</code> field to filter the results, the <code>groupBy</code> field to specify categories by which to group the results, and the <code>binBy</code> field to specify time intervals by which to group the results.</p> </li> <li> <p>Use the <code>maxResults</code> field to limit the number of results to return in a single response and the <code>nextToken</code> field to return the next batch of results if the response does not return the full set of results.</p> </li> </ul> <p>Note that an <code>order</code> field exists in both <code>binBy</code> and <code>metrics</code>. Currently, you can specify it in either field, but not in both.</p>"
    },
    "SearchAssociatedTranscripts":{
      "name":"SearchAssociatedTranscripts",
      "http":{
        "method":"POST",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/{botRecommendationId}/associatedtranscripts",
        "responseCode":200
      },
      "input":{"shape":"SearchAssociatedTranscriptsRequest"},
      "output":{"shape":"SearchAssociatedTranscriptsResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ResourceNotFoundException"}
      ],
      "documentation":"<p>Search for associated transcripts that meet the specified criteria.</p>"
    },
    "StartBotRecommendation":{
      "name":"StartBotRecommendation",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/",
        "responseCode":202
      },
      "input":{"shape":"StartBotRecommendationRequest"},
      "output":{"shape":"StartBotRecommendationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Use this to provide your transcript data, and to start the bot recommendation process.</p>"
    },
    "StartBotResourceGeneration":{
      "name":"StartBotResourceGeneration",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/startgeneration",
        "responseCode":202
      },
      "input":{"shape":"StartBotResourceGenerationRequest"},
      "output":{"shape":"StartBotResourceGenerationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Starts a request for the descriptive bot builder to generate a bot locale configuration based on the prompt you provide it. After you make this call, use the <code>DescribeBotResourceGeneration</code> operation to check on the status of the generation and for the <code>generatedBotLocaleUrl</code> when the generation is complete. Use that value to retrieve the Amazon S3 object containing the bot locale configuration. You can then modify and import this configuration.</p>",
      "idempotent":true
    },
    "StartImport":{
      "name":"StartImport",
      "http":{
        "method":"PUT",
        "requestUri":"/imports/",
        "responseCode":202
      },
      "input":{"shape":"StartImportRequest"},
      "output":{"shape":"StartImportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Starts importing a bot, bot locale, or custom vocabulary from a zip archive that you uploaded to an S3 bucket.</p>"
    },
    "StartTestExecution":{
      "name":"StartTestExecution",
      "http":{
        "method":"POST",
        "requestUri":"/testsets/{testSetId}/testexecutions",
        "responseCode":202
      },
      "input":{"shape":"StartTestExecutionRequest"},
      "output":{"shape":"StartTestExecutionResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to start test set execution.</p>"
    },
    "StartTestSetGeneration":{
      "name":"StartTestSetGeneration",
      "http":{
        "method":"PUT",
        "requestUri":"/testsetgenerations",
        "responseCode":202
      },
      "input":{"shape":"StartTestSetGenerationRequest"},
      "output":{"shape":"StartTestSetGenerationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ConflictException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to start the generation of test set.</p>",
      "idempotent":true
    },
    "StopBotRecommendation":{
      "name":"StopBotRecommendation",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/{botRecommendationId}/stopbotrecommendation",
        "responseCode":202
      },
      "input":{"shape":"StopBotRecommendationRequest"},
      "output":{"shape":"StopBotRecommendationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Stop an already running Bot Recommendation request.</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>"
    },
    "UpdateBotRecommendation":{
      "name":"UpdateBotRecommendation",
      "http":{
        "method":"PUT",
        "requestUri":"/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/botrecommendations/{botRecommendationId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateBotRecommendationRequest"},
      "output":{"shape":"UpdateBotRecommendationResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates an existing bot recommendation request.</p>"
    },
    "UpdateExport":{
      "name":"UpdateExport",
      "http":{
        "method":"PUT",
        "requestUri":"/exports/{exportId}/",
        "responseCode":202
      },
      "input":{"shape":"UpdateExportRequest"},
      "output":{"shape":"UpdateExportResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"ResourceNotFoundException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>Updates the password used to protect an export zip archive.</p> <p>The password is not required. If you don't supply a password, Amazon Lex generates a zip file that is not protected by a password. This is the archive that is available at the pre-signed S3 URL provided by the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeExport.html\">DescribeExport</a> operation.</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>"
    },
    "UpdateResourcePolicy":{
      "name":"UpdateResourcePolicy",
      "http":{
        "method":"PUT",
        "requestUri":"/policy/{resourceArn}/",
        "responseCode":200
      },
      "input":{"shape":"UpdateResourcePolicyRequest"},
      "output":{"shape":"UpdateResourcePolicyResponse"},
      "errors":[
        {"shape":"ResourceNotFoundException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ValidationException"},
        {"shape":"InternalServerException"},
        {"shape":"ThrottlingException"}
      ],
      "documentation":"<p>Replaces the existing resource policy for a bot or bot alias with a new one. If the policy doesn't exist, Amazon Lex returns an exception.</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>"
    },
    "UpdateTestSet":{
      "name":"UpdateTestSet",
      "http":{
        "method":"PUT",
        "requestUri":"/testsets/{testSetId}",
        "responseCode":200
      },
      "input":{"shape":"UpdateTestSetRequest"},
      "output":{"shape":"UpdateTestSetResponse"},
      "errors":[
        {"shape":"ThrottlingException"},
        {"shape":"ServiceQuotaExceededException"},
        {"shape":"ValidationException"},
        {"shape":"PreconditionFailedException"},
        {"shape":"ConflictException"},
        {"shape":"InternalServerException"}
      ],
      "documentation":"<p>The action to update the test set.</p>",
      "idempotent":true
    }
  },
  "shapes":{
    "ActiveContext":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"ActiveContextName",
          "documentation":"<p>The name of active context.</p>"
        }
      },
      "documentation":"<p>The active context used in the test execution.</p>"
    },
    "ActiveContextList":{
      "type":"list",
      "member":{"shape":"ActiveContext"},
      "max":20,
      "min":0
    },
    "ActiveContextName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^([A-Za-z]_?)+$"
    },
    "AdvancedRecognitionSetting":{
      "type":"structure",
      "members":{
        "audioRecognitionStrategy":{
          "shape":"AudioRecognitionStrategy",
          "documentation":"<p>Enables using the slot values as a custom vocabulary for recognizing user utterances.</p>"
        }
      },
      "documentation":"<p>Provides settings that enable advanced recognition settings for slot values.</p>"
    },
    "AgentTurnResult":{
      "type":"structure",
      "required":["expectedAgentPrompt"],
      "members":{
        "expectedAgentPrompt":{
          "shape":"TestSetAgentPrompt",
          "documentation":"<p>The expected agent prompt for the agent turn in a test set execution.</p>"
        },
        "actualAgentPrompt":{
          "shape":"TestSetAgentPrompt",
          "documentation":"<p>The actual agent prompt for the agent turn in a test set execution.</p>"
        },
        "errorDetails":{"shape":"ExecutionErrorDetails"},
        "actualElicitedSlot":{
          "shape":"TestResultSlotName",
          "documentation":"<p>The actual elicited slot for the agent turn in a test set execution.</p>"
        },
        "actualIntent":{
          "shape":"Name",
          "documentation":"<p>The actual intent for the agent turn in a test set execution.</p>"
        }
      },
      "documentation":"<p>The information about the agent turn in a test set execution.</p>"
    },
    "AgentTurnSpecification":{
      "type":"structure",
      "required":["agentPrompt"],
      "members":{
        "agentPrompt":{
          "shape":"TestSetAgentPrompt",
          "documentation":"<p>The agent prompt for the agent turn in a test set.</p>"
        }
      },
      "documentation":"<p>The specification of an agent turn.</p>"
    },
    "AggregatedUtterancesFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"AggregatedUtterancesFilterName",
          "documentation":"<p>The name of the field to filter the utterance list.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The value to use for filtering the list of bots.</p>"
        },
        "operator":{
          "shape":"AggregatedUtterancesFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify <code>EQ</code> when the <code>ListAggregatedUtterances</code> operation should return only utterances that equal the specified value. Specify <code>CO</code> when the <code>ListAggregatedUtterances</code> operation should return utterances that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters responses returned by the <code>ListAggregatedUtterances</code> operation.</p>"
    },
    "AggregatedUtterancesFilterName":{
      "type":"string",
      "enum":["Utterance"]
    },
    "AggregatedUtterancesFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "AggregatedUtterancesFilters":{
      "type":"list",
      "member":{"shape":"AggregatedUtterancesFilter"},
      "max":1,
      "min":1
    },
    "AggregatedUtterancesSortAttribute":{
      "type":"string",
      "enum":[
        "HitCount",
        "MissedCount"
      ]
    },
    "AggregatedUtterancesSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"AggregatedUtterancesSortAttribute",
          "documentation":"<p>The utterance attribute to sort by.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort the aggregated utterances in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Specifies attributes for sorting a list of utterances.</p>"
    },
    "AggregatedUtterancesSummary":{
      "type":"structure",
      "members":{
        "utterance":{
          "shape":"Utterance",
          "documentation":"<p>The text of the utterance. If the utterance was used with the <code>RecognizeUtterance</code> operation, the text is the transcription of the audio utterance.</p>"
        },
        "hitCount":{
          "shape":"HitCount",
          "documentation":"<p>The number of times that the utterance was detected by Amazon Lex during the time period. When an utterance is detected, it activates an intent or a slot.</p>"
        },
        "missedCount":{
          "shape":"MissedCount",
          "documentation":"<p>The number of times that the utterance was missed by Amazon Lex An utterance is missed when it doesn't activate an intent or slot.</p>"
        },
        "utteranceFirstRecordedInAggregationDuration":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the utterance was first recorded in the time window for aggregation. An utterance may have been sent to Amazon Lex before that time, but only utterances within the time window are counted.</p>"
        },
        "utteranceLastRecordedInAggregationDuration":{
          "shape":"Timestamp",
          "documentation":"<p>The last date and time that an utterance was recorded in the time window for aggregation. An utterance may be sent to Amazon Lex after that time, but only utterances within the time window are counted.</p>"
        },
        "containsDataFromDeletedResources":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Aggregated utterance data may contain utterances from versions of your bot that have since been deleted. When the aggregated contains this kind of data, this field is set to true.</p>"
        }
      },
      "documentation":"<p>Provides summary information for aggregated utterances. The <code>ListAggregatedUtterances</code> operations combines all instances of the same utterance into a single aggregated summary.</p>"
    },
    "AggregatedUtterancesSummaryList":{
      "type":"list",
      "member":{"shape":"AggregatedUtterancesSummary"}
    },
    "AllowedInputTypes":{
      "type":"structure",
      "required":[
        "allowAudioInput",
        "allowDTMFInput"
      ],
      "members":{
        "allowAudioInput":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether audio input is allowed.</p>"
        },
        "allowDTMFInput":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether DTMF input is allowed.</p>"
        }
      },
      "documentation":"<p>Specifies the allowed input types.</p>"
    },
    "AmazonResourceName":{
      "type":"string",
      "max":1011,
      "min":1
    },
    "AnalyticsBinByList":{
      "type":"list",
      "member":{"shape":"AnalyticsBinBySpecification"},
      "max":1,
      "min":1
    },
    "AnalyticsBinByName":{
      "type":"string",
      "enum":[
        "ConversationStartTime",
        "UtteranceTimestamp"
      ]
    },
    "AnalyticsBinBySpecification":{
      "type":"structure",
      "required":[
        "name",
        "interval"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsBinByName",
          "documentation":"<p>Specifies the time metric by which to bin the analytics data.</p>"
        },
        "interval":{
          "shape":"AnalyticsInterval",
          "documentation":"<p>Specifies the interval of time by which to bin the analytics data.</p>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to bin the analytics data in ascending or descending order. If this field is left blank, the default order is by the key of the bin in descending order.</p>"
        }
      },
      "documentation":"<p>Contains the time metric, interval, and method by which to bin the analytics data.</p>"
    },
    "AnalyticsBinKey":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsBinByName",
          "documentation":"<p>The criterion by which to bin the results.</p>"
        },
        "value":{
          "shape":"AnalyticsBinValue",
          "documentation":"<p>The value of the criterion that defines the bin.</p>"
        }
      },
      "documentation":"<p>An object containing the criterion by which to bin the results and the value that defines that bin.</p>"
    },
    "AnalyticsBinKeys":{
      "type":"list",
      "member":{"shape":"AnalyticsBinKey"},
      "max":1,
      "min":1
    },
    "AnalyticsBinValue":{"type":"long"},
    "AnalyticsChannel":{
      "type":"string",
      "max":50,
      "min":1
    },
    "AnalyticsCommonFilterName":{
      "type":"string",
      "enum":[
        "BotAliasId",
        "BotVersion",
        "LocaleId",
        "Modality",
        "Channel"
      ]
    },
    "AnalyticsFilterOperator":{
      "type":"string",
      "enum":[
        "EQ",
        "GT",
        "LT"
      ]
    },
    "AnalyticsFilterValue":{"type":"string"},
    "AnalyticsFilterValues":{
      "type":"list",
      "member":{"shape":"AnalyticsFilterValue"},
      "max":5,
      "min":1
    },
    "AnalyticsGroupByValue":{"type":"string"},
    "AnalyticsIntentField":{
      "type":"string",
      "enum":[
        "IntentName",
        "IntentEndState",
        "IntentLevel"
      ]
    },
    "AnalyticsIntentFilter":{
      "type":"structure",
      "required":[
        "name",
        "operator",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsIntentFilterName",
          "documentation":"<p>The category by which to filter the intents. The descriptions for each option are as follows:</p> <ul> <li> <p> <code>BotAlias</code> – The name of the bot alias.</p> </li> <li> <p> <code>BotVersion</code> – The version of the bot.</p> </li> <li> <p> <code>LocaleId</code> – The locale of the bot.</p> </li> <li> <p> <code>Modality</code> – The modality of the session with the bot (audio, DTMF, or text).</p> </li> <li> <p> <code>Channel</code> – The channel that the bot is integrated with.</p> </li> <li> <p> <code>SessionId</code> – The identifier of the session with the bot.</p> </li> <li> <p> <code>OriginatingRequestId</code> – The identifier of the first request in a session.</p> </li> <li> <p> <code>IntentName</code> – The name of the intent.</p> </li> <li> <p> <code>IntentEndState</code> – The final state of the intent.</p> </li> </ul>"
        },
        "operator":{
          "shape":"AnalyticsFilterOperator",
          "documentation":"<p>The operation by which to filter the category. The following operations are possible:</p> <ul> <li> <p> <code>CO</code> – Contains</p> </li> <li> <p> <code>EQ</code> – Equals</p> </li> <li> <p> <code>GT</code> – Greater than</p> </li> <li> <p> <code>LT</code> – Less than</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>IntentName</code> – <code>EQ</code>, <code>CO</code>.</p> </li> <li> <p> <code>IntentEndState</code> – <code>EQ</code>, <code>CO</code>.</p> </li> </ul>"
        },
        "values":{
          "shape":"AnalyticsFilterValues",
          "documentation":"<p>An array containing the values of the category by which to apply the operator to filter the results. You can provide multiple values if the operator is <code>EQ</code> or <code>CO</code>. If you provide multiple values, you filter for results that equal/contain any of the values. For example, if the <code>name</code>, <code>operator</code>, and <code>values</code> fields are <code>Modality</code>, <code>EQ</code>, and <code>[Speech, Text]</code>, the operation filters for results where the modality was either <code>Speech</code> or <code>Text</code>.</p>"
        }
      },
      "documentation":"<p>Contains fields describing a condition by which to filter the intents. The expression may be understood as <code>name</code> <code>operator</code> <code>values</code>. For example:</p> <ul> <li> <p> <code>IntentName CO Book</code> – The intent name contains the string \"Book.\"</p> </li> <li> <p> <code>BotVersion EQ 2</code> – The bot version is equal to two.</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>IntentName</code> – <code>EQ</code>, <code>CO</code>.</p> </li> <li> <p> <code>IntentEndState</code> – <code>EQ</code>, <code>CO</code>.</p> </li> </ul>"
    },
    "AnalyticsIntentFilterName":{
      "type":"string",
      "enum":[
        "BotAliasId",
        "BotVersion",
        "LocaleId",
        "Modality",
        "Channel",
        "SessionId",
        "OriginatingRequestId",
        "IntentName",
        "IntentEndState"
      ]
    },
    "AnalyticsIntentFilters":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentFilter"},
      "max":9,
      "min":1
    },
    "AnalyticsIntentGroupByKey":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsIntentField",
          "documentation":"<p>A category by which the intent analytics were grouped.</p>"
        },
        "value":{
          "shape":"AnalyticsGroupByValue",
          "documentation":"<p>A member of the category by which the intent analytics were grouped.</p>"
        }
      },
      "documentation":"<p>Contains the category by which the intent analytics were grouped and a member of that category.</p>"
    },
    "AnalyticsIntentGroupByKeys":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentGroupByKey"}
    },
    "AnalyticsIntentGroupByList":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentGroupBySpecification"},
      "max":3,
      "min":1
    },
    "AnalyticsIntentGroupBySpecification":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AnalyticsIntentField",
          "documentation":"<p>Specifies whether to group the intent stages by their name or their end state.</p>"
        }
      },
      "documentation":"<p>Contains the category by which to group the intents.</p>"
    },
    "AnalyticsIntentMetric":{
      "type":"structure",
      "required":[
        "name",
        "statistic"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsIntentMetricName",
          "documentation":"<p>The metric for which you want to get intent summary statistics.</p> <ul> <li> <p> <code>Count</code> – The number of times the intent was invoked.</p> </li> <li> <p> <code>Success</code> – The number of times the intent succeeded.</p> </li> <li> <p> <code>Failure</code> – The number of times the intent failed.</p> </li> <li> <p> <code>Switched</code> – The number of times there was a switch to a different intent.</p> </li> <li> <p> <code>Dropped</code> – The number of times the user dropped the intent.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of intents in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Contains the metric and the summary statistic you want to calculate, and the order in which to sort the results, for the intents in the bot.</p>"
    },
    "AnalyticsIntentMetricName":{
      "type":"string",
      "enum":[
        "Count",
        "Success",
        "Failure",
        "Switched",
        "Dropped"
      ]
    },
    "AnalyticsIntentMetricResult":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsIntentMetricName",
          "documentation":"<p>The metric that you requested. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/analytics-key-definitions.html\">Key definitions</a> for more details about these metrics.</p> <ul> <li> <p> <code>Count</code> – The number of times the intent was invoked.</p> </li> <li> <p> <code>Success</code> – The number of times the intent succeeded.</p> </li> <li> <p> <code>Failure</code> – The number of times the intent failed.</p> </li> <li> <p> <code>Switched</code> – The number of times there was a switch to a different intent.</p> </li> <li> <p> <code>Dropped</code> – The number of times the user dropped the intent.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The statistic that you requested to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of intents in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "value":{
          "shape":"AnalyticsMetricValue",
          "documentation":"<p>The value of the summary statistic for the metric that you requested.</p>"
        }
      },
      "documentation":"<p>An object containing the results for the intent metric you requested.</p>"
    },
    "AnalyticsIntentMetricResults":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentMetricResult"}
    },
    "AnalyticsIntentMetrics":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentMetric"},
      "max":5,
      "min":1
    },
    "AnalyticsIntentNodeSummaries":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentNodeSummary"},
      "max":100,
      "min":1
    },
    "AnalyticsIntentNodeSummary":{
      "type":"structure",
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent at the end of the requested path.</p>"
        },
        "intentPath":{
          "shape":"AnalyticsPath",
          "documentation":"<p>The path.</p>"
        },
        "intentCount":{
          "shape":"AnalyticsNodeCount",
          "documentation":"<p>The total number of sessions that follow the given path to the given intent.</p>"
        },
        "intentLevel":{
          "shape":"AnalyticsNodeLevel",
          "documentation":"<p>The number of intents up to and including the requested path.</p>"
        },
        "nodeType":{
          "shape":"AnalyticsNodeType",
          "documentation":"<p>Specifies whether the node is the end of a path (<code>Exit</code>) or not (<code>Inner</code>).</p>"
        }
      },
      "documentation":"<p>An object containing information about the requested path.</p>"
    },
    "AnalyticsIntentResult":{
      "type":"structure",
      "members":{
        "binKeys":{
          "shape":"AnalyticsBinKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for binning results and the values of the bins.</p>"
        },
        "groupByKeys":{
          "shape":"AnalyticsIntentGroupByKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for grouping results and the values of the groups.</p>"
        },
        "metricsResults":{
          "shape":"AnalyticsIntentMetricResults",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        }
      },
      "documentation":"<p>An object containing the results for the intent metrics you requested and the bin and/or group(s) they refer to, if applicable.</p>"
    },
    "AnalyticsIntentResults":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentResult"}
    },
    "AnalyticsIntentStageField":{
      "type":"string",
      "enum":[
        "IntentStageName",
        "SwitchedToIntent"
      ]
    },
    "AnalyticsIntentStageFilter":{
      "type":"structure",
      "required":[
        "name",
        "operator",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsIntentStageFilterName",
          "documentation":"<p>The category by which to filter the intent stages. The descriptions for each option are as follows:</p> <ul> <li> <p> <code>BotAlias</code> – The name of the bot alias.</p> </li> <li> <p> <code>BotVersion</code> – The version of the bot.</p> </li> <li> <p> <code>LocaleId</code> – The locale of the bot.</p> </li> <li> <p> <code>Modality</code> – The modality of the session with the bot (audio, DTMF, or text).</p> </li> <li> <p> <code>Channel</code> – The channel that the bot is integrated with.</p> </li> <li> <p> <code>SessionId</code> – The identifier of the session with the bot.</p> </li> <li> <p> <code>OriginatingRequestId</code> – The identifier of the first request in a session.</p> </li> <li> <p> <code>IntentName</code> – The name of the intent.</p> </li> <li> <p> <code>IntentStageName</code> – The stage in the intent.</p> </li> </ul>"
        },
        "operator":{
          "shape":"AnalyticsFilterOperator",
          "documentation":"<p>The operation by which to filter the category. The following operations are possible:</p> <ul> <li> <p> <code>CO</code> – Contains</p> </li> <li> <p> <code>EQ</code> – Equals</p> </li> <li> <p> <code>GT</code> – Greater than</p> </li> <li> <p> <code>LT</code> – Less than</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>IntentName</code> – <code>EQ</code>, <code>CO</code>.</p> </li> <li> <p> <code>IntentStageName</code> – <code>EQ</code>, <code>CO</code>.</p> </li> </ul>"
        },
        "values":{
          "shape":"AnalyticsFilterValues",
          "documentation":"<p>An array containing the values of the category by which to apply the operator to filter the results. You can provide multiple values if the operator is <code>EQ</code> or <code>CO</code>. If you provide multiple values, you filter for results that equal/contain any of the values. For example, if the <code>name</code>, <code>operator</code>, and <code>values</code> fields are <code>Modality</code>, <code>EQ</code>, and <code>[Speech, Text]</code>, the operation filters for results where the modality was either <code>Speech</code> or <code>Text</code>.</p>"
        }
      },
      "documentation":"<p>Contains fields describing a condition by which to filter the intent stages. The expression may be understood as <code>name</code> <code>operator</code> <code>values</code>. For example:</p> <ul> <li> <p> <code>IntentName CO Book</code> – The intent name contains the string \"Book.\"</p> </li> <li> <p> <code>BotVersion EQ 2</code> – The bot version is equal to two.</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>IntentName</code> – <code>EQ</code>, <code>CO</code>.</p> </li> <li> <p> <code>IntentStageName</code> – <code>EQ</code>, <code>CO</code>.</p> </li> </ul>"
    },
    "AnalyticsIntentStageFilterName":{
      "type":"string",
      "enum":[
        "BotAliasId",
        "BotVersion",
        "LocaleId",
        "Modality",
        "Channel",
        "SessionId",
        "OriginatingRequestId",
        "IntentName",
        "IntentStageName"
      ]
    },
    "AnalyticsIntentStageFilters":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentStageFilter"},
      "max":9,
      "min":1
    },
    "AnalyticsIntentStageGroupByKey":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsIntentStageField",
          "documentation":"<p>A category by which the intent stage analytics were grouped.</p>"
        },
        "value":{
          "shape":"AnalyticsGroupByValue",
          "documentation":"<p>A member of the category by which the intent stage analytics were grouped.</p>"
        }
      },
      "documentation":"<p>Contains the category by which the intent stage analytics and the values for that category were grouped.</p>"
    },
    "AnalyticsIntentStageGroupByKeys":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentStageGroupByKey"}
    },
    "AnalyticsIntentStageGroupByList":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentStageGroupBySpecification"},
      "max":2,
      "min":1
    },
    "AnalyticsIntentStageGroupBySpecification":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AnalyticsIntentStageField",
          "documentation":"<p>Specifies whether to group the intent stages by their name or the intent to which the session was switched.</p>"
        }
      },
      "documentation":"<p>Contains the category by which to group the intent stages.</p>"
    },
    "AnalyticsIntentStageMetric":{
      "type":"structure",
      "required":[
        "name",
        "statistic"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsIntentStageMetricName",
          "documentation":"<p>The metric for which you want to get intent stage summary statistics. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/analytics-key-definitions.html\">Key definitions</a> for more details about these metrics.</p> <ul> <li> <p> <code>Count</code> – The number of times the intent stage occurred.</p> </li> <li> <p> <code>Success</code> – The number of times the intent stage succeeded.</p> </li> <li> <p> <code>Failure</code> – The number of times the intent stage failed.</p> </li> <li> <p> <code>Dropped</code> – The number of times the user dropped the intent stage.</p> </li> <li> <p> <code>Retry</code> – The number of times the bot tried to elicit a response from the user at this stage.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of intent stages in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order of the summary statistic (<code>value</code> in the response).</p>"
        }
      },
      "documentation":"<p>Contains the metric and the summary statistic you want to calculate, and the order in which to sort the results, for the intent stages across the user sessions with the bot.</p>"
    },
    "AnalyticsIntentStageMetricName":{
      "type":"string",
      "enum":[
        "Count",
        "Success",
        "Failed",
        "Dropped",
        "Retry"
      ]
    },
    "AnalyticsIntentStageMetricResult":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsIntentStageMetricName",
          "documentation":"<p>The metric that you requested.</p> <ul> <li> <p> <code>Count</code> – The number of times the intent stage occurred.</p> </li> <li> <p> <code>Success</code> – The number of times the intent stage succeeded.</p> </li> <li> <p> <code>Failure</code> – The number of times the intent stage failed.</p> </li> <li> <p> <code>Dropped</code> – The number of times the user dropped the intent stage.</p> </li> <li> <p> <code>Retry</code> – The number of times the bot tried to elicit a response from the user at this stage.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic that you requested to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of intent stages in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "value":{
          "shape":"AnalyticsMetricValue",
          "documentation":"<p>The value of the summary statistic for the metric that you requested.</p>"
        }
      },
      "documentation":"<p>An object containing the results for an intent stage metric you requested.</p>"
    },
    "AnalyticsIntentStageMetricResults":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentStageMetricResult"}
    },
    "AnalyticsIntentStageMetrics":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentStageMetric"},
      "max":5,
      "min":1
    },
    "AnalyticsIntentStageResult":{
      "type":"structure",
      "members":{
        "binKeys":{
          "shape":"AnalyticsBinKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for binning results and the values of the bins.</p>"
        },
        "groupByKeys":{
          "shape":"AnalyticsIntentStageGroupByKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for grouping results and the values of the bins.</p>"
        },
        "metricsResults":{
          "shape":"AnalyticsIntentStageMetricResults",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        }
      },
      "documentation":"<p>An object containing the results for the intent stage metrics you requested and the bin and/or group they refer to, if applicable.</p>"
    },
    "AnalyticsIntentStageResults":{
      "type":"list",
      "member":{"shape":"AnalyticsIntentStageResult"}
    },
    "AnalyticsInterval":{
      "type":"string",
      "enum":[
        "OneHour",
        "OneDay"
      ]
    },
    "AnalyticsLongValue":{"type":"long"},
    "AnalyticsMetricStatistic":{
      "type":"string",
      "enum":[
        "Sum",
        "Avg",
        "Max"
      ]
    },
    "AnalyticsMetricValue":{"type":"double"},
    "AnalyticsModality":{
      "type":"string",
      "enum":[
        "Speech",
        "Text",
        "DTMF",
        "MultiMode"
      ]
    },
    "AnalyticsNodeCount":{"type":"integer"},
    "AnalyticsNodeLevel":{
      "type":"integer",
      "max":100,
      "min":0
    },
    "AnalyticsNodeType":{
      "type":"string",
      "enum":[
        "Inner",
        "Exit"
      ]
    },
    "AnalyticsOriginatingRequestId":{"type":"string"},
    "AnalyticsPath":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "AnalyticsPathFilter":{
      "type":"structure",
      "required":[
        "name",
        "operator",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsCommonFilterName",
          "documentation":"<p>The category by which to filter the intent paths. The descriptions for each option are as follows:</p> <ul> <li> <p> <code>BotAlias</code> – The name of the bot alias.</p> </li> <li> <p> <code>BotVersion</code> – The version of the bot.</p> </li> <li> <p> <code>LocaleId</code> – The locale of the bot.</p> </li> <li> <p> <code>Modality</code> – The modality of the session with the bot (audio, DTMF, or text).</p> </li> <li> <p> <code>Channel</code> – The channel that the bot is integrated with.</p> </li> </ul>"
        },
        "operator":{
          "shape":"AnalyticsFilterOperator",
          "documentation":"<p>The operation by which to filter the category. The following operations are possible:</p> <ul> <li> <p> <code>CO</code> – Contains</p> </li> <li> <p> <code>EQ</code> – Equals</p> </li> <li> <p> <code>GT</code> – Greater than</p> </li> <li> <p> <code>LT</code> – Less than</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> </ul>"
        },
        "values":{
          "shape":"AnalyticsFilterValues",
          "documentation":"<p>An array containing the values of the category by which to apply the operator to filter the results. You can provide multiple values if the operator is <code>EQ</code> or <code>CO</code>. If you provide multiple values, you filter for results that equal/contain any of the values. For example, if the <code>name</code>, <code>operator</code>, and <code>values</code> fields are <code>Modality</code>, <code>EQ</code>, and <code>[Speech, Text]</code>, the operation filters for results where the modality was either <code>Speech</code> or <code>Text</code>.</p>"
        }
      },
      "documentation":"<p>Contains fields describing a condition by which to filter the paths. The expression may be understood as <code>name</code> <code>operator</code> <code>values</code>. For example:</p> <ul> <li> <p> <code>LocaleId EQ en</code> – The locale is \"en\".</p> </li> <li> <p> <code>BotVersion EQ 2</code> – The bot version is equal to two.</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> </ul>"
    },
    "AnalyticsPathFilters":{
      "type":"list",
      "member":{"shape":"AnalyticsPathFilter"},
      "max":5,
      "min":1
    },
    "AnalyticsSessionField":{
      "type":"string",
      "enum":[
        "ConversationEndState",
        "LocaleId"
      ]
    },
    "AnalyticsSessionFilter":{
      "type":"structure",
      "required":[
        "name",
        "operator",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsSessionFilterName",
          "documentation":"<p>The category by which to filter the sessions. The descriptions for each option are as follows:</p> <ul> <li> <p> <code>BotAlias</code> – The name of the bot alias.</p> </li> <li> <p> <code>BotVersion</code> – The version of the bot.</p> </li> <li> <p> <code>LocaleId</code> – The locale of the bot.</p> </li> <li> <p> <code>Modality</code> – The modality of the session with the bot (audio, DTMF, or text).</p> </li> <li> <p> <code>Channel</code> – The channel that the bot is integrated with.</p> </li> <li> <p> <code>Duration</code> – The duration of the session.</p> </li> <li> <p> <code>conversationEndState</code> – The final state of the session.</p> </li> <li> <p> <code>SessionId</code> – The identifier of the session with the bot.</p> </li> <li> <p> <code>OriginatingRequestId</code> – The identifier of the first request in a session.</p> </li> <li> <p> <code>IntentPath</code> – The order of intents taken in a session.</p> </li> </ul>"
        },
        "operator":{
          "shape":"AnalyticsFilterOperator",
          "documentation":"<p>The operation by which to filter the category. The following operations are possible:</p> <ul> <li> <p> <code>CO</code> – Contains</p> </li> <li> <p> <code>EQ</code> – Equals</p> </li> <li> <p> <code>GT</code> – Greater than</p> </li> <li> <p> <code>LT</code> – Less than</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Duration</code> – <code>EQ</code>, <code>GT</code>, <code>LT</code>.</p> </li> <li> <p> <code>conversationEndState</code> – <code>EQ</code>, <code>CO</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>IntentPath</code> – <code>EQ</code>.</p> </li> </ul>"
        },
        "values":{
          "shape":"AnalyticsFilterValues",
          "documentation":"<p>An array containing the values of the category by which to apply the operator to filter the results. You can provide multiple values if the operator is <code>EQ</code> or <code>CO</code>. If you provide multiple values, you filter for results that equal/contain any of the values. For example, if the <code>name</code>, <code>operator</code>, and <code>values</code> fields are <code>Modality</code>, <code>EQ</code>, and <code>[Speech, Text]</code>, the operation filters for results where the modality was either <code>Speech</code> or <code>Text</code>.</p>"
        }
      },
      "documentation":"<p>Contains fields describing a condition by which to filter the sessions. The expression may be understood as <code>name</code> <code>operator</code> <code>values</code>. For example:</p> <ul> <li> <p> <code>LocaleId EQ en</code> – The locale is \"en\".</p> </li> <li> <p> <code>Duration GT 200</code> – The duration is greater than 200 seconds.</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Duration</code> – <code>EQ</code>, <code>GT</code>, <code>LT</code>.</p> </li> <li> <p> <code>conversationEndState</code> – <code>EQ</code>, <code>CO</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>IntentPath</code> – <code>EQ</code>.</p> </li> </ul>"
    },
    "AnalyticsSessionFilterName":{
      "type":"string",
      "enum":[
        "BotAliasId",
        "BotVersion",
        "LocaleId",
        "Modality",
        "Channel",
        "Duration",
        "ConversationEndState",
        "SessionId",
        "OriginatingRequestId",
        "IntentPath"
      ]
    },
    "AnalyticsSessionFilters":{
      "type":"list",
      "member":{"shape":"AnalyticsSessionFilter"},
      "max":10,
      "min":1
    },
    "AnalyticsSessionGroupByKey":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsSessionField",
          "documentation":"<p>The category by which the session analytics were grouped.</p>"
        },
        "value":{
          "shape":"AnalyticsGroupByValue",
          "documentation":"<p>A member of the category by which the session analytics were grouped.</p>"
        }
      },
      "documentation":"<p>Contains the category by which the session analytics were grouped and a member of that category.</p>"
    },
    "AnalyticsSessionGroupByKeys":{
      "type":"list",
      "member":{"shape":"AnalyticsSessionGroupByKey"}
    },
    "AnalyticsSessionGroupByList":{
      "type":"list",
      "member":{"shape":"AnalyticsSessionGroupBySpecification"},
      "max":2,
      "min":1
    },
    "AnalyticsSessionGroupBySpecification":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AnalyticsSessionField",
          "documentation":"<p>Specifies whether to group the session by their end state or their locale.</p>"
        }
      },
      "documentation":"<p>Contains the category by which to group the sessions.</p>"
    },
    "AnalyticsSessionId":{
      "type":"string",
      "pattern":"[0-9a-zA-Z._:-]"
    },
    "AnalyticsSessionMetric":{
      "type":"structure",
      "required":[
        "name",
        "statistic"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsSessionMetricName",
          "documentation":"<p>The metric for which you want to get session summary statistics.</p> <ul> <li> <p> <code>Count</code> – The number of sessions.</p> </li> <li> <p> <code>Success</code> – The number of sessions that succeeded.</p> </li> <li> <p> <code>Failure</code> – The number of sessions that failed.</p> </li> <li> <p> <code>Dropped</code> – The number of sessions that the user dropped.</p> </li> <li> <p> <code>Duration</code> – The duration of sessions.</p> </li> <li> <p> <code>TurnsPerSession</code> – The number of turns in the sessions.</p> </li> <li> <p> <code>Concurrency</code> – The number of sessions occurring in the same period of time.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of sessions in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Contains the metric and the summary statistic you want to calculate, and the order in which to sort the results, for the user sessions with the bot.</p>"
    },
    "AnalyticsSessionMetricName":{
      "type":"string",
      "enum":[
        "Count",
        "Success",
        "Failure",
        "Dropped",
        "Duration",
        "TurnsPerConversation",
        "Concurrency"
      ]
    },
    "AnalyticsSessionMetricResult":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsSessionMetricName",
          "documentation":"<p>The metric that you requested.</p> <ul> <li> <p> <code>Count</code> – The number of sessions.</p> </li> <li> <p> <code>Success</code> – The number of sessions that succeeded.</p> </li> <li> <p> <code>Failure</code> – The number of sessions that failed.</p> </li> <li> <p> <code>Dropped</code> – The number of sessions that the user dropped.</p> </li> <li> <p> <code>Duration</code> – The duration of sessions.</p> </li> <li> <p> <code>TurnPersession</code> – The number of turns in the sessions.</p> </li> <li> <p> <code>Concurrency</code> – The number of sessions occurring in the same period of time.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic that you requested to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of sessions in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "value":{
          "shape":"AnalyticsMetricValue",
          "documentation":"<p>The value of the summary statistic for the metric that you requested.</p>"
        }
      },
      "documentation":"<p>An object containing the results for a session metric you requested.</p>"
    },
    "AnalyticsSessionMetricResults":{
      "type":"list",
      "member":{"shape":"AnalyticsSessionMetricResult"}
    },
    "AnalyticsSessionMetrics":{
      "type":"list",
      "member":{"shape":"AnalyticsSessionMetric"},
      "max":7,
      "min":1
    },
    "AnalyticsSessionResult":{
      "type":"structure",
      "members":{
        "binKeys":{
          "shape":"AnalyticsBinKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for binning results and the values of the bins.</p>"
        },
        "groupByKeys":{
          "shape":"AnalyticsSessionGroupByKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for grouping results and the values of the bins.</p>"
        },
        "metricsResults":{
          "shape":"AnalyticsSessionMetricResults",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        }
      },
      "documentation":"<p>An object containing the results for the session metrics you requested and the bin and/or group(s) they refer to, if applicable.</p>"
    },
    "AnalyticsSessionResults":{
      "type":"list",
      "member":{"shape":"AnalyticsSessionResult"}
    },
    "AnalyticsSessionSortByName":{
      "type":"string",
      "enum":[
        "ConversationStartTime",
        "NumberOfTurns",
        "Duration"
      ]
    },
    "AnalyticsSortOrder":{
      "type":"string",
      "enum":[
        "Ascending",
        "Descending"
      ]
    },
    "AnalyticsUtteranceAttribute":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceAttributeName",
          "documentation":"<p>An attribute to return. The only available attribute is the intent that the bot mapped the utterance to.</p>"
        }
      },
      "documentation":"<p>An object that specifies the last used intent at the time of the utterance as an attribute to return.</p>"
    },
    "AnalyticsUtteranceAttributeName":{
      "type":"string",
      "enum":["LastUsedIntent"]
    },
    "AnalyticsUtteranceAttributeResult":{
      "type":"structure",
      "members":{
        "lastUsedIntent":{
          "shape":"Name",
          "documentation":"<p>The intent that the bot mapped the utterance to.</p>"
        }
      },
      "documentation":"<p>An object containing the intent that the bot mapped the utterance to.</p>"
    },
    "AnalyticsUtteranceAttributeResults":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceAttributeResult"}
    },
    "AnalyticsUtteranceAttributes":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceAttribute"},
      "max":1,
      "min":1
    },
    "AnalyticsUtteranceField":{
      "type":"string",
      "enum":[
        "UtteranceText",
        "UtteranceState"
      ]
    },
    "AnalyticsUtteranceFilter":{
      "type":"structure",
      "required":[
        "name",
        "operator",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceFilterName",
          "documentation":"<p>The category by which to filter the utterances. The descriptions for each option are as follows:</p> <ul> <li> <p> <code>BotAlias</code> – The name of the bot alias.</p> </li> <li> <p> <code>BotVersion</code> – The version of the bot.</p> </li> <li> <p> <code>LocaleId</code> – The locale of the bot.</p> </li> <li> <p> <code>Modality</code> – The modality of the session with the bot (audio, DTMF, or text).</p> </li> <li> <p> <code>Channel</code> – The channel that the bot is integrated with.</p> </li> <li> <p> <code>SessionId</code> – The identifier of the session with the bot.</p> </li> <li> <p> <code>OriginatingRequestId</code> – The identifier of the first request in a session.</p> </li> <li> <p> <code>UtteranceState</code> – The state of the utterance.</p> </li> <li> <p> <code>UtteranceText</code> – The text in the utterance.</p> </li> </ul>"
        },
        "operator":{
          "shape":"AnalyticsFilterOperator",
          "documentation":"<p>The operation by which to filter the category. The following operations are possible:</p> <ul> <li> <p> <code>CO</code> – Contains</p> </li> <li> <p> <code>EQ</code> – Equals</p> </li> <li> <p> <code>GT</code> – Greater than</p> </li> <li> <p> <code>LT</code> – Less than</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>UtteranceState</code> – <code>EQ</code>.</p> </li> <li> <p> <code>UtteranceText</code> – <code>EQ</code>, <code>CO</code>.</p> </li> </ul>"
        },
        "values":{
          "shape":"AnalyticsFilterValues",
          "documentation":"<p>An array containing the values of the category by which to apply the operator to filter the results. You can provide multiple values if the operator is <code>EQ</code> or <code>CO</code>. If you provide multiple values, you filter for results that equal/contain any of the values. For example, if the <code>name</code>, <code>operator</code>, and <code>values</code> fields are <code>Modality</code>, <code>EQ</code>, and <code>[Speech, Text]</code>, the operation filters for results where the modality was either <code>Speech</code> or <code>Text</code>.</p>"
        }
      },
      "documentation":"<p>Contains fields describing a condition by which to filter the utterances. The expression may be understood as <code>name</code> <code>operator</code> <code>values</code>. For example:</p> <ul> <li> <p> <code>LocaleId EQ Book</code> – The locale is the string \"en\".</p> </li> <li> <p> <code>UtteranceText CO help</code> – The text of the utterance contains the string \"help\".</p> </li> </ul> <p>The operators that each filter supports are listed below:</p> <ul> <li> <p> <code>BotAlias</code> – <code>EQ</code>.</p> </li> <li> <p> <code>BotVersion</code> – <code>EQ</code>.</p> </li> <li> <p> <code>LocaleId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Modality</code> – <code>EQ</code>.</p> </li> <li> <p> <code>Channel</code> – <code>EQ</code>.</p> </li> <li> <p> <code>SessionId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>OriginatingRequestId</code> – <code>EQ</code>.</p> </li> <li> <p> <code>UtteranceState</code> – <code>EQ</code>.</p> </li> <li> <p> <code>UtteranceText</code> – <code>EQ</code>, <code>CO</code>.</p> </li> </ul>"
    },
    "AnalyticsUtteranceFilterName":{
      "type":"string",
      "enum":[
        "BotAliasId",
        "BotVersion",
        "LocaleId",
        "Modality",
        "Channel",
        "SessionId",
        "OriginatingRequestId",
        "UtteranceState",
        "UtteranceText"
      ]
    },
    "AnalyticsUtteranceFilters":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceFilter"},
      "max":9,
      "min":1
    },
    "AnalyticsUtteranceGroupByKey":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceField",
          "documentation":"<p>The category by which the utterance analytics were grouped.</p>"
        },
        "value":{
          "shape":"AnalyticsGroupByValue",
          "documentation":"<p>A member of the category by which the utterance analytics were grouped.</p>"
        }
      },
      "documentation":"<p>Contains the category by which the utterance analytics were grouped and the values for that category.</p>"
    },
    "AnalyticsUtteranceGroupByKeys":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceGroupByKey"}
    },
    "AnalyticsUtteranceGroupByList":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceGroupBySpecification"},
      "max":2,
      "min":1
    },
    "AnalyticsUtteranceGroupBySpecification":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceField",
          "documentation":"<p>Specifies whether to group the utterances by their text or their state.</p>"
        }
      },
      "documentation":"<p>Contains the category by which to group the utterances.</p>"
    },
    "AnalyticsUtteranceMetric":{
      "type":"structure",
      "required":[
        "name",
        "statistic"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceMetricName",
          "documentation":"<p>The metric for which you want to get utterance summary statistics.</p> <ul> <li> <p> <code>Count</code> – The number of utterances.</p> </li> <li> <p> <code>Missed</code> – The number of utterances that Amazon Lex failed to recognize.</p> </li> <li> <p> <code>Detected</code> – The number of utterances that Amazon Lex managed to detect.</p> </li> <li> <p> <code>UtteranceTimestamp</code> – The date and time of the utterance.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of utterances in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Contains the metric and the summary statistic you want to calculate, and the order in which to sort the results, for the utterances across the user sessions with the bot.</p>"
    },
    "AnalyticsUtteranceMetricName":{
      "type":"string",
      "enum":[
        "Count",
        "Missed",
        "Detected",
        "UtteranceTimestamp"
      ]
    },
    "AnalyticsUtteranceMetricResult":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceMetricName",
          "documentation":"<p>The metric that you requested.</p> <ul> <li> <p> <code>Count</code> – The number of utterances.</p> </li> <li> <p> <code>Missed</code> – The number of utterances that Amazon Lex failed to recognize.</p> </li> <li> <p> <code>Detected</code> – The number of utterances that Amazon Lex managed to detect.</p> </li> <li> <p> <code>UtteranceTimestamp</code> – The date and time of the utterance.</p> </li> </ul>"
        },
        "statistic":{
          "shape":"AnalyticsMetricStatistic",
          "documentation":"<p>The summary statistic that you requested to calculate.</p> <ul> <li> <p> <code>Sum</code> – The total count for the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Average</code> – The total count divided by the number of utterances in the category you provide in <code>name</code>.</p> </li> <li> <p> <code>Max</code> – The highest count in the category you provide in <code>name</code>.</p> </li> </ul>"
        },
        "value":{
          "shape":"AnalyticsMetricValue",
          "documentation":"<p>The value of the summary statistic for the metric that you requested.</p>"
        }
      },
      "documentation":"<p>An object containing the results for the utterance metric you requested.</p>"
    },
    "AnalyticsUtteranceMetricResults":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceMetricResult"}
    },
    "AnalyticsUtteranceMetrics":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceMetric"},
      "max":4,
      "min":1
    },
    "AnalyticsUtteranceResult":{
      "type":"structure",
      "members":{
        "binKeys":{
          "shape":"AnalyticsBinKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for binning results and the values of the bins.</p>"
        },
        "groupByKeys":{
          "shape":"AnalyticsUtteranceGroupByKeys",
          "documentation":"<p>A list of objects containing the criteria you requested for grouping results and the values of the bins.</p>"
        },
        "metricsResults":{
          "shape":"AnalyticsUtteranceMetricResults",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        },
        "attributeResults":{
          "shape":"AnalyticsUtteranceAttributeResults",
          "documentation":"<p>A list of objects containing information about the last used intent at the time of an utterance.</p>"
        }
      },
      "documentation":"<p>An object containing the results for the utterance metrics you requested and the bin and/or group(s) they refer to, if applicable.</p>"
    },
    "AnalyticsUtteranceResults":{
      "type":"list",
      "member":{"shape":"AnalyticsUtteranceResult"}
    },
    "AnalyticsUtteranceSortByName":{
      "type":"string",
      "enum":["UtteranceTimestamp"]
    },
    "AnswerField":{"type":"string"},
    "AssociatedTranscript":{
      "type":"structure",
      "members":{
        "transcript":{
          "shape":"Transcript",
          "documentation":"<p>The content of the transcript that meets the search filter criteria. For the JSON format of the transcript, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/designing-output-format.html\">Output transcript format</a>.</p>"
        }
      },
      "documentation":"<p>The object containing information that associates the recommended intent/slot type with a conversation.</p>"
    },
    "AssociatedTranscriptFilter":{
      "type":"structure",
      "required":[
        "name",
        "values"
      ],
      "members":{
        "name":{
          "shape":"AssociatedTranscriptFilterName",
          "documentation":"<p>The name of the field to use for filtering. The allowed names are IntentId and SlotTypeId.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The values to use to filter the transcript.</p>"
        }
      },
      "documentation":"<p>Filters to search for the associated transcript.</p>"
    },
    "AssociatedTranscriptFilterName":{
      "type":"string",
      "enum":[
        "IntentId",
        "SlotTypeId"
      ]
    },
    "AssociatedTranscriptFilters":{
      "type":"list",
      "member":{"shape":"AssociatedTranscriptFilter"},
      "max":1,
      "min":1
    },
    "AssociatedTranscriptList":{
      "type":"list",
      "member":{"shape":"AssociatedTranscript"}
    },
    "AttachmentTitle":{
      "type":"string",
      "max":250,
      "min":1
    },
    "AttachmentUrl":{
      "type":"string",
      "max":250,
      "min":1
    },
    "AudioAndDTMFInputSpecification":{
      "type":"structure",
      "required":["startTimeoutMs"],
      "members":{
        "startTimeoutMs":{
          "shape":"TimeInMilliSeconds",
          "documentation":"<p>Time for which a bot waits before assuming that the customer isn't going to speak or press a key. This timeout is shared between Audio and DTMF inputs.</p>"
        },
        "audioSpecification":{
          "shape":"AudioSpecification",
          "documentation":"<p>Specifies the settings on audio input.</p>"
        },
        "dtmfSpecification":{
          "shape":"DTMFSpecification",
          "documentation":"<p>Specifies the settings on DTMF input.</p>"
        }
      },
      "documentation":"<p>Specifies the audio and DTMF input specification.</p>"
    },
    "AudioFileS3Location":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"^s3://([a-z0-9\\\\.-]+)/(.+)$"
    },
    "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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBot.html\">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"},
        "selectiveLoggingEnabled":{
          "shape":"BoxedBoolean",
          "documentation":"<p>The option to enable selective conversation log capture for audio.</p>"
        }
      },
      "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
    },
    "AudioRecognitionStrategy":{
      "type":"string",
      "enum":["UseSlotValuesAsCustomVocabulary"]
    },
    "AudioSpecification":{
      "type":"structure",
      "required":[
        "maxLengthMs",
        "endTimeoutMs"
      ],
      "members":{
        "maxLengthMs":{
          "shape":"TimeInMilliSeconds",
          "documentation":"<p>Time for how long Amazon Lex waits before speech input is truncated and the speech is returned to application.</p>"
        },
        "endTimeoutMs":{
          "shape":"TimeInMilliSeconds",
          "documentation":"<p>Time for which a bot waits after the customer stops speaking to assume the utterance is finished.</p>"
        }
      },
      "documentation":"<p>Specifies the audio input specifications.</p>"
    },
    "BatchCreateCustomVocabularyItemRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "customVocabularyItemList"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\"> Supported Languages </a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "customVocabularyItemList":{
          "shape":"CreateCustomVocabularyItemsList",
          "documentation":"<p>A list of new custom vocabulary items. Each entry must contain a phrase and can optionally contain a displayAs and/or a weight.</p>"
        }
      }
    },
    "BatchCreateCustomVocabularyItemResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\"> Supported Languages </a>.</p>"
        },
        "errors":{
          "shape":"FailedCustomVocabularyItems",
          "documentation":"<p>A list of custom vocabulary items that failed to create during the operation. The reason for the error is contained within each error object.</p>"
        },
        "resources":{
          "shape":"CustomVocabularyItems",
          "documentation":"<p>A list of custom vocabulary items that were successfully created during the operation.</p>"
        }
      }
    },
    "BatchDeleteCustomVocabularyItemRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "customVocabularyItemList"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\"> Supported Languages </a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "customVocabularyItemList":{
          "shape":"DeleteCustomVocabularyItemsList",
          "documentation":"<p>A list of custom vocabulary items requested to be deleted. Each entry must contain the unique custom vocabulary entry identifier.</p>"
        }
      }
    },
    "BatchDeleteCustomVocabularyItemResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).</p>"
        },
        "errors":{
          "shape":"FailedCustomVocabularyItems",
          "documentation":"<p>A list of custom vocabulary items that failed to delete during the operation. The reason for the error is contained within each error object.</p>"
        },
        "resources":{
          "shape":"CustomVocabularyItems",
          "documentation":"<p>A list of custom vocabulary items that were successfully deleted during the operation.</p>"
        }
      }
    },
    "BatchUpdateCustomVocabularyItemRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "customVocabularyItemList"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\"> Supported Languages </a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "customVocabularyItemList":{
          "shape":"UpdateCustomVocabularyItemsList",
          "documentation":"<p>A list of custom vocabulary items with updated fields. Each entry must contain a phrase and can optionally contain a displayAs and/or a weight.</p>"
        }
      }
    },
    "BatchUpdateCustomVocabularyItemResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\"> Supported Languages </a>.</p>"
        },
        "errors":{
          "shape":"FailedCustomVocabularyItems",
          "documentation":"<p>A list of custom vocabulary items that failed to update during the operation. The reason for the error is contained within each error object.</p>"
        },
        "resources":{
          "shape":"CustomVocabularyItems",
          "documentation":"<p>A list of custom vocabulary items that were successfully updated during the operation.</p>"
        }
      }
    },
    "BedrockKnowledgeBaseArn":{
      "type":"string",
      "max":200,
      "min":1,
      "pattern":"^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,40}:[0-9]{12}:knowledge-base\\/[A-Za-z0-9]{10}$|^[A-Za-z0-9]{10}$"
    },
    "BedrockKnowledgeStoreConfiguration":{
      "type":"structure",
      "required":["bedrockKnowledgeBaseArn"],
      "members":{
        "bedrockKnowledgeBaseArn":{
          "shape":"BedrockKnowledgeBaseArn",
          "documentation":"<p>The ARN of the knowledge base used.</p>"
        }
      },
      "documentation":"<p>Contains details about the configuration of a Amazon Bedrock knowledge base.</p>"
    },
    "BedrockModelArn":{
      "type":"string",
      "pattern":"^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model\\/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$"
    },
    "BedrockModelSpecification":{
      "type":"structure",
      "required":["modelArn"],
      "members":{
        "modelArn":{
          "shape":"BedrockModelArn",
          "documentation":"<p>The ARN of the foundation model used in descriptive bot building.</p>"
        }
      },
      "documentation":"<p>Contains information about the Amazon Bedrock model used to interpret the prompt used in descriptive bot building.</p>"
    },
    "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
    },
    "BotAliasName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^(\\bAmazonLexTestAlias\\b|[0-9a-zA-Z][_-]?)+$"
    },
    "BotAliasReplicaSummary":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The bot alias ID for all the alias bot replications.</p>"
        },
        "botAliasReplicationStatus":{
          "shape":"BotAliasReplicationStatus",
          "documentation":"<p>The replication statuses for all the alias bot replications.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The bot version for all the alias bot replications.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation time and date for all the alias bot replications.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The last time and date updated for all the alias bot replications.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>The reasons for failure for the aliases bot replications.</p>"
        }
      },
      "documentation":"<p>Contains information about all the aliases replication statuses applicable for global resiliency.</p>"
    },
    "BotAliasReplicaSummaryList":{
      "type":"list",
      "member":{"shape":"BotAliasReplicaSummary"}
    },
    "BotAliasReplicationStatus":{
      "type":"string",
      "documentation":"<p>The status of the operation to replicate the bot alias. Values: Creating, Updating, Available, Deleting, Failed.</p>",
      "enum":[
        "Creating",
        "Updating",
        "Available",
        "Deleting",
        "Failed"
      ]
    },
    "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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeBotAlias.html\">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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBotAliases.html\">ListBotAliases</a> operation.</p>"
    },
    "BotAliasSummaryList":{
      "type":"list",
      "member":{"shape":"BotAliasSummary"}
    },
    "BotAliasTestExecutionTarget":{
      "type":"structure",
      "required":[
        "botId",
        "botAliasId",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The bot Id of the bot alias used in the test set execution.</p>"
        },
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The bot alias Id of the bot alias used in the test set execution.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale Id of the bot alias used in the test set execution.</p>"
        }
      },
      "documentation":"<p>The target Amazon S3 location for the test set execution using a bot alias.</p>"
    },
    "BotExportSpecification":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot assigned by Amazon Lex.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that was exported. This will be either <code>DRAFT</code> or the version number.</p>"
        }
      },
      "documentation":"<p>Provides the identity of a the bot that was exported.</p>"
    },
    "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",
        "BotType"
      ]
    },
    "BotFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ",
        "NE"
      ]
    },
    "BotFilters":{
      "type":"list",
      "member":{"shape":"BotFilter"},
      "max":2,
      "min":1
    },
    "BotImportSpecification":{
      "type":"structure",
      "required":[
        "botName",
        "roleArn",
        "dataPrivacy"
      ],
      "members":{
        "botName":{
          "shape":"Name",
          "documentation":"<p>The name that Amazon Lex should use for the bot.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the IAM role used to build and run the bot.</p>"
        },
        "dataPrivacy":{"shape":"DataPrivacy"},
        "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 import 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 import 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>"
        }
      },
      "documentation":"<p>Provides the bot parameters required for importing a bot.</p>"
    },
    "BotLocaleExportSpecification":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to create the locale for.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot to export.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale to export. The string must match one of the locales in the bot.</p>"
        }
      },
      "documentation":"<p>Provides the bot locale parameters required for exporting a bot locale.</p>"
    },
    "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"}
    },
    "BotLocaleImportSpecification":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to import the locale to.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot to import the locale to. This can only be the <code>DRAFT</code> version of the bot.</p>"
        },
        "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/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</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 <code>PostText</code> operation would be:</p> <ul> <li> <p> <code>AMAZON.FallbackIntent</code> </p> </li> <li> <p> <code>IntentA</code> </p> </li> <li> <p> <code>IntentB</code> </p> </li> <li> <p> <code>IntentC</code> </p> </li> </ul>"
        },
        "voiceSettings":{"shape":"VoiceSettings"}
      },
      "documentation":"<p>Provides the bot locale parameters required for importing a bot locale.</p>"
    },
    "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",
        "Importing",
        "Processing"
      ]
    },
    "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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBotLocales.html\">ListBotLocales</a> operation.</p>"
    },
    "BotLocaleSummaryList":{
      "type":"list",
      "member":{"shape":"BotLocaleSummary"}
    },
    "BotMember":{
      "type":"structure",
      "required":[
        "botMemberId",
        "botMemberName",
        "botMemberAliasId",
        "botMemberAliasName",
        "botMemberVersion"
      ],
      "members":{
        "botMemberId":{
          "shape":"Id",
          "documentation":"<p>The unique ID of a bot that is a member of this network of bots.</p>"
        },
        "botMemberName":{
          "shape":"Name",
          "documentation":"<p>The unique name of a bot that is a member of this network of bots.</p>"
        },
        "botMemberAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The alias ID of a bot that is a member of this network of bots.</p>"
        },
        "botMemberAliasName":{
          "shape":"BotAliasName",
          "documentation":"<p>The alias name of a bot that is a member of this network of bots.</p>"
        },
        "botMemberVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of a bot that is a member of this network of bots.</p>"
        }
      },
      "documentation":"<p>A bot that is a member of a network of bots.</p>"
    },
    "BotMembers":{
      "type":"list",
      "member":{"shape":"BotMember"},
      "max":10,
      "min":0
    },
    "BotRecommendationResultStatistics":{
      "type":"structure",
      "members":{
        "intents":{
          "shape":"IntentStatistics",
          "documentation":"<p>Statistical information about about the intents associated with the bot recommendation results.</p>"
        },
        "slotTypes":{
          "shape":"SlotTypeStatistics",
          "documentation":"<p>Statistical information about the slot types associated with the bot recommendation results.</p>"
        }
      },
      "documentation":"<p>A statistical summary of the bot recommendation results.</p>"
    },
    "BotRecommendationResults":{
      "type":"structure",
      "members":{
        "botLocaleExportUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>The presigned URL link of the recommended bot definition.</p>"
        },
        "associatedTranscriptsUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>The presigned url link of the associated transcript.</p>"
        },
        "statistics":{
          "shape":"BotRecommendationResultStatistics",
          "documentation":"<p>The statistical summary of the bot recommendation results.</p>"
        }
      },
      "documentation":"<p>The object representing the URL of the bot definition, the URL of the associated transcript, and a statistical summary of the bot recommendation results.</p>"
    },
    "BotRecommendationStatus":{
      "type":"string",
      "enum":[
        "Processing",
        "Deleting",
        "Deleted",
        "Downloading",
        "Updating",
        "Available",
        "Failed",
        "Stopping",
        "Stopped"
      ]
    },
    "BotRecommendationSummary":{
      "type":"structure",
      "required":[
        "botRecommendationStatus",
        "botRecommendationId"
      ],
      "members":{
        "botRecommendationStatus":{
          "shape":"BotRecommendationStatus",
          "documentation":"<p>The status of the bot recommendation.</p> <p>If the status is Failed, then the reasons for the failure are listed in the failureReasons field. </p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot recommendation to be updated.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot recommendation was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot recommendation was last updated.</p>"
        }
      },
      "documentation":"<p>A summary of the bot recommendation.</p>"
    },
    "BotRecommendationSummaryList":{
      "type":"list",
      "member":{"shape":"BotRecommendationSummary"}
    },
    "BotReplicaStatus":{
      "type":"string",
      "documentation":"<p>The status of the operation to replicate the bot. Values: Enabling, Enabled, Deleting, Failed.</p>",
      "enum":[
        "Enabling",
        "Enabled",
        "Deleting",
        "Failed"
      ]
    },
    "BotReplicaSummary":{
      "type":"structure",
      "members":{
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The replica region used in the replication statuses summary.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation time and date for the replicated bots.</p>"
        },
        "botReplicaStatus":{
          "shape":"BotReplicaStatus",
          "documentation":"<p>The operation status for the replicated bot applicable.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>The reasons for the failure for the replicated bot.</p>"
        }
      },
      "documentation":"<p>Contains summary information about all the replication statuses applicable for global resiliency.</p>"
    },
    "BotReplicaSummaryList":{
      "type":"list",
      "member":{"shape":"BotReplicaSummary"}
    },
    "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",
        "Importing",
        "Updating"
      ]
    },
    "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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeBot.html\">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>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of the bot.</p>"
        }
      },
      "documentation":"<p>Summary information about a bot returned by the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBots.html\">ListBots</a> operation.</p>"
    },
    "BotSummaryList":{
      "type":"list",
      "member":{"shape":"BotSummary"}
    },
    "BotType":{
      "type":"string",
      "enum":[
        "Bot",
        "BotNetwork"
      ]
    },
    "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
    },
    "BotVersionReplicaSortAttribute":{
      "type":"string",
      "enum":["BotVersion"]
    },
    "BotVersionReplicaSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"BotVersionReplicaSortAttribute",
          "documentation":"<p>The attribute of the sort category for the version replicated bots.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order of the sort category for the version replicated bots.</p>"
        }
      },
      "documentation":"<p>The sort category for the version replicated bots.</p>"
    },
    "BotVersionReplicaSummary":{
      "type":"structure",
      "members":{
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The bot version for the summary information for all the version replication statuses.</p>"
        },
        "botVersionReplicationStatus":{
          "shape":"BotVersionReplicationStatus",
          "documentation":"<p>The version replication status for all the replicated bots.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time of the replication status for all the replicated bots.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>The reasons for replication failure for all the replicated bots.</p>"
        }
      },
      "documentation":"<p>Contains summary information for all the version replication statuses applicable for Global resiliency.</p>"
    },
    "BotVersionReplicaSummaryList":{
      "type":"list",
      "member":{"shape":"BotVersionReplicaSummary"}
    },
    "BotVersionReplicationStatus":{
      "type":"string",
      "documentation":"<p>The status of the operation to replicate the bot version. Values: Creating, Available, Deleting, Failed.</p>",
      "enum":[
        "Creating",
        "Available",
        "Deleting",
        "Failed"
      ]
    },
    "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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBotVersions.html\">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 <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBot.html\">CreateBot</a> 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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        }
      }
    },
    "BuildtimeSettings":{
      "type":"structure",
      "members":{
        "descriptiveBotBuilder":{
          "shape":"DescriptiveBotBuilderSpecification",
          "documentation":"<p>An object containing specifications for the descriptive bot building feature.</p>"
        },
        "sampleUtteranceGeneration":{
          "shape":"SampleUtteranceGenerationSpecification",
          "documentation":"<p>Contains specifications for the sample utterance generation feature.</p>"
        }
      },
      "documentation":"<p>Contains specifications about the Amazon Lex build time generative AI capabilities from Amazon Bedrock that you can turn on for your bot.</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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBuiltInIntents.html\"> 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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListBuiltInSlotTypes.html\"> 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>"
    },
    "CompositeSlotTypeSetting":{
      "type":"structure",
      "members":{
        "subSlots":{
          "shape":"SubSlotTypeList",
          "documentation":"<p>Subslots in the composite slot.</p>"
        }
      },
      "documentation":"<p>A composite slot is a combination of two or more slots that capture multiple pieces of information in a single user input.</p>"
    },
    "Condition":{
      "type":"structure",
      "required":["expressionString"],
      "members":{
        "expressionString":{
          "shape":"ConditionExpression",
          "documentation":"<p>The expression string that is evaluated. </p>"
        }
      },
      "documentation":"<p>Provides an expression that evaluates to true or false. </p>"
    },
    "ConditionExpression":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "ConditionKey":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "ConditionKeyValueMap":{
      "type":"map",
      "key":{"shape":"ConditionKey"},
      "value":{"shape":"ConditionValue"},
      "max":10,
      "min":0
    },
    "ConditionMap":{
      "type":"map",
      "key":{"shape":"ConditionOperator"},
      "value":{"shape":"ConditionKeyValueMap"},
      "max":10,
      "min":0
    },
    "ConditionOperator":{
      "type":"string",
      "min":1
    },
    "ConditionValue":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "ConditionalBranch":{
      "type":"structure",
      "required":[
        "name",
        "condition",
        "nextStep"
      ],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the branch. </p>"
        },
        "condition":{
          "shape":"Condition",
          "documentation":"<p>Contains the expression to evaluate. If the condition is true, the branch's actions are taken.</p>"
        },
        "nextStep":{
          "shape":"DialogState",
          "documentation":"<p>The next step in the conversation.</p>"
        },
        "response":{"shape":"ResponseSpecification"}
      },
      "documentation":"<p>A set of actions that Amazon Lex should run if the condition is matched.</p>"
    },
    "ConditionalBranches":{
      "type":"list",
      "member":{"shape":"ConditionalBranch"},
      "max":4,
      "min":1
    },
    "ConditionalSpecification":{
      "type":"structure",
      "required":[
        "active",
        "conditionalBranches",
        "defaultBranch"
      ],
      "members":{
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Determines whether a conditional branch is active. When <code>active</code> is false, the conditions are not evaluated.</p>"
        },
        "conditionalBranches":{
          "shape":"ConditionalBranches",
          "documentation":"<p>A list of conditional branches. A conditional branch is made up of a condition, a response and a next step. The response and next step are executed when the condition is true.</p>"
        },
        "defaultBranch":{
          "shape":"DefaultConditionalBranch",
          "documentation":"<p>The conditional branch that should be followed when the conditions for other branches are not satisfied. A conditional branch is made up of a condition, a response and a next step.</p>"
        }
      },
      "documentation":"<p>Provides a list of conditional branches. Branches are evaluated in the order that they are entered in the list. The first branch with a condition that evaluates to true is executed. The last branch in the list is the default branch. The default branch should not have any condition expression. The default branch is executed if no other branch has a matching condition.</p>"
    },
    "ConfidenceThreshold":{
      "type":"double",
      "max":1,
      "min":0
    },
    "ConflictException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>The action that you tried to perform couldn't be completed because the resource is in a conflicting state. For example, deleting a bot that is in the CREATING state. Try your request again. </p>",
      "error":{"httpStatusCode":409},
      "exception":true
    },
    "ContextTimeToLiveInSeconds":{
      "type":"integer",
      "max":86400,
      "min":5
    },
    "ContextTurnsToLive":{
      "type":"integer",
      "max":20,
      "min":1
    },
    "ConversationEndState":{
      "type":"string",
      "enum":[
        "Success",
        "Failure",
        "Dropped"
      ]
    },
    "ConversationLevelIntentClassificationResultItem":{
      "type":"structure",
      "required":[
        "intentName",
        "matchResult"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The intent name used in the evaluation of intent level success or failure.</p>"
        },
        "matchResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The number of times the specific intent is used in the evaluation of intent level success or failure.</p>"
        }
      },
      "documentation":"<p>The item listing the evaluation of intent level success or failure.</p>"
    },
    "ConversationLevelIntentClassificationResults":{
      "type":"list",
      "member":{"shape":"ConversationLevelIntentClassificationResultItem"}
    },
    "ConversationLevelResultDetail":{
      "type":"structure",
      "required":["endToEndResult"],
      "members":{
        "endToEndResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The success or failure of the streaming of the conversation.</p>"
        },
        "speechTranscriptionResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The speech transcription success or failure details of the conversation.</p>"
        }
      },
      "documentation":"<p>The conversation level details of the conversation used in the test set.</p>"
    },
    "ConversationLevelSlotResolutionResultItem":{
      "type":"structure",
      "required":[
        "intentName",
        "slotName",
        "matchResult"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The intents used in the slots list for the slot resolution details.</p>"
        },
        "slotName":{
          "shape":"TestResultSlotName",
          "documentation":"<p>The slot name in the slots list for the slot resolution details.</p>"
        },
        "matchResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The number of matching slots used in the slots listings for the slot resolution evaluation.</p>"
        }
      },
      "documentation":"<p>The slots used for the slot resolution in the conversation.</p>"
    },
    "ConversationLevelSlotResolutionResults":{
      "type":"list",
      "member":{"shape":"ConversationLevelSlotResolutionResultItem"}
    },
    "ConversationLevelTestResultItem":{
      "type":"structure",
      "required":[
        "conversationId",
        "endToEndResult",
        "intentClassificationResults",
        "slotResolutionResults"
      ],
      "members":{
        "conversationId":{
          "shape":"TestSetConversationId",
          "documentation":"<p>The conversation Id of the test result evaluation item.</p>"
        },
        "endToEndResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The end-to-end success or failure of the test result evaluation item.</p>"
        },
        "speechTranscriptionResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The speech transcription success or failure of the test result evaluation item.</p>"
        },
        "intentClassificationResults":{
          "shape":"ConversationLevelIntentClassificationResults",
          "documentation":"<p>The intent classification of the test result evaluation item.</p>"
        },
        "slotResolutionResults":{
          "shape":"ConversationLevelSlotResolutionResults",
          "documentation":"<p>The slot success or failure of the test result evaluation item.</p>"
        }
      },
      "documentation":"<p>The test result evaluation item at the conversation level.</p>"
    },
    "ConversationLevelTestResultItemList":{
      "type":"list",
      "member":{"shape":"ConversationLevelTestResultItem"}
    },
    "ConversationLevelTestResults":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"ConversationLevelTestResultItemList",
          "documentation":"<p>The item list in the test set results data at the conversation level.</p>"
        }
      },
      "documentation":"<p>The test set results data at the conversation level.</p>"
    },
    "ConversationLevelTestResultsFilterBy":{
      "type":"structure",
      "members":{
        "endToEndResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>The selection of matched or mismatched end-to-end status to filter test set results data at the conversation level.</p>"
        }
      },
      "documentation":"<p>The selection to filter the test set results data at the conversation level.</p>"
    },
    "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>"
    },
    "ConversationLogsDataSource":{
      "type":"structure",
      "required":[
        "botId",
        "botAliasId",
        "localeId",
        "filter"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The bot Id from the conversation logs.</p>"
        },
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The bot alias Id from the conversation logs.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale Id of the conversation log.</p>"
        },
        "filter":{
          "shape":"ConversationLogsDataSourceFilterBy",
          "documentation":"<p>The filter for the data source of the conversation log.</p>"
        }
      },
      "documentation":"<p>The data source that uses conversation logs.</p>"
    },
    "ConversationLogsDataSourceFilterBy":{
      "type":"structure",
      "required":[
        "startTime",
        "endTime",
        "inputMode"
      ],
      "members":{
        "startTime":{
          "shape":"Timestamp",
          "documentation":"<p>The start time for the conversation log.</p>"
        },
        "endTime":{
          "shape":"Timestamp",
          "documentation":"<p>The end time for the conversation log.</p>"
        },
        "inputMode":{
          "shape":"ConversationLogsInputModeFilter",
          "documentation":"<p>The selection to filter by input mode for the conversation logs. </p>"
        }
      },
      "documentation":"<p>The selected data source to filter the conversation log.</p>"
    },
    "ConversationLogsInputModeFilter":{
      "type":"string",
      "enum":[
        "Speech",
        "Text"
      ]
    },
    "Count":{"type":"integer"},
    "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 <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateBotAlias.html\">UpdateBotAlias</a> 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/lexv2/latest/dg/how-languages.html\">Supported languages</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 <code>RecognizeText</code> 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>"
        },
        "generativeAISettings":{"shape":"GenerativeAISettings"}
      }
    },
    "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>"
        },
        "generativeAISettings":{"shape":"GenerativeAISettings"}
      }
    },
    "CreateBotReplicaRequest":{
      "type":"structure",
      "required":[
        "botId",
        "replicaRegion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The request for the unique bot ID of the source bot to be replicated in the secondary region.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The request for the secondary region that will be used in the replication of the source bot.</p>"
        }
      }
    },
    "CreateBotReplicaResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique bot ID of the replicated bot generated.</p>"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The region of the replicated bot generated.</p>"
        },
        "sourceRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The source region for the source bot used for the replicated bot generated.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time of the replicated bot generated.</p>"
        },
        "botReplicaStatus":{
          "shape":"BotReplicaStatus",
          "documentation":"<p>The operational status of the replicated bot generated.</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>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of a bot to create.</p>"
        },
        "botMembers":{
          "shape":"BotMembers",
          "documentation":"<p>The list of bot members in a network to be created.</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>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of a bot that was created.</p>"
        },
        "botMembers":{
          "shape":"BotMembers",
          "documentation":"<p>The list of bots in a network that was created.</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>"
        }
      }
    },
    "CreateCustomVocabularyItemsList":{
      "type":"list",
      "member":{"shape":"NewCustomVocabularyItem"},
      "max":10,
      "min":1
    },
    "CreateExportRequest":{
      "type":"structure",
      "required":[
        "resourceSpecification",
        "fileFormat"
      ],
      "members":{
        "resourceSpecification":{
          "shape":"ExportResourceSpecification",
          "documentation":"<p>Specifies the type of resource to export, either a bot or a bot locale. You can only specify one type of resource to export.</p>"
        },
        "fileFormat":{
          "shape":"ImportExportFileFormat",
          "documentation":"<p>The file format of the bot or bot locale definition files.</p>"
        },
        "filePassword":{
          "shape":"ImportExportFilePassword",
          "documentation":"<p>An password to use to encrypt the exported archive. Using a password is optional, but you should encrypt the archive to protect the data in transit between Amazon Lex and your local computer.</p>"
        }
      }
    },
    "CreateExportResponse":{
      "type":"structure",
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>An identifier for a specific request to create an export.</p>"
        },
        "resourceSpecification":{
          "shape":"ExportResourceSpecification",
          "documentation":"<p>A description of the type of resource that was exported, either a bot or a bot locale.</p>"
        },
        "fileFormat":{
          "shape":"ImportExportFileFormat",
          "documentation":"<p>The file format used for the bot or bot locale definition files.</p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The status of the export. When the status is <code>Completed</code>, you can use the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeExport.html\">DescribeExport</a> operation to get the pre-signed S3 URL link to your exported bot or bot locale.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the request to export a bot 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 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. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "initialResponseSetting":{
          "shape":"InitialResponseSetting",
          "documentation":"<p>Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.</p>"
        },
        "qnAIntentConfiguration":{
          "shape":"QnAIntentConfiguration",
          "documentation":"<p>Specifies the configuration of the built-in <code>Amazon.QnAIntent</code>. The <code>AMAZON.QnAIntent</code> intent is called when Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the <code>kendraConfiguration</code> field.</p>"
        }
      }
    },
    "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 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>"
        },
        "initialResponseSetting":{
          "shape":"InitialResponseSetting",
          "documentation":"<p>Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.</p>"
        },
        "qnAIntentConfiguration":{
          "shape":"QnAIntentConfiguration",
          "documentation":"<p>Details about the the configuration of the built-in <code>Amazon.QnAIntent</code>.</p>"
        }
      }
    },
    "CreateResourcePolicyRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "policy"
      ],
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "policy":{
          "shape":"Policy",
          "documentation":"<p>A resource policy to add to the resource. The policy is a JSON structure that contains one or more statements that define the policy. The policy must follow the IAM syntax. For more information about the contents of a JSON policy document, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html\"> IAM JSON policy reference </a>. </p> <p>If the policy isn't valid, Amazon Lex returns a validation exception.</p>"
        }
      }
    },
    "CreateResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy was attached to.</p>"
        },
        "revisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.</p>"
        }
      }
    },
    "CreateResourcePolicyStatementRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "statementId",
        "effect",
        "principal",
        "action"
      ],
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "statementId":{
          "shape":"Name",
          "documentation":"<p>The name of the statement. The ID is the same as the <code>Sid</code> IAM property. The statement name must be unique within the policy. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html\">IAM JSON policy elements: Sid</a>. </p>"
        },
        "effect":{
          "shape":"Effect",
          "documentation":"<p>Determines whether the statement allows or denies access to the resource.</p>"
        },
        "principal":{
          "shape":"PrincipalList",
          "documentation":"<p>An IAM principal, such as an IAM user, IAM role, or Amazon Web Services services that is allowed or denied access to a resource. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html\">Amazon Web Services JSON policy elements: Principal</a>.</p>"
        },
        "action":{
          "shape":"OperationList",
          "documentation":"<p>The Amazon Lex action that this policy either allows or denies. The action must apply to the resource type of the specified ARN. For more information, see <a href=\"https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlexv2.html\"> Actions, resources, and condition keys for Amazon Lex V2</a>.</p>"
        },
        "condition":{
          "shape":"ConditionMap",
          "documentation":"<p>Specifies a condition when the policy is in effect. If the principal of the policy is a service principal, you must provide two condition blocks, one with a SourceAccount global condition key and one with a SourceArn global condition key.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html\">IAM JSON policy elements: Condition </a>.</p>"
        },
        "expectedRevisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The identifier of the revision of the policy to edit. If this revision ID doesn't match the current revision ID, Amazon Lex throws an exception.</p> <p>If you don't specify a revision, Amazon Lex overwrites the contents of the policy with the new values.</p>",
          "location":"querystring",
          "locationName":"expectedRevisionId"
        }
      }
    },
    "CreateResourcePolicyStatementResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>"
        },
        "revisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.</p>"
        }
      }
    },
    "CreateSlotRequest":{
      "type":"structure",
      "required":[
        "slotName",
        "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/lexv2/latest/dg/how-languages.html\">Supported languages</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"
        },
        "multipleValuesSetting":{
          "shape":"MultipleValuesSetting",
          "documentation":"<p>Indicates whether the slot returns multiple values in one response. Multi-value slots are only available in the <code>en-US</code> locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>. </p> <p>If the <code>multipleValuesSetting</code> is not set, the default value is <code>false</code>.</p>"
        },
        "subSlotSetting":{
          "shape":"SubSlotSetting",
          "documentation":"<p>Specifications for the constituent sub slots and the expression for the composite slot.</p>"
        }
      }
    },
    "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>"
        },
        "multipleValuesSetting":{
          "shape":"MultipleValuesSetting",
          "documentation":"<p>Indicates whether the slot returns multiple values in one response.</p>"
        },
        "subSlotSetting":{
          "shape":"SubSlotSetting",
          "documentation":"<p>Specifications for the constituent sub slots and the expression for the composite slot.</p>"
        }
      }
    },
    "CreateSlotTypeRequest":{
      "type":"structure",
      "required":[
        "slotTypeName",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "slotTypeName":{
          "shape":"Name",
          "documentation":"<p>The name for the slot. A slot type name must be unique within the intent.</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>ORIGINAL_VALUE</code> - Returns the value entered by the user, if the user value is similar to the slot value.</p> </li> <li> <p> <code>TOP_RESOLUTION</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>ORIGINAL_VALUE</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/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "externalSourceSetting":{
          "shape":"ExternalSourceSetting",
          "documentation":"<p>Sets the type of external information used to create the slot type.</p>"
        },
        "compositeSlotTypeSetting":{
          "shape":"CompositeSlotTypeSetting",
          "documentation":"<p>Specifications for a composite slot type.</p>"
        }
      }
    },
    "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>"
        },
        "externalSourceSetting":{
          "shape":"ExternalSourceSetting",
          "documentation":"<p>The type of external information used to create the slot type.</p>"
        },
        "compositeSlotTypeSetting":{
          "shape":"CompositeSlotTypeSetting",
          "documentation":"<p>Specifications for a composite slot type.</p>"
        }
      }
    },
    "CreateTestSetDiscrepancyReportRequest":{
      "type":"structure",
      "required":[
        "testSetId",
        "target"
      ],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set discrepancy report.</p>",
          "location":"uri",
          "locationName":"testSetId"
        },
        "target":{
          "shape":"TestSetDiscrepancyReportResourceTarget",
          "documentation":"<p>The target bot for the test set discrepancy report.</p>"
        }
      }
    },
    "CreateTestSetDiscrepancyReportResponse":{
      "type":"structure",
      "members":{
        "testSetDiscrepancyReportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set discrepancy report to describe.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time for the test set discrepancy report.</p>"
        },
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set discrepancy report.</p>"
        },
        "target":{
          "shape":"TestSetDiscrepancyReportResourceTarget",
          "documentation":"<p>The target bot for the test set discrepancy report.</p>"
        }
      }
    },
    "CreateUploadUrlRequest":{
      "type":"structure",
      "members":{
      }
    },
    "CreateUploadUrlResponse":{
      "type":"structure",
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>An identifier for a unique import job. Use it when you call the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html\">StartImport</a> operation.</p>"
        },
        "uploadUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>A pre-signed S3 write URL. Upload the zip archive file that contains the definition of your bot or bot locale.</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
    },
    "CustomVocabularyEntryId":{
      "type":"structure",
      "required":["itemId"],
      "members":{
        "itemId":{
          "shape":"ItemId",
          "documentation":"<p>The unique item identifier for the custom vocabulary items.</p>"
        }
      },
      "documentation":"<p>The unique entry identifier for the custom vocabulary items.</p>"
    },
    "CustomVocabularyExportSpecification":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the custom vocabulary to export.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the custom vocabulary to export.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot that contains the custom vocabulary to export.</p>"
        }
      },
      "documentation":"<p>Provides the parameters required for exporting a custom vocabulary.</p>"
    },
    "CustomVocabularyImportSpecification":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot to import the custom vocabulary to.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot to import the custom vocabulary to.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the local to import the custom vocabulary to. The value must be <code>en_GB</code>.</p>"
        }
      },
      "documentation":"<p>Provides the parameters required for importing a custom vocabulary.</p>"
    },
    "CustomVocabularyItem":{
      "type":"structure",
      "required":[
        "itemId",
        "phrase"
      ],
      "members":{
        "itemId":{
          "shape":"ItemId",
          "documentation":"<p>The unique item identifer for the custom vocabulary item from the custom vocabulary list.</p>"
        },
        "phrase":{
          "shape":"Phrase",
          "documentation":"<p>The unique phrase for the custom vocabulary item from the custom vocabulary list.</p>"
        },
        "weight":{
          "shape":"Weight",
          "documentation":"<p>The weight assigned for the custom vocabulary item from the custom vocabulary list.</p>"
        },
        "displayAs":{
          "shape":"Phrase",
          "documentation":"<p>The DisplayAs value for the custom vocabulary item from the custom vocabulary list.</p>"
        }
      },
      "documentation":"<p>The unique custom vocabulary item from the custom vocabulary list.</p>"
    },
    "CustomVocabularyItems":{
      "type":"list",
      "member":{"shape":"CustomVocabularyItem"}
    },
    "CustomVocabularyStatus":{
      "type":"string",
      "enum":[
        "Ready",
        "Deleting",
        "Exporting",
        "Importing",
        "Creating"
      ]
    },
    "DTMFCharacter":{
      "type":"string",
      "pattern":"^[A-D0-9#*]{1}$"
    },
    "DTMFSpecification":{
      "type":"structure",
      "required":[
        "maxLength",
        "endTimeoutMs",
        "deletionCharacter",
        "endCharacter"
      ],
      "members":{
        "maxLength":{
          "shape":"MaxUtteranceDigits",
          "documentation":"<p>The maximum number of DTMF digits allowed in an utterance.</p>"
        },
        "endTimeoutMs":{
          "shape":"TimeInMilliSeconds",
          "documentation":"<p>How long the bot should wait after the last DTMF character input before assuming that the input has concluded.</p>"
        },
        "deletionCharacter":{
          "shape":"DTMFCharacter",
          "documentation":"<p>The DTMF character that clears the accumulated DTMF digits and immediately ends the input.</p>"
        },
        "endCharacter":{
          "shape":"DTMFCharacter",
          "documentation":"<p>The DTMF character that immediately ends input. If the user does not press this character, the input ends after the end timeout.</p>"
        }
      },
      "documentation":"<p>Specifies the DTMF input specifications.</p>"
    },
    "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=\"http://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>"
    },
    "DataSourceConfiguration":{
      "type":"structure",
      "members":{
        "opensearchConfiguration":{
          "shape":"OpensearchConfiguration",
          "documentation":"<p>Contains details about the configuration of the Amazon OpenSearch Service database used for the <code>AMAZON.QnAIntent</code>. To create a domain, follow the steps at <a href=\"https://docs.aws.amazon.com/opensearch-service/latest/developerguide/createupdatedomains.html\">Creating and managing Amazon OpenSearch Service domains</a>.</p>"
        },
        "kendraConfiguration":{
          "shape":"QnAKendraConfiguration",
          "documentation":"<p>Contains details about the configuration of the Amazon Kendra index used for the <code>AMAZON.QnAIntent</code>. To create a Amazon Kendra index, follow the steps at <a href=\"https://docs.aws.amazon.com/kendra/latest/dg/create-index.html\">Creating an index</a>.</p>"
        },
        "bedrockKnowledgeStoreConfiguration":{
          "shape":"BedrockKnowledgeStoreConfiguration",
          "documentation":"<p>Contains details about the configuration of the Amazon Bedrock knowledge base used for the <code>AMAZON.QnAIntent</code>. To set up a knowledge base, follow the steps at <a href=\"https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base.html\">Building a knowledge base</a>.</p>"
        }
      },
      "documentation":"<p>Contains details about the configuration of the knowledge store used for the <code>AMAZON.QnAIntent</code>. You must have already created the knowledge store and indexed the documents within it.</p>"
    },
    "DateRangeFilter":{
      "type":"structure",
      "required":[
        "startDateTime",
        "endDateTime"
      ],
      "members":{
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating the start date for the date range filter.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp indicating the end date for the date range filter.</p>"
        }
      },
      "documentation":"<p>The object used for specifying the data range that the customer wants Amazon Lex to read through in the input transcripts.</p>"
    },
    "DefaultConditionalBranch":{
      "type":"structure",
      "members":{
        "nextStep":{
          "shape":"DialogState",
          "documentation":"<p>The next step in the conversation.</p>"
        },
        "response":{"shape":"ResponseSpecification"}
      },
      "documentation":"<p>A set of actions that Amazon Lex should run if none of the other conditions are met.</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>By default, Amazon Lex checks if any other resource, such as a bot network, is using the bot alias before it is deleted and throws a <code>ResourceInUseException</code> exception if the alias is being used by another resource. Set this parameter to <code>true</code> to skip this check and remove the alias even if it is being used by another resource.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        }
      }
    },
    "DeleteBotReplicaRequest":{
      "type":"structure",
      "required":[
        "botId",
        "replicaRegion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique ID of the replicated bot to be deleted from the secondary region</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The secondary region of the replicated bot that will be deleted.</p>",
          "location":"uri",
          "locationName":"replicaRegion"
        }
      }
    },
    "DeleteBotReplicaResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique bot ID of the replicated bot generated.</p>"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The region of the replicated bot generated.</p>"
        },
        "botReplicaStatus":{
          "shape":"BotReplicaStatus",
          "documentation":"<p>The operational status of the replicated bot generated.</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>By default, Amazon Lex checks if any other resource, such as an alias or bot network, is using the bot version before it is deleted and throws a <code>ResourceInUseException</code> exception if the bot is being used by another resource. Set this parameter to <code>true</code> to skip this check and remove the bot even if it is being used by another resource.</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, Amazon Lex checks if any other resource, such as an alias or bot network, is using the bot version before it is deleted and throws a <code>ResourceInUseException</code> exception if the version is being used by another resource. Set this parameter to <code>true</code> to skip this check and remove the version even if it is being used by another resource.</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>"
        }
      }
    },
    "DeleteCustomVocabularyItemsList":{
      "type":"list",
      "member":{"shape":"CustomVocabularyEntryId"},
      "max":10,
      "min":1
    },
    "DeleteCustomVocabularyRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot to remove the custom vocabulary from.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot to remove the custom vocabulary from.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale identifier for the locale that contains the custom vocabulary to remove.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DeleteCustomVocabularyResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that the custom vocabulary was removed from.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that the custom vocabulary was removed from.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale identifier for the locale that the custom vocabulary was removed from.</p>"
        },
        "customVocabularyStatus":{
          "shape":"CustomVocabularyStatus",
          "documentation":"<p>The status of removing the custom vocabulary.</p>"
        }
      }
    },
    "DeleteExportRequest":{
      "type":"structure",
      "required":["exportId"],
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the export to delete.</p>",
          "location":"uri",
          "locationName":"exportId"
        }
      }
    },
    "DeleteExportResponse":{
      "type":"structure",
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the deleted export.</p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The current status of the deletion. When the deletion is complete, the export will no longer be returned by the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListExports.html\">ListExports</a> operation and calls to the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeExport.html\"> DescribeExport</a> operation with the export identifier will fail.</p>"
        }
      }
    },
    "DeleteImportRequest":{
      "type":"structure",
      "required":["importId"],
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the import to delete.</p>",
          "location":"uri",
          "locationName":"importId"
        }
      }
    },
    "DeleteImportResponse":{
      "type":"structure",
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the deleted import.</p>"
        },
        "importStatus":{
          "shape":"ImportStatus",
          "documentation":"<p>The current status of the deletion. When the deletion is complete, the import will no longer be returned by the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListImports.html\">ListImports</a> operation and calls to the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeImport.html\">DescribeImport</a> operation with the import identifier will fail.</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/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DeleteResourcePolicyRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that has the resource policy attached.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "expectedRevisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The identifier of the revision to edit. If this ID doesn't match the current revision number, Amazon Lex returns an exception</p> <p>If you don't specify a revision ID, Amazon Lex will delete the current policy.</p>",
          "location":"querystring",
          "locationName":"expectedRevisionId"
        }
      }
    },
    "DeleteResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy was deleted from.</p>"
        },
        "revisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.</p>"
        }
      }
    },
    "DeleteResourcePolicyStatementRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "statementId"
      ],
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "statementId":{
          "shape":"Name",
          "documentation":"<p>The name of the statement (SID) to delete from the policy.</p>",
          "location":"uri",
          "locationName":"statementId"
        },
        "expectedRevisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The identifier of the revision of the policy to delete the statement from. If this revision ID doesn't match the current revision ID, Amazon Lex throws an exception.</p> <p>If you don't specify a revision, Amazon Lex removes the current contents of the statement. </p>",
          "location":"querystring",
          "locationName":"expectedRevisionId"
        }
      }
    },
    "DeleteResourcePolicyStatementResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy statement was removed from.</p>"
        },
        "revisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.</p>"
        }
      }
    },
    "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/lexv2/latest/dg/how-languages.html\">Supported languages</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/lexv2/latest/dg/how-languages.html\">Supported languages</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"
        }
      }
    },
    "DeleteTestSetRequest":{
      "type":"structure",
      "required":["testSetId"],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id of the test set to be deleted.</p>",
          "location":"uri",
          "locationName":"testSetId"
        }
      }
    },
    "DeleteUtterancesRequest":{
      "type":"structure",
      "required":["botId"],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the utterances.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where the utterances were collected. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"querystring",
          "locationName":"localeId"
        },
        "sessionId":{
          "shape":"SessionId",
          "documentation":"<p>The unique identifier of the session with the user. The ID is returned in the response from the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html\">RecognizeText</a> and <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html\">RecognizeUtterance</a> operations.</p>",
          "location":"querystring",
          "locationName":"sessionId"
        }
      }
    },
    "DeleteUtterancesResponse":{
      "type":"structure",
      "members":{
      }
    },
    "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>"
        },
        "parentBotNetworks":{
          "shape":"ParentBotNetworks",
          "documentation":"<p>A list of the networks to which the bot alias you described belongs.</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 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/lexv2/latest/dg/how-languages.html\">Supported languages</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 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>"
        },
        "recommendedActions":{
          "shape":"RecommendedActions",
          "documentation":"<p>Recommended actions to take to resolve an error in the <code>failureReasons</code> field.</p>"
        },
        "generativeAISettings":{
          "shape":"GenerativeAISettings",
          "documentation":"<p>Contains settings for Amazon Bedrock's generative AI features for your bot locale.</p>"
        }
      }
    },
    "DescribeBotRecommendationRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "botRecommendationId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the bot recommendation.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the bot recommendation.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to describe. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot recommendation to describe.</p>",
          "location":"uri",
          "locationName":"botRecommendationId"
        }
      }
    },
    "DescribeBotRecommendationResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with the bot recommendation.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot associated with the bot recommendation.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to describe.</p>"
        },
        "botRecommendationStatus":{
          "shape":"BotRecommendationStatus",
          "documentation":"<p>The status of the bot recommendation. If the status is Failed, then the reasons for the failure are listed in the failureReasons field. </p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot recommendation being described.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>If botRecommendationStatus is Failed, Amazon Lex explains why.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the bot recommendation was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the bot recommendation was last updated.</p>"
        },
        "transcriptSourceSetting":{
          "shape":"TranscriptSourceSetting",
          "documentation":"<p>The object representing the Amazon S3 bucket containing the transcript, as well as the associated metadata.</p>"
        },
        "encryptionSetting":{
          "shape":"EncryptionSetting",
          "documentation":"<p>The object representing the passwords that were used to encrypt the data related to the bot recommendation results, as well as the KMS key ARN used to encrypt the associated metadata.</p>"
        },
        "botRecommendationResults":{
          "shape":"BotRecommendationResults",
          "documentation":"<p>The object representing the URL of the bot definition, the URL of the associated transcript and a statistical summary of the bot recommendation results.</p>"
        }
      }
    },
    "DescribeBotReplicaRequest":{
      "type":"structure",
      "required":[
        "botId",
        "replicaRegion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The request for the unique bot ID of the replicated bot being monitored.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The request for the region of the replicated bot being monitored.</p>",
          "location":"uri",
          "locationName":"replicaRegion"
        }
      }
    },
    "DescribeBotReplicaResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique bot ID of the replicated bot being monitored.</p>"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The region of the replicated bot being monitored.</p>"
        },
        "sourceRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The source region of the replicated bot being monitored.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time of the replicated bot being monitored.</p>"
        },
        "botReplicaStatus":{
          "shape":"BotReplicaStatus",
          "documentation":"<p>The operational status of the replicated bot being monitored.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>The failure reasons the bot being monitored failed to replicate.</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"
        }
      }
    },
    "DescribeBotResourceGenerationRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "generationId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot for which to return the generation details.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot for which to return the generation details.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot for which to return the generation details.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "generationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the generation request for which to return the generation details.</p>",
          "location":"uri",
          "locationName":"generationId"
        }
      }
    },
    "DescribeBotResourceGenerationResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot for which the generation request was made.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot for which the generation request was made.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot for which the generation request was made.</p>"
        },
        "generationId":{
          "shape":"Id",
          "documentation":"<p>The generation ID for which to return the generation details.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>A list of reasons why the generation of bot resources through natural language description failed.</p>"
        },
        "generationStatus":{
          "shape":"GenerationStatus",
          "documentation":"<p>The status of the generation request.</p>"
        },
        "generationInputPrompt":{
          "shape":"GenerationInput",
          "documentation":"<p>The prompt used in the generation request.</p>"
        },
        "generatedBotLocaleUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>The Amazon S3 location of the generated bot locale configuration.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the item was generated.</p>"
        },
        "modelArn":{
          "shape":"BedrockModelArn",
          "documentation":"<p>The ARN of the model used to generate the bot resources.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the generated item was updated.</p>"
        }
      }
    },
    "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>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of the bot that was described.</p>"
        },
        "botMembers":{
          "shape":"BotMembers",
          "documentation":"<p>The list of bots in the network that was described.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>If the <code>botStatus</code> is <code>Failed</code>, this contains a list of reasons that the bot couldn't be built.</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 that was described.</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>"
        },
        "parentBotNetworks":{
          "shape":"ParentBotNetworks",
          "documentation":"<p>A list of the networks to which the bot version you described belongs.</p>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of the bot in the version that was described.</p>"
        },
        "botMembers":{
          "shape":"BotMembers",
          "documentation":"<p>The members of bot network in the version that was described.</p>"
        }
      }
    },
    "DescribeCustomVocabularyMetadataRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The bot version of the bot to return metadata for.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale to return the custom vocabulary information for. The locale must be <code>en_GB</code>.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "DescribeCustomVocabularyMetadataResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the custom vocabulary.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that contains the custom vocabulary to describe.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale that contains the custom vocabulary to describe.</p>"
        },
        "customVocabularyStatus":{
          "shape":"CustomVocabularyStatus",
          "documentation":"<p>The status of the custom vocabulary. If the status is <code>Ready</code> the custom vocabulary is ready to use.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the custom vocabulary was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the custom vocabulary was last updated.</p>"
        }
      }
    },
    "DescribeExportRequest":{
      "type":"structure",
      "required":["exportId"],
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the export to describe.</p>",
          "location":"uri",
          "locationName":"exportId"
        }
      }
    },
    "DescribeExportResponse":{
      "type":"structure",
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the described export.</p>"
        },
        "resourceSpecification":{
          "shape":"ExportResourceSpecification",
          "documentation":"<p>The bot, bot ID, and optional locale ID of the exported bot or bot locale.</p>"
        },
        "fileFormat":{
          "shape":"ImportExportFileFormat",
          "documentation":"<p>The file format used in the files that describe the resource. </p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The status of the export. When the status is <code>Complete</code> the export archive file is available for download.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>If the <code>exportStatus</code> is failed, contains one or more reasons why the export could not be completed.</p>"
        },
        "downloadUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>A pre-signed S3 URL that points to the bot or bot locale archive. The URL is only available for 5 minutes after calling the <code>DescribeExport</code> operation.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the export was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The last date and time that the export was updated.</p>"
        }
      }
    },
    "DescribeImportRequest":{
      "type":"structure",
      "required":["importId"],
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the import to describe.</p>",
          "location":"uri",
          "locationName":"importId"
        }
      }
    },
    "DescribeImportResponse":{
      "type":"structure",
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the described import.</p>"
        },
        "resourceSpecification":{
          "shape":"ImportResourceSpecification",
          "documentation":"<p>The specifications of the imported bot, bot locale, or custom vocabulary.</p>"
        },
        "importedResourceId":{
          "shape":"ImportedResourceId",
          "documentation":"<p>The unique identifier that Amazon Lex assigned to the resource created by the import.</p>"
        },
        "importedResourceName":{
          "shape":"Name",
          "documentation":"<p>The name of the imported resource.</p>"
        },
        "mergeStrategy":{
          "shape":"MergeStrategy",
          "documentation":"<p>The strategy used when there was a name conflict between the imported resource and an existing resource. When the merge strategy is <code>FailOnConflict</code> existing resources are not overwritten and the import fails.</p>"
        },
        "importStatus":{
          "shape":"ImportStatus",
          "documentation":"<p>The status of the import process. When the status is <code>Completed</code> the resource is imported and ready for use.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>If the <code>importStatus</code> field is <code>Failed</code>, this provides one or more reasons for the failure.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the import was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the import was last updated.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        },
        "initialResponseSetting":{
          "shape":"InitialResponseSetting",
          "documentation":"<p>Configuration setting for a response sent to the user before Amazon Lex starts eliciting slots.</p>"
        },
        "qnAIntentConfiguration":{
          "shape":"QnAIntentConfiguration",
          "documentation":"<p>Details about the configuration of the built-in <code>Amazon.QnAIntent</code>.</p>"
        }
      }
    },
    "DescribeResourcePolicyRequest":{
      "type":"structure",
      "required":["resourceArn"],
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        }
      }
    },
    "DescribeResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>"
        },
        "policy":{
          "shape":"Policy",
          "documentation":"<p>The JSON structure that contains the resource policy. For more information about the contents of a JSON policy document, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html\"> IAM JSON policy reference </a>.</p>"
        },
        "revisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        },
        "multipleValuesSetting":{
          "shape":"MultipleValuesSetting",
          "documentation":"<p>Indicates whether the slot accepts multiple values in a single utterance.</p> <p>If the <code>multipleValuesSetting</code> is not set, the default value is <code>false</code>.</p>"
        },
        "subSlotSetting":{
          "shape":"SubSlotSetting",
          "documentation":"<p>Specifications for the constituent sub slots and the expression for the composite slot.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        },
        "externalSourceSetting":{"shape":"ExternalSourceSetting"},
        "compositeSlotTypeSetting":{
          "shape":"CompositeSlotTypeSetting",
          "documentation":"<p>Specifications for a composite slot type.</p>"
        }
      }
    },
    "DescribeTestExecutionRequest":{
      "type":"structure",
      "required":["testExecutionId"],
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The execution Id of the test set execution.</p>",
          "location":"uri",
          "locationName":"testExecutionId"
        }
      }
    },
    "DescribeTestExecutionResponse":{
      "type":"structure",
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The execution Id for the test set execution.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The execution creation date and time for the test set execution.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time of the last update for the execution.</p>"
        },
        "testExecutionStatus":{
          "shape":"TestExecutionStatus",
          "documentation":"<p>The test execution status for the test execution.</p>"
        },
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set execution.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The test set name of the test set execution.</p>"
        },
        "target":{
          "shape":"TestExecutionTarget",
          "documentation":"<p>The target bot for the test set execution details.</p>"
        },
        "apiMode":{
          "shape":"TestExecutionApiMode",
          "documentation":"<p>Indicates whether we use streaming or non-streaming APIs are used for the test set execution. For streaming, <code>StartConversation</code> Amazon Lex Runtime API is used. Whereas for non-streaming, <code>RecognizeUtterance</code> and <code>RecognizeText</code> Amazon Lex Runtime API is used.</p>"
        },
        "testExecutionModality":{
          "shape":"TestExecutionModality",
          "documentation":"<p>Indicates whether test set is audio or text.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>Reasons for the failure of the test set execution.</p>"
        }
      }
    },
    "DescribeTestSetDiscrepancyReportRequest":{
      "type":"structure",
      "required":["testSetDiscrepancyReportId"],
      "members":{
        "testSetDiscrepancyReportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set discrepancy report.</p>",
          "location":"uri",
          "locationName":"testSetDiscrepancyReportId"
        }
      }
    },
    "DescribeTestSetDiscrepancyReportResponse":{
      "type":"structure",
      "members":{
        "testSetDiscrepancyReportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set discrepancy report to describe.</p>"
        },
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set discrepancy report.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The time and date of creation for the test set discrepancy report.</p>"
        },
        "target":{
          "shape":"TestSetDiscrepancyReportResourceTarget",
          "documentation":"<p>The target bot location for the test set discrepancy report.</p>"
        },
        "testSetDiscrepancyReportStatus":{
          "shape":"TestSetDiscrepancyReportStatus",
          "documentation":"<p>The status for the test set discrepancy report.</p>"
        },
        "lastUpdatedDataTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time of the last update for the test set discrepancy report.</p>"
        },
        "testSetDiscrepancyTopErrors":{
          "shape":"TestSetDiscrepancyErrors",
          "documentation":"<p>The top 200 error results from the test set discrepancy report.</p>"
        },
        "testSetDiscrepancyRawOutputUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>Pre-signed Amazon S3 URL to download the test set discrepancy report.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>The failure report for the test set discrepancy report generation action.</p>"
        }
      }
    },
    "DescribeTestSetGenerationRequest":{
      "type":"structure",
      "required":["testSetGenerationId"],
      "members":{
        "testSetGenerationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set generation.</p>",
          "location":"uri",
          "locationName":"testSetGenerationId"
        }
      }
    },
    "DescribeTestSetGenerationResponse":{
      "type":"structure",
      "members":{
        "testSetGenerationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set generation.</p>"
        },
        "testSetGenerationStatus":{
          "shape":"TestSetGenerationStatus",
          "documentation":"<p>The status for the test set generation.</p>"
        },
        "failureReasons":{
          "shape":"FailureReasons",
          "documentation":"<p>The reasons the test set generation failed.</p>"
        },
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier for the test set created for the generated test set.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The test set name for the generated test set.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The test set description for the test set generation.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>The Amazon S3 storage location for the test set generation.</p>"
        },
        "generationDataSource":{
          "shape":"TestSetGenerationDataSource",
          "documentation":"<p>The data source of the test set used for the test set generation.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p> The roleARN of the test set used for the test set generation.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time for the test set generation.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time of the last update for the test set generation.</p>"
        }
      }
    },
    "DescribeTestSetRequest":{
      "type":"structure",
      "required":["testSetId"],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set request.</p>",
          "location":"uri",
          "locationName":"testSetId"
        }
      }
    },
    "DescribeTestSetResponse":{
      "type":"structure",
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set response.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The test set name of the test set.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the test set.</p>"
        },
        "modality":{
          "shape":"TestSetModality",
          "documentation":"<p>Indicates whether the test set is audio or text data.</p>"
        },
        "status":{
          "shape":"TestSetStatus",
          "documentation":"<p>The status of the test set.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The roleARN used for any operation in the test set to access resources in the Amazon Web Services account.</p>"
        },
        "numTurns":{
          "shape":"Count",
          "documentation":"<p>The total number of agent and user turn in the test set.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>The Amazon S3 storage location for the test set data.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time for the test set data.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time for the last update of the test set data.</p>"
        }
      }
    },
    "Description":{
      "type":"string",
      "max":200,
      "min":0
    },
    "DescriptiveBotBuilderSpecification":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether the descriptive bot building feature is activated or not.</p>"
        },
        "bedrockModelSpecification":{
          "shape":"BedrockModelSpecification",
          "documentation":"<p>An object containing information about the Amazon Bedrock model used to interpret the prompt used in descriptive bot building.</p>"
        }
      },
      "documentation":"<p>Contains specifications for the descriptive bot building feature.</p>"
    },
    "DialogAction":{
      "type":"structure",
      "required":["type"],
      "members":{
        "type":{
          "shape":"DialogActionType",
          "documentation":"<p>The action that the bot should execute. </p>"
        },
        "slotToElicit":{
          "shape":"Name",
          "documentation":"<p>If the dialog action is <code>ElicitSlot</code>, defines the slot to elicit from the user.</p>"
        },
        "suppressNextMessage":{
          "shape":"BoxedBoolean",
          "documentation":"<p>When true the next message for the intent is not used.</p>"
        }
      },
      "documentation":"<p>Defines the action that the bot executes at runtime when the conversation reaches this step.</p>"
    },
    "DialogActionType":{
      "type":"string",
      "enum":[
        "ElicitIntent",
        "StartIntent",
        "ElicitSlot",
        "EvaluateConditional",
        "InvokeDialogCodeHook",
        "ConfirmIntent",
        "FulfillIntent",
        "CloseIntent",
        "EndConversation"
      ]
    },
    "DialogCodeHookInvocationSetting":{
      "type":"structure",
      "required":[
        "enableCodeHookInvocation",
        "active",
        "postCodeHookSpecification"
      ],
      "members":{
        "enableCodeHookInvocation":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether a Lambda function should be invoked for the dialog.</p>"
        },
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Determines whether a dialog code hook is used when the intent is activated.</p>"
        },
        "invocationLabel":{
          "shape":"Name",
          "documentation":"<p>A label that indicates the dialog step from which the dialog code hook is happening.</p>"
        },
        "postCodeHookSpecification":{
          "shape":"PostDialogCodeHookInvocationSpecification",
          "documentation":"<p>Contains the responses and actions that Amazon Lex takes after the Lambda function is complete.</p>"
        }
      },
      "documentation":"<p>Settings that specify the dialog code hook that is called by Amazon Lex at a step of the conversation. </p>"
    },
    "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>"
    },
    "DialogState":{
      "type":"structure",
      "members":{
        "dialogAction":{"shape":"DialogAction"},
        "intent":{"shape":"IntentOverride"},
        "sessionAttributes":{
          "shape":"StringMap",
          "documentation":"<p>Map of key/value pairs representing session-specific context information. It contains application information passed between Amazon Lex and a client application.</p>"
        }
      },
      "documentation":"<p>The current state of the conversation with the user.</p>"
    },
    "DomainEndpoint":{
      "type":"string",
      "pattern":"^(http|https):\\/\\/+[^\\s]+[\\w]"
    },
    "DraftBotVersion":{
      "type":"string",
      "max":5,
      "min":5,
      "pattern":"^DRAFT$"
    },
    "Effect":{
      "type":"string",
      "enum":[
        "Allow",
        "Deny"
      ]
    },
    "ElicitationCodeHookInvocationSetting":{
      "type":"structure",
      "required":["enableCodeHookInvocation"],
      "members":{
        "enableCodeHookInvocation":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether a Lambda function should be invoked for the dialog.</p>"
        },
        "invocationLabel":{
          "shape":"Name",
          "documentation":"<p>A label that indicates the dialog step from which the dialog code hook is happening.</p>"
        }
      },
      "documentation":"<p>Settings that specify the dialog code hook that is called by Amazon Lex between eliciting slot values.</p>"
    },
    "Enabled":{"type":"boolean"},
    "EncryptionSetting":{
      "type":"structure",
      "members":{
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The KMS key ARN used to encrypt the metadata associated with the bot recommendation.</p>"
        },
        "botLocaleExportPassword":{
          "shape":"FilePassword",
          "documentation":"<p>The password used to encrypt the recommended bot recommendation file.</p>"
        },
        "associatedTranscriptsPassword":{
          "shape":"FilePassword",
          "documentation":"<p>The password used to encrypt the associated transcript file.</p>"
        }
      },
      "documentation":"<p>The object representing the passwords that were used to encrypt the data related to the bot recommendation, as well as the KMS key ARN used to encrypt the associated metadata.</p>"
    },
    "ErrorCode":{
      "type":"string",
      "enum":[
        "DUPLICATE_INPUT",
        "RESOURCE_DOES_NOT_EXIST",
        "RESOURCE_ALREADY_EXISTS",
        "INTERNAL_SERVER_FAILURE"
      ]
    },
    "ErrorMessage":{"type":"string"},
    "ExactResponseFields":{
      "type":"structure",
      "required":[
        "questionField",
        "answerField"
      ],
      "members":{
        "questionField":{
          "shape":"QuestionField",
          "documentation":"<p>The name of the field that contains the query made to the OpenSearch Service database.</p>"
        },
        "answerField":{
          "shape":"AnswerField",
          "documentation":"<p>The name of the field that contains the answer to the query made to the OpenSearch Service database.</p>"
        }
      },
      "documentation":"<p>Contains the names of the fields used for an exact response to the user.</p>"
    },
    "ExceptionMessage":{"type":"string"},
    "ExecutionErrorDetails":{
      "type":"structure",
      "required":[
        "errorCode",
        "errorMessage"
      ],
      "members":{
        "errorCode":{
          "shape":"NonEmptyString",
          "documentation":"<p>The error code for the error.</p>"
        },
        "errorMessage":{
          "shape":"NonEmptyString",
          "documentation":"<p>The message describing the error.</p>"
        }
      },
      "documentation":"<p>Details about an error in an execution of a test set.</p>"
    },
    "ExportFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"ExportFilterName",
          "documentation":"<p>The name of the field to use for filtering.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The values to use to filter the response. The values must be <code>Bot</code>, <code>BotLocale</code>, or <code>CustomVocabulary</code>.</p>"
        },
        "operator":{
          "shape":"ExportFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify EQ when the <code>ListExports</code> operation should return only resource types that equal the specified value. Specify CO when the <code>ListExports</code> operation should return resource types that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters the response form the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListExports.html\">ListExports</a> operation</p>"
    },
    "ExportFilterName":{
      "type":"string",
      "enum":["ExportResourceType"]
    },
    "ExportFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "ExportFilters":{
      "type":"list",
      "member":{"shape":"ExportFilter"},
      "max":1,
      "min":1
    },
    "ExportResourceSpecification":{
      "type":"structure",
      "members":{
        "botExportSpecification":{
          "shape":"BotExportSpecification",
          "documentation":"<p>Parameters for exporting a bot.</p>"
        },
        "botLocaleExportSpecification":{
          "shape":"BotLocaleExportSpecification",
          "documentation":"<p>Parameters for exporting a bot locale.</p>"
        },
        "customVocabularyExportSpecification":{
          "shape":"CustomVocabularyExportSpecification",
          "documentation":"<p>The parameters required to export a custom vocabulary.</p>"
        },
        "testSetExportSpecification":{
          "shape":"TestSetExportSpecification",
          "documentation":"<p>Specifications for the test set that is exported as a resource.</p>"
        }
      },
      "documentation":"<p>Provides information about the bot or bot locale that you want to export. You can specify the <code>botExportSpecification</code> or the <code>botLocaleExportSpecification</code>, but not both.</p>"
    },
    "ExportSortAttribute":{
      "type":"string",
      "enum":["LastUpdatedDateTime"]
    },
    "ExportSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"ExportSortAttribute",
          "documentation":"<p>The export field to use for sorting.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list.</p>"
        }
      },
      "documentation":"<p>Provides information about sorting a list of exports.</p>"
    },
    "ExportStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed",
        "Deleting"
      ]
    },
    "ExportSummary":{
      "type":"structure",
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier that Amazon Lex assigned to the export.</p>"
        },
        "resourceSpecification":{
          "shape":"ExportResourceSpecification",
          "documentation":"<p>Information about the bot or bot locale that was exported.</p>"
        },
        "fileFormat":{
          "shape":"ImportExportFileFormat",
          "documentation":"<p>The file format used in the export files.</p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The status of the export. When the status is <code>Completed</code> the export is ready to download.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the export was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the export was last updated.</p>"
        }
      },
      "documentation":"<p>Provides summary information about an export in an export list. </p>"
    },
    "ExportSummaryList":{
      "type":"list",
      "member":{"shape":"ExportSummary"}
    },
    "ExternalSourceSetting":{
      "type":"structure",
      "members":{
        "grammarSlotTypeSetting":{
          "shape":"GrammarSlotTypeSetting",
          "documentation":"<p>Settings required for a slot type based on a grammar that you provide.</p>"
        }
      },
      "documentation":"<p>Provides information about the external source of the slot type's definition.</p>"
    },
    "FailedCustomVocabularyItem":{
      "type":"structure",
      "members":{
        "itemId":{
          "shape":"ItemId",
          "documentation":"<p>The unique item identifer for the failed custom vocabulary item from the custom vocabulary list.</p>"
        },
        "errorMessage":{
          "shape":"ErrorMessage",
          "documentation":"<p>The error message for the failed custom vocabulary item from the custom vocabulary list.</p>"
        },
        "errorCode":{
          "shape":"ErrorCode",
          "documentation":"<p>The unique error code for the failed custom vocabulary item from the custom vocabulary list.</p>"
        }
      },
      "documentation":"<p>The unique failed custom vocabulary item from the custom vocabulary list.</p>"
    },
    "FailedCustomVocabularyItems":{
      "type":"list",
      "member":{"shape":"FailedCustomVocabularyItem"}
    },
    "FailureReason":{"type":"string"},
    "FailureReasons":{
      "type":"list",
      "member":{"shape":"FailureReason"}
    },
    "FilePassword":{
      "type":"string",
      "max":1024,
      "min":0,
      "sensitive":true
    },
    "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>"
        },
        "postFulfillmentStatusSpecification":{
          "shape":"PostFulfillmentStatusSpecification",
          "documentation":"<p>Provides settings for messages sent to the user for after the Lambda fulfillment function completes. Post-fulfillment messages can be sent for both streaming and non-streaming conversations.</p>"
        },
        "fulfillmentUpdatesSpecification":{
          "shape":"FulfillmentUpdatesSpecification",
          "documentation":"<p>Provides settings for update messages sent to the user for long-running Lambda fulfillment functions. Fulfillment updates can be used only with streaming conversations.</p>"
        },
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Determines whether the fulfillment code hook is used. When <code>active</code> is false, the code hook doesn't run.</p>"
        }
      },
      "documentation":"<p>Determines if a Lambda function should be invoked for a specific intent.</p>"
    },
    "FulfillmentStartResponseDelay":{
      "type":"integer",
      "max":900,
      "min":1
    },
    "FulfillmentStartResponseSpecification":{
      "type":"structure",
      "required":[
        "delayInSeconds",
        "messageGroups"
      ],
      "members":{
        "delayInSeconds":{
          "shape":"FulfillmentStartResponseDelay",
          "documentation":"<p>The delay between when the Lambda fulfillment function starts running and the start message is played. If the Lambda function returns before the delay is over, the start message isn't played.</p>"
        },
        "messageGroups":{
          "shape":"MessageGroupsList",
          "documentation":"<p>1 - 5 message groups that contain start messages. Amazon Lex chooses one of the messages to play to the user.</p>"
        },
        "allowInterrupt":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Determines whether the user can interrupt the start message while it is playing.</p>"
        }
      },
      "documentation":"<p>Provides settings for a message that is sent to the user when a fulfillment Lambda function starts running.</p>"
    },
    "FulfillmentTimeout":{
      "type":"integer",
      "max":900,
      "min":1
    },
    "FulfillmentUpdateResponseFrequency":{
      "type":"integer",
      "max":900,
      "min":1
    },
    "FulfillmentUpdateResponseSpecification":{
      "type":"structure",
      "required":[
        "frequencyInSeconds",
        "messageGroups"
      ],
      "members":{
        "frequencyInSeconds":{
          "shape":"FulfillmentUpdateResponseFrequency",
          "documentation":"<p>The frequency that a message is sent to the user. When the period ends, Amazon Lex chooses a message from the message groups and plays it to the user. If the fulfillment Lambda returns before the first period ends, an update message is not played to the user.</p>"
        },
        "messageGroups":{
          "shape":"MessageGroupsList",
          "documentation":"<p>1 - 5 message groups that contain update messages. Amazon Lex chooses one of the messages to play to the user.</p>"
        },
        "allowInterrupt":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Determines whether the user can interrupt an update message while it is playing.</p>"
        }
      },
      "documentation":"<p>Provides settings for a message that is sent periodically to the user while a fulfillment Lambda function is running.</p>"
    },
    "FulfillmentUpdatesSpecification":{
      "type":"structure",
      "required":["active"],
      "members":{
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Determines whether fulfillment updates are sent to the user. When this field is true, updates are sent.</p> <p>If the <code>active</code> field is set to true, the <code>startResponse</code>, <code>updateResponse</code>, and <code>timeoutInSeconds</code> fields are required.</p>"
        },
        "startResponse":{
          "shape":"FulfillmentStartResponseSpecification",
          "documentation":"<p>Provides configuration information for the message sent to users when the fulfillment Lambda functions starts running.</p>"
        },
        "updateResponse":{
          "shape":"FulfillmentUpdateResponseSpecification",
          "documentation":"<p>Provides configuration information for messages sent periodically to the user while the fulfillment Lambda function is running.</p>"
        },
        "timeoutInSeconds":{
          "shape":"FulfillmentTimeout",
          "documentation":"<p>The length of time that the fulfillment Lambda function should run before it times out.</p>"
        }
      },
      "documentation":"<p>Provides information for updating the user on the progress of fulfilling an intent.</p>"
    },
    "GenerateBotElementRequest":{
      "type":"structure",
      "required":[
        "intentId",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The intent unique Id for the bot request to generate utterances.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The bot unique Id for the bot request to generate utterances.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The bot version for the bot request to generate utterances.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The unique locale Id for the bot request to generate utterances.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "GenerateBotElementResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique bot Id for the bot which received the response.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The unique bot version for the bot which received the response.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The unique locale Id for the bot which received the response.</p>"
        },
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique intent Id for the bot which received the response.</p>"
        },
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>The sample utterances for the bot which received the response.</p>"
        }
      }
    },
    "GenerationInput":{
      "type":"string",
      "max":2000,
      "min":100
    },
    "GenerationSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"GenerationSortByAttribute",
          "documentation":"<p>The attribute by which to sort the generation request information. You can sort by the following attributes.</p> <ul> <li> <p> <code>creationStartTime</code> – The time at which the generation request was created.</p> </li> <li> <p> <code>lastUpdatedTime</code> – The time at which the generation request was last updated.</p> </li> </ul>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order by which to sort the generation request information.</p>"
        }
      },
      "documentation":"<p>Specifies the attribute and method by which to sort the generation request information.</p>"
    },
    "GenerationSortByAttribute":{
      "type":"string",
      "enum":[
        "creationStartTime",
        "lastUpdatedTime"
      ]
    },
    "GenerationStatus":{
      "type":"string",
      "enum":[
        "Failed",
        "Complete",
        "InProgress"
      ]
    },
    "GenerationSummary":{
      "type":"structure",
      "members":{
        "generationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the generation request.</p>"
        },
        "generationStatus":{
          "shape":"GenerationStatus",
          "documentation":"<p>The status of the generation request.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the generation request was made.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the generation request was last updated.</p>"
        }
      },
      "documentation":"<p>Contains information about a generation request made for the bot locale.</p>"
    },
    "GenerationSummaryList":{
      "type":"list",
      "member":{"shape":"GenerationSummary"}
    },
    "GenerativeAISettings":{
      "type":"structure",
      "members":{
        "runtimeSettings":{"shape":"RuntimeSettings"},
        "buildtimeSettings":{"shape":"BuildtimeSettings"}
      },
      "documentation":"<p>Contains specifications about the generative AI capabilities from Amazon Bedrock that you can turn on for your bot.</p>"
    },
    "GetTestExecutionArtifactsUrlRequest":{
      "type":"structure",
      "required":["testExecutionId"],
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the completed test execution.</p>",
          "location":"uri",
          "locationName":"testExecutionId"
        }
      }
    },
    "GetTestExecutionArtifactsUrlResponse":{
      "type":"structure",
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the completed test execution.</p>"
        },
        "downloadArtifactsUrl":{
          "shape":"PresignedS3Url",
          "documentation":"<p>The pre-signed Amazon S3 URL to download completed test execution.</p>"
        }
      }
    },
    "GrammarSlotTypeSetting":{
      "type":"structure",
      "members":{
        "source":{
          "shape":"GrammarSlotTypeSource",
          "documentation":"<p>The source of the grammar used to create the slot type.</p>"
        }
      },
      "documentation":"<p>Settings requried for a slot type based on a grammar that you provide.</p>"
    },
    "GrammarSlotTypeSource":{
      "type":"structure",
      "required":[
        "s3BucketName",
        "s3ObjectKey"
      ],
      "members":{
        "s3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the Amazon S3 bucket that contains the grammar source.</p>"
        },
        "s3ObjectKey":{
          "shape":"S3ObjectPath",
          "documentation":"<p>The path to the grammar in the Amazon S3 bucket.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The KMS key required to decrypt the contents of the grammar, if any.</p>"
        }
      },
      "documentation":"<p>Describes the Amazon S3 bucket name and location for the grammar that is the source for the slot type.</p>"
    },
    "HitCount":{"type":"integer"},
    "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>"
    },
    "ImportExportFileFormat":{
      "type":"string",
      "enum":[
        "LexJson",
        "TSV",
        "CSV"
      ]
    },
    "ImportExportFilePassword":{
      "type":"string",
      "max":1024,
      "min":1,
      "sensitive":true
    },
    "ImportFilter":{
      "type":"structure",
      "required":[
        "name",
        "values",
        "operator"
      ],
      "members":{
        "name":{
          "shape":"ImportFilterName",
          "documentation":"<p>The name of the field to use for filtering.</p>"
        },
        "values":{
          "shape":"FilterValues",
          "documentation":"<p>The values to use to filter the response. The values must be <code>Bot</code>, <code>BotLocale</code>, or <code>CustomVocabulary</code>.</p>"
        },
        "operator":{
          "shape":"ImportFilterOperator",
          "documentation":"<p>The operator to use for the filter. Specify EQ when the <code>ListImports</code> operation should return only resource types that equal the specified value. Specify CO when the <code>ListImports</code> operation should return resource types that contain the specified value.</p>"
        }
      },
      "documentation":"<p>Filters the response from the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListImports.html\">ListImports</a> operation.</p>"
    },
    "ImportFilterName":{
      "type":"string",
      "enum":["ImportResourceType"]
    },
    "ImportFilterOperator":{
      "type":"string",
      "enum":[
        "CO",
        "EQ"
      ]
    },
    "ImportFilters":{
      "type":"list",
      "member":{"shape":"ImportFilter"},
      "max":1,
      "min":1
    },
    "ImportResourceSpecification":{
      "type":"structure",
      "members":{
        "botImportSpecification":{
          "shape":"BotImportSpecification",
          "documentation":"<p>Parameters for importing a bot.</p>"
        },
        "botLocaleImportSpecification":{
          "shape":"BotLocaleImportSpecification",
          "documentation":"<p>Parameters for importing a bot locale.</p>"
        },
        "customVocabularyImportSpecification":{"shape":"CustomVocabularyImportSpecification"},
        "testSetImportResourceSpecification":{
          "shape":"TestSetImportResourceSpecification",
          "documentation":"<p>Specifications for the test set that is imported.</p>"
        }
      },
      "documentation":"<p>Provides information about the bot or bot locale that you want to import. You can specify the <code>botImportSpecification</code> or the <code>botLocaleImportSpecification</code>, but not both.</p>"
    },
    "ImportResourceType":{
      "type":"string",
      "enum":[
        "Bot",
        "BotLocale",
        "CustomVocabulary",
        "TestSet"
      ]
    },
    "ImportSortAttribute":{
      "type":"string",
      "enum":["LastUpdatedDateTime"]
    },
    "ImportSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"ImportSortAttribute",
          "documentation":"<p>The export field to use for sorting.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>The order to sort the list.</p>"
        }
      },
      "documentation":"<p>Provides information for sorting a list of imports.</p>"
    },
    "ImportStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed",
        "Deleting"
      ]
    },
    "ImportSummary":{
      "type":"structure",
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier that Amazon Lex assigned to the import.</p>"
        },
        "importedResourceId":{
          "shape":"ImportedResourceId",
          "documentation":"<p>The unique identifier that Amazon Lex assigned to the imported resource.</p>"
        },
        "importedResourceName":{
          "shape":"Name",
          "documentation":"<p>The name that you gave the imported resource.</p>"
        },
        "importStatus":{
          "shape":"ImportStatus",
          "documentation":"<p>The status of the resource. When the status is <code>Completed</code> the resource is ready to build.</p>"
        },
        "mergeStrategy":{
          "shape":"MergeStrategy",
          "documentation":"<p>The strategy used to merge existing bot or bot locale definitions with the imported definition.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the import was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the import was last updated.</p>"
        },
        "importedResourceType":{
          "shape":"ImportResourceType",
          "documentation":"<p>The type of resource that was imported.</p>"
        }
      },
      "documentation":"<p>Provides summary information about an import in an import list.</p>"
    },
    "ImportSummaryList":{
      "type":"list",
      "member":{"shape":"ImportSummary"}
    },
    "ImportedResourceId":{
      "type":"string",
      "max":10,
      "min":5,
      "pattern":"^([0-9a-zA-Z_])+$"
    },
    "IncludeField":{"type":"string"},
    "InitialResponseSetting":{
      "type":"structure",
      "members":{
        "initialResponse":{"shape":"ResponseSpecification"},
        "nextStep":{
          "shape":"DialogState",
          "documentation":"<p>The next step in the conversation.</p>"
        },
        "conditional":{"shape":"ConditionalSpecification"},
        "codeHook":{"shape":"DialogCodeHookInvocationSetting"}
      },
      "documentation":"<p>Configuration setting for a response sent to the user before Amazon Lex starts eliciting slots.</p>"
    },
    "InputContext":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the context.</p>"
        }
      },
      "documentation":"<p>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
    },
    "InputSessionStateSpecification":{
      "type":"structure",
      "members":{
        "sessionAttributes":{
          "shape":"StringMap",
          "documentation":"<p>Session attributes for the session state.</p>"
        },
        "activeContexts":{
          "shape":"ActiveContextList",
          "documentation":"<p>Active contexts for the session state.</p>"
        },
        "runtimeHints":{
          "shape":"RuntimeHints",
          "documentation":"<p>Runtime hints for the session state.</p>"
        }
      },
      "documentation":"<p>Specifications for the current state of the dialog between the user and the bot in the test set.</p>"
    },
    "IntentClassificationTestResultItem":{
      "type":"structure",
      "required":[
        "intentName",
        "multiTurnConversation",
        "resultCounts"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent.</p>"
        },
        "multiTurnConversation":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the conversation involves multiple turns or not.</p>"
        },
        "resultCounts":{
          "shape":"IntentClassificationTestResultItemCounts",
          "documentation":"<p>The result of the intent classification test.</p>"
        }
      },
      "documentation":"<p>Information for an intent that is classified by the test workbench.</p>"
    },
    "IntentClassificationTestResultItemCounts":{
      "type":"structure",
      "required":[
        "totalResultCount",
        "intentMatchResultCounts"
      ],
      "members":{
        "totalResultCount":{
          "shape":"Count",
          "documentation":"<p>The total number of results in the intent classification test.</p>"
        },
        "speechTranscriptionResultCounts":{
          "shape":"TestResultMatchStatusCountMap",
          "documentation":"<p>The number of matched, mismatched, and execution error results for speech transcription for the intent.</p>"
        },
        "intentMatchResultCounts":{
          "shape":"TestResultMatchStatusCountMap",
          "documentation":"<p>The number of matched and mismatched results for intent recognition for the intent.</p>"
        }
      },
      "documentation":"<p>The number of items in the intent classification test.</p>"
    },
    "IntentClassificationTestResultItemList":{
      "type":"list",
      "member":{"shape":"IntentClassificationTestResultItem"}
    },
    "IntentClassificationTestResults":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"IntentClassificationTestResultItemList",
          "documentation":"<p>A list of the results for the intent classification test.</p>"
        }
      },
      "documentation":"<p>Information for the results of the intent classification test. </p>"
    },
    "IntentClosingSetting":{
      "type":"structure",
      "members":{
        "closingResponse":{
          "shape":"ResponseSpecification",
          "documentation":"<p>The response that Amazon Lex sends to the user when the intent is complete.</p>"
        },
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Specifies whether an intent's closing response is used. When this field is false, the closing response isn't sent to the user. If the <code>active</code> field isn't specified, the default is true.</p>"
        },
        "nextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot executes after playing the intent's closing response.</p>"
        },
        "conditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches associated with the intent's closing response. These branches are executed when the <code>nextStep</code> attribute is set to <code>EvalutateConditional</code>.</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"],
      "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>"
        },
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Specifies whether the intent's confirmation is sent to the user. When this field is false, confirmation and declination responses aren't sent. If the <code>active</code> field isn't specified, the default is true.</p>"
        },
        "confirmationResponse":{"shape":"ResponseSpecification"},
        "confirmationNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot executes when the customer confirms the intent.</p>"
        },
        "confirmationConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the intent is closed.</p>"
        },
        "declinationNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot executes when the customer declines the intent.</p>"
        },
        "declinationConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the intent is declined.</p>"
        },
        "failureResponse":{"shape":"ResponseSpecification"},
        "failureNextStep":{
          "shape":"DialogState",
          "documentation":"<p>The next step to take in the conversation if the confirmation step fails.</p>"
        },
        "failureConditional":{"shape":"ConditionalSpecification"},
        "codeHook":{
          "shape":"DialogCodeHookInvocationSetting",
          "documentation":"<p>The <code>DialogCodeHookInvocationSetting</code> object associated with intent's confirmation step. The dialog code hook is triggered based on these invocation settings when the confirmation next step or declination next step or failure next step is <code>InvokeDialogCodeHook</code>. </p>"
        },
        "elicitationCodeHook":{
          "shape":"ElicitationCodeHookInvocationSetting",
          "documentation":"<p>The <code>DialogCodeHookInvocationSetting</code> used when the code hook is invoked during confirmation prompt retries.</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
    },
    "IntentLevelSlotResolutionTestResultItem":{
      "type":"structure",
      "required":[
        "intentName",
        "multiTurnConversation",
        "slotResolutionResults"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent that was recognized.</p>"
        },
        "multiTurnConversation":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the conversation involves multiple turns or not.</p>"
        },
        "slotResolutionResults":{
          "shape":"SlotResolutionTestResultItems",
          "documentation":"<p>The results for the slot resolution in the test execution result.</p>"
        }
      },
      "documentation":"<p>Information about intent-level slot resolution in a test result.</p>"
    },
    "IntentLevelSlotResolutionTestResultItemList":{
      "type":"list",
      "member":{"shape":"IntentLevelSlotResolutionTestResultItem"}
    },
    "IntentLevelSlotResolutionTestResults":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"IntentLevelSlotResolutionTestResultItemList",
          "documentation":"<p>Indicates the items for the slot level resolution for the intents.</p>"
        }
      },
      "documentation":"<p>Indicates the success or failure of slots at the intent level.</p>"
    },
    "IntentOverride":{
      "type":"structure",
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the intent. Only required when you're switching intents.</p>"
        },
        "slots":{
          "shape":"SlotValueOverrideMap",
          "documentation":"<p>A map of all of the slot value overrides for the intent. The name of the slot maps to the value of the slot. Slots that are not included in the map aren't overridden.</p>"
        }
      },
      "documentation":"<p>Override settings to configure the intent state.</p>"
    },
    "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>"
    },
    "IntentState":{
      "type":"string",
      "enum":[
        "Failed",
        "Fulfilled",
        "InProgress",
        "ReadyForFulfillment",
        "Waiting",
        "FulfillmentInProgress"
      ]
    },
    "IntentStatistics":{
      "type":"structure",
      "members":{
        "discoveredIntentCount":{
          "shape":"Count",
          "documentation":"<p>The number of recommended intents associated with the bot recommendation.</p>"
        }
      },
      "documentation":"<p>The object that contains the statistical summary of recommended intents associated with the bot recommendation.</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>The service encountered an unexpected condition. Try your request again.</p>",
      "error":{"httpStatusCode":500},
      "exception":true,
      "fault":true
    },
    "InvokedIntentSample":{
      "type":"structure",
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of an intent that was invoked.</p>"
        }
      },
      "documentation":"<p>An object containing the name of an intent that was invoked.</p>"
    },
    "InvokedIntentSamples":{
      "type":"list",
      "member":{"shape":"InvokedIntentSample"}
    },
    "ItemId":{
      "type":"string",
      "max":32,
      "min":1
    },
    "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 <code>AMAZON.KendraSearchIntent</code> 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 <code>AMAZON.KendraSearchIntent</code> 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 <code>AMAZON.KendraSearchIntent</code> 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 fulfills the user's request to a bot.</p>"
    },
    "LexTranscriptFilter":{
      "type":"structure",
      "members":{
        "dateRangeFilter":{
          "shape":"DateRangeFilter",
          "documentation":"<p>The object that contains a date range filter that will be applied to the transcript. Specify this object if you want Amazon Lex to only read the files that are within the date range.</p>"
        }
      },
      "documentation":"<p>The object that contains transcript filter details that are associated with a bot recommendation.</p>"
    },
    "ListAggregatedUtterancesRequest":{
      "type":"structure",
      "required":[
        "botId",
        "localeId",
        "aggregationDuration"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with this request.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the bot alias associated with this request. If you specify the bot alias, you can't specify the bot version.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the bot version associated with this request. If you specify the bot version, you can't specify the bot alias.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where the utterances were collected. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>"
        },
        "aggregationDuration":{
          "shape":"UtteranceAggregationDuration",
          "documentation":"<p>The time window for aggregating the utterance information. You can specify a time between one hour and two weeks.</p>"
        },
        "sortBy":{
          "shape":"AggregatedUtterancesSortBy",
          "documentation":"<p>Specifies sorting parameters for the list of utterances. You can sort by the hit count, the missed count, or the number of distinct sessions the utterance appeared in.</p>"
        },
        "filters":{
          "shape":"AggregatedUtterancesFilters",
          "documentation":"<p>Provides the specification of a filter used to limit the utterances 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 utterances 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. If you don't specify the <code>maxResults</code> parameter, 1,000 results are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the <code>ListAggregatedUtterances</code> operation contains more results that 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>"
        }
      }
    },
    "ListAggregatedUtterancesResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot that contains the utterances.</p>"
        },
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the bot alias that contains the utterances. If you specified the bot version, the bot alias ID isn't returned.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the bot version that contains the utterances. If you specified the bot alias, the bot version isn't returned.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale that the utterances are in.</p>"
        },
        "aggregationDuration":{
          "shape":"UtteranceAggregationDuration",
          "documentation":"<p>The time period used to aggregate the utterance data.</p>"
        },
        "aggregationWindowStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the aggregation window begins. Only data collected after this time is returned in the results.</p>"
        },
        "aggregationWindowEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the aggregation window ends. Only data collected between the start time and the end time are returned in the results. </p>"
        },
        "aggregationLastRefreshedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The last date and time that the aggregated data was collected. The time period depends on the length of the aggregation window.</p> <ul> <li> <p> <b>Hours</b> - for 1 hour time window, every half hour; otherwise every hour.</p> </li> <li> <p> <b>Days</b> - every 6 hours</p> </li> <li> <p> <b>Weeks</b> - for a one week time window, every 12 hours; otherwise, every day</p> </li> </ul>"
        },
        "aggregatedUtterancesSummaries":{
          "shape":"AggregatedUtterancesSummaryList",
          "documentation":"<p>Summaries of the aggregated utterance data. Each response contains information about the number of times that the utterance was seen during the time period, whether it was detected or missed, and when it was seen during the time period.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListAggregatedUtterances</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListAggregatedUtterances</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListBotAliasReplicasRequest":{
      "type":"structure",
      "required":[
        "botId",
        "replicaRegion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The request for the unique bot ID of the replicated bot created from the source bot alias.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The request for the secondary region of the replicated bot created from the source bot alias.</p>",
          "location":"uri",
          "locationName":"replicaRegion"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The request for maximum results to list the replicated bots created from the source bot alias.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The request for the next token for the replicated bot created from the source bot alias.</p>"
        }
      }
    },
    "ListBotAliasReplicasResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique bot ID of the replicated bot created from the source bot alias.</p>"
        },
        "sourceRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The source region of the replicated bot created from the source bot alias.</p>"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The secondary region of the replicated bot created from the source bot alias.</p>"
        },
        "botAliasReplicaSummaries":{
          "shape":"BotAliasReplicaSummaryList",
          "documentation":"<p>The summary information of the replicated bot created from the source bot alias.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The next token for the replicated bots created from the source bot alias.</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>"
        }
      }
    },
    "ListBotRecommendationsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the bot recommendation list.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the bot recommendation list.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation list.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of bot recommendations 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 ListBotRecommendation operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.</p>"
        }
      }
    },
    "ListBotRecommendationsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that contains the bot recommendation list.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the bot recommendation list.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation list.</p>"
        },
        "botRecommendationSummaries":{
          "shape":"BotRecommendationSummaryList",
          "documentation":"<p>Summary information for the bot recommendations that meet the filter specified in this request. The length of the list is specified in the maxResults parameter of the request. If there are more bot recommendations available, the nextToken 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 ListBotRecommendations operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListBotRecommendations operation request to get the next page of results. </p>"
        }
      }
    },
    "ListBotReplicasRequest":{
      "type":"structure",
      "required":["botId"],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The request for the unique bot IDs in the list of replicated bots.</p>",
          "location":"uri",
          "locationName":"botId"
        }
      }
    },
    "ListBotReplicasResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>the unique bot IDs in the list of replicated bots.</p>"
        },
        "sourceRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The source region of the source bots in the list of replicated bots.</p>"
        },
        "botReplicaSummaries":{
          "shape":"BotReplicaSummaryList",
          "documentation":"<p>The summary details for the replicated bots.</p>"
        }
      }
    },
    "ListBotResourceGenerationsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot whose generation requests you want to view.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot whose generation requests you want to view.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot whose generation requests you want to view.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "sortBy":{
          "shape":"GenerationSortBy",
          "documentation":"<p>An object containing information about the attribute and the method by which to sort the results</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results to return in the response.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the total number of results is greater than the number specified in the <code>maxResults</code>, the response returns a token in the <code>nextToken</code> field. Use this token when making a request to return the next batch of results.</p>"
        }
      }
    },
    "ListBotResourceGenerationsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot for which the generation requests were made.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot for which the generation requests were made.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot for which the generation requests were made.</p>"
        },
        "generationSummaries":{
          "shape":"GenerationSummaryList",
          "documentation":"<p>A list of objects, each containing information about a generation request for the bot locale.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the total number of results is greater than the number specified in the <code>maxResults</code>, the response returns a token in the <code>nextToken</code> field. Use this token when making a request to return the next batch of results.</p>"
        }
      }
    },
    "ListBotVersionReplicasRequest":{
      "type":"structure",
      "required":[
        "botId",
        "replicaRegion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The request for the unique ID in the list of replicated bots.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The request for the region used in the list of replicated bots.</p>",
          "location":"uri",
          "locationName":"replicaRegion"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum results given in the list of replicated bots.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The next token given in the list of replicated bots.</p>"
        },
        "sortBy":{
          "shape":"BotVersionReplicaSortBy",
          "documentation":"<p>The requested sort category for the list of replicated bots.</p>"
        }
      }
    },
    "ListBotVersionReplicasResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique ID of the bots in the list of replicated bots.</p>"
        },
        "sourceRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The source region used for the bots in the list of replicated bots.</p>"
        },
        "replicaRegion":{
          "shape":"ReplicaRegion",
          "documentation":"<p>The region used for the replicated bots in the list of replicated bots.</p>"
        },
        "botVersionReplicaSummaries":{
          "shape":"BotVersionReplicaSummaryList",
          "documentation":"<p>The information summary used for the replicated bots in the list of replicated bots.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The next token used for the replicated bots in the list of replicated bots.</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. </p> <p>Use the returned token in the <code>nextToken</code> parameter of a <code>ListBots</code> request to return the next page of results. For a complete set of results, call the <code>ListBots</code> operation until the <code>nextToken</code> returned in the response is null.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        }
      }
    },
    "ListCustomVocabularyItemsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The bot version of the bot to the list custom vocabulary request.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see Supported languages (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of items returned by the list operation.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The nextToken identifier to the list custom vocabulary request.</p>"
        }
      }
    },
    "ListCustomVocabularyItemsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot associated with this custom vocabulary.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The identifier of the version of the bot associated with this custom vocabulary.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale where this custom vocabulary is used. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\"> Supported Languages </a>.</p>"
        },
        "customVocabularyItems":{
          "shape":"CustomVocabularyItems",
          "documentation":"<p>The custom vocabulary items from the list custom vocabulary response.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>The nextToken identifier to the list custom vocabulary response.</p>"
        }
      }
    },
    "ListExportsRequest":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier that Amazon Lex assigned to the bot.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot to list exports for. </p>"
        },
        "sortBy":{
          "shape":"ExportSortBy",
          "documentation":"<p>Determines the field that the list of exports is sorted by. You can sort by the <code>LastUpdatedDateTime</code> field in ascending or descending order.</p>"
        },
        "filters":{
          "shape":"ExportFilters",
          "documentation":"<p>Provides the specification of a filter used to limit the exports 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 exports 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>ListExports</code> operation contains more results that specified in the <code>maxResults</code> parameter, a token is returned in the response. </p> <p>Use the returned token in the <code>nextToken</code> parameter of a <code>ListExports</code> request to return the next page of results. For a complete set of results, call the <code>ListExports</code> operation until the <code>nextToken</code> returned in the response is null.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>Specifies the resources that should be exported. If you don't specify a resource type in the <code>filters</code> parameter, both bot locales and custom vocabularies are exported.</p>"
        }
      }
    },
    "ListExportsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned to the bot by Amazon Lex.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot that was exported.</p>"
        },
        "exportSummaries":{
          "shape":"ExportSummaryList",
          "documentation":"<p>Summary information for the exports that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter. If there are more exports 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>ListExports</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListExports</code> operation request to get the next page of results.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale specified in the request.</p>"
        }
      }
    },
    "ListImportsRequest":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier that Amazon Lex assigned to the bot.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot to list imports for.</p>"
        },
        "sortBy":{
          "shape":"ImportSortBy",
          "documentation":"<p>Determines the field that the list of imports is sorted by. You can sort by the <code>LastUpdatedDateTime</code> field in ascending or descending order.</p>"
        },
        "filters":{
          "shape":"ImportFilters",
          "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 imports 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>ListImports</code> operation contains more results than specified in the <code>maxResults</code> parameter, a token is returned in the response.</p> <p>Use the returned token in the <code>nextToken</code> parameter of a <code>ListImports</code> request to return the next page of results. For a complete set of results, call the <code>ListImports</code> operation until the <code>nextToken</code> returned in the response is null.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>Specifies the locale that should be present in the list. If you don't specify a resource type in the <code>filters</code> parameter, the list contains both bot locales and custom vocabularies.</p>"
        }
      }
    },
    "ListImportsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier assigned by Amazon Lex to the bot.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that was imported. It will always be <code>DRAFT</code>.</p>"
        },
        "importSummaries":{
          "shape":"ImportSummaryList",
          "documentation":"<p>Summary information for the imports that meet the filter criteria specified in the request. The length of the list is specified in the <code>maxResults</code> parameter. If there are more imports 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>ListImports</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListImports</code> operation request to get the next page of results.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale specified in the request.</p>"
        }
      }
    },
    "ListIntentMetricsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime",
        "metrics"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve intent metrics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The timestamp that marks the beginning of the range of time for which you want to see intent metrics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see intent metrics.</p>"
        },
        "metrics":{
          "shape":"AnalyticsIntentMetrics",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the order by which to organize the results.</p>"
        },
        "binBy":{
          "shape":"AnalyticsBinByList",
          "documentation":"<p>A list of objects, each of which contains specifications for organizing the results by time.</p>"
        },
        "groupBy":{
          "shape":"AnalyticsIntentGroupByList",
          "documentation":"<p>A list of objects, each of which specifies how to group the results. You can group by the following criteria:</p> <ul> <li> <p> <code>IntentName</code> – The name of the intent.</p> </li> <li> <p> <code>IntentEndState</code> – The final state of the intent. The possible end states are detailed in <a href=\"https://docs.aws.amazon.com/analytics-key-definitions-intents\">Key definitions</a> in the user guide.</p> </li> </ul>"
        },
        "filters":{
          "shape":"AnalyticsIntentFilters",
          "documentation":"<p>A list of objects, each of which describes a condition by which you want to filter the results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results 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 ListIntentMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListIntentMetrics request to return the next page of results. For a complete set of results, call the ListIntentMetrics operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListIntentMetricsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you retrieved intent metrics.</p>"
        },
        "results":{
          "shape":"AnalyticsIntentResults",
          "documentation":"<p>The results for the intent metrics.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListIntentMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListIntentMetrics request to return the next page of results. For a complete set of results, call the ListIntentMetrics operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListIntentPathsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime",
        "intentPath"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve intent path metrics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the beginning of the range of time for which you want to see intent path metrics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see intent path metrics.</p>"
        },
        "intentPath":{
          "shape":"AnalyticsPath",
          "documentation":"<p>The intent path for which you want to retrieve metrics. Use a forward slash to separate intents in the path. For example:</p> <ul> <li> <p>/BookCar</p> </li> <li> <p>/BookCar/BookHotel</p> </li> <li> <p>/BookHotel/BookCar</p> </li> </ul>"
        },
        "filters":{
          "shape":"AnalyticsPathFilters",
          "documentation":"<p>A list of objects, each describes a condition by which you want to filter the results.</p>"
        }
      }
    },
    "ListIntentPathsResponse":{
      "type":"structure",
      "members":{
        "nodeSummaries":{
          "shape":"AnalyticsIntentNodeSummaries",
          "documentation":"<p>A list of objects, each of which contains information about a node in the intent path for which you requested metrics.</p>"
        }
      }
    },
    "ListIntentStageMetricsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime",
        "metrics"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve intent stage metrics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the beginning of the range of time for which you want to see intent stage metrics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see intent stage metrics.</p>"
        },
        "metrics":{
          "shape":"AnalyticsIntentStageMetrics",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        },
        "binBy":{
          "shape":"AnalyticsBinByList",
          "documentation":"<p>A list of objects, each of which contains specifications for organizing the results by time.</p>"
        },
        "groupBy":{
          "shape":"AnalyticsIntentStageGroupByList",
          "documentation":"<p>A list of objects, each of which specifies how to group the results. You can group by the following criteria:</p> <ul> <li> <p> <code>IntentStageName</code> – The name of the intent stage.</p> </li> <li> <p> <code>SwitchedToIntent</code> – The intent to which the conversation was switched (if any).</p> </li> </ul>"
        },
        "filters":{
          "shape":"AnalyticsIntentStageFilters",
          "documentation":"<p>A list of objects, each of which describes a condition by which you want to filter the results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results 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 ListIntentStageMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListIntentStageMetrics request to return the next page of results. For a complete set of results, call the ListIntentStageMetrics operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListIntentStageMetricsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you retrieved intent stage metrics.</p>"
        },
        "results":{
          "shape":"AnalyticsIntentStageResults",
          "documentation":"<p>The results for the intent stage metrics.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListIntentStageMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListIntentStageMetrics request to return the next page of results. For a complete set of results, call the ListIntentStageMetrics operation until the nextToken returned in the response is null.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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.</p> <p>Use the returned token in the <code>nextToken</code> parameter of a <code>ListIntents</code> request to return the next page of results. For a complete set of results, call the <code>ListIntents</code> operation until the <code>nextToken</code> returned in the response is null.</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>"
        }
      }
    },
    "ListRecommendedIntentsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "botRecommendationId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the recommended intents.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the recommended intents.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the recommended intents.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot recommendation that contains the recommended intents.</p>",
          "location":"uri",
          "locationName":"botRecommendationId"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListRecommendedIntents operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of bot recommendations 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>"
        }
      }
    },
    "ListRecommendedIntentsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the recommended intent.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot that contains the intent.</p>"
        },
        "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/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot recommendation that contains the recommended intent.</p>"
        },
        "summaryList":{
          "shape":"RecommendedIntentSummaryList",
          "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 maxResults parameter of the request. If there are more intents available, the nextToken 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 ListRecommendedIntents operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListRecommendedIntents operation request to get the next page of results.</p>"
        }
      }
    },
    "ListSessionAnalyticsDataRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve session analytics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the beginning of the range of time for which you want to see session analytics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see session analytics.</p>"
        },
        "sortBy":{
          "shape":"SessionDataSortBy",
          "documentation":"<p>An object specifying the measure and method by which to sort the session analytics data.</p>"
        },
        "filters":{
          "shape":"AnalyticsSessionFilters",
          "documentation":"<p>A list of objects, each of which describes a condition by which you want to filter the results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results 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 ListSessionAnalyticsData operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListSessionAnalyticsData request to return the next page of results. For a complete set of results, call the ListSessionAnalyticsData operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListSessionAnalyticsDataResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that the sessions belong to.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListSessionAnalyticsData operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListSessionAnalyticsData request to return the next page of results. For a complete set of results, call the ListSessionAnalyticsData operation until the nextToken returned in the response is null.</p>"
        },
        "sessions":{
          "shape":"SessionSpecifications",
          "documentation":"<p>A list of objects, each of which contains information about a session with the bot.</p>"
        }
      }
    },
    "ListSessionMetricsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime",
        "metrics"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve session metrics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the beginning of the range of time for which you want to see session metrics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see session metrics.</p>"
        },
        "metrics":{
          "shape":"AnalyticsSessionMetrics",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        },
        "binBy":{
          "shape":"AnalyticsBinByList",
          "documentation":"<p>A list of objects, each of which contains specifications for organizing the results by time.</p>"
        },
        "groupBy":{
          "shape":"AnalyticsSessionGroupByList",
          "documentation":"<p>A list of objects, each of which specifies how to group the results. You can group by the following criteria:</p> <ul> <li> <p> <code>ConversationEndState</code> – The final state of the conversation. The possible end states are detailed in <a href=\"https://docs.aws.amazon.com/analytics-key-definitions-conversations\">Key definitions</a> in the user guide.</p> </li> <li> <p> <code>LocaleId</code> – The unique identifier of the bot locale.</p> </li> </ul>"
        },
        "filters":{
          "shape":"AnalyticsSessionFilters",
          "documentation":"<p>A list of objects, each of which describes a condition by which you want to filter the results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results 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 ListSessionMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListSessionMetrics request to return the next page of results. For a complete set of results, call the ListSessionMetrics operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListSessionMetricsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you retrieved session metrics.</p>"
        },
        "results":{
          "shape":"AnalyticsSessionResults",
          "documentation":"<p>The results for the session metrics.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListSessionMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListSessionMetrics request to return the next page of results. For a complete set of results, call the ListSessionMetrics operation until the nextToken returned in the response is null.</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/lexv2/latest/dg/how-languages.html\">Supported languages</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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        }
      }
    },
    "ListTestExecutionResultItemsRequest":{
      "type":"structure",
      "required":[
        "testExecutionId",
        "resultFilterBy"
      ],
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test execution to list the result items.</p>",
          "location":"uri",
          "locationName":"testExecutionId"
        },
        "resultFilterBy":{
          "shape":"TestExecutionResultFilterBy",
          "documentation":"<p>The filter for the list of results from the test set execution.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of test execution result items to return in each page. 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>ListTestExecutionResultItems</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>"
        }
      }
    },
    "ListTestExecutionResultItemsResponse":{
      "type":"structure",
      "members":{
        "testExecutionResults":{
          "shape":"TestExecutionResultItems",
          "documentation":"<p>The list of results from the test execution.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the <code>ListTestExecutionResultItems</code> operation. If the <code>nextToken</code> field is present, you send the contents as the <code>nextToken</code> parameter of a <code>ListTestExecutionResultItems</code> operation request to get the next page of results.</p>"
        }
      }
    },
    "ListTestExecutionsRequest":{
      "type":"structure",
      "members":{
        "sortBy":{
          "shape":"TestExecutionSortBy",
          "documentation":"<p>The sort order of the test set executions.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of test executions to return in each page. 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 ListTestExecutions operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.</p>"
        }
      }
    },
    "ListTestExecutionsResponse":{
      "type":"structure",
      "members":{
        "testExecutions":{
          "shape":"TestExecutionSummaryList",
          "documentation":"<p>The list of test executions.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the ListTestExecutions operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListTestExecutions operation request to get the next page of results.</p>"
        }
      }
    },
    "ListTestSetRecordsRequest":{
      "type":"structure",
      "required":["testSetId"],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the test set to list its test set records.</p>",
          "location":"uri",
          "locationName":"testSetId"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of test set records to return in each page. If there are fewer records than the max page size, only the actual number of records are returned.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListTestSetRecords operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.</p>"
        }
      }
    },
    "ListTestSetRecordsResponse":{
      "type":"structure",
      "members":{
        "testSetRecords":{
          "shape":"TestSetTurnRecordList",
          "documentation":"<p>The list of records from the test set.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more records to return in a response to the ListTestSetRecords operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListTestSetRecords operation request to get the next page of records.</p>"
        }
      }
    },
    "ListTestSetsRequest":{
      "type":"structure",
      "members":{
        "sortBy":{
          "shape":"TestSetSortBy",
          "documentation":"<p>The sort order for the list of test sets.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of test sets to return in each page. 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 ListTestSets operation contains more results than specified in the maxResults parameter, a token is returned in the response. Use that token in the nextToken parameter to return the next page of results.</p>"
        }
      }
    },
    "ListTestSetsResponse":{
      "type":"structure",
      "members":{
        "testSets":{
          "shape":"TestSetSummaryList",
          "documentation":"<p>The selected test sets in a list of test sets.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>A token that indicates whether there are more results to return in a response to the ListTestSets operation. If the nextToken field is present, you send the contents as the nextToken parameter of a ListTestSets operation request to get the next page of results.</p>"
        }
      }
    },
    "ListUtteranceAnalyticsDataRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve utterance analytics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the beginning of the range of time for which you want to see utterance analytics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see utterance analytics.</p>"
        },
        "sortBy":{
          "shape":"UtteranceDataSortBy",
          "documentation":"<p>An object specifying the measure and method by which to sort the utterance analytics data.</p>"
        },
        "filters":{
          "shape":"AnalyticsUtteranceFilters",
          "documentation":"<p>A list of objects, each of which describes a condition by which you want to filter the results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results 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 ListUtteranceAnalyticsData operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListUtteranceAnalyticsData request to return the next page of results. For a complete set of results, call the ListUtteranceAnalyticsData operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListUtteranceAnalyticsDataResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot that the utterances belong to.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListUtteranceAnalyticsData operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListUtteranceAnalyticsData request to return the next page of results. For a complete set of results, call the ListUtteranceAnalyticsData operation until the nextToken returned in the response is null.</p>"
        },
        "utterances":{
          "shape":"UtteranceSpecifications",
          "documentation":"<p>A list of objects, each of which contains information about an utterance in a user session with your bot.</p>"
        }
      }
    },
    "ListUtteranceMetricsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "startDateTime",
        "endDateTime",
        "metrics"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you want to retrieve utterance metrics.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "startDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the beginning of the range of time for which you want to see utterance metrics.</p>"
        },
        "endDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that marks the end of the range of time for which you want to see utterance metrics.</p>"
        },
        "metrics":{
          "shape":"AnalyticsUtteranceMetrics",
          "documentation":"<p>A list of objects, each of which contains a metric you want to list, the statistic for the metric you want to return, and the method by which to organize the results.</p>"
        },
        "binBy":{
          "shape":"AnalyticsBinByList",
          "documentation":"<p>A list of objects, each of which contains specifications for organizing the results by time.</p>"
        },
        "groupBy":{
          "shape":"AnalyticsUtteranceGroupByList",
          "documentation":"<p>A list of objects, each of which specifies how to group the results. You can group by the following criteria:</p> <ul> <li> <p> <code>UtteranceText</code> – The transcription of the utterance.</p> </li> <li> <p> <code>UtteranceState</code> – The state of the utterance. The possible states are detailed in <a href=\"https://docs.aws.amazon.com/analytics-key-definitions-utterances\">Key definitions</a> in the user guide.</p> </li> </ul>"
        },
        "attributes":{
          "shape":"AnalyticsUtteranceAttributes",
          "documentation":"<p>A list containing attributes related to the utterance that you want the response to return. The following attributes are possible:</p> <ul> <li> <p> <code>LastUsedIntent</code> – The last used intent at the time of the utterance.</p> </li> </ul>"
        },
        "filters":{
          "shape":"AnalyticsUtteranceFilters",
          "documentation":"<p>A list of objects, each of which describes a condition by which you want to filter the results.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of results 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 ListUtteranceMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListUtteranceMetrics request to return the next page of results. For a complete set of results, call the ListUtteranceMetrics operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "ListUtteranceMetricsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier for the bot for which you retrieved utterance metrics.</p>"
        },
        "results":{
          "shape":"AnalyticsUtteranceResults",
          "documentation":"<p>The results for the utterance metrics.</p>"
        },
        "nextToken":{
          "shape":"NextToken",
          "documentation":"<p>If the response from the ListUtteranceMetrics operation contains more results than specified in the maxResults parameter, a token is returned in the response.</p> <p>Use the returned token in the nextToken parameter of a ListUtteranceMetrics request to return the next page of results. For a complete set of results, call the ListUtteranceMetrics operation until the nextToken returned in the response is null.</p>"
        }
      }
    },
    "LocaleId":{"type":"string"},
    "LocaleName":{"type":"string"},
    "LogPrefix":{
      "type":"string",
      "max":1024
    },
    "MaxResults":{
      "type":"integer",
      "box":true,
      "max":1000,
      "min":1
    },
    "MaxUtteranceDigits":{
      "type":"integer",
      "max":1024,
      "min":1
    },
    "MergeStrategy":{
      "type":"string",
      "enum":[
        "Overwrite",
        "FailOnConflict",
        "Append"
      ]
    },
    "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 its 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
    },
    "MessageSelectionStrategy":{
      "type":"string",
      "enum":[
        "Random",
        "Ordered"
      ]
    },
    "MessageVariationsList":{
      "type":"list",
      "member":{"shape":"Message"},
      "max":2,
      "min":0
    },
    "MissedCount":{"type":"integer"},
    "MultipleValuesSetting":{
      "type":"structure",
      "members":{
        "allowMultipleValues":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether a slot can return multiple values. When <code>true</code>, the slot may return more than one value in a response. When <code>false</code>, the slot returns only a single value.</p> <p>Multi-value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>.</p> <p>If the <code>allowMutlipleValues</code> is not set, the default value is <code>false</code>.</p>"
        }
      },
      "documentation":"<p>Indicates whether a slot can return multiple values.</p>"
    },
    "Name":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^([0-9a-zA-Z][_-]?){1,100}$"
    },
    "NewCustomVocabularyItem":{
      "type":"structure",
      "required":["phrase"],
      "members":{
        "phrase":{
          "shape":"Phrase",
          "documentation":"<p>The unique phrase for the new custom vocabulary item from the custom vocabulary list.</p>"
        },
        "weight":{
          "shape":"Weight",
          "documentation":"<p>The weight assigned to the new custom vocabulary item from the custom vocabulary list.</p>"
        },
        "displayAs":{
          "shape":"Phrase",
          "documentation":"<p>The display as value assigned to the new custom vocabulary item from the custom vocabulary list.</p>"
        }
      },
      "documentation":"<p>The new custom vocabulary item from the custom vocabulary list.</p>"
    },
    "NextIndex":{
      "type":"integer",
      "box":true,
      "max":10000000,
      "min":0
    },
    "NextToken":{"type":"string"},
    "NonEmptyString":{
      "type":"string",
      "min":1
    },
    "NumericalBotVersion":{
      "type":"string",
      "max":5,
      "min":1,
      "pattern":"^[0-9]+$"
    },
    "OSIncludeFields":{
      "type":"list",
      "member":{"shape":"IncludeField"},
      "max":5,
      "min":1
    },
    "OSIndexName":{
      "type":"string",
      "max":255,
      "min":1,
      "pattern":"^(?![_-])[a-z0-9][a-z0-9_\\-]{0,254}$"
    },
    "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"
      ]
    },
    "ObjectPrefix":{
      "type":"string",
      "min":1,
      "pattern":"^[\\/]?+[a-zA-Z0-9!_.*'()-]+(\\/[a-zA-Z0-9!_.*'()-]+)*$"
    },
    "ObjectPrefixes":{
      "type":"list",
      "member":{"shape":"ObjectPrefix"},
      "max":2,
      "min":1
    },
    "OpensearchConfiguration":{
      "type":"structure",
      "required":[
        "domainEndpoint",
        "indexName"
      ],
      "members":{
        "domainEndpoint":{
          "shape":"DomainEndpoint",
          "documentation":"<p>The endpoint of the Amazon OpenSearch Service domain.</p>"
        },
        "indexName":{
          "shape":"OSIndexName",
          "documentation":"<p>The name of the Amazon OpenSearch Service index.</p>"
        },
        "exactResponse":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to return an exact response or to return an answer generated by the model using the fields you specify from the database.</p>"
        },
        "exactResponseFields":{
          "shape":"ExactResponseFields",
          "documentation":"<p>Contains the names of the fields used for an exact response to the user.</p>"
        },
        "includeFields":{
          "shape":"OSIncludeFields",
          "documentation":"<p>Contains a list of fields from the Amazon OpenSearch Service that the model can use to generate the answer to the query.</p>"
        }
      },
      "documentation":"<p>Contains details about the configuration of the Amazon OpenSearch Service database used for the <code>AMAZON.QnAIntent</code>.</p>"
    },
    "Operation":{
      "type":"string",
      "max":50,
      "min":5,
      "pattern":"lex:[a-zA-Z*]+$"
    },
    "OperationList":{
      "type":"list",
      "member":{"shape":"Operation"}
    },
    "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
    },
    "OverallTestResultItem":{
      "type":"structure",
      "required":[
        "multiTurnConversation",
        "totalResultCount",
        "endToEndResultCounts"
      ],
      "members":{
        "multiTurnConversation":{
          "shape":"Boolean",
          "documentation":"<p>Indicates whether the conversation contains multiple turns or not.</p>"
        },
        "totalResultCount":{
          "shape":"Count",
          "documentation":"<p>The total number of overall results in the result of the test execution.</p>"
        },
        "speechTranscriptionResultCounts":{
          "shape":"TestResultMatchStatusCountMap",
          "documentation":"<p>The number of speech transcription results in the overall test.</p>"
        },
        "endToEndResultCounts":{
          "shape":"TestResultMatchStatusCountMap",
          "documentation":"<p>The number of results that succeeded.</p>"
        }
      },
      "documentation":"<p>Information about the overall results for a test execution result.</p>"
    },
    "OverallTestResultItemList":{
      "type":"list",
      "member":{"shape":"OverallTestResultItem"}
    },
    "OverallTestResults":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"OverallTestResultItemList",
          "documentation":"<p>A list of the overall test results.</p>"
        }
      },
      "documentation":"<p>Information about the overall test results.</p>"
    },
    "ParentBotNetwork":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the network of bots assigned by Amazon Lex.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the network of bots.</p>"
        }
      },
      "documentation":"<p>A network of bots.</p>"
    },
    "ParentBotNetworks":{
      "type":"list",
      "member":{"shape":"ParentBotNetwork"},
      "max":30,
      "min":0
    },
    "PathFormat":{
      "type":"structure",
      "members":{
        "objectPrefixes":{
          "shape":"ObjectPrefixes",
          "documentation":"<p>A list of Amazon S3 prefixes that points to sub-folders in the Amazon S3 bucket. Specify this list if you only want Lex to read the files under this set of sub-folders.</p>"
        }
      },
      "documentation":"<p>The object that contains a path format that will be applied when Amazon Lex reads the transcript file in the bucket you provide. Specify this object if you only want Lex to read a subset of files in your Amazon S3 bucket.</p>"
    },
    "Phrase":{
      "type":"string",
      "max":100,
      "min":1
    },
    "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
    },
    "Policy":{
      "type":"string",
      "min":2
    },
    "PostDialogCodeHookInvocationSpecification":{
      "type":"structure",
      "members":{
        "successResponse":{"shape":"ResponseSpecification"},
        "successNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifics the next step the bot runs after the dialog code hook finishes successfully. </p>"
        },
        "successConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the dialog code hook finishes successfully.</p>"
        },
        "failureResponse":{"shape":"ResponseSpecification"},
        "failureNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step the bot runs after the dialog code hook throws an exception or returns with the <code>State</code> field of the <code>Intent</code> object set to <code>Failed</code>.</p>"
        },
        "failureConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the dialog code hook throws an exception or returns with the <code>State</code> field of the <code>Intent</code> object set to <code>Failed</code>.</p>"
        },
        "timeoutResponse":{"shape":"ResponseSpecification"},
        "timeoutNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot runs when the code hook times out.</p>"
        },
        "timeoutConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate if the code hook times out.</p>"
        }
      },
      "documentation":"<p>Specifies next steps to run after the dialog code hook finishes.</p>"
    },
    "PostFulfillmentStatusSpecification":{
      "type":"structure",
      "members":{
        "successResponse":{"shape":"ResponseSpecification"},
        "failureResponse":{"shape":"ResponseSpecification"},
        "timeoutResponse":{"shape":"ResponseSpecification"},
        "successNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step in the conversation that Amazon Lex invokes when the fulfillment code hook completes successfully.</p>"
        },
        "successConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the fulfillment code hook finishes successfully.</p>"
        },
        "failureNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step the bot runs after the fulfillment code hook throws an exception or returns with the <code>State</code> field of the <code>Intent</code> object set to <code>Failed</code>.</p>"
        },
        "failureConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the fulfillment code hook throws an exception or returns with the <code>State</code> field of the <code>Intent</code> object set to <code>Failed</code>.</p>"
        },
        "timeoutNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot runs when the fulfillment code hook times out.</p>"
        },
        "timeoutConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate if the fulfillment code hook times out.</p>"
        }
      },
      "documentation":"<p>Provides a setting that determines whether the post-fulfillment response is sent to the user. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete\">https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete</a> </p>"
    },
    "PreconditionFailedException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>Your request couldn't be completed because one or more request fields aren't valid. Check the fields in your request and try again.</p>",
      "error":{"httpStatusCode":412},
      "exception":true
    },
    "PresignedS3Url":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "Principal":{
      "type":"structure",
      "members":{
        "service":{
          "shape":"ServicePrincipal",
          "documentation":"<p>The name of the Amazon Web Services service that should allowed or denied access to an Amazon Lex action.</p>"
        },
        "arn":{
          "shape":"PrincipalArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of the principal.</p>"
        }
      },
      "documentation":"<p>The IAM principal that you allowing or denying access to an Amazon Lex action. You must provide a <code>service</code> or an <code>arn</code>, but not both in the same statement. For more information, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html\"> AWS JSON policy elements: Principal </a>.</p>"
    },
    "PrincipalArn":{
      "type":"string",
      "max":1024,
      "min":30,
      "pattern":"^arn:aws:iam::[0-9]{12}:(root|(user|role)/.*)$"
    },
    "PrincipalList":{
      "type":"list",
      "member":{"shape":"Principal"}
    },
    "PriorityValue":{
      "type":"integer",
      "max":100,
      "min":0
    },
    "PromptAttempt":{
      "type":"string",
      "documentation":"<p>The attempt name of attempts of a prompt.</p>",
      "enum":[
        "Initial",
        "Retry1",
        "Retry2",
        "Retry3",
        "Retry4",
        "Retry5"
      ]
    },
    "PromptAttemptSpecification":{
      "type":"structure",
      "required":["allowedInputTypes"],
      "members":{
        "allowInterrupt":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Indicates whether the user can interrupt a speech prompt attempt from the bot.</p>"
        },
        "allowedInputTypes":{
          "shape":"AllowedInputTypes",
          "documentation":"<p>Indicates the allowed input types of the prompt attempt.</p>"
        },
        "audioAndDTMFInputSpecification":{
          "shape":"AudioAndDTMFInputSpecification",
          "documentation":"<p>Specifies the settings on audio and DTMF input.</p>"
        },
        "textInputSpecification":{
          "shape":"TextInputSpecification",
          "documentation":"<p>Specifies the settings on text input.</p>"
        }
      },
      "documentation":"<p>Specifies the settings on a prompt attempt.</p>"
    },
    "PromptAttemptsSpecificationMap":{
      "type":"map",
      "key":{"shape":"PromptAttempt"},
      "value":{"shape":"PromptAttemptSpecification"}
    },
    "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 response 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>"
        },
        "messageSelectionStrategy":{
          "shape":"MessageSelectionStrategy",
          "documentation":"<p>Indicates how a message is selected from a message group among retries.</p>"
        },
        "promptAttemptsSpecification":{
          "shape":"PromptAttemptsSpecificationMap",
          "documentation":"<p>Specifies the advanced settings on each attempt of the prompt.</p>"
        }
      },
      "documentation":"<p>Specifies a list of message groups that Amazon Lex sends to a user to elicit a response.</p>"
    },
    "QnAIntentConfiguration":{
      "type":"structure",
      "members":{
        "dataSourceConfiguration":{
          "shape":"DataSourceConfiguration",
          "documentation":"<p>Contains details about the configuration of the data source used for the <code>AMAZON.QnAIntent</code>.</p>"
        },
        "bedrockModelConfiguration":{"shape":"BedrockModelSpecification"}
      },
      "documentation":"<p>Details about the the configuration of the built-in <code>Amazon.QnAIntent</code>.</p>"
    },
    "QnAKendraConfiguration":{
      "type":"structure",
      "required":["kendraIndex"],
      "members":{
        "kendraIndex":{
          "shape":"KendraIndexArn",
          "documentation":"<p>The ARN of the Amazon Kendra index to use.</p>"
        },
        "queryFilterStringEnabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable an Amazon Kendra filter string or not.</p>"
        },
        "queryFilterString":{
          "shape":"QueryFilterString",
          "documentation":"<p>Contains the Amazon Kendra filter string to use if enabled. For more information on the Amazon Kendra search filter JSON format, see <a href=\"https://docs.aws.amazon.com/kendra/latest/dg/filtering.html#search-filtering\">Using document attributes to filter search results</a>.</p>"
        },
        "exactResponse":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to return an exact response from the Amazon Kendra index or to let the Amazon Bedrock model you select generate a response based on the results. To use this feature, you must first add FAQ questions to your index by following the steps at <a href=\"https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html\">Adding frequently asked questions (FAQs) to an index</a>.</p>"
        }
      },
      "documentation":"<p>Contains details about the configuration of the Amazon Kendra index used for the <code>AMAZON.QnAIntent</code>.</p>"
    },
    "QueryFilterString":{
      "type":"string",
      "max":5000,
      "min":1
    },
    "QuestionField":{"type":"string"},
    "RecommendedAction":{"type":"string"},
    "RecommendedActions":{
      "type":"list",
      "member":{"shape":"RecommendedAction"}
    },
    "RecommendedIntentSummary":{
      "type":"structure",
      "members":{
        "intentId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of a recommended intent associated with the bot recommendation.</p>"
        },
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of a recommended intent associated with the bot recommendation.</p>"
        },
        "sampleUtterancesCount":{
          "shape":"SampleUtterancesCount",
          "documentation":"<p>The count of sample utterances of a recommended intent that is associated with a bot recommendation.</p>"
        }
      },
      "documentation":"<p>An object that contains a summary of a recommended intent.</p>"
    },
    "RecommendedIntentSummaryList":{
      "type":"list",
      "member":{"shape":"RecommendedIntentSummary"}
    },
    "RecordNumber":{
      "type":"long",
      "max":200000,
      "min":1
    },
    "RegexPattern":{
      "type":"string",
      "max":300,
      "min":1
    },
    "RelativeAggregationDuration":{
      "type":"structure",
      "required":[
        "timeDimension",
        "timeValue"
      ],
      "members":{
        "timeDimension":{
          "shape":"TimeDimension",
          "documentation":"<p>The type of time period that the <code>timeValue</code> field represents. </p>"
        },
        "timeValue":{
          "shape":"TimeValue",
          "documentation":"<p>The period of the time window to gather statistics for. The valid value depends on the setting of the <code>timeDimension</code> field.</p> <ul> <li> <p> <code>Hours</code> - 1/3/6/12/24</p> </li> <li> <p> <code>Days</code> - 3</p> </li> <li> <p> <code>Weeks</code> - 1/2</p> </li> </ul>"
        }
      },
      "documentation":"<p>Specifies the time window that utterance statistics are returned for. The time window is always relative to the last time that the that utterances were aggregated. For example, if the <code>ListAggregatedUtterances</code> operation is called at 1600, the time window is set to 1 hour, and the last refresh time was 1530, only utterances made between 1430 and 1530 are returned.</p> <p>You can choose the time window that statistics should be returned for.</p> <ul> <li> <p> <b>Hours</b> - You can request utterance statistics for 1, 3, 6, 12, or 24 hour time windows. Statistics are refreshed every half hour for 1 hour time windows, and hourly for the other time windows.</p> </li> <li> <p> <b>Days</b> - You can request utterance statistics for 3 days. Statistics are refreshed every 6 hours.</p> </li> <li> <p> <b>Weeks</b> - You can see statistics for one or two weeks. Statistics are refreshed every 12 hours for one week time windows, and once per day for two week time windows.</p> </li> </ul>"
    },
    "ReplicaRegion":{
      "type":"string",
      "documentation":"<p>The region that contains the replicated bots. Minimum value = 2, maximum value = 25.</p>",
      "max":25,
      "min":2
    },
    "ResourceCount":{"type":"integer"},
    "ResourceNotFoundException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>You asked to describe a resource that doesn't exist. Check the resource that you are requesting and try again.</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"},
    "RevisionId":{
      "type":"string",
      "max":5,
      "min":1,
      "pattern":"^[0-9]+$"
    },
    "RoleArn":{
      "type":"string",
      "max":2048,
      "min":32,
      "pattern":"^arn:aws:iam::[0-9]{12}:role/.*$"
    },
    "RuntimeHintDetails":{
      "type":"structure",
      "members":{
        "runtimeHintValues":{
          "shape":"RuntimeHintValuesList",
          "documentation":"<p>One or more strings that Amazon Lex should look for in the input to the bot. Each phrase is given preference when deciding on slot values.</p>"
        },
        "subSlotHints":{
          "shape":"SlotHintsSlotMap",
          "documentation":"<p>A map of constituent sub slot names inside a composite slot in the intent and the phrases that should be added for each sub slot. Inside each composite slot hints, this structure provides a mechanism to add granular sub slot phrases. Only sub slot hints are supported for composite slots. The intent name, composite slot name and the constituent sub slot names must exist.</p>"
        }
      },
      "documentation":"<p>Provides an array of phrases that should be given preference when resolving values for a slot.</p>"
    },
    "RuntimeHintPhrase":{
      "type":"string",
      "max":140,
      "min":1
    },
    "RuntimeHintValue":{
      "type":"structure",
      "required":["phrase"],
      "members":{
        "phrase":{
          "shape":"RuntimeHintPhrase",
          "documentation":"<p>The phrase that Amazon Lex should look for in the user's input to the bot.</p>"
        }
      },
      "documentation":"<p>Provides the phrase that Amazon Lex should look for in the user's input to the bot.</p>"
    },
    "RuntimeHintValuesList":{
      "type":"list",
      "member":{"shape":"RuntimeHintValue"},
      "max":100,
      "min":1
    },
    "RuntimeHints":{
      "type":"structure",
      "members":{
        "slotHints":{
          "shape":"SlotHintsIntentMap",
          "documentation":"<p>A list of the slots in the intent that should have runtime hints added, and the phrases that should be added for each slot.</p> <p>The first level of the <code>slotHints</code> map is the name of the intent. The second level is the name of the slot within the intent. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/using-hints.html\">Using hints to improve accuracy</a>.</p> <p>The intent name and slot name must exist.</p>"
        }
      },
      "documentation":"<p>You can provide Amazon Lex with hints to the phrases that a customer is likely to use for a slot. When a slot with hints is resolved, the phrases in the runtime hints are preferred in the resolution. You can provide hints for a maximum of 100 intents. You can provide a maximum of 100 slots.</p> <p>Before you can use runtime hints with an existing bot, you must first rebuild the bot.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/using-hints.html\">Using runtime hints to improve recognition of slot values</a>.</p>"
    },
    "RuntimeSettings":{
      "type":"structure",
      "members":{
        "slotResolutionImprovement":{
          "shape":"SlotResolutionImprovementSpecification",
          "documentation":"<p>An object containing specifications for the assisted slot resolution feature.</p>"
        }
      },
      "documentation":"<p>Contains specifications about the Amazon Lex runtime generative AI capabilities from Amazon Bedrock that you can turn on for your bot.</p>"
    },
    "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 Amazon Web Services 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>"
    },
    "S3BucketName":{
      "type":"string",
      "max":63,
      "min":3,
      "pattern":"^[a-z0-9][\\.\\-a-z0-9]{1,61}[a-z0-9]$"
    },
    "S3BucketTranscriptSource":{
      "type":"structure",
      "required":[
        "s3BucketName",
        "transcriptFormat"
      ],
      "members":{
        "s3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the bucket containing the transcript and the associated metadata.</p>"
        },
        "pathFormat":{
          "shape":"PathFormat",
          "documentation":"<p>The object that contains a path format that will be applied when Amazon Lex reads the transcript file in the bucket you provide. Specify this object if you only want Lex to read a subset of files in your Amazon S3 bucket.</p>"
        },
        "transcriptFormat":{
          "shape":"TranscriptFormat",
          "documentation":"<p>The format of the transcript content. Currently, Genie only supports the Amazon Lex transcript format.</p>"
        },
        "transcriptFilter":{
          "shape":"TranscriptFilter",
          "documentation":"<p>The object that contains the filter which will be applied when Amazon Lex reads through the Amazon S3 bucket. Specify this object if you want Amazon Lex to read only a subset of the Amazon S3 bucket based on the filter you provide.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The ARN of the KMS key that customer use to encrypt their Amazon S3 bucket. Only use this field if your bucket is encrypted using a customer managed KMS key.</p>"
        }
      },
      "documentation":"<p>The object representing the Amazon S3 bucket containing the transcript, as well as the associated metadata.</p>"
    },
    "S3ObjectPath":{
      "type":"string",
      "max":1024,
      "min":1,
      "pattern":"[\\.\\-\\!\\*\\_\\'\\(\\)a-zA-Z0-9][\\.\\-\\!\\*\\_\\'\\(\\)\\/a-zA-Z0-9]*$"
    },
    "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>"
    },
    "SampleUtteranceGenerationSpecification":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Boolean",
          "documentation":"<p>Specifies whether to enable sample utterance generation or not.</p>"
        },
        "bedrockModelSpecification":{"shape":"BedrockModelSpecification"}
      },
      "documentation":"<p>Contains specifications for the sample utterance generation feature.</p>"
    },
    "SampleUtterancesCount":{"type":"integer"},
    "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>"
    },
    "SearchAssociatedTranscriptsRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "botRecommendationId",
        "filters"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the transcripts that you are searching.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot containing the transcripts that you are searching.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the transcripts to search. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot recommendation associated with the transcripts to search.</p>",
          "location":"uri",
          "locationName":"botRecommendationId"
        },
        "searchOrder":{
          "shape":"SearchOrder",
          "documentation":"<p>How SearchResults are ordered. Valid values are Ascending or Descending. The default is Descending.</p>"
        },
        "filters":{
          "shape":"AssociatedTranscriptFilters",
          "documentation":"<p>A list of filter objects.</p>"
        },
        "maxResults":{
          "shape":"MaxResults",
          "documentation":"<p>The maximum number of bot recommendations 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>"
        },
        "nextIndex":{
          "shape":"NextIndex",
          "documentation":"<p>If the response from the SearchAssociatedTranscriptsRequest operation contains more results than specified in the maxResults parameter, an index is returned in the response. Use that index in the nextIndex parameter to return the next page of results.</p>"
        }
      }
    },
    "SearchAssociatedTranscriptsResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot associated with the transcripts that you are searching.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot containing the transcripts that you are searching.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the transcripts to search. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p> The unique identifier of the bot recommendation associated with the transcripts to search.</p>"
        },
        "nextIndex":{
          "shape":"NextIndex",
          "documentation":"<p>A index that indicates whether there are more results to return in a response to the SearchAssociatedTranscripts operation. If the nextIndex field is present, you send the contents as the nextIndex parameter of a SearchAssociatedTranscriptsRequest operation to get the next page of results.</p>"
        },
        "associatedTranscripts":{
          "shape":"AssociatedTranscriptList",
          "documentation":"<p>The object that contains the associated transcript that meet the criteria you specified.</p>"
        },
        "totalResults":{
          "shape":"MaxResults",
          "documentation":"<p>The total number of transcripts returned by the search.</p>"
        }
      }
    },
    "SearchOrder":{
      "type":"string",
      "enum":[
        "Ascending",
        "Descending"
      ]
    },
    "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>"
    },
    "ServicePrincipal":{
      "type":"string",
      "max":1024,
      "min":15,
      "pattern":"^[0-9a-zA-Z_.]+$"
    },
    "ServiceQuotaExceededException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>You have reached a quota for your bot. </p>",
      "error":{"httpStatusCode":402},
      "exception":true
    },
    "SessionDataSortBy":{
      "type":"structure",
      "required":[
        "name",
        "order"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsSessionSortByName",
          "documentation":"<p>The measure by which to sort the session analytics data.</p> <ul> <li> <p> <code>conversationStartTime</code> – The date and time when the conversation began. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p> </li> <li> <p> <code>numberOfTurns</code> – The number of turns that the session took.</p> </li> <li> <p> <code>conversationDurationSeconds</code> – The duration of the conversation in seconds.</p> </li> </ul>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>An object specifying the measure and method by which to sort the session analytics data.</p>"
    },
    "SessionId":{
      "type":"string",
      "max":100,
      "min":2,
      "pattern":"[0-9a-zA-Z._:-]+"
    },
    "SessionSpecification":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the alias of the bot that the session was held with.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot that the session was held with.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot that the session was held with.</p>"
        },
        "channel":{
          "shape":"AnalyticsChannel",
          "documentation":"<p>The channel that is integrated with the bot that the session was held with.</p>"
        },
        "sessionId":{
          "shape":"AnalyticsSessionId",
          "documentation":"<p>The identifier of the session.</p>"
        },
        "conversationStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the conversation began. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p>"
        },
        "conversationEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the conversation ended. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p>"
        },
        "conversationDurationSeconds":{
          "shape":"AnalyticsLongValue",
          "documentation":"<p>The duration of the conversation in seconds. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p>"
        },
        "conversationEndState":{
          "shape":"ConversationEndState",
          "documentation":"<p>The final state of the conversation. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p>"
        },
        "mode":{
          "shape":"AnalyticsModality",
          "documentation":"<p>The mode of the session. The possible values are as follows:</p> <ul> <li> <p> <code>Speech</code> – The session was spoken.</p> </li> <li> <p> <code>Text</code> – The session was written.</p> </li> <li> <p> <code>DTMF</code> – The session used a touch-tone keypad (Dual Tone Multi-Frequency).</p> </li> <li> <p> <code>MultiMode</code> – The session used multiple modes.</p> </li> </ul>"
        },
        "numberOfTurns":{
          "shape":"AnalyticsLongValue",
          "documentation":"<p>The number of turns that the session took.</p>"
        },
        "invokedIntentSamples":{
          "shape":"InvokedIntentSamples",
          "documentation":"<p>A list of objects containing the name of an intent that was invoked.</p>"
        },
        "originatingRequestId":{
          "shape":"AnalyticsOriginatingRequestId",
          "documentation":"<p>The identifier of the first request in a session.</p>"
        }
      },
      "documentation":"<p>An object containing information about a specific session.</p>"
    },
    "SessionSpecifications":{
      "type":"list",
      "member":{"shape":"SessionSpecification"}
    },
    "SessionTTL":{
      "type":"integer",
      "max":86400,
      "min":60
    },
    "SkipResourceInUseCheck":{"type":"boolean"},
    "SlotCaptureSetting":{
      "type":"structure",
      "members":{
        "captureResponse":{"shape":"ResponseSpecification"},
        "captureNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot runs when the slot value is captured before the code hook times out.</p>"
        },
        "captureConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate after the slot value is captured.</p>"
        },
        "failureResponse":{"shape":"ResponseSpecification"},
        "failureNextStep":{
          "shape":"DialogState",
          "documentation":"<p>Specifies the next step that the bot runs when the slot value code is not recognized.</p>"
        },
        "failureConditional":{
          "shape":"ConditionalSpecification",
          "documentation":"<p>A list of conditional branches to evaluate when the slot value isn't captured.</p>"
        },
        "codeHook":{
          "shape":"DialogCodeHookInvocationSetting",
          "documentation":"<p>Code hook called after Amazon Lex successfully captures a slot value.</p>"
        },
        "elicitationCodeHook":{
          "shape":"ElicitationCodeHookInvocationSetting",
          "documentation":"<p>Code hook called when Amazon Lex doesn't capture a slot value.</p>"
        }
      },
      "documentation":"<p>Settings used when Amazon Lex successfully captures a slot value from a user.</p>"
    },
    "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
    },
    "SlotHintsIntentMap":{
      "type":"map",
      "key":{"shape":"Name"},
      "value":{"shape":"SlotHintsSlotMap"}
    },
    "SlotHintsSlotMap":{
      "type":"map",
      "key":{"shape":"Name"},
      "value":{"shape":"RuntimeHintDetails"}
    },
    "SlotPrioritiesList":{
      "type":"list",
      "member":{"shape":"SlotPriority"}
    },
    "SlotPriority":{
      "type":"structure",
      "required":[
        "priority",
        "slotId"
      ],
      "members":{
        "priority":{
          "shape":"PriorityValue",
          "documentation":"<p>The priority that Amazon Lex should apply to the slot.</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>"
    },
    "SlotResolutionImprovementSpecification":{
      "type":"structure",
      "required":["enabled"],
      "members":{
        "enabled":{
          "shape":"Enabled",
          "documentation":"<p>Specifies whether assisted slot resolution is turned on or off.</p>"
        },
        "bedrockModelSpecification":{
          "shape":"BedrockModelSpecification",
          "documentation":"<p>An object containing information about the Amazon Bedrock model used to assist slot resolution.</p>"
        }
      },
      "documentation":"<p>Contains specifications for the assisted slot resolution feature.</p>"
    },
    "SlotResolutionSetting":{
      "type":"structure",
      "required":["slotResolutionStrategy"],
      "members":{
        "slotResolutionStrategy":{
          "shape":"SlotResolutionStrategy",
          "documentation":"<p>Specifies whether assisted slot resolution is turned on for the slot or not. If the value is <code>EnhancedFallback</code>, assisted slot resolution is activated when Amazon Lex defaults to the <code>AMAZON.FallbackIntent</code>. If the value is <code>Default</code>, assisted slot resolution is turned off.</p>"
        }
      },
      "documentation":"<p>Contains information about whether assisted slot resolution is turned on for the slot or not.</p>"
    },
    "SlotResolutionStrategy":{
      "type":"string",
      "enum":[
        "EnhancedFallback",
        "Default"
      ]
    },
    "SlotResolutionTestResultItem":{
      "type":"structure",
      "required":[
        "slotName",
        "resultCounts"
      ],
      "members":{
        "slotName":{
          "shape":"TestResultSlotName",
          "documentation":"<p>The name of the slot.</p>"
        },
        "resultCounts":{
          "shape":"SlotResolutionTestResultItemCounts",
          "documentation":"<p>A result for slot resolution in the results of a test execution.</p>"
        }
      },
      "documentation":"<p>Information about the success and failure rate of slot resolution in the results of a test execution.</p>"
    },
    "SlotResolutionTestResultItemCounts":{
      "type":"structure",
      "required":[
        "totalResultCount",
        "slotMatchResultCounts"
      ],
      "members":{
        "totalResultCount":{
          "shape":"Count",
          "documentation":"<p>The total number of results.</p>"
        },
        "speechTranscriptionResultCounts":{
          "shape":"TestResultMatchStatusCountMap",
          "documentation":"<p>The number of matched, mismatched and execution error results for speech transcription for the slot.</p>"
        },
        "slotMatchResultCounts":{
          "shape":"TestResultMatchStatusCountMap",
          "documentation":"<p>The number of matched and mismatched results for slot resolution for the slot.</p>"
        }
      },
      "documentation":"<p>Information about the counts for a slot resolution in the results of a test execution.</p>"
    },
    "SlotResolutionTestResultItems":{
      "type":"list",
      "member":{"shape":"SlotResolutionTestResultItem"}
    },
    "SlotShape":{
      "type":"string",
      "enum":[
        "Scalar",
        "List"
      ]
    },
    "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"}
    },
    "SlotTypeCategory":{
      "type":"string",
      "enum":[
        "Custom",
        "Extended",
        "ExternalGrammar",
        "Composite"
      ]
    },
    "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",
        "ExternalSourceType"
      ]
    },
    "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>"
    },
    "SlotTypeStatistics":{
      "type":"structure",
      "members":{
        "discoveredSlotTypeCount":{
          "shape":"Count",
          "documentation":"<p>The number of recommended slot types associated with the bot recommendation.</p>"
        }
      },
      "documentation":"<p>The object that contains the statistical summary of the recommended slot type associated with the bot recommendation.</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>"
        },
        "slotTypeCategory":{
          "shape":"SlotTypeCategory",
          "documentation":"<p>Indicates the type of the slot type.</p> <ul> <li> <p> <code>Custom</code> - A slot type that you created using custom values. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/custom-slot-types.html\">Creating custom slot types</a>.</p> </li> <li> <p> <code>Extended</code> - A slot type created by extending the <code>AMAZON.AlphaNumeric</code> built-in slot type. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/built-in-slot-alphanumerice.html\"> <code>AMAZON.AlphaNumeric</code> </a>.</p> </li> <li> <p> <code>ExternalGrammar</code> - A slot type using a custom GRXML grammar to define values. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/building-grxml.html\">Using a custom grammar slot type</a>.</p> </li> </ul>"
        }
      },
      "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 related 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
    },
    "SlotValue":{
      "type":"structure",
      "members":{
        "interpretedValue":{
          "shape":"NonEmptyString",
          "documentation":"<p>The value that Amazon Lex determines for the slot. The actual value depends on the setting of the value selection strategy for the bot. You can choose to use the value entered by the user, or you can have Amazon Lex choose the first value in the <code>resolvedValues</code> list.</p>"
        }
      },
      "documentation":"<p>The value to set in a slot.</p>"
    },
    "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, session 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"},
        "slotCaptureSetting":{
          "shape":"SlotCaptureSetting",
          "documentation":"<p>Specifies the settings that Amazon Lex uses when a slot value is successfully entered by a user.</p>"
        },
        "slotResolutionSetting":{
          "shape":"SlotResolutionSetting",
          "documentation":"<p>An object containing information about whether assisted slot resolution is turned on for the slot or not.</p>"
        }
      },
      "documentation":"<p>Specifies the elicitation setting details eliciting a slot.</p>"
    },
    "SlotValueOverride":{
      "type":"structure",
      "members":{
        "shape":{
          "shape":"SlotShape",
          "documentation":"<p>When the shape value is <code>List</code>, it indicates that the <code>values</code> field contains a list of slot values. When the value is <code>Scalar</code>, it indicates that the <code>value</code> field contains a single value.</p>"
        },
        "value":{
          "shape":"SlotValue",
          "documentation":"<p>The current value of the slot.</p>"
        },
        "values":{
          "shape":"SlotValues",
          "documentation":"<p>A list of one or more values that the user provided for the slot. For example, for a slot that elicits pizza toppings, the values might be \"pepperoni\" and \"pineapple.\"</p>"
        }
      },
      "documentation":"<p>The slot values that Amazon Lex uses when it sets slot values in a dialog step.</p>"
    },
    "SlotValueOverrideMap":{
      "type":"map",
      "key":{"shape":"Name"},
      "value":{"shape":"SlotValueOverride"}
    },
    "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",
        "Concatenation"
      ]
    },
    "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> <code>ORIGINAL_VALUE</code> - Returns the value entered by the user, if the user value is similar to the slot value.</p> </li> <li> <p> <code>TOP_RESOLUTION</code> - 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 <code>valueSelectionStrategy</code>, the default is <code>ORIGINAL_VALUE</code>.</p>"
        },
        "regexFilter":{
          "shape":"SlotValueRegexFilter",
          "documentation":"<p>A regular expression used to validate the value of a slot.</p>"
        },
        "advancedRecognitionSetting":{
          "shape":"AdvancedRecognitionSetting",
          "documentation":"<p>Provides settings that enable advanced recognition settings for slot values. You can use this to enable using slot values as a custom vocabulary for recognizing user utterances.</p>"
        }
      },
      "documentation":"<p>Contains settings used by Amazon Lex to select a slot value.</p>"
    },
    "SlotValues":{
      "type":"list",
      "member":{"shape":"SlotValueOverride"}
    },
    "SortOrder":{
      "type":"string",
      "enum":[
        "Ascending",
        "Descending"
      ]
    },
    "Specifications":{
      "type":"structure",
      "required":[
        "slotTypeId",
        "valueElicitationSetting"
      ],
      "members":{
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The unique identifier assigned to the slot type.</p>"
        },
        "valueElicitationSetting":{
          "shape":"SubSlotValueElicitationSetting",
          "documentation":"<p>Specifies the elicitation setting details for constituent sub slots of a composite slot.</p>"
        }
      },
      "documentation":"<p>Subslot specifications.</p>"
    },
    "StartBotRecommendationRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "transcriptSourceSetting"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot containing the bot recommendation.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot containing the bot recommendation.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to start. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "transcriptSourceSetting":{
          "shape":"TranscriptSourceSetting",
          "documentation":"<p>The object representing the Amazon S3 bucket containing the transcript, as well as the associated metadata.</p>"
        },
        "encryptionSetting":{
          "shape":"EncryptionSetting",
          "documentation":"<p>The object representing the passwords that will be used to encrypt the data related to the bot recommendation results, as well as the KMS key ARN used to encrypt the associated metadata.</p>"
        }
      }
    },
    "StartBotRecommendationResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot containing the bot recommendation.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot containing the bot recommendation.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to start. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>"
        },
        "botRecommendationStatus":{
          "shape":"BotRecommendationStatus",
          "documentation":"<p>The status of the bot recommendation.</p> <p>If the status is Failed, then the reasons for the failure are listed in the failureReasons field. </p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the bot recommendation that you have created.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot recommendation was created.</p>"
        },
        "transcriptSourceSetting":{
          "shape":"TranscriptSourceSetting",
          "documentation":"<p>The object representing the Amazon S3 bucket containing the transcript, as well as the associated metadata.</p>"
        },
        "encryptionSetting":{
          "shape":"EncryptionSetting",
          "documentation":"<p>The object representing the passwords that were used to encrypt the data related to the bot recommendation results, as well as the KMS key ARN used to encrypt the associated metadata.</p>"
        }
      }
    },
    "StartBotResourceGenerationRequest":{
      "type":"structure",
      "required":[
        "generationInputPrompt",
        "botId",
        "botVersion",
        "localeId"
      ],
      "members":{
        "generationInputPrompt":{
          "shape":"GenerationInput",
          "documentation":"<p>The prompt to generate intents and slot types for the bot locale. Your description should be both <i>detailed</i> and <i>precise</i> to help generate appropriate and sufficient intents for your bot. Include a list of actions to improve the intent creation process.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot for which to generate intents and slot types.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot for which to generate intents and slot types.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot for which to generate intents and slot types.</p>",
          "location":"uri",
          "locationName":"localeId"
        }
      }
    },
    "StartBotResourceGenerationResponse":{
      "type":"structure",
      "members":{
        "generationInputPrompt":{
          "shape":"GenerationInput",
          "documentation":"<p>The prompt that was used generate intents and slot types for the bot locale.</p>"
        },
        "generationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the generation request.</p>"
        },
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot for which the generation request was made.</p>"
        },
        "botVersion":{
          "shape":"BotVersion",
          "documentation":"<p>The version of the bot for which the generation request was made.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot for which the generation request was made.</p>"
        },
        "generationStatus":{
          "shape":"GenerationStatus",
          "documentation":"<p>The status of the generation request.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the generation request was made.</p>"
        }
      }
    },
    "StartImportRequest":{
      "type":"structure",
      "required":[
        "importId",
        "resourceSpecification",
        "mergeStrategy"
      ],
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier for the import. It is included in the response from the <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateUploadUrl.html\">CreateUploadUrl</a> operation.</p>"
        },
        "resourceSpecification":{
          "shape":"ImportResourceSpecification",
          "documentation":"<p>Parameters for creating the bot, bot locale or custom vocabulary.</p>"
        },
        "mergeStrategy":{
          "shape":"MergeStrategy",
          "documentation":"<p>The strategy to use when there is a name conflict between the imported resource and an existing resource. When the merge strategy is <code>FailOnConflict</code> existing resources are not overwritten and the import fails.</p>"
        },
        "filePassword":{
          "shape":"ImportExportFilePassword",
          "documentation":"<p>The password used to encrypt the zip archive that contains the resource definition. You should always encrypt the zip archive to protect it during transit between your site and Amazon Lex.</p>"
        }
      }
    },
    "StartImportResponse":{
      "type":"structure",
      "members":{
        "importId":{
          "shape":"Id",
          "documentation":"<p>A unique identifier for the import.</p>"
        },
        "resourceSpecification":{
          "shape":"ImportResourceSpecification",
          "documentation":"<p>The parameters used when importing the resource.</p>"
        },
        "mergeStrategy":{
          "shape":"MergeStrategy",
          "documentation":"<p>The strategy used when there was a name conflict between the imported resource and an existing resource. When the merge strategy is <code>FailOnConflict</code> existing resources are not overwritten and the import fails.</p>"
        },
        "importStatus":{
          "shape":"ImportStatus",
          "documentation":"<p>The current status of the import. When the status is <code>Complete</code> the bot, bot alias, or custom vocabulary is ready to use.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the import request was created.</p>"
        }
      }
    },
    "StartTestExecutionRequest":{
      "type":"structure",
      "required":[
        "testSetId",
        "target",
        "apiMode"
      ],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set execution.</p>",
          "location":"uri",
          "locationName":"testSetId"
        },
        "target":{
          "shape":"TestExecutionTarget",
          "documentation":"<p>The target bot for the test set execution.</p>"
        },
        "apiMode":{
          "shape":"TestExecutionApiMode",
          "documentation":"<p>Indicates whether we use streaming or non-streaming APIs for the test set execution. For streaming, StartConversation Runtime API is used. Whereas, for non-streaming, RecognizeUtterance and RecognizeText Amazon Lex Runtime API are used.</p>"
        },
        "testExecutionModality":{
          "shape":"TestExecutionModality",
          "documentation":"<p>Indicates whether audio or text is used.</p>"
        }
      }
    },
    "StartTestExecutionResponse":{
      "type":"structure",
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set execution.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time for the test set execution.</p>"
        },
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for the test set execution.</p>"
        },
        "target":{
          "shape":"TestExecutionTarget",
          "documentation":"<p>The target bot for the test set execution.</p>"
        },
        "apiMode":{
          "shape":"TestExecutionApiMode",
          "documentation":"<p>Indicates whether we use streaming or non-streaming APIs for the test set execution. For streaming, StartConversation Amazon Lex Runtime API is used. Whereas for non-streaming, RecognizeUtterance and RecognizeText Amazon Lex Runtime API are used.</p>"
        },
        "testExecutionModality":{
          "shape":"TestExecutionModality",
          "documentation":"<p>Indicates whether audio or text is used.</p>"
        }
      }
    },
    "StartTestSetGenerationRequest":{
      "type":"structure",
      "required":[
        "testSetName",
        "storageLocation",
        "generationDataSource",
        "roleArn"
      ],
      "members":{
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The test set name for the test set generation request.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The test set description for the test set generation request.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>The Amazon S3 storage location for the test set generation.</p>"
        },
        "generationDataSource":{
          "shape":"TestSetGenerationDataSource",
          "documentation":"<p>The data source for the test set generation.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The roleARN used for any operation in the test set to access resources in the Amazon Web Services account.</p>"
        },
        "testSetTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags to add to the test set. You can only add tags when you import/generate a new test set. You can't use the <code>UpdateTestSet</code> operation to update tags. To update tags, use the <code>TagResource</code> operation.</p>"
        }
      }
    },
    "StartTestSetGenerationResponse":{
      "type":"structure",
      "members":{
        "testSetGenerationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set generation to describe.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p> The creation date and time for the test set generation.</p>"
        },
        "testSetGenerationStatus":{
          "shape":"TestSetGenerationStatus",
          "documentation":"<p> The status for the test set generation.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The test set name used for the test set generation.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description used for the test set generation.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>The Amazon S3 storage location for the test set generation.</p>"
        },
        "generationDataSource":{
          "shape":"TestSetGenerationDataSource",
          "documentation":"<p> The data source for the test set generation.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The roleARN used for any operation in the test set to access resources in the Amazon Web Services account.</p>"
        },
        "testSetTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags that was used for the test set that is being generated.</p>"
        }
      }
    },
    "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
    },
    "StopBotRecommendationRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "botRecommendationId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot containing the bot recommendation to be stopped.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot containing the bot recommendation.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to stop. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot recommendation to be stopped.</p>",
          "location":"uri",
          "locationName":"botRecommendationId"
        }
      }
    },
    "StopBotRecommendationResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot containing the bot recommendation that is being stopped.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot containing the recommendation that is being stopped.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot response to stop. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>"
        },
        "botRecommendationStatus":{
          "shape":"BotRecommendationStatus",
          "documentation":"<p>The status of the bot recommendation. If the status is Failed, then the reasons for the failure are listed in the failureReasons field.</p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot recommendation that is being stopped.</p>"
        }
      }
    },
    "String":{"type":"string"},
    "StringMap":{
      "type":"map",
      "key":{"shape":"NonEmptyString"},
      "value":{"shape":"String"}
    },
    "SubSlotExpression":{
      "type":"string",
      "max":640,
      "min":0,
      "pattern":"[0-9A-Za-z_\\-\\s\\(\\)]+"
    },
    "SubSlotSetting":{
      "type":"structure",
      "members":{
        "expression":{
          "shape":"SubSlotExpression",
          "documentation":"<p>The expression text for defining the constituent sub slots in the composite slot using logical AND and OR operators.</p>"
        },
        "slotSpecifications":{
          "shape":"SubSlotSpecificationMap",
          "documentation":"<p>Specifications for the constituent sub slots of a composite slot.</p>"
        }
      },
      "documentation":"<p>Specifications for the constituent sub slots and the expression for the composite slot.</p>"
    },
    "SubSlotSpecificationMap":{
      "type":"map",
      "key":{"shape":"Name"},
      "value":{"shape":"Specifications"},
      "max":6,
      "min":0
    },
    "SubSlotTypeComposition":{
      "type":"structure",
      "required":[
        "name",
        "slotTypeId"
      ],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>Name of a constituent sub slot inside a composite slot.</p>"
        },
        "slotTypeId":{
          "shape":"BuiltInOrCustomSlotTypeId",
          "documentation":"<p>The unique identifier assigned to a slot type. This refers to either a built-in slot type or the unique slotTypeId of a custom slot type.</p>"
        }
      },
      "documentation":"<p>Subslot type composition.</p>"
    },
    "SubSlotTypeList":{
      "type":"list",
      "member":{"shape":"SubSlotTypeComposition"},
      "max":6,
      "min":0
    },
    "SubSlotValueElicitationSetting":{
      "type":"structure",
      "required":["promptSpecification"],
      "members":{
        "defaultValueSpecification":{"shape":"SlotDefaultValueSpecification"},
        "promptSpecification":{"shape":"PromptSpecification"},
        "sampleUtterances":{
          "shape":"SampleUtterancesList",
          "documentation":"<p>If you know a specific pattern that users might respond to an Amazon Lex request for a sub slot value, you can provide those utterances to improve accuracy. This is optional. In most cases Amazon Lex is capable of understanding user utterances. This is similar to <code>SampleUtterances</code> for slots.</p>"
        },
        "waitAndContinueSpecification":{"shape":"WaitAndContinueSpecification"}
      },
      "documentation":"<p>Subslot elicitation settings.</p> <p> <code>DefaultValueSpecification</code> is a list of default values for a constituent sub slot in a composite slot. Default values are used when Amazon Lex hasn't determined a value for a slot. You can specify default values from context variables, session attributes, and defined values. This is similar to <code>DefaultValueSpecification</code> for slots.</p> <p> <code>PromptSpecification</code> is the prompt that Amazon Lex uses to elicit the sub slot value from the user. This is similar to <code>PromptSpecification</code> for slots.</p>"
    },
    "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
    },
    "TestExecutionApiMode":{
      "type":"string",
      "enum":[
        "Streaming",
        "NonStreaming"
      ]
    },
    "TestExecutionModality":{
      "type":"string",
      "enum":[
        "Text",
        "Audio"
      ]
    },
    "TestExecutionResultFilterBy":{
      "type":"structure",
      "required":["resultTypeFilter"],
      "members":{
        "resultTypeFilter":{
          "shape":"TestResultTypeFilter",
          "documentation":"<p>Specifies which results to filter. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/test-results-details-test-set.html\">Test result details\"&gt;Test results details</a> for details about different types of results.</p>"
        },
        "conversationLevelTestResultsFilterBy":{
          "shape":"ConversationLevelTestResultsFilterBy",
          "documentation":"<p>Contains information about the method for filtering Conversation level test results.</p>"
        }
      },
      "documentation":"<p>Contains information about the method by which to filter the results of the test execution.</p>"
    },
    "TestExecutionResultItems":{
      "type":"structure",
      "members":{
        "overallTestResults":{
          "shape":"OverallTestResults",
          "documentation":"<p>Overall results for the test execution, including the breakdown of conversations and single-input utterances.</p>"
        },
        "conversationLevelTestResults":{
          "shape":"ConversationLevelTestResults",
          "documentation":"<p>Results related to conversations in the test set, including metrics about success and failure of conversations and intent and slot failures.</p>"
        },
        "intentClassificationTestResults":{
          "shape":"IntentClassificationTestResults",
          "documentation":"<p>Intent recognition results aggregated by intent name. The aggregated results contain success and failure rates of intent recognition, speech transcriptions, and end-to-end conversations.</p>"
        },
        "intentLevelSlotResolutionTestResults":{
          "shape":"IntentLevelSlotResolutionTestResults",
          "documentation":"<p>Slot resolution results aggregated by intent and slot name. The aggregated results contain success and failure rates of slot resolution, speech transcriptions, and end-to-end conversations</p>"
        },
        "utteranceLevelTestResults":{
          "shape":"UtteranceLevelTestResults",
          "documentation":"<p>Results related to utterances in the test set.</p>"
        }
      },
      "documentation":"<p>Contains the results of the test execution, grouped by type of results. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/test-results-details-test-set.html\">Test result details\"&gt;Test results details</a> for details about different types of results.</p>"
    },
    "TestExecutionSortAttribute":{
      "type":"string",
      "enum":[
        "TestSetName",
        "CreationDateTime"
      ]
    },
    "TestExecutionSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"TestExecutionSortAttribute",
          "documentation":"<p>Specifies whether to sort the test set executions by the date and time at which the test sets were created.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Contains information about the method by which to sort the instances of test executions you have carried out.</p>"
    },
    "TestExecutionStatus":{
      "type":"string",
      "enum":[
        "Pending",
        "Waiting",
        "InProgress",
        "Completed",
        "Failed",
        "Stopping",
        "Stopped"
      ]
    },
    "TestExecutionSummary":{
      "type":"structure",
      "members":{
        "testExecutionId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test execution.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the test execution was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the test execution was last updated.</p>"
        },
        "testExecutionStatus":{
          "shape":"TestExecutionStatus",
          "documentation":"<p>The current status of the test execution.</p>"
        },
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set used in the test execution.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The name of the test set used in the test execution.</p>"
        },
        "target":{
          "shape":"TestExecutionTarget",
          "documentation":"<p>Contains information about the bot used for the test execution..</p>"
        },
        "apiMode":{
          "shape":"TestExecutionApiMode",
          "documentation":"<p>Specifies whether the API mode for the test execution is streaming or non-streaming.</p>"
        },
        "testExecutionModality":{
          "shape":"TestExecutionModality",
          "documentation":"<p>Specifies whether the data used for the test execution is written or spoken.</p>"
        }
      },
      "documentation":"<p>Summarizes metadata about the test execution.</p>"
    },
    "TestExecutionSummaryList":{
      "type":"list",
      "member":{"shape":"TestExecutionSummary"}
    },
    "TestExecutionTarget":{
      "type":"structure",
      "members":{
        "botAliasTarget":{
          "shape":"BotAliasTestExecutionTarget",
          "documentation":"<p>Contains information about the bot alias used for the test execution.</p>"
        }
      },
      "documentation":"<p>Contains information about the bot used for the test execution.</p>"
    },
    "TestResultMatchStatus":{
      "type":"string",
      "enum":[
        "Matched",
        "Mismatched",
        "ExecutionError"
      ]
    },
    "TestResultMatchStatusCountMap":{
      "type":"map",
      "key":{"shape":"TestResultMatchStatus"},
      "value":{"shape":"Count"}
    },
    "TestResultSlotName":{
      "type":"string",
      "max":100,
      "min":1,
      "pattern":"^([0-9a-zA-Z][_.-]?)+$"
    },
    "TestResultTypeFilter":{
      "type":"string",
      "enum":[
        "OverallTestResults",
        "ConversationLevelTestResults",
        "IntentClassificationTestResults",
        "SlotResolutionTestResults",
        "UtteranceLevelResults"
      ]
    },
    "TestSetAgentPrompt":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "TestSetConversationId":{
      "type":"string",
      "max":50,
      "min":1,
      "pattern":"^([0-9a-zA-Z][_-]?)+$"
    },
    "TestSetDiscrepancyErrors":{
      "type":"structure",
      "required":[
        "intentDiscrepancies",
        "slotDiscrepancies"
      ],
      "members":{
        "intentDiscrepancies":{
          "shape":"TestSetIntentDiscrepancyList",
          "documentation":"<p>Contains information about discrepancies found for intents between the test set and the bot.</p>"
        },
        "slotDiscrepancies":{
          "shape":"TestSetSlotDiscrepancyList",
          "documentation":"<p>Contains information about discrepancies found for slots between the test set and the bot.</p>"
        }
      },
      "documentation":"<p>Contains details about the errors in the test set discrepancy report</p>"
    },
    "TestSetDiscrepancyReportBotAliasTarget":{
      "type":"structure",
      "required":[
        "botId",
        "botAliasId",
        "localeId"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier for the bot alias.</p>"
        },
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The unique identifier for the bot associated with the bot alias.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The unique identifier of the locale associated with the bot alias.</p>"
        }
      },
      "documentation":"<p>Contains information about the bot alias used for the test set discrepancy report.</p>"
    },
    "TestSetDiscrepancyReportResourceTarget":{
      "type":"structure",
      "members":{
        "botAliasTarget":{
          "shape":"TestSetDiscrepancyReportBotAliasTarget",
          "documentation":"<p>Contains information about the bot alias used as the resource for the test set discrepancy report.</p>"
        }
      },
      "documentation":"<p>Contains information about the resource used for the test set discrepancy report.</p>"
    },
    "TestSetDiscrepancyReportStatus":{
      "type":"string",
      "enum":[
        "InProgress",
        "Completed",
        "Failed"
      ]
    },
    "TestSetExportSpecification":{
      "type":"structure",
      "required":["testSetId"],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set.</p>"
        }
      },
      "documentation":"<p>Contains information about the test set that is exported.</p>"
    },
    "TestSetGenerationDataSource":{
      "type":"structure",
      "members":{
        "conversationLogsDataSource":{
          "shape":"ConversationLogsDataSource",
          "documentation":"<p>Contains information about the bot from which the conversation logs are sourced.</p>"
        }
      },
      "documentation":"<p>Contains information about the data source from which the test set is generated.</p>"
    },
    "TestSetGenerationStatus":{
      "type":"string",
      "enum":[
        "Generating",
        "Ready",
        "Failed",
        "Pending"
      ]
    },
    "TestSetImportInputLocation":{
      "type":"structure",
      "required":[
        "s3BucketName",
        "s3Path"
      ],
      "members":{
        "s3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the Amazon S3 bucket.</p>"
        },
        "s3Path":{
          "shape":"S3ObjectPath",
          "documentation":"<p>The path inside the Amazon S3 bucket pointing to the test-set CSV file.</p>"
        }
      },
      "documentation":"<p>Contains information about the Amazon S3 location from which the test set is imported.</p>"
    },
    "TestSetImportResourceSpecification":{
      "type":"structure",
      "required":[
        "testSetName",
        "roleArn",
        "storageLocation",
        "importInputLocation",
        "modality"
      ],
      "members":{
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The name of the test set.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the test set.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that has permission to access the test set.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>Contains information about the location that Amazon Lex uses to store the test-set.</p>"
        },
        "importInputLocation":{
          "shape":"TestSetImportInputLocation",
          "documentation":"<p>Contains information about the input location from where test-set should be imported.</p>"
        },
        "modality":{
          "shape":"TestSetModality",
          "documentation":"<p>Specifies whether the test-set being imported contains written or spoken data.</p>"
        },
        "testSetTags":{
          "shape":"TagMap",
          "documentation":"<p>A list of tags to add to the test set. You can only add tags when you import/generate a new test set. You can't use the <code>UpdateTestSet</code> operation to update tags. To update tags, use the <code>TagResource</code> operation.</p>"
        }
      },
      "documentation":"<p>Contains information about the test set that is imported.</p>"
    },
    "TestSetIntentDiscrepancyItem":{
      "type":"structure",
      "required":[
        "intentName",
        "errorMessage"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent in the discrepancy report.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>The error message for a discrepancy for an intent between the test set and the bot.</p>"
        }
      },
      "documentation":"<p>Contains information about discrepancy in an intent information between the test set and the bot.</p>"
    },
    "TestSetIntentDiscrepancyList":{
      "type":"list",
      "member":{"shape":"TestSetIntentDiscrepancyItem"}
    },
    "TestSetModality":{
      "type":"string",
      "enum":[
        "Text",
        "Audio"
      ]
    },
    "TestSetSlotDiscrepancyItem":{
      "type":"structure",
      "required":[
        "intentName",
        "slotName",
        "errorMessage"
      ],
      "members":{
        "intentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent associated with the slot in the discrepancy report.</p>"
        },
        "slotName":{
          "shape":"Name",
          "documentation":"<p>The name of the slot in the discrepancy report.</p>"
        },
        "errorMessage":{
          "shape":"String",
          "documentation":"<p>The error message for a discrepancy for an intent between the test set and the bot.</p>"
        }
      },
      "documentation":"<p>Contains information about discrepancy in a slot information between the test set and the bot.</p>"
    },
    "TestSetSlotDiscrepancyList":{
      "type":"list",
      "member":{"shape":"TestSetSlotDiscrepancyItem"}
    },
    "TestSetSortAttribute":{
      "type":"string",
      "enum":[
        "TestSetName",
        "LastUpdatedDateTime"
      ]
    },
    "TestSetSortBy":{
      "type":"structure",
      "required":[
        "attribute",
        "order"
      ],
      "members":{
        "attribute":{
          "shape":"TestSetSortAttribute",
          "documentation":"<p>Specifies whether to sort the test sets by name or by the time they were last updated.</p>"
        },
        "order":{
          "shape":"SortOrder",
          "documentation":"<p>Specifies whether to sort in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>Contains information about the methods by which to sort the test set.</p>"
    },
    "TestSetStatus":{
      "type":"string",
      "enum":[
        "Importing",
        "PendingAnnotation",
        "Deleting",
        "ValidationError",
        "Ready"
      ]
    },
    "TestSetStorageLocation":{
      "type":"structure",
      "required":[
        "s3BucketName",
        "s3Path"
      ],
      "members":{
        "s3BucketName":{
          "shape":"S3BucketName",
          "documentation":"<p>The name of the Amazon S3 bucket in which the test set is stored.</p>"
        },
        "s3Path":{
          "shape":"S3ObjectPath",
          "documentation":"<p>The path inside the Amazon S3 bucket where the test set is stored.</p>"
        },
        "kmsKeyArn":{
          "shape":"KmsKeyArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an Amazon Web Services Key Management Service (KMS) key for encrypting the test set.</p>"
        }
      },
      "documentation":"<p>Contains information about the location in which the test set is stored.</p>"
    },
    "TestSetSummary":{
      "type":"structure",
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the test set.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The name of the test set.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The description of the test set.</p>"
        },
        "modality":{
          "shape":"TestSetModality",
          "documentation":"<p>Specifies whether the test set contains written or spoken data.</p>"
        },
        "status":{
          "shape":"TestSetStatus",
          "documentation":"<p>The status of the test set.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The Amazon Resource Name (ARN) of an IAM role that has permission to access the test set.</p>"
        },
        "numTurns":{
          "shape":"Count",
          "documentation":"<p>The number of turns in the test set.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>Contains information about the location at which the test set is stored.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the test set was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time at which the test set was last updated.</p>"
        }
      },
      "documentation":"<p>Contains summary information about the test set.</p>"
    },
    "TestSetSummaryList":{
      "type":"list",
      "member":{"shape":"TestSetSummary"}
    },
    "TestSetTurnRecord":{
      "type":"structure",
      "required":[
        "recordNumber",
        "turnSpecification"
      ],
      "members":{
        "recordNumber":{
          "shape":"RecordNumber",
          "documentation":"<p>The record number associated with the turn.</p>"
        },
        "conversationId":{
          "shape":"TestSetConversationId",
          "documentation":"<p>The unique identifier for the conversation associated with the turn.</p>"
        },
        "turnNumber":{
          "shape":"TurnNumber",
          "documentation":"<p>The number of turns that has elapsed up to that turn.</p>"
        },
        "turnSpecification":{
          "shape":"TurnSpecification",
          "documentation":"<p>Contains information about the agent or user turn depending upon type of turn.</p>"
        }
      },
      "documentation":"<p>Contains information about a turn in a test set.</p>"
    },
    "TestSetTurnRecordList":{
      "type":"list",
      "member":{"shape":"TestSetTurnRecord"}
    },
    "TestSetTurnResult":{
      "type":"structure",
      "members":{
        "agent":{
          "shape":"AgentTurnResult",
          "documentation":"<p>Contains information about the agent messages in the turn.</p>"
        },
        "user":{
          "shape":"UserTurnResult",
          "documentation":"<p>Contains information about the user messages in the turn.</p>"
        }
      },
      "documentation":"<p>Contains information about the results of the analysis of a turn in the test set.</p>"
    },
    "TestSetUtteranceText":{
      "type":"string",
      "max":1024,
      "min":1
    },
    "TextInputSpecification":{
      "type":"structure",
      "required":["startTimeoutMs"],
      "members":{
        "startTimeoutMs":{
          "shape":"TimeInMilliSeconds",
          "documentation":"<p>Time for which a bot waits before re-prompting a customer for text input.</p>"
        }
      },
      "documentation":"<p>Specifies the text input specifications.</p>"
    },
    "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"},
        "selectiveLoggingEnabled":{
          "shape":"BoxedBoolean",
          "documentation":"<p>The option to enable selective conversation log capture for text.</p>"
        }
      },
      "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",
          "documentation":"<p>The number of seconds after which the user can invoke the API again.</p>",
          "location":"header",
          "locationName":"Retry-After"
        },
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>Your request rate is too high. Reduce the frequency of requests.</p>",
      "error":{"httpStatusCode":429},
      "exception":true
    },
    "TimeDimension":{
      "type":"string",
      "enum":[
        "Hours",
        "Days",
        "Weeks"
      ]
    },
    "TimeInMilliSeconds":{
      "type":"integer",
      "min":1
    },
    "TimeValue":{
      "type":"integer",
      "max":24,
      "min":1
    },
    "Timestamp":{"type":"timestamp"},
    "Transcript":{
      "type":"string",
      "max":6000000,
      "min":1,
      "pattern":".*"
    },
    "TranscriptFilter":{
      "type":"structure",
      "members":{
        "lexTranscriptFilter":{
          "shape":"LexTranscriptFilter",
          "documentation":"<p>The object representing the filter that Amazon Lex will use to select the appropriate transcript when the transcript format is the Amazon Lex format.</p>"
        }
      },
      "documentation":"<p>The object representing the filter that Amazon Lex will use to select the appropriate transcript.</p>"
    },
    "TranscriptFormat":{
      "type":"string",
      "enum":["Lex"]
    },
    "TranscriptSourceSetting":{
      "type":"structure",
      "members":{
        "s3BucketTranscriptSource":{
          "shape":"S3BucketTranscriptSource",
          "documentation":"<p>Indicates the setting of the Amazon S3 bucket where the transcript is stored.</p>"
        }
      },
      "documentation":"<p>Indicates the setting of the location where the transcript is stored.</p>"
    },
    "TurnNumber":{
      "type":"integer",
      "max":30,
      "min":0
    },
    "TurnSpecification":{
      "type":"structure",
      "members":{
        "agentTurn":{
          "shape":"AgentTurnSpecification",
          "documentation":"<p>Contains information about the agent messages in the turn.</p>"
        },
        "userTurn":{
          "shape":"UserTurnSpecification",
          "documentation":"<p>Contains information about the user messages in the turn.</p>"
        }
      },
      "documentation":"<p>Contains information about the messages in the turn.</p>"
    },
    "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/lexv2/latest/dg/how-languages.html\">Supported languages</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>"
        },
        "generativeAISettings":{
          "shape":"GenerativeAISettings",
          "documentation":"<p>Contains settings for generative AI features powered by Amazon Bedrock for your bot locale. Use this object to turn generative AI features on and off. Pricing may differ if you turn a feature on. For more information, see LINK.</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>"
        },
        "recommendedActions":{
          "shape":"RecommendedActions",
          "documentation":"<p>Recommended actions to take to resolve an error in the <code>failureReasons</code> field.</p>"
        },
        "generativeAISettings":{
          "shape":"GenerativeAISettings",
          "documentation":"<p>Contains settings for generative AI features powered by Amazon Bedrock for your bot locale.</p>"
        }
      }
    },
    "UpdateBotRecommendationRequest":{
      "type":"structure",
      "required":[
        "botId",
        "botVersion",
        "localeId",
        "botRecommendationId",
        "encryptionSetting"
      ],
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot containing the bot recommendation to be updated.</p>",
          "location":"uri",
          "locationName":"botId"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot containing the bot recommendation to be updated.</p>",
          "location":"uri",
          "locationName":"botVersion"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to update. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot recommendation to be updated.</p>",
          "location":"uri",
          "locationName":"botRecommendationId"
        },
        "encryptionSetting":{
          "shape":"EncryptionSetting",
          "documentation":"<p>The object representing the passwords that will be used to encrypt the data related to the bot recommendation results, as well as the KMS key ARN used to encrypt the associated metadata.</p>"
        }
      }
    },
    "UpdateBotRecommendationResponse":{
      "type":"structure",
      "members":{
        "botId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot containing the bot recommendation that has been updated.</p>"
        },
        "botVersion":{
          "shape":"DraftBotVersion",
          "documentation":"<p>The version of the bot containing the bot recommendation that has been updated.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The identifier of the language and locale of the bot recommendation to update. The string must match one of the supported locales. For more information, see <a href=\"https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html\">Supported languages</a> </p>"
        },
        "botRecommendationStatus":{
          "shape":"BotRecommendationStatus",
          "documentation":"<p>The status of the bot recommendation.</p> <p>If the status is Failed, then the reasons for the failure are listed in the failureReasons field. </p>"
        },
        "botRecommendationId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier of the bot recommendation to be updated.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot recommendation was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>A timestamp of the date and time that the bot recommendation was last updated.</p>"
        },
        "transcriptSourceSetting":{
          "shape":"TranscriptSourceSetting",
          "documentation":"<p>The object representing the Amazon S3 bucket containing the transcript, as well as the associated metadata.</p>"
        },
        "encryptionSetting":{
          "shape":"EncryptionSetting",
          "documentation":"<p>The object representing the passwords that were used to encrypt the data related to the bot recommendation results, as well as the KMS key ARN used to encrypt the associated metadata.</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 href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateBot.html\">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>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of the bot to be updated.</p>"
        },
        "botMembers":{
          "shape":"BotMembers",
          "documentation":"<p>The list of bot members in the network associated with the update action.</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>"
        },
        "botType":{
          "shape":"BotType",
          "documentation":"<p>The type of the bot that was updated.</p>"
        },
        "botMembers":{
          "shape":"BotMembers",
          "documentation":"<p>The list of bot members in the network that was updated.</p>"
        }
      }
    },
    "UpdateCustomVocabularyItemsList":{
      "type":"list",
      "member":{"shape":"CustomVocabularyItem"},
      "max":10,
      "min":1
    },
    "UpdateExportRequest":{
      "type":"structure",
      "required":["exportId"],
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier Amazon Lex assigned to the export.</p>",
          "location":"uri",
          "locationName":"exportId"
        },
        "filePassword":{
          "shape":"ImportExportFilePassword",
          "documentation":"<p>The new password to use to encrypt the export zip archive.</p>"
        }
      }
    },
    "UpdateExportResponse":{
      "type":"structure",
      "members":{
        "exportId":{
          "shape":"Id",
          "documentation":"<p>The unique identifier Amazon Lex assigned to the export.</p>"
        },
        "resourceSpecification":{
          "shape":"ExportResourceSpecification",
          "documentation":"<p>A description of the type of resource that was exported, either a bot or a bot locale.</p>"
        },
        "fileFormat":{
          "shape":"ImportExportFileFormat",
          "documentation":"<p>The file format used for the files that define the resource. The <code>TSV</code> format is required to export a custom vocabulary only; otherwise use <code>LexJson</code> format.</p>"
        },
        "exportStatus":{
          "shape":"ExportStatus",
          "documentation":"<p>The status of the export. When the status is <code>Completed</code> the export archive is available for download.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the export was created.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time that the export 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/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "initialResponseSetting":{
          "shape":"InitialResponseSetting",
          "documentation":"<p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>"
        },
        "qnAIntentConfiguration":{
          "shape":"QnAIntentConfiguration",
          "documentation":"<p>Specifies the configuration of the built-in <code>Amazon.QnAIntent</code>. The <code>AMAZON.QnAIntent</code> intent is called when Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the <code>kendraConfiguration</code> field.</p>"
        }
      }
    },
    "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>"
        },
        "initialResponseSetting":{
          "shape":"InitialResponseSetting",
          "documentation":"<p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>"
        },
        "qnAIntentConfiguration":{
          "shape":"QnAIntentConfiguration",
          "documentation":"<p>Details about the configuration of the built-in <code>Amazon.QnAIntent</code>.</p>"
        }
      }
    },
    "UpdateResourcePolicyRequest":{
      "type":"structure",
      "required":[
        "resourceArn",
        "policy"
      ],
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>",
          "location":"uri",
          "locationName":"resourceArn"
        },
        "policy":{
          "shape":"Policy",
          "documentation":"<p>A resource policy to add to the resource. The policy is a JSON structure that contains one or more statements that define the policy. The policy must follow the IAM syntax. For more information about the contents of a JSON policy document, see <a href=\"https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html\"> IAM JSON policy reference </a>. </p> <p>If the policy isn't valid, Amazon Lex returns a validation exception.</p>"
        },
        "expectedRevisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The identifier of the revision of the policy to update. If this revision ID doesn't match the current revision ID, Amazon Lex throws an exception.</p> <p>If you don't specify a revision, Amazon Lex overwrites the contents of the policy with the new values.</p>",
          "location":"querystring",
          "locationName":"expectedRevisionId"
        }
      }
    },
    "UpdateResourcePolicyResponse":{
      "type":"structure",
      "members":{
        "resourceArn":{
          "shape":"AmazonResourceName",
          "documentation":"<p>The Amazon Resource Name (ARN) of the bot or bot alias that the resource policy is attached to.</p>"
        },
        "revisionId":{
          "shape":"RevisionId",
          "documentation":"<p>The current revision of the resource policy. Use the revision ID to make sure that you are updating the most current version of a resource policy when you add a policy statement to a resource, delete a resource, or update a resource.</p>"
        }
      }
    },
    "UpdateSlotRequest":{
      "type":"structure",
      "required":[
        "slotId",
        "slotName",
        "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/lexv2/latest/dg/how-languages.html\">Supported languages</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"
        },
        "multipleValuesSetting":{
          "shape":"MultipleValuesSetting",
          "documentation":"<p>Determines whether the slot accepts multiple values in one response. Multiple value slots are only available in the en-US locale. If you set this value to <code>true</code> in any other locale, Amazon Lex throws a <code>ValidationException</code>.</p> <p>If the <code>multipleValuesSetting</code> is not set, the default value is <code>false</code>.</p>"
        },
        "subSlotSetting":{
          "shape":"SubSlotSetting",
          "documentation":"<p>Specifications for the constituent sub slots and the expression for the composite slot.</p>"
        }
      }
    },
    "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 version of the bot 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>"
        },
        "multipleValuesSetting":{
          "shape":"MultipleValuesSetting",
          "documentation":"<p>Indicates whether the slot accepts multiple values in one response.</p>"
        },
        "subSlotSetting":{
          "shape":"SubSlotSetting",
          "documentation":"<p>Specifications for the constituent sub slots and the expression for the composite slot.</p>"
        }
      }
    },
    "UpdateSlotTypeRequest":{
      "type":"structure",
      "required":[
        "slotTypeId",
        "slotTypeName",
        "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/lexv2/latest/dg/how-languages.html\">Supported languages</a>.</p>",
          "location":"uri",
          "locationName":"localeId"
        },
        "externalSourceSetting":{"shape":"ExternalSourceSetting"},
        "compositeSlotTypeSetting":{
          "shape":"CompositeSlotTypeSetting",
          "documentation":"<p>Specifications for a composite slot type.</p>"
        }
      }
    },
    "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>"
        },
        "externalSourceSetting":{"shape":"ExternalSourceSetting"},
        "compositeSlotTypeSetting":{
          "shape":"CompositeSlotTypeSetting",
          "documentation":"<p>Specifications for a composite slot type.</p>"
        }
      }
    },
    "UpdateTestSetRequest":{
      "type":"structure",
      "required":[
        "testSetId",
        "testSetName"
      ],
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for which update test operation to be performed.</p>",
          "location":"uri",
          "locationName":"testSetId"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The new test set name.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The new test set description.</p>"
        }
      }
    },
    "UpdateTestSetResponse":{
      "type":"structure",
      "members":{
        "testSetId":{
          "shape":"Id",
          "documentation":"<p>The test set Id for which update test operation to be performed.</p>"
        },
        "testSetName":{
          "shape":"Name",
          "documentation":"<p>The test set name for the updated test set.</p>"
        },
        "description":{
          "shape":"Description",
          "documentation":"<p>The test set description for the updated test set.</p>"
        },
        "modality":{
          "shape":"TestSetModality",
          "documentation":"<p>Indicates whether audio or text is used for the updated test set.</p>"
        },
        "status":{
          "shape":"TestSetStatus",
          "documentation":"<p>The status for the updated test set.</p>"
        },
        "roleArn":{
          "shape":"RoleArn",
          "documentation":"<p>The roleARN used for any operation in the test set to access resources in the Amazon Web Services account.</p>"
        },
        "numTurns":{
          "shape":"Count",
          "documentation":"<p>The number of conversation turns from the updated test set.</p>"
        },
        "storageLocation":{
          "shape":"TestSetStorageLocation",
          "documentation":"<p>The Amazon S3 storage location for the updated test set.</p>"
        },
        "creationDateTime":{
          "shape":"Timestamp",
          "documentation":"<p>The creation date and time for the updated test set.</p>"
        },
        "lastUpdatedDateTime":{
          "shape":"Timestamp",
          "documentation":"<p> The date and time of the last update for the updated test set.</p>"
        }
      }
    },
    "UserTurnInputSpecification":{
      "type":"structure",
      "required":["utteranceInput"],
      "members":{
        "utteranceInput":{
          "shape":"UtteranceInputSpecification",
          "documentation":"<p>The utterance input in the user turn.</p>"
        },
        "requestAttributes":{
          "shape":"StringMap",
          "documentation":"<p>Request attributes of the user turn.</p>"
        },
        "sessionState":{
          "shape":"InputSessionStateSpecification",
          "documentation":"<p>Contains information about the session state in the input.</p>"
        }
      },
      "documentation":"<p>Contains information about the user messages in the turn in the input.</p>"
    },
    "UserTurnIntentOutput":{
      "type":"structure",
      "required":["name"],
      "members":{
        "name":{
          "shape":"Name",
          "documentation":"<p>The name of the intent.</p>"
        },
        "slots":{
          "shape":"UserTurnSlotOutputMap",
          "documentation":"<p>The slots associated with the intent.</p>"
        }
      },
      "documentation":"<p>Contains information about the intent that is output for the turn by the test execution.</p>"
    },
    "UserTurnOutputSpecification":{
      "type":"structure",
      "required":["intent"],
      "members":{
        "intent":{
          "shape":"UserTurnIntentOutput",
          "documentation":"<p>Contains information about the intent.</p>"
        },
        "activeContexts":{
          "shape":"ActiveContextList",
          "documentation":"<p>The contexts that are active in the turn.</p>"
        },
        "transcript":{
          "shape":"TestSetUtteranceText",
          "documentation":"<p>The transcript that is output for the user turn by the test execution.</p>"
        }
      },
      "documentation":"<p>Contains results that are output for the user turn by the test execution.</p>"
    },
    "UserTurnResult":{
      "type":"structure",
      "required":[
        "input",
        "expectedOutput"
      ],
      "members":{
        "input":{
          "shape":"UserTurnInputSpecification",
          "documentation":"<p>Contains information about the user messages in the turn in the input.</p>"
        },
        "expectedOutput":{
          "shape":"UserTurnOutputSpecification",
          "documentation":"<p>Contains information about the expected output for the user turn.</p>"
        },
        "actualOutput":{
          "shape":"UserTurnOutputSpecification",
          "documentation":"<p>Contains information about the actual output for the user turn.</p>"
        },
        "errorDetails":{"shape":"ExecutionErrorDetails"},
        "endToEndResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>Specifies whether the expected and actual outputs match or not, or if there is an error in execution.</p>"
        },
        "intentMatchResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>Specifies whether the expected and actual intents match or not.</p>"
        },
        "slotMatchResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>Specifies whether the expected and actual slots match or not.</p>"
        },
        "speechTranscriptionResult":{
          "shape":"TestResultMatchStatus",
          "documentation":"<p>Specifies whether the expected and actual speech transcriptions match or not, or if there is an error in execution.</p>"
        },
        "conversationLevelResult":{
          "shape":"ConversationLevelResultDetail",
          "documentation":"<p>Contains information about the results related to the conversation associated with the user turn.</p>"
        }
      },
      "documentation":"<p>Contains the results for the user turn by the test execution.</p>"
    },
    "UserTurnSlotOutput":{
      "type":"structure",
      "members":{
        "value":{
          "shape":"NonEmptyString",
          "documentation":"<p>The value output by the slot recognition.</p>"
        },
        "values":{
          "shape":"UserTurnSlotOutputList",
          "documentation":"<p>Values that are output by the slot recognition.</p>"
        },
        "subSlots":{
          "shape":"UserTurnSlotOutputMap",
          "documentation":"<p>A list of items mapping the name of the subslots to information about those subslots.</p>"
        }
      },
      "documentation":"<p>Contains information about a slot output by the test set execution.</p>"
    },
    "UserTurnSlotOutputList":{
      "type":"list",
      "member":{"shape":"UserTurnSlotOutput"}
    },
    "UserTurnSlotOutputMap":{
      "type":"map",
      "key":{"shape":"Name"},
      "value":{"shape":"UserTurnSlotOutput"}
    },
    "UserTurnSpecification":{
      "type":"structure",
      "required":[
        "input",
        "expected"
      ],
      "members":{
        "input":{
          "shape":"UserTurnInputSpecification",
          "documentation":"<p>Contains information about the user messages in the turn in the input.</p>"
        },
        "expected":{
          "shape":"UserTurnOutputSpecification",
          "documentation":"<p>Contains results about the expected output for the user turn.</p>"
        }
      },
      "documentation":"<p>Contains information about the expected and input values for the user turn.</p>"
    },
    "Utterance":{"type":"string"},
    "UtteranceAggregationDuration":{
      "type":"structure",
      "required":["relativeAggregationDuration"],
      "members":{
        "relativeAggregationDuration":{
          "shape":"RelativeAggregationDuration",
          "documentation":"<p>The desired time window for aggregating utterances. </p>"
        }
      },
      "documentation":"<p>Provides parameters for setting the time window and duration for aggregating utterance data.</p>"
    },
    "UtteranceAudioInputSpecification":{
      "type":"structure",
      "required":["audioFileS3Location"],
      "members":{
        "audioFileS3Location":{
          "shape":"AudioFileS3Location",
          "documentation":"<p>Amazon S3 file pointing to the audio.</p>"
        }
      },
      "documentation":"<p>Contains information about the audio for an utterance.</p>"
    },
    "UtteranceBotResponse":{
      "type":"structure",
      "members":{
        "content":{
          "shape":"String",
          "documentation":"<p>The text of the response to the utterance from the bot.</p>"
        },
        "contentType":{
          "shape":"UtteranceContentType",
          "documentation":"<p>The type of the response. The following values are possible:</p> <ul> <li> <p> <code>PlainText</code> – A plain text string.</p> </li> <li> <p> <code>CustomPayload</code> – A response string that you can customize to include data or metadata for your application.</p> </li> <li> <p> <code>SSML</code> – A string that includes Speech Synthesis Markup Language to customize the audio response.</p> </li> <li> <p> <code>ImageResponseCard</code> – An image with buttons that the customer can select. See <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_ImageResponseCard.html\">ImageResponseCard</a> for more information.</p> </li> </ul>"
        },
        "imageResponseCard":{"shape":"ImageResponseCard"}
      },
      "documentation":"<p>An object that contains a response to the utterance from the bot.</p>"
    },
    "UtteranceBotResponses":{
      "type":"list",
      "member":{"shape":"UtteranceBotResponse"}
    },
    "UtteranceContentType":{
      "type":"string",
      "enum":[
        "PlainText",
        "CustomPayload",
        "SSML",
        "ImageResponseCard"
      ]
    },
    "UtteranceDataSortBy":{
      "type":"structure",
      "required":[
        "name",
        "order"
      ],
      "members":{
        "name":{
          "shape":"AnalyticsUtteranceSortByName",
          "documentation":"<p>The measure by which to sort the utterance analytics data.</p> <ul> <li> <p> <code>Count</code> – The number of utterances.</p> </li> <li> <p> <code>UtteranceTimestamp</code> – The date and time of the utterance.</p> </li> </ul>"
        },
        "order":{
          "shape":"AnalyticsSortOrder",
          "documentation":"<p>Specifies whether to sort the results in ascending or descending order.</p>"
        }
      },
      "documentation":"<p>An object specifying the measure and method by which to sort the utterance data.</p>"
    },
    "UtteranceInputSpecification":{
      "type":"structure",
      "members":{
        "textInput":{
          "shape":"TestSetUtteranceText",
          "documentation":"<p>A text input transcription of the utterance. It is only applicable for test-sets containing text data.</p>"
        },
        "audioInput":{
          "shape":"UtteranceAudioInputSpecification",
          "documentation":"<p>Contains information about the audio input for an utterance.</p>"
        }
      },
      "documentation":"<p>Contains information about input of an utterance.</p>"
    },
    "UtteranceLevelTestResultItem":{
      "type":"structure",
      "required":[
        "recordNumber",
        "turnResult"
      ],
      "members":{
        "recordNumber":{
          "shape":"RecordNumber",
          "documentation":"<p>The record number of the result.</p>"
        },
        "conversationId":{
          "shape":"TestSetConversationId",
          "documentation":"<p>The unique identifier for the conversation associated with the result.</p>"
        },
        "turnResult":{
          "shape":"TestSetTurnResult",
          "documentation":"<p>Contains information about the turn associated with the result.</p>"
        }
      },
      "documentation":"<p>Contains information about multiple utterances in the results of a test set execution.</p>"
    },
    "UtteranceLevelTestResultItemList":{
      "type":"list",
      "member":{"shape":"UtteranceLevelTestResultItem"}
    },
    "UtteranceLevelTestResults":{
      "type":"structure",
      "required":["items"],
      "members":{
        "items":{
          "shape":"UtteranceLevelTestResultItemList",
          "documentation":"<p>Contains information about an utterance in the results of the test set execution.</p>"
        }
      },
      "documentation":"<p>Contains information about the utterances in the results of the test set execution.</p>"
    },
    "UtteranceSpecification":{
      "type":"structure",
      "members":{
        "botAliasId":{
          "shape":"BotAliasId",
          "documentation":"<p>The identifier of the alias of the bot that the utterance was made to.</p>"
        },
        "botVersion":{
          "shape":"NumericalBotVersion",
          "documentation":"<p>The version of the bot that the utterance was made to.</p>"
        },
        "localeId":{
          "shape":"LocaleId",
          "documentation":"<p>The locale of the bot that the utterance was made to.</p>"
        },
        "sessionId":{
          "shape":"AnalyticsSessionId",
          "documentation":"<p>The identifier of the session that the utterance was made in.</p>"
        },
        "channel":{
          "shape":"AnalyticsChannel",
          "documentation":"<p>The channel that is integrated with the bot that the utterance was made to.</p>"
        },
        "mode":{
          "shape":"AnalyticsModality",
          "documentation":"<p>The mode of the session. The possible values are as follows:</p> <ul> <li> <p> <code>Speech</code> – The session consisted of spoken dialogue.</p> </li> <li> <p> <code>Text</code> – The session consisted of written dialogue.</p> </li> <li> <p> <code>DTMF</code> – The session consisted of touch-tone keypad (Dual Tone Multi-Frequency) key presses.</p> </li> <li> <p> <code>MultiMode</code> – The session consisted of multiple modes.</p> </li> </ul>"
        },
        "conversationStartTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the conversation in which the utterance took place began. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p>"
        },
        "conversationEndTime":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the conversation in which the utterance took place ended. A conversation is defined as a unique combination of a <code>sessionId</code> and an <code>originatingRequestId</code>.</p>"
        },
        "utterance":{
          "shape":"String",
          "documentation":"<p>The text of the utterance.</p>"
        },
        "utteranceTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time when the utterance took place.</p>"
        },
        "audioVoiceDurationMillis":{
          "shape":"AnalyticsLongValue",
          "documentation":"<p>The duration in milliseconds of the audio associated with the utterance.</p>"
        },
        "utteranceUnderstood":{
          "shape":"UtteranceUnderstood",
          "documentation":"<p>Specifies whether the bot understood the utterance or not.</p>"
        },
        "inputType":{
          "shape":"String",
          "documentation":"<p>The input type of the utterance. The possible values are as follows:</p> <ul> <li> <p>PCM format: audio data must be in little-endian byte order.</p> <ul> <li> <p> <code>audio/l16; rate=16000; channels=1</code> </p> </li> <li> <p> <code>audio/x-l16; sample-rate=16000; channel-count=1</code> </p> </li> <li> <p> <code>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</code> </p> </li> </ul> </li> <li> <p>Opus format</p> <ul> <li> <p> <code>audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4</code> </p> </li> </ul> </li> <li> <p>Text format</p> <ul> <li> <p> <code>text/plain; charset=utf-8</code> </p> </li> </ul> </li> </ul>"
        },
        "outputType":{
          "shape":"String",
          "documentation":"<p>The output type of the utterance. The possible values are as follows:</p> <ul> <li> <p> <code>audio/mpeg</code> </p> </li> <li> <p> <code>audio/ogg</code> </p> </li> <li> <p> <code>audio/pcm (16 KHz)</code> </p> </li> <li> <p> <code>audio/</code> (defaults to <code>mpeg</code>)</p> </li> <li> <p> <code>text/plain; charset=utf-8</code> </p> </li> </ul>"
        },
        "associatedIntentName":{
          "shape":"Name",
          "documentation":"<p>The name of the intent that the utterance is associated to.</p>"
        },
        "associatedSlotName":{
          "shape":"Name",
          "documentation":"<p>The name of the slot that the utterance is associated to.</p>"
        },
        "intentState":{
          "shape":"IntentState",
          "documentation":"<p>The state of the intent that the utterance is associated to.</p>"
        },
        "dialogActionType":{
          "shape":"String",
          "documentation":"<p>The type of dialog action that the utterance is associated to. See the <code>type</code> field in <a href=\"https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_DialogAction.html\">DialogAction</a> for more information.</p>"
        },
        "botResponseAudioVoiceId":{
          "shape":"String",
          "documentation":"<p>The identifier for the audio of the bot response.</p>"
        },
        "slotsFilledInSession":{
          "shape":"String",
          "documentation":"<p>The slots that have been filled in the session by the time of the utterance.</p>"
        },
        "utteranceRequestId":{
          "shape":"Id",
          "documentation":"<p>The identifier of the request associated with the utterance.</p>"
        },
        "botResponses":{
          "shape":"UtteranceBotResponses",
          "documentation":"<p>A list of objects containing information about the bot response to the utterance.</p>"
        }
      },
      "documentation":"<p>An object containing information about a specific utterance.</p>"
    },
    "UtteranceSpecifications":{
      "type":"list",
      "member":{"shape":"UtteranceSpecification"}
    },
    "UtteranceUnderstood":{"type":"boolean"},
    "ValidationException":{
      "type":"structure",
      "members":{
        "message":{"shape":"ExceptionMessage"}
      },
      "documentation":"<p>One of the input parameters in your request isn't valid. Check the parameters and try your request again.</p>",
      "error":{"httpStatusCode":400},
      "exception":true
    },
    "Value":{
      "type":"string",
      "max":140,
      "min":1
    },
    "VoiceEngine":{
      "type":"string",
      "enum":[
        "standard",
        "neural"
      ]
    },
    "VoiceId":{"type":"string"},
    "VoiceSettings":{
      "type":"structure",
      "required":["voiceId"],
      "members":{
        "voiceId":{
          "shape":"VoiceId",
          "documentation":"<p>The identifier of the Amazon Polly voice to use.</p>"
        },
        "engine":{
          "shape":"VoiceEngine",
          "documentation":"<p>Indicates the type of Amazon Polly voice that Amazon Lex should use for voice interaction with the user. For more information, see the <a href=\"https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html#polly-SynthesizeSpeech-request-Engine\"> <code>engine</code> parameter of the <code>SynthesizeSpeech</code> operation</a> in the <i>Amazon Polly developer guide</i>.</p> <p>If you do not specify a value, the default is <code>standard</code>.</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>"
        },
        "active":{
          "shape":"BoxedBoolean",
          "documentation":"<p>Specifies whether the bot will wait for a user to respond. When this field is false, wait and continue responses for a slot aren't used. If the <code>active</code> field isn't specified, the default is true.</p>"
        }
      },
      "documentation":"<p>Specifies the prompts that Amazon Lex uses while a bot is waiting for customer input. </p>"
    },
    "Weight":{
      "type":"integer",
      "box":true,
      "max":3,
      "min":0
    }
  },
  "documentation":"<p/>"
}
