

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Lex V2 でのボットのインポートとエクスポート
<a name="importing-exporting"></a>

ボット定義、ボットロケール、またはカスタム語彙をエクスポートし、再度インポートして新しいリソースを作成するか、AWS アカウントの既存のリソースを上書きできます。例えば、テストアカウントからボットをエクスポートし、本番アカウントにそのボットのコピーを作成することができます。ある AWS リージョンから別のリージョンにボットをコピーすることもできます。

エクスポートしたリソースは、インポートする前に変更することができます。例えば、ボットをエクスポートしてから、スロットの JSON ファイルを編集して、特定のスロットからスロット値を引き出す発話を追加または削除できます。定義の編集が終了したら、修正したファイルをインポートすることができます。

**Topics**
+ [Lex V2 からのボットのエクスポート](export.md)
+ [Lex V2 でのボットのインポート](import.md)
+ [インポートまたはエクスポート時のパスワードの使用](import-export-password.md)
+ [Lex V2 でボットをインポートおよびエクスポートするための JSON 形式](import-export-format.md)

# Lex V2 からのボットのエクスポート
<a name="export"></a>

コンソールまたは `CreatExport` オペレーションを使用し、ボット、ボットロケール、またはカスタム語彙をエクスポートします。エクスポートするリソースを指定し、エクスポートを開始する際に、.zip ファイルを保護するための任意のパスワードを指定することができます。.zip ファイルをダウンロードした後、パスワードを使用してファイルにアクセスしないと、使用することができません。詳細については、「[インポートまたはエクスポート時のパスワードの使用](import-export-password.md)」を参照してください。

エクスポート は非同期オペレーションです。エクスポートを開始したら、コンソールまたは `DescribeExport` オペレーションでエクスポートの進行状況をモニタリングすることができます。エクスポートが完了すると、コンソールまたは `DescribeExport` オペレーションでステータスが `COMPLETED` と表示され、コンソールがエクスポートされた .zip ファイルをブラウザにダウンロードします。`DescribeExport` オペレーションにより、Amazon Lex V2 はエクスポート結果をダウンロードできる署名済みの Amazon S3 URL を提供します。ダウンロード URL は 5 分間だけ利用可能ですが、再度 `DescribeExport` オペレーションを行うことで、新しい URL を取得することができます。

リソースのエクスポート履歴は、コンソールまたは `ListExports` オペレーションで確認することができます。その結果、現在のステータスとエクスポートが表示されます。エクスポートは 7 日間履歴に残ります。

`Draft` バージョンのボットまたはボットロケールをエクスポートする場合、エクスポート中に `Draft` バージョンのボットまたはボットロケールが変更されている可能性があるため、JSON ファイル内の定義に一貫性がない状態になる可能性があります。エクスポート中に `Draft` バージョンが変更され、その変更内容がエクスポートファイルに含まれない場合があります。

ボットロケールをエクスポートすると、Amazon Lex は、ロケール、カスタム語彙、インテント、スロットタイプ、スロットなど、ロケールを定義するすべての情報をエクスポートします。

ボットをエクスポートすると、Amazon Lex は、インテント、スロットタイプ、スロットなど、ボットに定義されたすべてのロケールをエクスポートします。次の項目は、ぼっととともにエクスポートされません。
+ ボットエイリアス
+ ボットに関連するロール ARN
+ ボットとボットのエイリアスに関連するタグ
+ ボットエイリアスに関連する Lambda コードフック

ロール ARN とタグは、ボットをインポートする際にリクエストパラメータとして入力されます。必要に応じて、インポート後にボットエイリアスを作成し、Lambda コードフックを割り当てる必要があります。

コンソールまたは `DeleteExport` オペレーションを使用して、エクスポートと関連する .zip ファイルを削除することができます。

コンソールを使用してボットをエクスポートする例については、「[Lex V2 ボットのエクスポート (コンソール)](export-console.md)」を参照してください。

## Lex V2 でボットをエクスポートするために必要な IAM 権限
<a name="export-permissions"></a>

ボット、ボットロケール、およびカスタムボキャブラリーをエクスポートするには、エクスポートを実行するユーザーが次の IAM 権限を持っている必要があります。


| API |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/export.html) | [リソース]  | 
| --- | --- | --- | 
| [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/ja_jp/lexv2/latest/dg/export.html) | ボット | 
| [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/ja_jp/lexv2/latest/dg/export.html) | ボット | 
| [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/ja_jp/lexv2/latest/dg/export.html) | ボット | 
| カスタムボキャブラリーの [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/ja_jp/lexv2/latest/dg/export.html)  | ボット | 
| [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/ja_jp/lexv2/latest/dg/export.html) | ボット | 
| [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/ja_jp/lexv2/latest/dg/export.html) | \$1 | 

IAM ポリシーの例については、「[ユーザーにボットとボットロケールのエクスポートを許可する](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-export)」を参照してください。

# Lex V2 ボットのエクスポート (コンソール)
<a name="export-console"></a>

ボット一覧、バージョン一覧、またはバージョンの詳細ページからボットをエクスポートできます。バージョンを選択すると、Amazon Lex V2 はそのバージョンをエクスポートします。以下の説明は、ボットの一覧からエクスポートを開始することを想定していますが、バージョンから開始する場合も手順は同じです。

**コンソールを使用して、ボットをエクスポートするには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/lexv2/home](https://console.aws.amazon.com/lexv2/home) で Amazon Lex V2 コンソールを開きます。

1. ボットの一覧から、エクスポートするボットを選択します。

1. **アクション** から、**エクスポート** を選択します。

1. ボットのバージョン、プラットフォーム、およびエクスポート形式を選択します。

1. (オプション) .zip ファイルのパスワードを入力します。パスワードを設定することで、出力アーカイブを保護することができます。

1. **[エクスポート]** をクリックします。

エクスポートを開始した後、ボットの一覧に戻ります。エクスポートの進捗状況をモニタリングするには、**インポート/エクスポートの履歴** リストを使用します。エクスポートのステータスが **完了** になると、コンソールは自動的に .zip ファイルをコンピュータにダウンロードします。

エクスポートを再度ダウンロードするには、[インポート/エクスポート] のリストで、エクスポートを選択し、**ダウンロード** を選択します。ダウンロードした .zip ファイルにパスワードを付けることができます。

**ボット言語をエクスポートするには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/lexv2/home](https://console.aws.amazon.com/lexv2/home) で Amazon Lex V2 コンソールを開きます。

1. ボットの一覧から、エクスポートする言語のボットを選択します。

1. **言語を追加する**から、**言語を表示する** を選択します。

1. **すべての言語** リストから、エクスポートする言語を選択します。

1. **アクション** から、**エクスポート** を選択します。

1. ボットのバージョン、プラットフォーム、および形式を選択します。

1. (オプション) .zip ファイルのパスワードを入力します。パスワードを設定することで、出力アーカイブを保護することができます。

1. **[エクスポート]** をクリックします。

エクスポートを開始すると、言語のリストに戻ります。エクスポートの進捗状況をモニタリングするには、**インポート/エクスポートの履歴** リストを使用します。エクスポートのステータスが **完了** になると、コンソールは自動的に .zip ファイルをコンピュータにダウンロードします。

エクスポートを再度ダウンロードするには、[インポート/エクスポート] のリストで、エクスポートを選択し、**ダウンロード** を選択します。ダウンロードした .zip ファイルにパスワードを付けることができます。

# Lex V2 でのボットのインポート
<a name="import"></a>

コンソールを使用して、以前にエクスポートしたボット、ボットロケール、またはカスタム語彙をインポートするには、ローカルコンピュータ上のファイルの場所と、ファイルのロックを解除するための任意のパスワードを指定します。例については、[Lex V2 ボットのインポート (コンソール)](import-console.md)を参照してください。

API を使用する場合、リソースのインポートは 3 つのステップで行います。

1. `CreateUploadUrl` オペレーションを使用してアップロード URL を作成します。コンソールを使用する場合は、アップロード URL を作成する必要はありません。

1. リソースの定義を含む .zip ファイルをアップロードします。

1. `StartImport` オペレーションでインポートを開始します。

アップロード URL は、書き込み権限を持つ、署名付き Amazon S3 URL です。URL は生成されてから 5 分間使用可能になります。.zip ファイルをパスワードで保護する場合は、インポート開始時にパスワードを指定する必要があります。詳細については、「[インポートまたはエクスポート時のパスワードの使用](import-export-password.md)」を参照してください。

インポートは非同期プロセスです。コンソールまたは `DescribeImport` オペレーションを使用して、インポートの進行状況をモニタリングできます。

ボットまたはボットロケールをインポートするとき、インポートファイル内のリソース名と Amazon Lex V2 の既存のリソース名が競合することがあります。Amazon Lex V2 は、次の 3 つの方法で競合を処理することができます。
+ **競合時の失敗** - インポートが停止し、インポート .zip ファイルからリソースはインポートされません。
+ **上書き** - Amazon Lex V2 は、インポート .zip ファイルからすべてのリソースをインポートし、既存のリソースをインポートファイルの定義で置き換えます。
+ **追加** - Amazon Lex V2 は、インポート .zip ファイルからすべてのリソースをインポートし、既存のリソースにインポートファイルの定義を追加します。ボットロケールでのみ使用できます。

リソースへのインポートの一覧は、コンソールまたは `ListImports` オペレーションで確認することができます。インポートは 7 日間リストに残ります。コンソールまたは `DescribeImport` オペレーションを使用して、特定のインポートに関する詳細を確認することができます。

また、コンソールまたは `DeleteImport` オペレーションを使用して、インポートと関連する .zip ファイルを削除することができます。

コンソールを使用してボットをインポートする例については、「[Lex V2 ボットのインポート (コンソール)](import-console.md)」を参照してください。

## インポートに必要な IAM 権限
<a name="import-permissions"></a>

ボット、ボットロケール、およびカスタムボキャブラリーをインポートするには、インポートを実行するユーザーが次の IAM 権限を持っている必要があります。


| API | 必須 IAM アクション | [リソース]  | 
| --- | --- | --- | 
| [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/ja_jp/lexv2/latest/dg/import.html) | \$1 | 
| ボットとボットロケールの [StartImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/import.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/import.html) | 
| カスタムボキャブラリーの [StartImport](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_StartImport.html) | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/lexv2/latest/dg/import.html)  | ボット | 
| [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/ja_jp/lexv2/latest/dg/import.html) | ボット | 
| [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/ja_jp/lexv2/latest/dg/import.html) | ボット | 
| [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/ja_jp/lexv2/latest/dg/import.html) | \$1 | 

IAM ポリシーの例については、「[ユーザーにボットとボットロケールのインポートを許可する](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-import)」を参照してください。

# Lex V2 ボットのインポート (コンソール)
<a name="import-console"></a>

**コンソールを使用してボットをインポートするには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/lexv2/home](https://console.aws.amazon.com/lexv2/home) で Amazon Lex V2 コンソールを開きます。

1. **アクション** から、**インポート** を選択します。

1. **入力ファイル**で、ボットに名前を付けて、ボットを定義する JSON ファイルを含む .zip ファイルを選択します。

1. .zip ファイルがパスワードで保護されている場合は、.zip ファイルのパスワードを入力してください。アーカイブのパスワード保護は任意ですが、コンテンツの保護に役立ちます。

1. ボットのアクセス権限を定義する IAM ロールを作成または入力します。

1. ボットが児童オンラインプライバシー保護法 (COPPA) の適用を受けるかどうかを示します。

1. ボットにアイドルタイムアウトの設定を行います。値を指定しない場合は、zip ファイルの値が使用されます。.zip ファイルにタイムアウトの設定がない場合、Amazon Lex V2 はデフォルトの 300 秒 (5 分) を使用します。

1. (オプション) ボットにタグを追加します。

1. 同じ名前の既存ボットを上書きすることについて警告を出すかどうかを選択します。警告を有効にすると、インポートするボットが既存ボットを上書きしてしまう場合、警告が表示され、そのボットはインポートされません。警告を無効にすると、インポートされたボットは既存のボットを同名のボットに置き換わります。

1. [**インポート**] を選択します。

インポートを開始した後、ボットの一覧に戻ります。インポートの進捗状況をモニタリングするには、**インポート/エクスポートの履歴** リストを使用します。インポートのステータスが **完了** になったら、ボットのリストからボットを選択して、ボットの修正または構築ができます。

**ボット言語をインポートするには**

1. AWS マネジメントコンソールにサインインし、[https://console.aws.amazon.com/lexv2/home](https://console.aws.amazon.com/lexv2/home) で Amazon Lex V2 コンソールを開きます。

1. ボットの一覧から、言語をインポートするボットを選択します。

1. **言語を追加する** から、**言語を表示する** を選択します。

1. **アクション** から、**インポート** を選択します。

1. **入力ファイル** から、インポートする言語を含むファイルを選択します。.zip ファイルを保護した場合は、**パスワード** にパスワードを入力してください。

1. **言語**で、インポートする言語を選択します。言語は、インポートファイルの言語と一致する必要はありません。ある言語から別の言語へインテントをコピーできます。

1. **音声**で、音声インタラクションに使用する Amazon Polly の音声を選択するか、テキスト専用ボットを使用する場合は **なし** を選択します。

1. **信頼度スコアの閾値**では、代替インテントを返す際に、Amazon Lex V2 が `AMAZON.FallbackIntent`、`AMAZON.KendraSearchIntent` またはその両方を挿入する閾値を入力します。

1. 既存の言語の上書きについて警告を出すかどうかを選択します。警告を有効にすると、インポートする言語が既存の言語を上書きしてしまう場合、警告が表示され、その言語はインポートされません。警告を無効にすると、インポートされた言語が既存の言語を置き換えます。

1. [**インポート**] を選択すると、言語のインポートが開始されます。

インポートを開始した後、言語一覧に戻ります。インポートの進捗状況をモニタリングするには、**インポート/エクスポートの履歴** リストを使用します。インポートのステータスが **完了** になったら、ボットのリストから言語を選択して、ボットの修正または構築ができます。

# インポートまたはエクスポート時のパスワードの使用
<a name="import-export-password"></a>

Amazon Lex V2 は、エクスポートアーカイブをパスワードで保護したり、標準の .zip ファイル圧縮を使用して保護されたインポートアーカイブを読み取ったりできます。インポートおよびエクスポートアーカイブは、必ずパスワードで保護する必要があります。

Amazon Lex V2 は、 S3 バケットにエクスポートアーカイブを送信し、署名付き S3 URL で利用可能になります。URL は 5 分間のみ利用可能です。アーカイブは、ダウンロード URL にアクセスすると、すべてのユーザーが利用できます。アーカイブ内のデータを保護するために、リソースをエクスポートするときにパスワードを指定します。URL の有効期限が切れた後にアーカイブを取得する必要がある場合は、コンソールまたは `DescribeExport` オペレーションで新しい URL を取得することができます。

エクスポートアーカイブのパスワードを紛失した場合は、インポート/エクスポート履歴テーブルから **のダウンロード** を選択するか、`UpdateExport` オペレーションにより既存のファイルに新しいパスワードを作成することができます。エクスポートの履歴テーブルで **ダウンロード** を選択し、パスワードを指定しない場合、Amazon Lex V2 は保護されていない zip ファイルをダウンロードします。

# Lex V2 でボットをインポートおよびエクスポートするための JSON 形式
<a name="import-export-format"></a>

リソースの部分を記述する JSON 構造を含む .zip ファイルを使用して、Amazon Lex V2 からボット、ボットロケール、またはカスタムボキャブラリーをインポートおよびエクスポートします。リソースをエクスポートすると、Amazon Lex V2 が .zip ファイルを作成し、Amazon S3 の署名付き URL を使用して利用できるようにします。リソースをインポートする際には、JSON 構造を含む .zip ファイルを作成し、S3 の署名付き URL にアップロードする必要があります。

Amazon Lex は、ボットをエクスポートするときに、.zip ファイルに以下のようなディレクトリ構造を作成します。ボットロケールをエクスポートする際、ロケールの下の構造のみがエクスポートされます。カスタム語彙をエクスポートすると、カスタム語彙の下の構造だけがエクスポートされます。

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

## マニフェストファイル構造
<a name="json-manifest"></a>

マニフェストファイルには、エクスポートファイルのメタデータが含まれています。

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

## ボットファイル構造
<a name="json-bot"></a>

ボットファイルには、ボットの設定情報が含まれています。

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

## ボットロケールファイル構造
<a name="json-bot-locale"></a>

ボットロケールファイルには、ボットのロケールまたは言語に関する説明が含まれています。ボットをエクスポートする際、.zip ファイルに複数のボットロケールファイルが存在する可能性があります。ボットロケールをエクスポートする際、zip ファイルにはロケールが 1 つだけ含まれます。

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

## インテントファイル構造
<a name="json-intent"></a>

インテントファイルには、インテントの設定情報が含まれています。.zip ファイルには、特定のロケールのインテントごとに 1 つのインテントファイルがあります。

以下は、サンプルの BookTrip ボットの BookCar インテントの JSON 構造の例です。インテントの JSON 構造の完全な例については、[CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) オペレーションを参照してください。

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

## スロットファイル構造
<a name="json-slot"></a>

スロットファイルには、インテント内のスロットの設定情報が含まれています。特定のロケールのスロットごとに、.zip ファイル内に 1 つのスロットファイルがあります。

次の例は、BookTrip サンプルボットの BookCar インテントで、顧客がレンタルしたい車のタイプを選択できるスロットの JSON 構造です。スロットの JSON 構造の完全な例については、[CreateSlot](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlot.html) オペレーションを参照してください。

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

次の例に、複雑なスロットの JSON 構造を示します。

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

## スロットタイプファイル構造
<a name="json-slot-type"></a>

スロットタイプファイルには、言語またはロケールで使用されるカスタムスロットタイプの設定情報が含まれています。特定のロケールのカスタムスロットタイプごとに、.zip ファイル内に 1 つのスロットタイプがあります。

以下は、BookTrip のサンプルボットで使用可能な車類をリストしたスロットタイプの JSON 構造です。スロットタイプの JSON 構造の完全な例については、[CreateSlotType](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateSlotType.html) オペレーションを参照してください。

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

次の例に、複雑なスロットタイプの JSON 構造を示します。

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

以下は、カスタム文法を使用して顧客の発話を理解するスロットタイプです。詳細については、「[文法スロットタイプ](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"
      }
    }
  }
}
```

## カスタム語彙ファイル構造
<a name="json-custom-vocab"></a>

カスタム語彙ファイルには、単一言語またはロケールのカスタム語彙のエントリが含まれます。.zip ファイルには、カスタム語彙を含むロケールごとに 1 つのカスタム語彙ファイルがあります。

以下は、レストランの注文を受けるボット用のカスタム語彙ファイルです。ボットにはロケールごとに 1 つのファイルがあります。

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