

终止支持通知：2025年9月15日， AWS 我们将停止对Amazon Lex V1的支持。2025 年 9 月 15 日之后，您将无法再访问 Amazon Lex V1 控制台或 Amazon Lex V1 资源。如果您使用的是 Amazon Lex V2，请改为参阅 [Amazon Lex V2 指南](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# PutSlotType
<a name="API_PutSlotType"></a>

创建自定义槽类型或替换现有自定义槽类型。

要创建自定义插槽类型，请为插槽类型指定名称和一组枚举值，这些值是此类插槽可以假设的值。有关更多信息，请参阅 [Amazon Lex：工作原理](how-it-works.md)。

如果您指定现有插槽类型的名称，则请求中的字段将替换该插槽类型 `$LATEST` 版本中的现有值。Amazon Lex 会删除您在请求中未提供的字段。如果您没有指定必填字段，Amazon Lex 会引发异常。更新插槽类型的 `$LATEST` 版本时，如果机器人使用包含该插槽类型的意图的 `$LATEST` 版本，则机器人的 `status` 字段将设置为 `NOT_BUILT`。

此操作需要 `lex:PutSlotType` 操作的权限。

## 请求语法
<a name="API_PutSlotType_RequestSyntax"></a>

```
PUT /slottypes/name/versions/$LATEST HTTP/1.1
Content-type: application/json

{
   "checksum": "string",
   "createVersion": boolean,
   "description": "string",
   "enumerationValues": [ 
      { 
         "synonyms": [ "string" ],
         "value": "string"
      }
   ],
   "parentSlotTypeSignature": "string",
   "slotTypeConfigurations": [ 
      { 
         "regexConfiguration": { 
            "pattern": "string"
         }
      }
   ],
   "valueSelectionStrategy": "string"
}
```

## URI 请求参数
<a name="API_PutSlotType_RequestParameters"></a>

请求使用以下 URI 参数。

 ** [name](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-uri-name"></a>
槽类型的名称。名称*不*区分大小写。  
该名称不能与内置插槽类型名称匹配，否则带有“AMAZON”的内置插槽类型名称 会被删除。例如，由于有一个名为 `AMAZON.DATE` 的内置插槽类型，因此您无法创建名为 `DATE` 的自定义插槽类型。  
有关内置插槽类型的列表，请参阅 [Alexa Skills Kit](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/slot-type-reference) 中的*插槽类型参考*。  
长度限制：最小长度为 1。最大长度为 100。  
模式：`^([A-Za-z]_?)+$`  
必需：是

## 请求体
<a name="API_PutSlotType_RequestBody"></a>

请求接受采用 JSON 格式的以下数据。

 ** [checksum](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-checksum"></a>
标识 `$LATEST` 版本的特定修订版。  
创建新的插槽类型时，请将 `checksum` 字段留空。如果指定校验和，则会出现 `BadRequestException` 异常。  
当您想更新插槽类型时，请将 `checksum` 字段设置为 `$LATEST` 版本最新修订版的校验和。如果您未指定 ` checksum` 字段，或者校验和与 `$LATEST` 版本不匹配，则会出现 `PreconditionFailedException` 异常。  
类型：字符串  
必需：否

 ** [createVersion](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-createVersion"></a>
当设置为 `true` 时，将创建插槽类型的新编号版本。这与调用 `CreateSlotTypeVersion` 操作相同。如果不指定 `createVersion`，则默认值为 `false`。  
类型：布尔值  
必需：否

 ** [description](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-description"></a>
槽类型的描述。  
类型：字符串  
长度限制：最小长度为 0。最大长度为 200。  
必需：否

 ** [enumerationValues](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-enumerationValues"></a>
定义插槽类型可采用值的 `EnumerationValue` 对象的列表。每个值可以有 `synonyms` 的列表，后者可帮助训练机器学习模型以便解析插槽值。  
正则表达式插槽类型不需要枚举值。所有其他插槽类型都需要枚举值列表。  
当 Amazon Lex 解析插槽值时，它会生成一个分辨率列表，其中包含该插槽最多五个可能的值。如果您使用 Lambda 函数，则此解析列表将传递给该函数。如果您未使用 Lambda 函数，可以选择返回用户输入的值或解析列表中的第一个值并作为插槽值。`valueSelectionStrategy` 字段表示要使用的选项。  
类型：[EnumerationValue](API_EnumerationValue.md) 对象数组  
数组成员：最少 0 个物品。最多 10000 项。  
必需：否

 ** [parentSlotTypeSignature](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-parentSlotTypeSignature"></a>
用作此插槽类型的父级的内置插槽类型。当您定义父级插槽类型时，新的插槽类型将具有父级插槽类型的所有相同配置。  
仅支持 `AMAZON.AlphaNumeric`。  
类型：字符串  
长度约束：最小长度为 1。最大长度为 100。  
模式：`^((AMAZON\.)_?|[A-Za-z]_?)+`  
必需：否

 ** [slotTypeConfigurations](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-slotTypeConfigurations"></a>
扩展父级内置插槽类型的配置信息。配置已添加到父插槽类型的设置中。  
类型：[SlotTypeConfiguration](API_SlotTypeConfiguration.md) 对象数组  
数组成员：最少 0 个物品。最多 10 个物品。  
必需：否

 ** [valueSelectionStrategy](#API_PutSlotType_RequestSyntax) **   <a name="lex-PutSlotType-request-valueSelectionStrategy"></a>
确定 Amazon Lex 用来返回插槽值类型的插槽解析策略。该字段可以为以下值之一：  
+  `ORIGINAL_VALUE` — 如果用户值与插槽值相近，返回由用户输入的值。
+  `TOP_RESOLUTION` — 如果有插槽解析列表，返回解析列表中的第一个值并作为插槽类型值。如果没有解析列表，则返回 null。
如果不指定 `valueSelectionStrategy`，则默认值为 `ORIGINAL_VALUE`。  
类型：字符串  
有效值：`ORIGINAL_VALUE | TOP_RESOLUTION`  
必需：否

## 响应语法
<a name="API_PutSlotType_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "checksum": "string",
   "createdDate": number,
   "createVersion": boolean,
   "description": "string",
   "enumerationValues": [ 
      { 
         "synonyms": [ "string" ],
         "value": "string"
      }
   ],
   "lastUpdatedDate": number,
   "name": "string",
   "parentSlotTypeSignature": "string",
   "slotTypeConfigurations": [ 
      { 
         "regexConfiguration": { 
            "pattern": "string"
         }
      }
   ],
   "valueSelectionStrategy": "string",
   "version": "string"
}
```

## 响应元素
<a name="API_PutSlotType_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

 ** [checksum](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-checksum"></a>
插槽类型的 `$LATEST` 版本的校验和。  
类型：字符串

 ** [createdDate](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-createdDate"></a>
插槽类型的创建日期。  
类型：时间戳

 ** [createVersion](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-createVersion"></a>
 `True`（如果创建了新版本的插槽类型）。如果请求中未指定 `createVersion` 字段，则在响应中将 `createVersion` 字段设置为 false。  
类型：布尔值

 ** [description](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-description"></a>
槽类型的描述。  
类型：字符串  
长度限制：最小长度为 0。最大长度为 200。

 ** [enumerationValues](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-enumerationValues"></a>
定义插槽类型可采用值的 `EnumerationValue` 对象的列表。  
类型：[EnumerationValue](API_EnumerationValue.md) 对象数组  
数组成员：最少 0 个物品。最多 10000 项。

 ** [lastUpdatedDate](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-lastUpdatedDate"></a>
插槽类型的更新日期。创建插槽类型时，创建日期和上次更新日期相同。  
类型：时间戳

 ** [name](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-name"></a>
槽类型的名称。  
类型：字符串  
长度约束：最小长度为 1。最大长度为 100。  
模式：`^([A-Za-z]_?)+$`

 ** [parentSlotTypeSignature](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-parentSlotTypeSignature"></a>
用作此插槽类型的父级的内置插槽类型。  
类型：字符串  
长度约束：最小长度为 1。最大长度为 100。  
模式：`^((AMAZON\.)_?|[A-Za-z]_?)+`

 ** [slotTypeConfigurations](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-slotTypeConfigurations"></a>
扩展父级内置插槽类型的配置信息。  
类型：[SlotTypeConfiguration](API_SlotTypeConfiguration.md) 对象数组  
数组成员：最少 0 个物品。最多 10 个物品。

 ** [valueSelectionStrategy](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-valueSelectionStrategy"></a>
Amazon Lex 用来确定插槽值的插槽解析策略。有关更多信息，请参阅 [PutSlotType](#API_PutSlotType)。  
类型：字符串  
有效值：`ORIGINAL_VALUE | TOP_RESOLUTION`

 ** [version](#API_PutSlotType_ResponseSyntax) **   <a name="lex-PutSlotType-response-version"></a>
插槽类型的版本。对于新的插槽类型，版本始终为 `$LATEST`。  
类型：字符串  
长度限制：最小长度为 1。长度上限为 64。  
模式：`\$LATEST|[0-9]+`

## 错误
<a name="API_PutSlotType_Errors"></a>

 ** BadRequestException **   
请求格式不正确。例如，值无效或必填字段未填充。检查字段值，然后重试。  
HTTP 状态代码：400

 ** ConflictException **   
 处理请求时出现冲突。请再次尝试您的请求。  
HTTP 状态代码：409

 ** InternalFailureException **   
出现内部 Amazon Lex 错误。请再次尝试您的请求。  
HTTP 状态代码：500

 ** LimitExceededException **   
请求超出了限制。请再次尝试您的请求。  
HTTP 状态代码：429

 ** PreconditionFailedException **   
 您尝试更改的资源的校验和与请求中的校验和不匹配。检查资源的校验和并重试。  
HTTP 状态代码：412

## 另请参阅
<a name="API_PutSlotType_SeeAlso"></a>

有关以特定语言之一使用此 API 的更多信息 AWS SDKs，请参阅以下内容：
+  [AWS 命令行界面 V2](https://docs.aws.amazon.com/goto/cli2/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于.NET 的 SDK V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于 C\$1\$1 的 SDK](https://docs.aws.amazon.com/goto/SdkForCpp/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于 Go v2 的 SDK](https://docs.aws.amazon.com/goto/SdkForGoV2/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于 Java 的 SDK V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/lex-models-2017-04-19/PutSlotType) 
+  [AWS JavaScript V3 版 SDK](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于 Kotlin 的 SDK](https://docs.aws.amazon.com/goto/SdkForKotlin/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于 PHP 的 SDK V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/lex-models-2017-04-19/PutSlotType) 
+  [AWS Python 软件开发工具包](https://docs.aws.amazon.com/goto/boto3/lex-models-2017-04-19/PutSlotType) 
+  [AWS 适用于 Ruby V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/lex-models-2017-04-19/PutSlotType) 