

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Importação e exportação de bots no Lex V2
<a name="importing-exporting"></a>

Você pode exportar uma definição de bot, uma localidade de bot ou um vocabulário personalizado e depois importá-lo novamente para criar um novo recurso ou substituir um recurso existente em uma conta da AWS. Por exemplo, você pode exportar um bot de uma conta de teste e depois criar uma cópia do bot na sua conta de produção. Você também pode copiar um bot de uma região da AWS para outra região. 

Você pode alterar os recursos do recurso exportado antes de importá-lo. Por exemplo, você pode exportar um bot e depois editar o arquivo JSON de um slot para adicionar ou remover declarações de elicitação do valor de um slot específico. Depois de editar a definição, importe o arquivo modificado.

**Topics**
+ [Exportação de bots do Lex V2](export.md)
+ [Importação de bots do Lex V2](import.md)
+ [Usar uma senha ao importar ou exportar](import-export-password.md)
+ [Formato JSON para importação e exportação de bots no Lex V2](import-export-format.md)

# Exportação de bots do Lex V2
<a name="export"></a>

Você exporta um bot, o local do bot ou o vocabulário personalizado usando o console ou a operação `CreatExport`. Você especifica o recurso a ser exportado e pode fornecer uma senha opcional para proteger o arquivo zipado ao iniciar uma exportação. Depois de baixar o arquivo zipado, use a senha para acessar o arquivo. Para obter mais informações, consulte [Usar uma senha ao importar ou exportar](import-export-password.md).

A exportação é uma operação de natureza assíncrona. Depois de iniciar a exportação, use o console ou a operação `DescribeExport` para monitorar o progresso. Quando a exportação terminar, o console ou a operação `DescribeExport` mostrará o status `COMPLETED`, e o console baixará o arquivo zipado de exportação para seu navegador. Se você usar a operação `DescribeExport`, o Amazon Lex V2 fornecerá um URL pré-assinado do Amazon S3 para você baixar os resultados da exportação. O URL de download fica disponível por apenas cinco minutos. Para obter um novo URL, chame a operação `DescribeExport` novamente.

Você pode ver o histórico das exportações de um recurso com o console ou com a operação `ListExports`. Os resultados mostram as exportações junto com o status atual. Uma exportação fica disponível no histórico por sete dias.

Quando você exporta a versão `Draft` de um bot ou de um local de um bot, é possível que a definição no arquivo JSON fique em um estado inconsistente, pois é possível alterar a versão de `Draft` de um bot ou o local de um bot enquanto a exportação está em andamento. Se a versão de `Draft` for alterada durante a exportação, as alterações talvez não sejam incluídas no arquivo de exportação.

Quando você exporta o local de um bot, o Amazon Lex exporta todas as informações que definem o local, incluindo região, vocabulário personalizado, intents, tipos de slots e slots. 

Quando você exporta um bot, o Amazon Lex exporta todos os locais definidos do bot, incluindo os intents, tipos de slots e slots. Os itens a seguir não são exportados com um bot:
+ Aliases de bot
+ ARN do perfil associado a um bot
+ Tags associadas a bots e aliases de bots
+ Hooks de código Lambda associados a um alias de bot

O ARN e as tags do perfil são inseridos como parâmetros de solicitação quando você importa um bot. Você precisa criar aliases de bot e atribuir hooks de código Lambda após a importação se necessário.

Você pode remover uma exportação e o arquivo zipado associado usando o console ou a operação `DeleteExport`. 

Para ver um exemplo de exportação de um bot usando o console, consulte [Exportação de um bot do Lex V2 (console)](export-console.md).

## Permissões do IAM necessárias para exportar bots no Lex V2
<a name="export-permissions"></a>

Para exportar bots, locais de bots e vocabulários personalizados, o usuário que executa a exportação precisa ter as seguintes permissões do IAM.


| solicitações de |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html) | Recurso | 
| --- | --- | --- | 
| [CreateExport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateExport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html) | Bot | 
| [UpdateExport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateExport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html) | Bot | 
| [DescribeExport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeExport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html) | Bot | 
| [DescribeExport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeExport.html)para vocabulários personalizados | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html)  | bot | 
| [DeleteExport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DeleteExport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html) | Bot | 
| [ListExports](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListExports.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/export.html) | \$1 | 

Para ver um exemplo de política do IAM, consulte [Permitir que um usuário exporte bots e localidades de bots](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-export).

# Exportação de um bot do Lex V2 (console)
<a name="export-console"></a>

Você pode exportar um bot da lista de bots, da lista de versões ou da página de detalhes da versão. Quando você escolhe uma versão, o Amazon Lex V2 exporta essa versão. As instruções a seguir pressupõem que vai começar a exportar o bot da lista de bots; mas, quando você começa com uma versão, as etapas são as mesmas.

**Para exportar um bot usando o console**

1. Faça login no AWS Management Console e abra o console Amazon Lex V2 em [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. Na lista de bots, escolha o bot que quer exportar.

1. Em **Ação**, escolha **Exportar**. 

1. Escolha a versão, a plataforma e o formato de exportação do bot.

1. (Opcional) Insira uma senha para o arquivo zipado. Com uma senha, você protege o arquivo de saída.

1. Escolha **Exportar**.

Depois de iniciar a exportação, retorne à lista de bots. Para monitorar o progresso da exportação, use a lista de **histórico de importação/exportação**. Quando o status da exportação é **Complete**, o console baixa automaticamente o arquivo zipado para seu computador. 

Para baixar a exportação novamente, na import/export lista, escolha a exportação e, em seguida, escolha **Baixar**. Você pode colocar uma senha no arquivo .zip obtido por download.

**Exportar uma linguagem de bot**

1. Faça login no AWS Management Console e abra o console Amazon Lex V2 em [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. Na lista de bots, escolha o bot cujo idioma deseja exportar.

1. Em **Adicionar idiomas**, escolha **Visualizar idiomas**.

1. Na lista **Todos os idiomas**, escolha o idioma para exportar.

1. Em **Ação**, escolha **Exportar**.

1. Escolha a versão, a plataforma e o formato do bot. 

1. (Opcional) Insira uma senha para o arquivo zipado. Com uma senha, você protege o arquivo de saída.

1. Escolha **Exportar**.

Depois de iniciar a exportação, você retorna à lista de idiomas. Para monitorar o progresso da exportação, use a lista de **histórico de importação/exportação**. Quando o status da exportação é **Complete**, o console baixa automaticamente o arquivo zipado para seu computador. 

Para baixar a exportação novamente, na import/export lista, escolha a exportação e, em seguida, escolha **Baixar**. Você pode colocar uma senha no arquivo .zip obtido por download.

# Importação de bots do Lex V2
<a name="import"></a>

Para usar o console para importar um bot, um local de bot ou um vocabulário personalizado exportado anteriormente, forneça o local do arquivo no seu computador local e a senha opcional para desbloquear o arquivo. Para ver um exemplo, consulte [Importação de um bot do Lex V2 (console)](import-console.md).

Quando você usa a API, importar um recurso é um processo de três etapas:

1. Crie um URL de upload usando a operação `CreateUploadUrl`. Não é necessário criar um URL de upload se estiver usando o console.

1. Carregue o arquivo zipado com a definição do recurso.

1. Inicie a importação com a operação `StartImport`.

O URL de upload é um URL pré-assinado do Amazon S3 com permissão de gravação. O URL fica disponível por cinco minutos após ser gerado. Se você proteger com senha o arquivo zipado, será preciso informar a senha para iniciar a importação. Para obter mais informações, consulte [Usar uma senha ao importar ou exportar](import-export-password.md).

Uma importação é um processo assíncrono. Monitore o andamento de uma importação usando o console ou a operação de `DescribeImport`. 

Quando você importa um bot ou o local do bot, pode haver conflitos entre os nomes dos recursos no arquivo de importação e os nomes dos recursos existentes no Amazon Lex V2. O Amazon Lex V2 pode lidar com o conflito de três maneiras:
+ **Falha em caso de conflito** — A importação é interrompida e nenhum recurso é importado do arquivo zipado de importação.
+ **Substituir** — O Amazon Lex V2 importa todos os recursos do arquivo importado zipado e substitui qualquer recurso existente pela definição do arquivo de importação. 
+ **Anexar** — O Amazon Lex V2 importa todos os recursos do arquivo importado zipado e substitui qualquer recurso existente pela definição do arquivo de importação. Isso está disponível somente para o local do bot. 

Você pode ver uma lista das importações para um recurso usando o console ou a operação `ListImports`. As importações permanecem na lista por sete dias. Você pode usar o console ou a operação `DescribeImport` para ver detalhes sobre uma importação específica.

Você também pode remover uma importação e o arquivo zipado associado usando o console ou a operação `DeleteImport`.

Para ver um exemplo de importação de um bot usando o console, consulte [Importação de um bot do Lex V2 (console)](import-console.md).

## Permissões do IAM necessárias para importar
<a name="import-permissions"></a>

Para importar bots, locais de bots e vocabulários personalizados, o usuário que executa a importação precisa ter as seguintes permissões do IAM. 


| solicitações de | Ações de IAM necessárias | Recurso | 
| --- | --- | --- | 
| [CreateUploadUrl](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateUploadUrl.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html) | \$1 | 
| [StartImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html)para bot e localidade de bots | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html) | 
| [StartImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html)para vocabulários personalizados | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html)  | bot | 
| [DescribeImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeImport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html) | Bot | 
| [DeleteImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DeleteImport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html) | Bot | 
| [ListImports](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_ListImports.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/import.html) | \$1 | 

Para ver um exemplo de política do IAM, consulte [Permitir que um usuário importe bots e localidades de bots](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-import).

# Importação de um bot do Lex V2 (console)
<a name="import-console"></a>

**Para importar um bot usando o console**

1. Faça login no AWS Management Console e abra o console Amazon Lex V2 em [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. Em **Ação**, escolha **Importar**.

1. Em **Arquivo de entrada**, dê um nome ao bot e escolha o arquivo zipado que contém os arquivos JSON que definem o bot.

1. Informe a senha do arquivo zipado, se houver. Não é obrigatório usar uma senha no arquivo, mas isso ajuda a proteger o conteúdo.

1. Crie ou insira o perfil do IAM que define as permissões para o bot.

1. Indica se o seu bot está sujeito à Lei de Proteção à Privacidade Online para Crianças (COPPA).

1. Forneça uma configuração de tempo limite de inatividade para o bot. Se você não fornecer um valor, será usado o valor do arquivo zipado. Se o arquivo zipado não contiver uma configuração de tempo limite, o Amazon Lex V2 usa o padrão de 300 segundos (cinco minutos).

1. (Opcional) Adicione tags ao bot.

1. Escolha se deseja avisar sobre a substituição de bots existentes com o mesmo nome. Se você ativar os avisos de que o bot que você está importando sobrescreverá um bot existente, você receberá um aviso e o bot não será importado. Se você desativar os avisos, o bot importado substituirá o bot existente com o mesmo nome.

1. Escolha **Importar**.

Depois de iniciar a importação, você vai retornar à lista de bots. Para monitorar o progresso da importação, use a lista de **histórico de importação/exportação**. Quando o status da importação for **Complete**, você poderá escolher o bot na lista de bots para modificar ou compilar o bot. 

**Para importar uma linguagem de bot**

1. Faça login no AWS Management Console e abra o console Amazon Lex V2 em [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. Na lista de bots, escolha o bot para o qual você quer importar um idioma.

1. Em **Adicionar idiomas**, escolha **Visualizar idiomas**.

1. Em **Ação**, escolha **Importar**.

1. Em **Arquivo de entrada**, escolha o arquivo que contém o idioma a ser importado. Se você protegeu o arquivo zipado, informe a senha em **Senha**.

1. Em **Idioma**, escolha o idioma para importar. O idioma não precisa ser o mesmo do arquivo de importação. Você pode copiar os intents de um idioma para outro.

1. Em **Voz**, escolha a voz do Amazon Polly a ser usada para interação por voz ou escolha **Nenhuma** para um bot somente de texto.

1. Em **Limite de pontuação de confiança**, insira o limite em que o Amazon Lex V2 vai inserir `AMAZON.FallbackIntent` e `AMAZON.KendraSearchIntent` ou ambos ao retornar intents alternativos.

1. Escolha se deseja avisar sobre a substituição de um idioma existente. Se você ativar os avisos de que o idioma que você está importando sobrescreverá um idioma existente, você receberá um aviso e o idioma não será importado. Se você desativar os avisos, o idioma importado substituirá o idioma existente.

1. Escolha **Importar** para iniciar a importação. do idioma.

Depois de iniciar a importação, você vai retornar à lista de idiomas. Para monitorar o progresso da importação, use a lista de **histórico de importação/exportação**. Quando o status da importação for **Complete**, você poderá escolher o idioma na lista de bots para modificar ou compilar o bot. 

# Usar uma senha ao importar ou exportar
<a name="import-export-password"></a>

O Amazon Lex V2 pode proteger com senha seus arquivos de exportação ou ler seus arquivos de importação protegidos usando a compactação padrão de arquivos zipados. Você deve sempre proteger com senha seus arquivos de importação e exportação.

O Amazon Lex V2 envia seu arquivo de exportação para um bucket do S3, que fica disponível para você com um URL pré-assinado do S3. O URL só está disponível por cinco minutos. O arquivo está disponível para qualquer pessoa com acesso ao URL de download. Para ajudar a proteger os dados no arquivo, forneça uma senha ao exportar o recurso. Se precisar obter o arquivo após o URL expirar, você pode usar o console ou a operação `DescribeExport` para obter um novo URL.

Se você perder a senha de um arquivo de exportação, poderá criar uma nova senha para um arquivo existente escolhendo **Baixar** na tabela do import/export histórico ou usando a `UpdateExport` operação. Se você escolher **Download** na tabela de histórico para uma exportação e não fornecer uma senha, o Amazon Lex V2 fará o download de um arquivo zip desprotegido.

# Formato JSON para importação e exportação de bots no Lex V2
<a name="import-export-format"></a>

Para importar e exporta bots, locais de bots ou vocabulários personalizados do Amazon Lex V2, use um arquivo zipado que contém estruturas JSON que descrevem as partes do recurso. Quando você exporta um recurso, o Amazon Lex V2 cria o arquivo zipado e o disponibiliza para você usando um URL pré-assinado do Amazon S3. Ao importar um recurso, você deve criar um arquivo zipado que contenha as estruturas JSON e carregá-lo em um URL pré-assinado do S3. 

O Amazon Lex cria a seguinte estrutura de diretórios no arquivo zipado quando você exporta um bot. Quando você exporta um local de bot, somente a estrutura abaixo local é exportado. Quando você exporta um vocabulário personalizado, somente a estrutura sob o vocabulário personalizado é exportado.

```
BotName_BotVersion_ExportID_LexJson.zip
            -or-
BotName_BotVersion_LocaleId_ExportId_LEX_JSON.zip
        --> manifest.json
        --> BotName
        ----> Bot.json
        ----> BotLocales
        ------> Locale_A
        --------> BotLocale.json
        --------> Intents
        ----------> Intent_A
        ------------> Intent.json
        ------------> Slots
        --------------> Slot_A
        ----------------> Slot.json
        --------------> Slot_B
        ----------------> Slot.json
        ----------> Intent_B
                       ...
        --------> SlotTypes
        ----------> SlotType_A
        ------------> SlotType.json
        ----------> SlotType_B
                        ...
        --------> CustomVocabulary
        ------------> CustomVocabulary.json

        ------> Locale_B
                        ...
```

## Estrutura de arquivo de manifesto
<a name="json-manifest"></a>

O arquivo de manifesto contém metadados para o arquivo de exportação.

```
{
    "metadata": {
        "schemaVersion": "1.0",
        "fileFormat": "LexJson",
        "resourceType": "Bot | BotLocale | CustomVocabulary"
    }
}
```

## Estrutura de arquivo do bot
<a name="json-bot"></a>

O arquivo do bot contém as informações de configuração para o bot.

```
{
    "name": "BotName",
    "identifier": "identifier",
    "version": "number",
    "description": "description",
    "dataPrivacy": {
        "childDirected": true | false
    },
    "idleSessionTTLInSeconds": seconds
}
```

## Estrutura de arquivo de local do bot
<a name="json-bot-locale"></a>

O arquivo de local do bot contém uma descrição do local ou do idioma de um bot. Quando você exporta um bot, pode haver mais de um arquivo de local do bot no arquivo zipado. Quando você exporta um local de bot, há somente um local no arquivo zipado.

```
{
    "name": "locale name",
    "identifier": "locale ID",
    "version": "number",
    "description": "description",
    "voiceSettings": {
        "voiceId": "voice",
        "engine": "standard | neural
    },
    "nluConfidenceThreshold": number
}
```

## Estrutura do arquivo do intent
<a name="json-intent"></a>

O arquivo de intent contém as informações de configuração de um intent. Há um arquivo de intent no arquivo zipado para cada intent em um local específico.

Veja a seguir um exemplo de uma estrutura JSON para a BookCar intenção no bot de amostra BookTrip . Para ver um exemplo completo da estrutura JSON para uma intenção, consulte a [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operação.

```
{
    "name": "BookCar",
    "identifier": "891RWHHICO",
    "description": "Intent to book a car.",
    "parentIntentSignature": null,
    "sampleUtterances": [
        {
            "utterance": "Book a car"
        },
        {
            "utterance": "Reserve a car"
        },
        {
            "utterance": "Make a car reservation"
        }
    ],
    "intentConfirmationSetting": {
        "confirmationPrompt": {
            "messageGroupList": [
                {
                    "message": {
                        "plainTextMessage": {
                            "value": "OK, I have you down for a {CarType} hire in {PickUpCity} from {PickUpDate} to {ReturnDate}.  Should I book the reservation?"
                        },
                        "ssmlMessage": null,
                        "customPayload": null,
                        "imageResponseCard": null
                    },
                    "variations": null
                }
            ],
            "maxRetries": 2
        },
        "declinationResponse": {
            "messageGroupList": [
                {
                    "message": {
                        "plainTextMessage": {
                            "value": "OK, I have cancelled your reservation in progress."
                        },
                        "ssmlMessage": null,
                        "customPayload": null,
                        "imageResponseCard": null
                    },
                    "variations": null
                }
            ]
        }
    },
    "intentClosingSetting": null,
    "inputContexts": null,
    "outputContexts": null,
    "kendraConfiguration": null,
    "dialogCodeHook": null,
    "fulfillmentCodeHook": null,
    "slotPriorities": [
        {
            "slotName": "DriverAge",
            "priority": 4
        },
        {
            "slotName": "PickUpDate",
            "priority": 2
        },
        {
            "slotName": "ReturnDate",
            "priority": 3
        },
        {
            "slotName": "PickUpCity",
            "priority": 1
        },
        {
            "slotName": "CarType",
            "priority": 5
        }
    ]
}
```

## Estrutura de arquivo do slot
<a name="json-slot"></a>

O arquivo de slot contém as informações de configuração de um slot em um intent. Há um arquivo de slot no arquivo zipado para cada slot definido para um intent em um local específico.

O exemplo a seguir é a estrutura JSON de um slot que permite ao cliente escolher o tipo de carro que deseja alugar na BookCar intenção do bot de BookTrip exemplo. Para ver um exemplo completo da estrutura JSON de um slot, consulte a [CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)operação.

```
{
    "name": "CarType",
    "identifier": "KDHJWNGZGC",
    "description": "Type of car being reserved.",
    "multipleValuesSetting": {
        "allowMutlipleValues": false
    },
    "slotTypeName": "CarTypeValues",
    "obfuscationSetting": null,
    "slotConstraint": "Required",
    "defaultValueSpec": null,
    "slotValueElicitationSetting": {
        "promptSpecification": {
            "messageGroupList": [
                {
                    "message": {
                        "plainTextMessage": {
                            "value": "What type of car would you like to rent?  Our most popular options are economy, midsize, and luxury"
                        },
                        "ssmlMessage": null,
                        "customPayload": null,
                        "imageResponseCard": null
                    },
                    "variations": null
                }
            ],
            "maxRetries": 2
        },
        "sampleValueElicitingUtterances": null,
        "waitAndContinueSpecification": null,
    }
}
```

O exemplo a seguir mostra a estrutura JSON de um slot de composição.

```
{
  "name": "CarType",
  "identifier": "KDHJWNGZGC",
  "description": "Type of car being reserved.",
  "multipleValuesSetting": {
      "allowMutlipleValues": false
  },
  "slotTypeName": "CarTypeValues",
  "obfuscationSetting": null,
  "slotConstraint": "Required",
  "defaultValueSpec": null,
  "slotValueElicitationSetting": {
      "promptSpecification": {
          "messageGroupList": [
              {
                  "message": {
                      "plainTextMessage": {
                          "value": "What type of car would you like to rent?  Our most popular options are economy, midsize, and luxury"
                      },
                      "ssmlMessage": null,
                      "customPayload": null,
                      "imageResponseCard": null
                  },
                  "variations": null
              }
          ],
          "maxRetries": 2
      },
      "sampleValueElicitingUtterances": null,
      "waitAndContinueSpecification": null,
  },
  "subSlotSetting": {
    "slotSpecifications": {
      "firstname": {
        "valueElicitationSetting": {
          "promptSpecification": {
            "allowInterrupt": false,
            "messageGroupsList": [
              {
                "message": {
                  "imageResponseCard": null,
                  "ssmlMessage": null,
                  "customPayload": null,
                  "plainTextMessage": {
                    "value": "please provide firstname"
                  }
                },
                "variations": null
              }
            ],
            "maxRetries": 2,
            "messageSelectionStrategy": "Random"
          },
          "defaultValueSpecification": null,
          "sampleUtterances": [
            {
              "utterance": "my name is {firstName}"
            }
          ],
          "waitAndContinueSpecification": null
        },
        "slotTypeId": "AMAZON.FirstName"
      },
      "eyeColor": {
        "valueElicitationSetting": {
          "promptSpecification": {
            "allowInterrupt": false,
            "messageGroupsList": [
              {
                "message": {
                  "imageResponseCard": null,
                  "ssmlMessage": null,
                  "customPayload": null,
                  "plainTextMessage": {
                    "value": "please provide eye color"
                  }
                },
                "variations": null
              }
            ],
            "maxRetries": 2,
            "messageSelectionStrategy": "Random"
          },
          "defaultValueSpecification": null,
          "sampleUtterances": [
            {
              "utterance": "eye color is {eyeColor}"
            },
            {
              "utterance": "I have eyeColor eyes"
            }
          ],
          "waitAndContinueSpecification": null
        },
        "slotTypeId": "7FEVCB2PQE"
      }
    },
    "expression": "(firstname OR eyeColor)"
  }
}
```

## Estrutura do arquivo do tipo de slot
<a name="json-slot-type"></a>

O arquivo do tipo de slot contém as informações de configuração de um tipo de slot personalizado usado em um idioma ou local. Há um arquivo de tipo de slot no arquivo zipado para cada tipo de slot personalizado em um local específico.

A seguir está a estrutura JSON para o tipo de slot que lista os tipos de carros disponíveis no bot de BookTrip exemplo. Para ver um exemplo completo da estrutura JSON para um tipo de slot, consulte a [CreateSlotType](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlotType.html)operação.

```
{
    "name": "CarTypeValues",
    "identifier": "T1YUHGD9ZR",
    "description": "Enumeration representing possible types of cars available for hire",
    "slotTypeValues": [{
        "synonyms": null,
        "sampleValue": {
            "value": "economy"
        }
    }, {
        "synonyms": null,
        "sampleValue": {
            "value": "standard"
        }
    }, {
        "synonyms": null,
        "sampleValue": {
            "value": "midsize"
        }
    }, {
        "synonyms": null,
        "sampleValue": {
            "value": "full size"
        }
    }, {
        "synonyms": null,
        "sampleValue": {
            "value": "luxury"
        }
    }, {
        "synonyms": null,
        "sampleValue": {
            "value": "minivan"
        }
    }],
    "parentSlotTypeSignature": null,
    "valueSelectionSetting": {
        "resolutionStrategy": "TOP_RESOLUTION",
        "advancedRecognitionSetting": {
            "audioRecognitionStrategy": "UseSlotValuesAsCustomVocabulary"
        },
        "regexFilter": null
    }
}
```

O exemplo a seguir mostra a estrutura JSON de um tipo de slot composto.

```
{
  "name": "CarCompositeType",
  "identifier": "TPA3CC9V",
  "description": null,
  "slotTypeValues": null,
  "parentSlotTypeSignature": null,
  "valueSelectionSetting": {
    "regexFilter": null,
    "resolutionStrategy": "CONCATENATION"
  },
  "compositeSlotTypeSetting": {
    "subSlots": [
      {
        "name": "model",
        "slotTypeId": "MODELTYPEID" # custom slot type Id for model
      },
      {
        "name": "city",
        "slotTypeId": "AMAZON.City"
      },
      {
        "name": "country",
        "slotTypeId": "AMAZON.Country"
      },
      {
        "name": "make",
        "slotTypeId": "MAKETYPEID" # custom slot type Id for make
      }
    ]
  }
}
```

A seguir está um tipo de slot que usa uma gramática personalizada para entender as declarações do cliente. Para obter mais informações, consulte [Tipo de slot de gramática](building-srgs.md).

```
{
  "name": "custom_grammar",
  "identifier": "7KEAQIQKPX",
  "description": "Slot type using a custom grammar",
  "slotTypeValues": null,
  "parentSlotTypeSignature": null,
  "valueSelectionSetting": null,
  "externalSourceSetting": {
    "grammarSlotTypeSetting": {
      "source": {
        "kmsKeyArn": "arn:aws:kms:Region:123456789012:alias/customer-grxml-key",
        "s3BucketName": "grxml-test",
        "s3ObjectKey": "grxml_files/grammar.grxml"
      }
    }
  }
}
```

## Estrutura de arquivo de vocabulário personalizado
<a name="json-custom-vocab"></a>

O arquivo de vocabulário personalizado contém as entradas em um vocabulário personalizado para um único idioma ou local. Há um arquivo de vocabulário personalizado no arquivo zipado para cada localidade que tem um vocabulário personalizado.

A seguir está um arquivo de vocabulário personalizado de um bot que recebe pedidos de restaurantes. Há um arquivo por local no bot.

```
{
    "customVocabularyItems": [
        {
            "weight": 3,
            "phrase": "wafers"
        },
        {
            "weight": null,
            "phrase": "extra large"
        },
        {
            "weight": null,
            "phrase": "cremini mushroom soup"
        },
        {
            "weight": null,
            "phrase": "ramen"
        },
        {
            "weight": null,
            "phrase": "orzo"
        }
    ]
}
```