aws-sdk-lexmodelsv2 1.28.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,6 +37,12 @@ module Aws::LexModelsV2
37
37
  AudioLogSettingsList = Shapes::ListShape.new(name: 'AudioLogSettingsList')
38
38
  AudioRecognitionStrategy = Shapes::StringShape.new(name: 'AudioRecognitionStrategy')
39
39
  AudioSpecification = Shapes::StructureShape.new(name: 'AudioSpecification')
40
+ BatchCreateCustomVocabularyItemRequest = Shapes::StructureShape.new(name: 'BatchCreateCustomVocabularyItemRequest')
41
+ BatchCreateCustomVocabularyItemResponse = Shapes::StructureShape.new(name: 'BatchCreateCustomVocabularyItemResponse')
42
+ BatchDeleteCustomVocabularyItemRequest = Shapes::StructureShape.new(name: 'BatchDeleteCustomVocabularyItemRequest')
43
+ BatchDeleteCustomVocabularyItemResponse = Shapes::StructureShape.new(name: 'BatchDeleteCustomVocabularyItemResponse')
44
+ BatchUpdateCustomVocabularyItemRequest = Shapes::StructureShape.new(name: 'BatchUpdateCustomVocabularyItemRequest')
45
+ BatchUpdateCustomVocabularyItemResponse = Shapes::StructureShape.new(name: 'BatchUpdateCustomVocabularyItemResponse')
40
46
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
41
47
  BotAliasHistoryEvent = Shapes::StructureShape.new(name: 'BotAliasHistoryEvent')
42
48
  BotAliasHistoryEventsList = Shapes::ListShape.new(name: 'BotAliasHistoryEventsList')
@@ -130,6 +136,7 @@ module Aws::LexModelsV2
130
136
  CreateBotResponse = Shapes::StructureShape.new(name: 'CreateBotResponse')
131
137
  CreateBotVersionRequest = Shapes::StructureShape.new(name: 'CreateBotVersionRequest')
132
138
  CreateBotVersionResponse = Shapes::StructureShape.new(name: 'CreateBotVersionResponse')
139
+ CreateCustomVocabularyItemsList = Shapes::ListShape.new(name: 'CreateCustomVocabularyItemsList')
133
140
  CreateExportRequest = Shapes::StructureShape.new(name: 'CreateExportRequest')
134
141
  CreateExportResponse = Shapes::StructureShape.new(name: 'CreateExportResponse')
135
142
  CreateIntentRequest = Shapes::StructureShape.new(name: 'CreateIntentRequest')
@@ -146,8 +153,11 @@ module Aws::LexModelsV2
146
153
  CreateUploadUrlResponse = Shapes::StructureShape.new(name: 'CreateUploadUrlResponse')
147
154
  CustomPayload = Shapes::StructureShape.new(name: 'CustomPayload')
148
155
  CustomPayloadValue = Shapes::StringShape.new(name: 'CustomPayloadValue')
156
+ CustomVocabularyEntryId = Shapes::StructureShape.new(name: 'CustomVocabularyEntryId')
149
157
  CustomVocabularyExportSpecification = Shapes::StructureShape.new(name: 'CustomVocabularyExportSpecification')
150
158
  CustomVocabularyImportSpecification = Shapes::StructureShape.new(name: 'CustomVocabularyImportSpecification')
159
+ CustomVocabularyItem = Shapes::StructureShape.new(name: 'CustomVocabularyItem')
160
+ CustomVocabularyItems = Shapes::ListShape.new(name: 'CustomVocabularyItems')
151
161
  CustomVocabularyStatus = Shapes::StringShape.new(name: 'CustomVocabularyStatus')
152
162
  DTMFCharacter = Shapes::StringShape.new(name: 'DTMFCharacter')
153
163
  DTMFSpecification = Shapes::StructureShape.new(name: 'DTMFSpecification')
@@ -162,6 +172,7 @@ module Aws::LexModelsV2
162
172
  DeleteBotResponse = Shapes::StructureShape.new(name: 'DeleteBotResponse')
163
173
  DeleteBotVersionRequest = Shapes::StructureShape.new(name: 'DeleteBotVersionRequest')
164
174
  DeleteBotVersionResponse = Shapes::StructureShape.new(name: 'DeleteBotVersionResponse')
175
+ DeleteCustomVocabularyItemsList = Shapes::ListShape.new(name: 'DeleteCustomVocabularyItemsList')
165
176
  DeleteCustomVocabularyRequest = Shapes::StructureShape.new(name: 'DeleteCustomVocabularyRequest')
166
177
  DeleteCustomVocabularyResponse = Shapes::StructureShape.new(name: 'DeleteCustomVocabularyResponse')
167
178
  DeleteExportRequest = Shapes::StructureShape.new(name: 'DeleteExportRequest')
@@ -211,6 +222,8 @@ module Aws::LexModelsV2
211
222
  Effect = Shapes::StringShape.new(name: 'Effect')
212
223
  ElicitationCodeHookInvocationSetting = Shapes::StructureShape.new(name: 'ElicitationCodeHookInvocationSetting')
213
224
  EncryptionSetting = Shapes::StructureShape.new(name: 'EncryptionSetting')
225
+ ErrorCode = Shapes::StringShape.new(name: 'ErrorCode')
226
+ ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
214
227
  ExceptionMessage = Shapes::StringShape.new(name: 'ExceptionMessage')
215
228
  ExportFilter = Shapes::StructureShape.new(name: 'ExportFilter')
216
229
  ExportFilterName = Shapes::StringShape.new(name: 'ExportFilterName')
@@ -223,6 +236,8 @@ module Aws::LexModelsV2
223
236
  ExportSummary = Shapes::StructureShape.new(name: 'ExportSummary')
224
237
  ExportSummaryList = Shapes::ListShape.new(name: 'ExportSummaryList')
225
238
  ExternalSourceSetting = Shapes::StructureShape.new(name: 'ExternalSourceSetting')
239
+ FailedCustomVocabularyItem = Shapes::StructureShape.new(name: 'FailedCustomVocabularyItem')
240
+ FailedCustomVocabularyItems = Shapes::ListShape.new(name: 'FailedCustomVocabularyItems')
226
241
  FailureReason = Shapes::StringShape.new(name: 'FailureReason')
227
242
  FailureReasons = Shapes::ListShape.new(name: 'FailureReasons')
228
243
  FilePassword = Shapes::StringShape.new(name: 'FilePassword')
@@ -271,6 +286,7 @@ module Aws::LexModelsV2
271
286
  IntentSummary = Shapes::StructureShape.new(name: 'IntentSummary')
272
287
  IntentSummaryList = Shapes::ListShape.new(name: 'IntentSummaryList')
273
288
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
289
+ ItemId = Shapes::StringShape.new(name: 'ItemId')
274
290
  KendraConfiguration = Shapes::StructureShape.new(name: 'KendraConfiguration')
275
291
  KendraIndexArn = Shapes::StringShape.new(name: 'KendraIndexArn')
276
292
  KmsKeyArn = Shapes::StringShape.new(name: 'KmsKeyArn')
@@ -293,6 +309,8 @@ module Aws::LexModelsV2
293
309
  ListBuiltInIntentsResponse = Shapes::StructureShape.new(name: 'ListBuiltInIntentsResponse')
294
310
  ListBuiltInSlotTypesRequest = Shapes::StructureShape.new(name: 'ListBuiltInSlotTypesRequest')
295
311
  ListBuiltInSlotTypesResponse = Shapes::StructureShape.new(name: 'ListBuiltInSlotTypesResponse')
312
+ ListCustomVocabularyItemsRequest = Shapes::StructureShape.new(name: 'ListCustomVocabularyItemsRequest')
313
+ ListCustomVocabularyItemsResponse = Shapes::StructureShape.new(name: 'ListCustomVocabularyItemsResponse')
296
314
  ListExportsRequest = Shapes::StructureShape.new(name: 'ListExportsRequest')
297
315
  ListExportsResponse = Shapes::StructureShape.new(name: 'ListExportsResponse')
298
316
  ListImportsRequest = Shapes::StructureShape.new(name: 'ListImportsRequest')
@@ -321,6 +339,7 @@ module Aws::LexModelsV2
321
339
  MissedCount = Shapes::IntegerShape.new(name: 'MissedCount')
322
340
  MultipleValuesSetting = Shapes::StructureShape.new(name: 'MultipleValuesSetting')
323
341
  Name = Shapes::StringShape.new(name: 'Name')
342
+ NewCustomVocabularyItem = Shapes::StructureShape.new(name: 'NewCustomVocabularyItem')
324
343
  NextIndex = Shapes::IntegerShape.new(name: 'NextIndex')
325
344
  NextToken = Shapes::StringShape.new(name: 'NextToken')
326
345
  NonEmptyString = Shapes::StringShape.new(name: 'NonEmptyString')
@@ -334,6 +353,7 @@ module Aws::LexModelsV2
334
353
  OutputContext = Shapes::StructureShape.new(name: 'OutputContext')
335
354
  OutputContextsList = Shapes::ListShape.new(name: 'OutputContextsList')
336
355
  PathFormat = Shapes::StructureShape.new(name: 'PathFormat')
356
+ Phrase = Shapes::StringShape.new(name: 'Phrase')
337
357
  PlainTextMessage = Shapes::StructureShape.new(name: 'PlainTextMessage')
338
358
  PlainTextMessageValue = Shapes::StringShape.new(name: 'PlainTextMessageValue')
339
359
  Policy = Shapes::StringShape.new(name: 'Policy')
@@ -470,6 +490,7 @@ module Aws::LexModelsV2
470
490
  UpdateBotRecommendationResponse = Shapes::StructureShape.new(name: 'UpdateBotRecommendationResponse')
471
491
  UpdateBotRequest = Shapes::StructureShape.new(name: 'UpdateBotRequest')
472
492
  UpdateBotResponse = Shapes::StructureShape.new(name: 'UpdateBotResponse')
493
+ UpdateCustomVocabularyItemsList = Shapes::ListShape.new(name: 'UpdateCustomVocabularyItemsList')
473
494
  UpdateExportRequest = Shapes::StructureShape.new(name: 'UpdateExportRequest')
474
495
  UpdateExportResponse = Shapes::StructureShape.new(name: 'UpdateExportResponse')
475
496
  UpdateIntentRequest = Shapes::StructureShape.new(name: 'UpdateIntentRequest')
@@ -488,6 +509,7 @@ module Aws::LexModelsV2
488
509
  VoiceId = Shapes::StringShape.new(name: 'VoiceId')
489
510
  VoiceSettings = Shapes::StructureShape.new(name: 'VoiceSettings')
490
511
  WaitAndContinueSpecification = Shapes::StructureShape.new(name: 'WaitAndContinueSpecification')
512
+ Weight = Shapes::IntegerShape.new(name: 'Weight')
491
513
 
492
514
  AdvancedRecognitionSetting.add_member(:audio_recognition_strategy, Shapes::ShapeRef.new(shape: AudioRecognitionStrategy, location_name: "audioRecognitionStrategy"))
493
515
  AdvancedRecognitionSetting.struct_class = Types::AdvancedRecognitionSetting
@@ -546,6 +568,45 @@ module Aws::LexModelsV2
546
568
  AudioSpecification.add_member(:end_timeout_ms, Shapes::ShapeRef.new(shape: TimeInMilliSeconds, required: true, location_name: "endTimeoutMs"))
547
569
  AudioSpecification.struct_class = Types::AudioSpecification
548
570
 
571
+ BatchCreateCustomVocabularyItemRequest.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "botId"))
572
+ BatchCreateCustomVocabularyItemRequest.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, required: true, location: "uri", location_name: "botVersion"))
573
+ BatchCreateCustomVocabularyItemRequest.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location: "uri", location_name: "localeId"))
574
+ BatchCreateCustomVocabularyItemRequest.add_member(:custom_vocabulary_item_list, Shapes::ShapeRef.new(shape: CreateCustomVocabularyItemsList, required: true, location_name: "customVocabularyItemList"))
575
+ BatchCreateCustomVocabularyItemRequest.struct_class = Types::BatchCreateCustomVocabularyItemRequest
576
+
577
+ BatchCreateCustomVocabularyItemResponse.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, location_name: "botId"))
578
+ BatchCreateCustomVocabularyItemResponse.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, location_name: "botVersion"))
579
+ BatchCreateCustomVocabularyItemResponse.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, location_name: "localeId"))
580
+ BatchCreateCustomVocabularyItemResponse.add_member(:errors, Shapes::ShapeRef.new(shape: FailedCustomVocabularyItems, location_name: "errors"))
581
+ BatchCreateCustomVocabularyItemResponse.add_member(:resources, Shapes::ShapeRef.new(shape: CustomVocabularyItems, location_name: "resources"))
582
+ BatchCreateCustomVocabularyItemResponse.struct_class = Types::BatchCreateCustomVocabularyItemResponse
583
+
584
+ BatchDeleteCustomVocabularyItemRequest.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "botId"))
585
+ BatchDeleteCustomVocabularyItemRequest.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, required: true, location: "uri", location_name: "botVersion"))
586
+ BatchDeleteCustomVocabularyItemRequest.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location: "uri", location_name: "localeId"))
587
+ BatchDeleteCustomVocabularyItemRequest.add_member(:custom_vocabulary_item_list, Shapes::ShapeRef.new(shape: DeleteCustomVocabularyItemsList, required: true, location_name: "customVocabularyItemList"))
588
+ BatchDeleteCustomVocabularyItemRequest.struct_class = Types::BatchDeleteCustomVocabularyItemRequest
589
+
590
+ BatchDeleteCustomVocabularyItemResponse.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, location_name: "botId"))
591
+ BatchDeleteCustomVocabularyItemResponse.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, location_name: "botVersion"))
592
+ BatchDeleteCustomVocabularyItemResponse.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, location_name: "localeId"))
593
+ BatchDeleteCustomVocabularyItemResponse.add_member(:errors, Shapes::ShapeRef.new(shape: FailedCustomVocabularyItems, location_name: "errors"))
594
+ BatchDeleteCustomVocabularyItemResponse.add_member(:resources, Shapes::ShapeRef.new(shape: CustomVocabularyItems, location_name: "resources"))
595
+ BatchDeleteCustomVocabularyItemResponse.struct_class = Types::BatchDeleteCustomVocabularyItemResponse
596
+
597
+ BatchUpdateCustomVocabularyItemRequest.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "botId"))
598
+ BatchUpdateCustomVocabularyItemRequest.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, required: true, location: "uri", location_name: "botVersion"))
599
+ BatchUpdateCustomVocabularyItemRequest.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location: "uri", location_name: "localeId"))
600
+ BatchUpdateCustomVocabularyItemRequest.add_member(:custom_vocabulary_item_list, Shapes::ShapeRef.new(shape: UpdateCustomVocabularyItemsList, required: true, location_name: "customVocabularyItemList"))
601
+ BatchUpdateCustomVocabularyItemRequest.struct_class = Types::BatchUpdateCustomVocabularyItemRequest
602
+
603
+ BatchUpdateCustomVocabularyItemResponse.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, location_name: "botId"))
604
+ BatchUpdateCustomVocabularyItemResponse.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, location_name: "botVersion"))
605
+ BatchUpdateCustomVocabularyItemResponse.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, location_name: "localeId"))
606
+ BatchUpdateCustomVocabularyItemResponse.add_member(:errors, Shapes::ShapeRef.new(shape: FailedCustomVocabularyItems, location_name: "errors"))
607
+ BatchUpdateCustomVocabularyItemResponse.add_member(:resources, Shapes::ShapeRef.new(shape: CustomVocabularyItems, location_name: "resources"))
608
+ BatchUpdateCustomVocabularyItemResponse.struct_class = Types::BatchUpdateCustomVocabularyItemResponse
609
+
549
610
  BotAliasHistoryEvent.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, location_name: "botVersion"))
550
611
  BotAliasHistoryEvent.add_member(:start_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "startDate"))
551
612
  BotAliasHistoryEvent.add_member(:end_date, Shapes::ShapeRef.new(shape: Timestamp, location_name: "endDate"))
@@ -832,6 +893,8 @@ module Aws::LexModelsV2
832
893
  CreateBotVersionResponse.add_member(:creation_date_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "creationDateTime"))
833
894
  CreateBotVersionResponse.struct_class = Types::CreateBotVersionResponse
834
895
 
896
+ CreateCustomVocabularyItemsList.member = Shapes::ShapeRef.new(shape: NewCustomVocabularyItem)
897
+
835
898
  CreateExportRequest.add_member(:resource_specification, Shapes::ShapeRef.new(shape: ExportResourceSpecification, required: true, location_name: "resourceSpecification"))
836
899
  CreateExportRequest.add_member(:file_format, Shapes::ShapeRef.new(shape: ImportExportFileFormat, required: true, location_name: "fileFormat"))
837
900
  CreateExportRequest.add_member(:file_password, Shapes::ShapeRef.new(shape: ImportExportFilePassword, location_name: "filePassword"))
@@ -964,6 +1027,9 @@ module Aws::LexModelsV2
964
1027
  CustomPayload.add_member(:value, Shapes::ShapeRef.new(shape: CustomPayloadValue, required: true, location_name: "value"))
965
1028
  CustomPayload.struct_class = Types::CustomPayload
966
1029
 
1030
+ CustomVocabularyEntryId.add_member(:item_id, Shapes::ShapeRef.new(shape: ItemId, required: true, location_name: "itemId"))
1031
+ CustomVocabularyEntryId.struct_class = Types::CustomVocabularyEntryId
1032
+
967
1033
  CustomVocabularyExportSpecification.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, required: true, location_name: "botId"))
968
1034
  CustomVocabularyExportSpecification.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, required: true, location_name: "botVersion"))
969
1035
  CustomVocabularyExportSpecification.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location_name: "localeId"))
@@ -974,6 +1040,14 @@ module Aws::LexModelsV2
974
1040
  CustomVocabularyImportSpecification.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location_name: "localeId"))
975
1041
  CustomVocabularyImportSpecification.struct_class = Types::CustomVocabularyImportSpecification
976
1042
 
1043
+ CustomVocabularyItem.add_member(:item_id, Shapes::ShapeRef.new(shape: ItemId, required: true, location_name: "itemId"))
1044
+ CustomVocabularyItem.add_member(:phrase, Shapes::ShapeRef.new(shape: Phrase, required: true, location_name: "phrase"))
1045
+ CustomVocabularyItem.add_member(:weight, Shapes::ShapeRef.new(shape: Weight, location_name: "weight"))
1046
+ CustomVocabularyItem.add_member(:display_as, Shapes::ShapeRef.new(shape: Phrase, location_name: "displayAs"))
1047
+ CustomVocabularyItem.struct_class = Types::CustomVocabularyItem
1048
+
1049
+ CustomVocabularyItems.member = Shapes::ShapeRef.new(shape: CustomVocabularyItem)
1050
+
977
1051
  DTMFSpecification.add_member(:max_length, Shapes::ShapeRef.new(shape: MaxUtteranceDigits, required: true, location_name: "maxLength"))
978
1052
  DTMFSpecification.add_member(:end_timeout_ms, Shapes::ShapeRef.new(shape: TimeInMilliSeconds, required: true, location_name: "endTimeoutMs"))
979
1053
  DTMFSpecification.add_member(:deletion_character, Shapes::ShapeRef.new(shape: DTMFCharacter, required: true, location_name: "deletionCharacter"))
@@ -1030,6 +1104,8 @@ module Aws::LexModelsV2
1030
1104
  DeleteBotVersionResponse.add_member(:bot_status, Shapes::ShapeRef.new(shape: BotStatus, location_name: "botStatus"))
1031
1105
  DeleteBotVersionResponse.struct_class = Types::DeleteBotVersionResponse
1032
1106
 
1107
+ DeleteCustomVocabularyItemsList.member = Shapes::ShapeRef.new(shape: CustomVocabularyEntryId)
1108
+
1033
1109
  DeleteCustomVocabularyRequest.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "botId"))
1034
1110
  DeleteCustomVocabularyRequest.add_member(:bot_version, Shapes::ShapeRef.new(shape: DraftBotVersion, required: true, location: "uri", location_name: "botVersion"))
1035
1111
  DeleteCustomVocabularyRequest.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location: "uri", location_name: "localeId"))
@@ -1365,6 +1441,13 @@ module Aws::LexModelsV2
1365
1441
  ExternalSourceSetting.add_member(:grammar_slot_type_setting, Shapes::ShapeRef.new(shape: GrammarSlotTypeSetting, location_name: "grammarSlotTypeSetting"))
1366
1442
  ExternalSourceSetting.struct_class = Types::ExternalSourceSetting
1367
1443
 
1444
+ FailedCustomVocabularyItem.add_member(:item_id, Shapes::ShapeRef.new(shape: ItemId, location_name: "itemId"))
1445
+ FailedCustomVocabularyItem.add_member(:error_message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "errorMessage"))
1446
+ FailedCustomVocabularyItem.add_member(:error_code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "errorCode"))
1447
+ FailedCustomVocabularyItem.struct_class = Types::FailedCustomVocabularyItem
1448
+
1449
+ FailedCustomVocabularyItems.member = Shapes::ShapeRef.new(shape: FailedCustomVocabularyItem)
1450
+
1368
1451
  FailureReasons.member = Shapes::ShapeRef.new(shape: FailureReason)
1369
1452
 
1370
1453
  FilterValues.member = Shapes::ShapeRef.new(shape: FilterValue)
@@ -1613,6 +1696,20 @@ module Aws::LexModelsV2
1613
1696
  ListBuiltInSlotTypesResponse.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, location_name: "localeId"))
1614
1697
  ListBuiltInSlotTypesResponse.struct_class = Types::ListBuiltInSlotTypesResponse
1615
1698
 
1699
+ ListCustomVocabularyItemsRequest.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "botId"))
1700
+ ListCustomVocabularyItemsRequest.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, required: true, location: "uri", location_name: "botVersion"))
1701
+ ListCustomVocabularyItemsRequest.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, required: true, location: "uri", location_name: "localeId"))
1702
+ ListCustomVocabularyItemsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "maxResults"))
1703
+ ListCustomVocabularyItemsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
1704
+ ListCustomVocabularyItemsRequest.struct_class = Types::ListCustomVocabularyItemsRequest
1705
+
1706
+ ListCustomVocabularyItemsResponse.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, location_name: "botId"))
1707
+ ListCustomVocabularyItemsResponse.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, location_name: "botVersion"))
1708
+ ListCustomVocabularyItemsResponse.add_member(:locale_id, Shapes::ShapeRef.new(shape: LocaleId, location_name: "localeId"))
1709
+ ListCustomVocabularyItemsResponse.add_member(:custom_vocabulary_items, Shapes::ShapeRef.new(shape: CustomVocabularyItems, location_name: "customVocabularyItems"))
1710
+ ListCustomVocabularyItemsResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "nextToken"))
1711
+ ListCustomVocabularyItemsResponse.struct_class = Types::ListCustomVocabularyItemsResponse
1712
+
1616
1713
  ListExportsRequest.add_member(:bot_id, Shapes::ShapeRef.new(shape: Id, location_name: "botId"))
1617
1714
  ListExportsRequest.add_member(:bot_version, Shapes::ShapeRef.new(shape: BotVersion, location_name: "botVersion"))
1618
1715
  ListExportsRequest.add_member(:sort_by, Shapes::ShapeRef.new(shape: ExportSortBy, location_name: "sortBy"))
@@ -1734,6 +1831,11 @@ module Aws::LexModelsV2
1734
1831
  MultipleValuesSetting.add_member(:allow_multiple_values, Shapes::ShapeRef.new(shape: Boolean, location_name: "allowMultipleValues"))
1735
1832
  MultipleValuesSetting.struct_class = Types::MultipleValuesSetting
1736
1833
 
1834
+ NewCustomVocabularyItem.add_member(:phrase, Shapes::ShapeRef.new(shape: Phrase, required: true, location_name: "phrase"))
1835
+ NewCustomVocabularyItem.add_member(:weight, Shapes::ShapeRef.new(shape: Weight, location_name: "weight"))
1836
+ NewCustomVocabularyItem.add_member(:display_as, Shapes::ShapeRef.new(shape: Phrase, location_name: "displayAs"))
1837
+ NewCustomVocabularyItem.struct_class = Types::NewCustomVocabularyItem
1838
+
1737
1839
  ObfuscationSetting.add_member(:obfuscation_setting_type, Shapes::ShapeRef.new(shape: ObfuscationSettingType, required: true, location_name: "obfuscationSettingType"))
1738
1840
  ObfuscationSetting.struct_class = Types::ObfuscationSetting
1739
1841
 
@@ -2172,6 +2274,8 @@ module Aws::LexModelsV2
2172
2274
  UpdateBotResponse.add_member(:last_updated_date_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastUpdatedDateTime"))
2173
2275
  UpdateBotResponse.struct_class = Types::UpdateBotResponse
2174
2276
 
2277
+ UpdateCustomVocabularyItemsList.member = Shapes::ShapeRef.new(shape: CustomVocabularyItem)
2278
+
2175
2279
  UpdateExportRequest.add_member(:export_id, Shapes::ShapeRef.new(shape: Id, required: true, location: "uri", location_name: "exportId"))
2176
2280
  UpdateExportRequest.add_member(:file_password, Shapes::ShapeRef.new(shape: ImportExportFilePassword, location_name: "filePassword"))
2177
2281
  UpdateExportRequest.struct_class = Types::UpdateExportRequest
@@ -2326,6 +2430,45 @@ module Aws::LexModelsV2
2326
2430
  "uid" => "models.lex.v2-2020-08-07",
2327
2431
  }
2328
2432
 
2433
+ api.add_operation(:batch_create_custom_vocabulary_item, Seahorse::Model::Operation.new.tap do |o|
2434
+ o.name = "BatchCreateCustomVocabularyItem"
2435
+ o.http_method = "PUT"
2436
+ o.http_request_uri = "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchcreate"
2437
+ o.input = Shapes::ShapeRef.new(shape: BatchCreateCustomVocabularyItemRequest)
2438
+ o.output = Shapes::ShapeRef.new(shape: BatchCreateCustomVocabularyItemResponse)
2439
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2440
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2441
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
2442
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2443
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
2444
+ end)
2445
+
2446
+ api.add_operation(:batch_delete_custom_vocabulary_item, Seahorse::Model::Operation.new.tap do |o|
2447
+ o.name = "BatchDeleteCustomVocabularyItem"
2448
+ o.http_method = "POST"
2449
+ o.http_request_uri = "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchdelete"
2450
+ o.input = Shapes::ShapeRef.new(shape: BatchDeleteCustomVocabularyItemRequest)
2451
+ o.output = Shapes::ShapeRef.new(shape: BatchDeleteCustomVocabularyItemResponse)
2452
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2453
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2454
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
2455
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2456
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
2457
+ end)
2458
+
2459
+ api.add_operation(:batch_update_custom_vocabulary_item, Seahorse::Model::Operation.new.tap do |o|
2460
+ o.name = "BatchUpdateCustomVocabularyItem"
2461
+ o.http_method = "PUT"
2462
+ o.http_request_uri = "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/batchupdate"
2463
+ o.input = Shapes::ShapeRef.new(shape: BatchUpdateCustomVocabularyItemRequest)
2464
+ o.output = Shapes::ShapeRef.new(shape: BatchUpdateCustomVocabularyItemResponse)
2465
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
2466
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
2467
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
2468
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
2469
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
2470
+ end)
2471
+
2329
2472
  api.add_operation(:build_bot_locale, Seahorse::Model::Operation.new.tap do |o|
2330
2473
  o.name = "BuildBotLocale"
2331
2474
  o.http_method = "POST"
@@ -2962,6 +3105,25 @@ module Aws::LexModelsV2
2962
3105
  )
2963
3106
  end)
2964
3107
 
3108
+ api.add_operation(:list_custom_vocabulary_items, Seahorse::Model::Operation.new.tap do |o|
3109
+ o.name = "ListCustomVocabularyItems"
3110
+ o.http_method = "POST"
3111
+ o.http_request_uri = "/bots/{botId}/botversions/{botVersion}/botlocales/{localeId}/customvocabulary/DEFAULT/list"
3112
+ o.input = Shapes::ShapeRef.new(shape: ListCustomVocabularyItemsRequest)
3113
+ o.output = Shapes::ShapeRef.new(shape: ListCustomVocabularyItemsResponse)
3114
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
3115
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
3116
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
3117
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
3118
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
3119
+ o[:pager] = Aws::Pager.new(
3120
+ limit_key: "max_results",
3121
+ tokens: {
3122
+ "next_token" => "next_token"
3123
+ }
3124
+ )
3125
+ end)
3126
+
2965
3127
  api.add_operation(:list_exports, Seahorse::Model::Operation.new.tap do |o|
2966
3128
  o.name = "ListExports"
2967
3129
  o.http_method = "POST"
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::LexModelsV2
11
+ # Endpoint parameters used to influence endpoints per request.
12
+ #
13
+ # @!attribute region
14
+ # The AWS region used to dispatch the request.
15
+ #
16
+ # @return [String]
17
+ #
18
+ # @!attribute use_dual_stack
19
+ # When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.
20
+ #
21
+ # @return [Boolean]
22
+ #
23
+ # @!attribute use_fips
24
+ # When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.
25
+ #
26
+ # @return [Boolean]
27
+ #
28
+ # @!attribute endpoint
29
+ # Override the endpoint used to send this request
30
+ #
31
+ # @return [String]
32
+ #
33
+ EndpointParameters = Struct.new(
34
+ :region,
35
+ :use_dual_stack,
36
+ :use_fips,
37
+ :endpoint,
38
+ ) do
39
+ include Aws::Structure
40
+
41
+ # @api private
42
+ class << self
43
+ PARAM_MAP = {
44
+ 'Region' => :region,
45
+ 'UseDualStack' => :use_dual_stack,
46
+ 'UseFIPS' => :use_fips,
47
+ 'Endpoint' => :endpoint,
48
+ }.freeze
49
+ end
50
+
51
+ def initialize(options = {})
52
+ self[:region] = options[:region]
53
+ self[:use_dual_stack] = options[:use_dual_stack]
54
+ self[:use_dual_stack] = false if self[:use_dual_stack].nil?
55
+ if self[:use_dual_stack].nil?
56
+ raise ArgumentError, "Missing required EndpointParameter: :use_dual_stack"
57
+ end
58
+ self[:use_fips] = options[:use_fips]
59
+ self[:use_fips] = false if self[:use_fips].nil?
60
+ if self[:use_fips].nil?
61
+ raise ArgumentError, "Missing required EndpointParameter: :use_fips"
62
+ end
63
+ self[:endpoint] = options[:endpoint]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,112 @@
1
+ # frozen_string_literal: true
2
+
3
+ # WARNING ABOUT GENERATED CODE
4
+ #
5
+ # This file is generated. See the contributing guide for more information:
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
+ #
8
+ # WARNING ABOUT GENERATED CODE
9
+
10
+ module Aws::LexModelsV2
11
+ class EndpointProvider
12
+ def initialize(rule_set = nil)
13
+ @@rule_set ||= begin
14
+ endpoint_rules = Aws::Json.load(Base64.decode64(RULES))
15
+ Aws::Endpoints::RuleSet.new(
16
+ version: endpoint_rules['version'],
17
+ service_id: endpoint_rules['serviceId'],
18
+ parameters: endpoint_rules['parameters'],
19
+ rules: endpoint_rules['rules']
20
+ )
21
+ end
22
+ @provider = Aws::Endpoints::RulesProvider.new(rule_set || @@rule_set)
23
+ end
24
+
25
+ def resolve_endpoint(parameters)
26
+ @provider.resolve_endpoint(parameters)
27
+ end
28
+
29
+ # @api private
30
+ RULES = <<-JSON
31
+ eyJ2ZXJzaW9uIjoiMS4wIiwicGFyYW1ldGVycyI6eyJSZWdpb24iOnsiYnVp
32
+ bHRJbiI6IkFXUzo6UmVnaW9uIiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1bWVu
33
+ dGF0aW9uIjoiVGhlIEFXUyByZWdpb24gdXNlZCB0byBkaXNwYXRjaCB0aGUg
34
+ cmVxdWVzdC4iLCJ0eXBlIjoiU3RyaW5nIn0sIlVzZUR1YWxTdGFjayI6eyJi
35
+ dWlsdEluIjoiQVdTOjpVc2VEdWFsU3RhY2siLCJyZXF1aXJlZCI6dHJ1ZSwi
36
+ ZGVmYXVsdCI6ZmFsc2UsImRvY3VtZW50YXRpb24iOiJXaGVuIHRydWUsIHVz
37
+ ZSB0aGUgZHVhbC1zdGFjayBlbmRwb2ludC4gSWYgdGhlIGNvbmZpZ3VyZWQg
38
+ ZW5kcG9pbnQgZG9lcyBub3Qgc3VwcG9ydCBkdWFsLXN0YWNrLCBkaXNwYXRj
39
+ aGluZyB0aGUgcmVxdWVzdCBNQVkgcmV0dXJuIGFuIGVycm9yLiIsInR5cGUi
40
+ OiJCb29sZWFuIn0sIlVzZUZJUFMiOnsiYnVpbHRJbiI6IkFXUzo6VXNlRklQ
41
+ UyIsInJlcXVpcmVkIjp0cnVlLCJkZWZhdWx0IjpmYWxzZSwiZG9jdW1lbnRh
42
+ dGlvbiI6IldoZW4gdHJ1ZSwgc2VuZCB0aGlzIHJlcXVlc3QgdG8gdGhlIEZJ
43
+ UFMtY29tcGxpYW50IHJlZ2lvbmFsIGVuZHBvaW50LiBJZiB0aGUgY29uZmln
44
+ dXJlZCBlbmRwb2ludCBkb2VzIG5vdCBoYXZlIGEgRklQUyBjb21wbGlhbnQg
45
+ ZW5kcG9pbnQsIGRpc3BhdGNoaW5nIHRoZSByZXF1ZXN0IHdpbGwgcmV0dXJu
46
+ IGFuIGVycm9yLiIsInR5cGUiOiJCb29sZWFuIn0sIkVuZHBvaW50Ijp7ImJ1
47
+ aWx0SW4iOiJTREs6OkVuZHBvaW50IiwicmVxdWlyZWQiOmZhbHNlLCJkb2N1
48
+ bWVudGF0aW9uIjoiT3ZlcnJpZGUgdGhlIGVuZHBvaW50IHVzZWQgdG8gc2Vu
49
+ ZCB0aGlzIHJlcXVlc3QiLCJ0eXBlIjoiU3RyaW5nIn19LCJydWxlcyI6W3si
50
+ Y29uZGl0aW9ucyI6W3siZm4iOiJhd3MucGFydGl0aW9uIiwiYXJndiI6W3si
51
+ cmVmIjoiUmVnaW9uIn1dLCJhc3NpZ24iOiJQYXJ0aXRpb25SZXN1bHQifV0s
52
+ InR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOlt7ImZuIjoi
53
+ aXNTZXQiLCJhcmd2IjpbeyJyZWYiOiJFbmRwb2ludCJ9XX0seyJmbiI6InBh
54
+ cnNlVVJMIiwiYXJndiI6W3sicmVmIjoiRW5kcG9pbnQifV0sImFzc2lnbiI6
55
+ InVybCJ9XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29uZGl0aW9ucyI6
56
+ W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQ
57
+ UyJ9LHRydWVdfV0sImVycm9yIjoiSW52YWxpZCBDb25maWd1cmF0aW9uOiBG
58
+ SVBTIGFuZCBjdXN0b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0
59
+ eXBlIjoiZXJyb3IifSx7ImNvbmRpdGlvbnMiOltdLCJ0eXBlIjoidHJlZSIs
60
+ InJ1bGVzIjpbeyJjb25kaXRpb25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMi
61
+ LCJhcmd2IjpbeyJyZWYiOiJVc2VEdWFsU3RhY2sifSx0cnVlXX1dLCJlcnJv
62
+ ciI6IkludmFsaWQgQ29uZmlndXJhdGlvbjogRHVhbHN0YWNrIGFuZCBjdXN0
63
+ b20gZW5kcG9pbnQgYXJlIG5vdCBzdXBwb3J0ZWQiLCJ0eXBlIjoiZXJyb3Ii
64
+ fSx7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2ludCI6eyJ1cmwiOnsicmVmIjoi
65
+ RW5kcG9pbnQifSwicHJvcGVydGllcyI6e30sImhlYWRlcnMiOnt9fSwidHlw
66
+ ZSI6ImVuZHBvaW50In1dfV19LHsiY29uZGl0aW9ucyI6W3siZm4iOiJib29s
67
+ ZWFuRXF1YWxzIiwiYXJndiI6W3sicmVmIjoiVXNlRklQUyJ9LHRydWVdfSx7
68
+ ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
69
+ dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
70
+ dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
71
+ Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
72
+ In0sInN1cHBvcnRzRklQUyJdfV19LHsiZm4iOiJib29sZWFuRXF1YWxzIiwi
73
+ YXJndiI6W3RydWUseyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQ
74
+ YXJ0aXRpb25SZXN1bHQifSwic3VwcG9ydHNEdWFsU3RhY2siXX1dfV0sInR5
75
+ cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRpdGlvbnMiOltdLCJlbmRwb2lu
76
+ dCI6eyJ1cmwiOiJodHRwczovL21vZGVscy12Mi1sZXgtZmlwcy57UmVnaW9u
77
+ fS57UGFydGl0aW9uUmVzdWx0I2R1YWxTdGFja0Ruc1N1ZmZpeH0iLCJwcm9w
78
+ ZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBlIjoiZW5kcG9pbnQifV19
79
+ LHsiY29uZGl0aW9ucyI6W10sImVycm9yIjoiRklQUyBhbmQgRHVhbFN0YWNr
80
+ IGFyZSBlbmFibGVkLCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3Vw
81
+ cG9ydCBvbmUgb3IgYm90aCIsInR5cGUiOiJlcnJvciJ9XX0seyJjb25kaXRp
82
+ b25zIjpbeyJmbiI6ImJvb2xlYW5FcXVhbHMiLCJhcmd2IjpbeyJyZWYiOiJV
83
+ c2VGSVBTIn0sdHJ1ZV19XSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3siY29u
84
+ ZGl0aW9ucyI6W3siZm4iOiJib29sZWFuRXF1YWxzIiwiYXJndiI6W3RydWUs
85
+ eyJmbiI6ImdldEF0dHIiLCJhcmd2IjpbeyJyZWYiOiJQYXJ0aXRpb25SZXN1
86
+ bHQifSwic3VwcG9ydHNGSVBTIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1bGVz
87
+ IjpbeyJjb25kaXRpb25zIjpbXSwidHlwZSI6InRyZWUiLCJydWxlcyI6W3si
88
+ Y29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBzOi8vbW9k
89
+ ZWxzLXYyLWxleC1maXBzLntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQjZG5z
90
+ U3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJzIjp7fX0sInR5cGUi
91
+ OiJlbmRwb2ludCJ9XX1dfSx7ImNvbmRpdGlvbnMiOltdLCJlcnJvciI6IkZJ
92
+ UFMgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRpb24gZG9lcyBub3Qgc3Vw
93
+ cG9ydCBGSVBTIiwidHlwZSI6ImVycm9yIn1dfSx7ImNvbmRpdGlvbnMiOlt7
94
+ ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt7InJlZiI6IlVzZUR1YWxT
95
+ dGFjayJ9LHRydWVdfV0sInR5cGUiOiJ0cmVlIiwicnVsZXMiOlt7ImNvbmRp
96
+ dGlvbnMiOlt7ImZuIjoiYm9vbGVhbkVxdWFscyIsImFyZ3YiOlt0cnVlLHsi
97
+ Zm4iOiJnZXRBdHRyIiwiYXJndiI6W3sicmVmIjoiUGFydGl0aW9uUmVzdWx0
98
+ In0sInN1cHBvcnRzRHVhbFN0YWNrIl19XX1dLCJ0eXBlIjoidHJlZSIsInJ1
99
+ bGVzIjpbeyJjb25kaXRpb25zIjpbXSwiZW5kcG9pbnQiOnsidXJsIjoiaHR0
100
+ cHM6Ly9tb2RlbHMtdjItbGV4LntSZWdpb259LntQYXJ0aXRpb25SZXN1bHQj
101
+ ZHVhbFN0YWNrRG5zU3VmZml4fSIsInByb3BlcnRpZXMiOnt9LCJoZWFkZXJz
102
+ Ijp7fX0sInR5cGUiOiJlbmRwb2ludCJ9XX0seyJjb25kaXRpb25zIjpbXSwi
103
+ ZXJyb3IiOiJEdWFsU3RhY2sgaXMgZW5hYmxlZCBidXQgdGhpcyBwYXJ0aXRp
104
+ b24gZG9lcyBub3Qgc3VwcG9ydCBEdWFsU3RhY2siLCJ0eXBlIjoiZXJyb3Ii
105
+ fV19LHsiY29uZGl0aW9ucyI6W10sImVuZHBvaW50Ijp7InVybCI6Imh0dHBz
106
+ Oi8vbW9kZWxzLXYyLWxleC57UmVnaW9ufS57UGFydGl0aW9uUmVzdWx0I2Ru
107
+ c1N1ZmZpeH0iLCJwcm9wZXJ0aWVzIjp7fSwiaGVhZGVycyI6e319LCJ0eXBl
108
+ IjoiZW5kcG9pbnQifV19XX0=
109
+
110
+ JSON
111
+ end
112
+ end