

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Importación y exportación de bots en Lex V2
<a name="importing-exporting"></a>

Puede exportar una definición de bot, una configuración regional de bot o un vocabulario personalizado y, a continuación, volver a importarlo para crear un nuevo recurso o para sobrescribir un recurso existente en una cuenta de AWS. Por ejemplo, puede exportar un bot de una cuenta de prueba y, a continuación, crear una copia del bot en su cuenta de producción. También puede copiar un bot de una región de AWS a otra región. 

Puede cambiar los recursos del recurso exportado antes de importarlo. Por ejemplo, puede exportar un bot y, a continuación, editar el archivo JSON de un slot para añadir o eliminar enunciados que generen valores de slot de un slot específico. Cuando termine de editar la definición, puede importar el archivo modificado.

**Topics**
+ [Exportación de bots desde Lex V2](export.md)
+ [Importación de bots en Lex V2](import.md)
+ [Usar una contraseña al importar o exportar](import-export-password.md)
+ [Formato JSON para importar y exportar bots en Lex V2](import-export-format.md)

# Exportación de bots desde Lex V2
<a name="export"></a>

Puede exportar un bot, una configuración regional de un bot o un vocabulario personalizado mediante la consola o la operación `CreatExport`. Usted especifica el recurso que desea exportar y puede proporcionar una contraseña opcional para ayudar a proteger el archivo .zip al iniciar una exportación. Después de descargar el archivo .zip, debe usar la contraseña para acceder al archivo antes de poder usarlo. Para obtener más información, consulte [Usar una contraseña al importar o exportar](import-export-password.md).

Exportar es una operación asíncrona. Una vez iniciada la exportación, puede utilizar la consola o la operación `DescribeExport` para supervisar el progreso de la exportación. Una vez finalizada la exportación, la consola o la operación `DescribeExport` muestran el estado de `COMPLETED` y la consola descarga el archivo .zip de exportación en su navegador. Si utiliza la operación `DescribeExport`, Amazon Lex V2 proporciona una URL de Amazon S3 prefirmada en la que puede descargar los resultados de la exportación. La URL de descarga solo está disponible durante cinco minutos, pero puede obtener una nueva URL si vuelve a llamar a la operación `DescribeExport`.

Puede ver el historial de exportaciones de un recurso con la consola o con la operación `ListExports`. Los resultados muestran las exportaciones junto con su estado actual. Una exportación está disponible en el historial durante siete días.

Al exportar la versión `Draft` de un bot o una configuración regional de un bot, es posible que la definición del archivo JSON tenga un estado incoherente, ya que la versión `Draft` de un bot o una configuración regional de bot se puede cambiar mientras se está realizando la exportación. Si la versión `Draft` se cambia durante la exportación, es posible que los cambios no se incluyan en el archivo de exportación.

Al exportar la configuración regional de un bot, Amazon Lex exporta toda la información que la define, incluida la configuración regional, el vocabulario personalizado, las intenciones, los tipos de slot y los slots. 

Al exportar un bot, Amazon Lex exporta todas las configuraciones regionales definidas para el bot, incluidas las intenciones, los tipos de slot y los slots. Los siguientes elementos no se exportan con un bot:
+ Alias del bot
+ ARN del rol asociado a un bot
+ Etiquetas asociadas a los bots y a sus alias
+ Enlaces de código Lambda asociados a un alias de bot

El ARN del rol y las etiquetas se ingresan como parámetros de solicitud al importar un bot. Debe crear alias de bots y asignar enlaces de código Lambda después de la importación, si es necesario.

Puede eliminar una exportación y el archivo .zip asociado mediante la consola o la operación `DeleteExport`. 

Para ver un ejemplo de cómo exportar un bot mediante la consola, consulte [Exportación de un bot Lex V2 (consola)](export-console.md).

## Permisos de IAM requeridos para exportar bots en Lex V2
<a name="export-permissions"></a>

Para exportar bots, configuraciones regionales de bots y vocabularios personalizados, el usuario que ejecute la exportación debe tener los siguientes permisos de IAM.


| API |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/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/es_es/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/es_es/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/es_es/lexv2/latest/dg/export.html) | Bot | 
| [DescribeExport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_DescribeExport.html)para vocabularios personalizados | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/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/es_es/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/es_es/lexv2/latest/dg/export.html) | \$1 | 

Para ver una política de IAM de ejemplo, consulte [Permitir a un usuario exportar bots y configuraciones regionales de bots](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-export).

# Exportación de un bot Lex V2 (consola)
<a name="export-console"></a>

Puede exportar un bot desde la lista de bots, desde la lista de versiones o desde la página de detalles de la versión. Al elegir una versión, Amazon Lex V2 exporta esa versión. En las instrucciones siguientes se parte del supuesto de que se empieza a exportar el bot de la lista de bots, pero cuando se empieza con una versión, los pasos son los mismos.

**Exportar un bot utilizando la consola**

1. Inicie sesión en la consola de administración de AWS y abra la consola Amazon Lex V2 en [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. Seleccione el bot para exportar de la lista de bots.

1. En **Acción**, seleccione **Exportar**. 

1. Seleccione la versión del bot, la plataforma y el formato de exportación.

1. (Opcional) Introduzca una contraseña para el archivo .zip. Proporcionar una contraseña ayuda a proteger el archivo de salida.

1. Seleccione **Exportar**.

Después de iniciar la exportación, volverá a la lista de bots. Para supervisar el progreso de la exportación, utilice la lista de **Historial de importación y exportación**. Cuando el estado de la exportación indica **Completado**, la consola descarga automáticamente el archivo .zip a su ordenador. 

Para volver a descargar la exportación, en la import/export lista, seleccione la exportación y, a continuación, elija **Descargar**. Puede proporcionar una contraseña para el archivo .zip descargado.

**Exportar el idioma de un bot**

1. Inicie sesión en la consola de administración de AWS y abra la consola Amazon Lex V2 en [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. En la lista de bots, seleccione el bot cuyo idioma desea exportar.

1. En **Añadir idiomas**, seleccione **Ver idiomas**.

1. En la lista de **Todos los idiomas**, seleccione el idioma que desea exportar.

1. En **Acción**, seleccione **Exportar**.

1. Seleccione la versión del bot, la plataforma y el formato. 

1. (Opcional) Introduzca una contraseña para el archivo .zip. Proporcionar una contraseña ayuda a proteger el archivo de salida.

1. Seleccione **Exportar**.

Después de iniciar la exportación, volverá a la lista de idiomas. Para supervisar el progreso de la exportación, utilice la lista de **Historial de importación y exportación**. Cuando el estado de la exportación indica **Completado**, la consola descarga automáticamente el archivo .zip a su ordenador. 

Para volver a descargar la exportación, en la import/export lista, seleccione la exportación y, a continuación, elija **Descargar**. Puede proporcionar una contraseña para el archivo .zip descargado.

# Importación de bots en Lex V2
<a name="import"></a>

Para usar la consola para importar un bot, una configuración regional o un vocabulario personalizado previamente exportados, debe proporcionar la ubicación del archivo en su ordenador local y la contraseña opcional para desbloquearlo. Para ver un ejemplo, consulta [Importación de un bot Lex V2 (consola)](import-console.md).

Cuando utilizas la API, la importación de un recurso es un proceso de tres pasos:

1. Cree una URL de carga mediante la operación `CreateUploadUrl`. No necesita crear una URL de carga para usar la consola.

1. Cargue el archivo .zip que contiene la definición del recurso.

1. Inicie la importación con la operación `StartImport`.

La URL de carga es una URL de Amazon S3 prefirmada con permiso de escritura. La URL estará disponible durante cinco minutos después de generarse. Si protege el archivo .zip con una contraseña, debe proporcionarla al iniciar la importación. Para obtener más información, consulte [Usar una contraseña al importar o exportar](import-export-password.md).

Una importación es un proceso asíncrono. Puede monitorizar el progreso de una importación a través de la consola o de la operación `DescribeImport`. 

Al importar un bot o una configuración regional de bots, puede haber conflictos entre los nombres de los recursos del archivo de importación y los nombres de los recursos existentes en Amazon Lex V2. Amazon Lex V2 puede gestionar el conflicto de tres maneras:
+ **Fallo en caso de conflicto**: la importación se detiene y no se importa ningún recurso del archivo .zip de importación.
+ **Sobrescribir**: Amazon Lex V2 importa todos los recursos del archivo .zip de importación y reemplaza cualquier recurso existente por la definición del archivo de importación. 
+ **Añadir**: Amazon Lex V2 importa todos los recursos del archivo .zip de importación y añade a cualquier recurso existente la definición del archivo de importación. Esta configuración solo está disponible para la configuración regional del bot. 

Puede ver una lista de las importaciones a un recurso mediante la consola o la operación `ListImports`. Las importaciones permanecen en la lista durante siete días. Puede utilizar la consola o la operación `DescribeImport` para ver los detalles de una importación específica.

También puede eliminar una importación y el archivo .zip asociado mediante la consola o la operación `DeleteImport`.

Para ver un ejemplo de cómo importar un bot mediante la consola, consulte [Importación de un bot Lex V2 (consola)](import-console.md).

## Permisos de IAM requeridos para importar
<a name="import-permissions"></a>

Para importar bots, configuraciones regionales de bots y vocabularios personalizados, el usuario que ejecute la importación debe tener los siguientes permisos de IAM. 


| API | Acciones obligatorias | 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/es_es/lexv2/latest/dg/import.html) | \$1 | 
| [StartImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html)para el bot y la configuración regional del bot | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lexv2/latest/dg/import.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/lexv2/latest/dg/import.html) | 
| [StartImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html)para vocabularios personalizados | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/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/es_es/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/es_es/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/es_es/lexv2/latest/dg/import.html) | \$1 | 

Para ver una política de IAM de ejemplo, consulte [Permitir a un usuario importar bots y configuraciones regionales de bots](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-import).

# Importación de un bot Lex V2 (consola)
<a name="import-console"></a>

**Importar un bot utilizando la consola**

1. Inicie sesión en la consola de administración de AWS y abra la consola Amazon Lex V2 en [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. En **Acción**, seleccione **Importar**.

1. En **Archivo de entrada**, asigne un nombre al bot y, a continuación, seleccione el archivo .zip que contiene los archivos JSON que definen al bot.

1. Si el archivo .zip está protegido con contraseña, introduzca la contraseña del archivo .zip. La protección del archivo mediante contraseña es opcional, pero ayuda a proteger el contenido.

1. Cree o ingrese el rol de IAM que define los permisos para el bot.

1. Indique si el bot está sujeto a la Ley de Protección de la Privacidad en Línea para Niños (COPPA).

1. Proporcione una configuración de tiempo de espera para su bot. Si no proporciona un valor, se utiliza el valor del archivo .zip. Si el archivo .zip no contiene una configuración de tiempo de espera, Amazon Lex V2 utiliza el valor predeterminado de 300 segundos (cinco minutos).

1. (Opcional) Agregue etiquetas para su bot.

1. Seleccione si desea avisar sobre la posibilidad de sobrescribir los bots existentes con el mismo nombre. Si habilita las advertencias, si el bot que va a importar sobrescribe a un bot existente, recibirá una advertencia y el bot no se importará. Si deshabilita las advertencias, el bot importado sustituirá al bot existente con el mismo nombre.

1. Seleccione **Importar**.

Después de iniciar la importación, volverá a la lista de bots. Para supervisar el progreso de la importación, utilice la lista de **Historial de importación y exportación**. Cuando el estado de la importación indique **Completado**, puede elegir el bot de la lista de bots para modificarlo o compilarlo. 

**Importar el idioma de un bot**

1. Inicie sesión en la consola de administración de AWS y abra la consola Amazon Lex V2 en [https://console.aws.amazon.com/lexv2/casa](https://console.aws.amazon.com/lexv2/home).

1. En la lista de bots, seleccione el bot al que desea importar un idioma.

1. En **Añadir idiomas**, seleccione **Ver idiomas**.

1. En **Acción**, seleccione **Importar**.

1. En **Archivo de entrada**, seleccione el archivo que contiene el idioma que desea importar. Si protegió el archivo .zip, introduzca la contraseña en **Contraseña**.

1. En **Idioma**, seleccione el idioma en el que se va a importar. El idioma no tiene que coincidir con el idioma del archivo de importación. Puede copiar las intenciones de un idioma a otro.

1. En **Voz**, seleccione la voz de Amazon Polly para utilizarla en la interacción por voz, o seleccione **Ninguna** para un bot de solo texto.

1. En **Umbral de puntuación de confianza**, introduzca el umbral en el que Amazon Lex V2 inserta la `AMAZON.FallbackIntent`, la `AMAZON.KendraSearchIntent` o ambas al devolver intenciones alternativas.

1. Seleccione si desea avisar sobre la posibilidad de sobrescribir un idioma existente. Si habilita las advertencias, si el idioma que va a importar sobrescribe a un idioma existente, recibirá una advertencia y el idioma no se importará. Si deshabilita las advertencias, el idioma importado sustituirá al idioma existente.

1. Seleccione **Importar** para iniciar la importación del idioma.

Después de iniciar la importación, volverá a la lista de idiomas. Para supervisar el progreso de la importación, utilice la lista de **Historial de importación y exportación**. Cuando el estado de la importación indique **Completado**, puede elegir el idioma de la lista de bots para modificarlo o compilarlo. 

# Usar una contraseña al importar o exportar
<a name="import-export-password"></a>

Amazon Lex V2 puede proteger con contraseña los archivos de exportación o leer los archivos de importación protegidos mediante la compresión de archivos .zip estándar. Siempre debe proteger con contraseña sus archivos de importación y exportación.

Amazon Lex V2 envía el archivo de exportación a un bucket de S3 y está disponible con una URL de S3 prefirmada. La URL solo está disponible durante cinco minutos. El archivo está disponible para cualquier persona que tenga acceso a la URL de descarga. Para ayudar a proteger los datos del archivo, proporcione una contraseña al exportar el recurso. Si necesita obtener el archivo después de que caduque la URL, puede utilizar la consola o la operación `DescribeExport` para obtener una nueva URL.

Si pierde la contraseña de un archivo de exportación, puede crear una nueva contraseña para un archivo existente seleccionando **Descargar** de la tabla del import/export historial o utilizando la `UpdateExport` operación. Si selecciona **Descargar** en la tabla del historial para una exportación y no proporciona una contraseña, Amazon Lex V2 descargará un archivo .zip desprotegido.

# Formato JSON para importar y exportar bots en Lex V2
<a name="import-export-format"></a>

Los bots, las configuraciones regionales de bots o los vocabularios personalizados se importan y exportan desde Amazon Lex V2 mediante un archivo .zip que contiene estructuras JSON que describen las partes del recurso. Al exportar un recurso, Amazon Lex V2 crea el archivo .zip y lo pone a su disposición mediante una URL prefirmada de Amazon S3. Al importar un recurso, debe crear un archivo .zip que contenga las estructuras JSON y subirlo a una URL prefirmada de S3. 

Amazon Lex crea la siguiente estructura de directorios en el archivo .zip al exportar un bot. Al exportar la configuración regional de un bot, solo se exporta la estructura situada debajo de la configuración regional. Al exportar un vocabulario personalizado, solo se exporta la estructura incluida en el vocabulario personalizado.

```
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
                        ...
```

## Estructura del archivo de manifiesto
<a name="json-manifest"></a>

El archivo de manifiesto contiene los metadatos del archivo de exportación.

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

## Estructura del archivo del bot
<a name="json-bot"></a>

El archivo del bot contiene la información de configuración para el bot.

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

## Estructura del archivo de configuración regional del bot
<a name="json-bot-locale"></a>

El archivo de configuración regional del bot contiene una descripción de la configuración regional o el idioma de un bot. Al exportar un bot, puede haber más de un archivo de configuración regional del bot en el archivo .zip. Al exportar la configuración regional de un bot, solo hay una configuración regional en el archivo .zip.

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

## Estructura del archivo de intenciones
<a name="json-intent"></a>

El archivo de intenciones contiene la información de configuración para una intención. Hay un archivo de intenciones en el archivo .zip para cada intención en una configuración regional específica.

A continuación, se muestra un ejemplo de una estructura JSON para la BookCar intención del BookTrip bot de muestra. Para ver un ejemplo completo de la estructura JSON de una intención, consulta la [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html)operación.

```
{
    "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
        }
    ]
}
```

## Estructura del archivo del slot
<a name="json-slot"></a>

El archivo del slot contiene la información de configuración para el slot en una intención. Hay un archivo de slot en el archivo .zip para cada slot definido para una intención en una configuración regional específica.

El siguiente ejemplo es la estructura JSON de un espacio que permite al cliente elegir el tipo de coche que quiere alquilar según la BookCar intención del bot de BookTrip ejemplo. Para ver un ejemplo completo de la estructura JSON de una ranura, consulta la [CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html)operación.

```
{
    "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,
    }
}
```

La estructura JSON de un slot compuesto se muestra en el ejemplo siguiente.

```
{
  "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)"
  }
}
```

## Estructura de tipo de slot
<a name="json-slot-type"></a>

El archivo de tipos de slots contiene la información de configuración de un tipo de slot personalizado utilizado en un idioma o configuración regional. Hay un archivo de tipos de slots en el archivo .zip para cada tipo de slot personalizado en una configuración regional específica.

La siguiente es la estructura JSON para el tipo de ranura, que muestra los tipos de coches disponibles en el bot de BookTrip ejemplo. Para ver un ejemplo completo de la estructura JSON de un tipo de ranura, consulta la [CreateSlotType](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlotType.html)operación.

```
{
    "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
    }
}
```

La estructura JSON de un tipo de slot compuesto se muestra en el ejemplo siguiente.

```
{
  "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
      }
    ]
  }
}
```

El siguiente es un tipo de slot que utiliza una gramática personalizada para entender los enunciados del cliente. Para obtener más información, consulte [Tipo de slot gramatical](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"
      }
    }
  }
}
```

## Estructura del archivo de vocabulario personalizado
<a name="json-custom-vocab"></a>

El archivo de vocabulario personalizado contiene las entradas de un vocabulario personalizado para un solo idioma o configuración regional. Hay un archivo de vocabulario personalizado en el archivo .zip para cada configuración regional que tenga un vocabulario personalizado.

El siguiente es un archivo de vocabulario personalizado para un bot que recibe pedidos de restaurantes. Hay un archivo por configuración regional en el 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"
        }
    ]
}
```