1package authoring
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"encoding/json"
11	"github.com/Azure/go-autorest/autorest"
12	"github.com/Azure/go-autorest/autorest/date"
13	"github.com/gofrs/uuid"
14	"io"
15)
16
17// The package's fully qualified name.
18const fqdn = "github.com/Azure/azure-sdk-for-go/services/cognitiveservices/v2.0/luis/authoring"
19
20// ApplicationCreateObject properties for creating a new LUIS Application
21type ApplicationCreateObject struct {
22	// Culture - The culture for the new application. It is the language that your app understands and speaks. E.g.: "en-us". Note: the culture cannot be changed after the app is created.
23	Culture *string `json:"culture,omitempty"`
24	// Domain - The domain for the new application. Optional. E.g.: Comics.
25	Domain *string `json:"domain,omitempty"`
26	// Description - Description of the new application. Optional.
27	Description *string `json:"description,omitempty"`
28	// InitialVersionID - The initial version ID. Optional. Default value is: "0.1"
29	InitialVersionID *string `json:"initialVersionId,omitempty"`
30	// UsageScenario - Defines the scenario for the new application. Optional. E.g.: IoT.
31	UsageScenario *string `json:"usageScenario,omitempty"`
32	// Name - The name for the new application.
33	Name *string `json:"name,omitempty"`
34}
35
36// ApplicationInfoResponse response containing the Application Info.
37type ApplicationInfoResponse struct {
38	autorest.Response `json:"-"`
39	// ID - The ID (GUID) of the application.
40	ID *uuid.UUID `json:"id,omitempty"`
41	// Name - The name of the application.
42	Name *string `json:"name,omitempty"`
43	// Description - The description of the application.
44	Description *string `json:"description,omitempty"`
45	// Culture - The culture of the application. For example, "en-us".
46	Culture *string `json:"culture,omitempty"`
47	// UsageScenario - Defines the scenario for the new application. Optional. For example, IoT.
48	UsageScenario *string `json:"usageScenario,omitempty"`
49	// Domain - The domain for the new application. Optional. For example, Comics.
50	Domain *string `json:"domain,omitempty"`
51	// VersionsCount - Amount of model versions within the application.
52	VersionsCount *int32 `json:"versionsCount,omitempty"`
53	// CreatedDateTime - The version's creation timestamp.
54	CreatedDateTime *string `json:"createdDateTime,omitempty"`
55	// Endpoints - The Runtime endpoint URL for this model version.
56	Endpoints interface{} `json:"endpoints,omitempty"`
57	// EndpointHitsCount - Number of calls made to this endpoint.
58	EndpointHitsCount *int32 `json:"endpointHitsCount,omitempty"`
59	// ActiveVersion - The version ID currently marked as active.
60	ActiveVersion *string `json:"activeVersion,omitempty"`
61}
62
63// ApplicationPublishObject object model for publishing a specific application version.
64type ApplicationPublishObject struct {
65	// VersionID - The version ID to publish.
66	VersionID *string `json:"versionId,omitempty"`
67	// IsStaging - Indicates if the staging slot should be used, instead of the Production one.
68	IsStaging *bool `json:"isStaging,omitempty"`
69}
70
71// ApplicationSettings the application settings.
72type ApplicationSettings struct {
73	autorest.Response `json:"-"`
74	// ID - The application ID.
75	ID *uuid.UUID `json:"id,omitempty"`
76	// IsPublic - Setting your application as public allows other people to use your application's endpoint using their own keys for billing purposes.
77	IsPublic *bool `json:"public,omitempty"`
78}
79
80// ApplicationSettingUpdateObject object model for updating an application's settings.
81type ApplicationSettingUpdateObject struct {
82	// IsPublic - Setting your application as public allows other people to use your application's endpoint using their own keys.
83	IsPublic *bool `json:"public,omitempty"`
84}
85
86// ApplicationUpdateObject object model for updating the name or description of an application.
87type ApplicationUpdateObject struct {
88	// Name - The application's new name.
89	Name *string `json:"name,omitempty"`
90	// Description - The application's new description.
91	Description *string `json:"description,omitempty"`
92}
93
94// AppVersionSettingObject object model of an application version setting.
95type AppVersionSettingObject struct {
96	// Name - The application version setting name.
97	Name *string `json:"name,omitempty"`
98	// Value - The application version setting value.
99	Value *string `json:"value,omitempty"`
100}
101
102// AvailableCulture available culture for using in a new application.
103type AvailableCulture struct {
104	// Name - The language name.
105	Name *string `json:"name,omitempty"`
106	// Code - The ISO value for the language.
107	Code *string `json:"code,omitempty"`
108}
109
110// AvailablePrebuiltEntityModel available Prebuilt entity model for using in an application.
111type AvailablePrebuiltEntityModel struct {
112	// Name - The entity name.
113	Name *string `json:"name,omitempty"`
114	// Description - The entity description and usage information.
115	Description *string `json:"description,omitempty"`
116	// Examples - Usage examples.
117	Examples *string `json:"examples,omitempty"`
118}
119
120// AzureAccountInfoObject defines the Azure account information object.
121type AzureAccountInfoObject struct {
122	// AzureSubscriptionID - The id for the Azure subscription.
123	AzureSubscriptionID *string `json:"azureSubscriptionId,omitempty"`
124	// ResourceGroup - The Azure resource group name.
125	ResourceGroup *string `json:"resourceGroup,omitempty"`
126	// AccountName - The Azure account name.
127	AccountName *string `json:"accountName,omitempty"`
128}
129
130// BatchLabelExample response when adding a batch of labeled example utterances.
131type BatchLabelExample struct {
132	Value    *LabelExampleResponse `json:"value,omitempty"`
133	HasError *bool                 `json:"hasError,omitempty"`
134	Error    *OperationStatus      `json:"error,omitempty"`
135}
136
137// ChildEntity the base child entity type.
138type ChildEntity struct {
139	// ID - The ID (GUID) belonging to a child entity.
140	ID *uuid.UUID `json:"id,omitempty"`
141	// Name - The name of a child entity.
142	Name *string `json:"name,omitempty"`
143}
144
145// ClosedList exported Model - A list entity.
146type ClosedList struct {
147	// Name - Name of the list entity.
148	Name *string `json:"name,omitempty"`
149	// SubLists - Sublists for the list entity.
150	SubLists *[]SubClosedList `json:"subLists,omitempty"`
151	Roles    *[]string        `json:"roles,omitempty"`
152}
153
154// ClosedListEntityExtractor list Entity Extractor.
155type ClosedListEntityExtractor struct {
156	autorest.Response `json:"-"`
157	// ID - The ID of the Entity Model.
158	ID *uuid.UUID `json:"id,omitempty"`
159	// Name - Name of the Entity Model.
160	Name *string `json:"name,omitempty"`
161	// TypeID - The type ID of the Entity Model.
162	TypeID *int32 `json:"typeId,omitempty"`
163	// ReadableType - Possible values include: 'ReadableType4EntityExtractor', 'ReadableType4HierarchicalEntityExtractor', 'ReadableType4HierarchicalChildEntityExtractor', 'ReadableType4CompositeEntityExtractor', 'ReadableType4ListEntityExtractor', 'ReadableType4PrebuiltEntityExtractor', 'ReadableType4IntentClassifier', 'ReadableType4PatternAnyEntityExtractor', 'ReadableType4ClosedListEntityExtractor', 'ReadableType4RegexEntityExtractor'
164	ReadableType ReadableType4 `json:"readableType,omitempty"`
165	Roles        *[]EntityRole `json:"roles,omitempty"`
166	// SubLists - List of sublists.
167	SubLists *[]SubClosedListResponse `json:"subLists,omitempty"`
168}
169
170// ClosedListModelCreateObject object model for creating a list entity.
171type ClosedListModelCreateObject struct {
172	// SubLists - Sublists for the feature.
173	SubLists *[]WordListObject `json:"subLists,omitempty"`
174	// Name - Name of the list entity.
175	Name *string `json:"name,omitempty"`
176}
177
178// ClosedListModelPatchObject object model for adding a batch of sublists to an existing list entity.
179type ClosedListModelPatchObject struct {
180	// SubLists - Sublists to add.
181	SubLists *[]WordListObject `json:"subLists,omitempty"`
182}
183
184// ClosedListModelUpdateObject object model for updating a list entity.
185type ClosedListModelUpdateObject struct {
186	// SubLists - The new sublists for the feature.
187	SubLists *[]WordListObject `json:"subLists,omitempty"`
188	// Name - The new name of the list entity.
189	Name *string `json:"name,omitempty"`
190}
191
192// CollaboratorsArray ...
193type CollaboratorsArray struct {
194	// Emails - The email address of the users.
195	Emails *[]string `json:"emails,omitempty"`
196}
197
198// CompositeChildModelCreateObject ...
199type CompositeChildModelCreateObject struct {
200	Name *string `json:"name,omitempty"`
201}
202
203// CompositeEntityExtractor a Composite Entity Extractor.
204type CompositeEntityExtractor struct {
205	autorest.Response `json:"-"`
206	// ID - The ID of the Entity Model.
207	ID *uuid.UUID `json:"id,omitempty"`
208	// Name - Name of the Entity Model.
209	Name *string `json:"name,omitempty"`
210	// TypeID - The type ID of the Entity Model.
211	TypeID *int32 `json:"typeId,omitempty"`
212	// ReadableType - Possible values include: 'ReadableType3EntityExtractor', 'ReadableType3HierarchicalEntityExtractor', 'ReadableType3HierarchicalChildEntityExtractor', 'ReadableType3CompositeEntityExtractor', 'ReadableType3ListEntityExtractor', 'ReadableType3PrebuiltEntityExtractor', 'ReadableType3IntentClassifier', 'ReadableType3PatternAnyEntityExtractor', 'ReadableType3ClosedListEntityExtractor', 'ReadableType3RegexEntityExtractor'
213	ReadableType ReadableType3 `json:"readableType,omitempty"`
214	Roles        *[]EntityRole `json:"roles,omitempty"`
215	// Children - List of child entities.
216	Children *[]ChildEntity `json:"children,omitempty"`
217}
218
219// CompositeEntityModel a composite entity extractor.
220type CompositeEntityModel struct {
221	// Children - Child entities.
222	Children *[]string `json:"children,omitempty"`
223	// Name - Entity name.
224	Name *string `json:"name,omitempty"`
225}
226
227// CustomPrebuiltModel a Custom Prebuilt model.
228type CustomPrebuiltModel struct {
229	// ID - The ID of the Entity Model.
230	ID *uuid.UUID `json:"id,omitempty"`
231	// Name - Name of the Entity Model.
232	Name *string `json:"name,omitempty"`
233	// TypeID - The type ID of the Entity Model.
234	TypeID *int32 `json:"typeId,omitempty"`
235	// ReadableType - Possible values include: 'ReadableType7EntityExtractor', 'ReadableType7HierarchicalEntityExtractor', 'ReadableType7HierarchicalChildEntityExtractor', 'ReadableType7CompositeEntityExtractor', 'ReadableType7ListEntityExtractor', 'ReadableType7PrebuiltEntityExtractor', 'ReadableType7IntentClassifier', 'ReadableType7PatternAnyEntityExtractor', 'ReadableType7ClosedListEntityExtractor', 'ReadableType7RegexEntityExtractor'
236	ReadableType ReadableType7 `json:"readableType,omitempty"`
237	// CustomPrebuiltDomainName - The domain name.
238	CustomPrebuiltDomainName *string `json:"customPrebuiltDomainName,omitempty"`
239	// CustomPrebuiltModelName - The intent name or entity name.
240	CustomPrebuiltModelName *string       `json:"customPrebuiltModelName,omitempty"`
241	Roles                   *[]EntityRole `json:"roles,omitempty"`
242}
243
244// EndpointInfo the base class "ProductionOrStagingEndpointInfo" inherits from.
245type EndpointInfo struct {
246	// VersionID - The version ID to publish.
247	VersionID *string `json:"versionId,omitempty"`
248	// IsStaging - Indicates if the staging slot should be used, instead of the Production one.
249	IsStaging *bool `json:"isStaging,omitempty"`
250	// EndpointURL - The Runtime endpoint URL for this model version.
251	EndpointURL *string `json:"endpointUrl,omitempty"`
252	// Region - The target region that the application is published to.
253	Region *string `json:"region,omitempty"`
254	// AssignedEndpointKey - The endpoint key.
255	AssignedEndpointKey *string `json:"assignedEndpointKey,omitempty"`
256	// EndpointRegion - The endpoint's region.
257	EndpointRegion *string `json:"endpointRegion,omitempty"`
258	// FailedRegions - Regions where publishing failed.
259	FailedRegions *string `json:"failedRegions,omitempty"`
260	// PublishedDateTime - Timestamp when was last published.
261	PublishedDateTime *string `json:"publishedDateTime,omitempty"`
262}
263
264// EnqueueTrainingResponse response model when requesting to train the model.
265type EnqueueTrainingResponse struct {
266	autorest.Response `json:"-"`
267	// StatusID - The train request status ID.
268	StatusID *int32 `json:"statusId,omitempty"`
269	// Status - Possible values include: 'StatusQueued', 'StatusInProgress', 'StatusUpToDate', 'StatusFail', 'StatusSuccess'
270	Status Status `json:"status,omitempty"`
271}
272
273// EntitiesSuggestionExample predicted/suggested entity.
274type EntitiesSuggestionExample struct {
275	// Text - The utterance. For example, "What's the weather like in seattle?"
276	Text *string `json:"text,omitempty"`
277	// TokenizedText - The utterance tokenized.
278	TokenizedText *[]string `json:"tokenizedText,omitempty"`
279	// IntentPredictions - Predicted/suggested intents.
280	IntentPredictions *[]IntentPrediction `json:"intentPredictions,omitempty"`
281	// EntityPredictions - Predicted/suggested entities.
282	EntityPredictions *[]EntityPrediction `json:"entityPredictions,omitempty"`
283}
284
285// EntityExtractor entity Extractor.
286type EntityExtractor struct {
287	autorest.Response `json:"-"`
288	// ID - The ID of the Entity Model.
289	ID *uuid.UUID `json:"id,omitempty"`
290	// Name - Name of the Entity Model.
291	Name *string `json:"name,omitempty"`
292	// TypeID - The type ID of the Entity Model.
293	TypeID *int32 `json:"typeId,omitempty"`
294	// ReadableType - Possible values include: 'ReadableType8EntityExtractor', 'ReadableType8HierarchicalEntityExtractor', 'ReadableType8HierarchicalChildEntityExtractor', 'ReadableType8CompositeEntityExtractor', 'ReadableType8ListEntityExtractor', 'ReadableType8PrebuiltEntityExtractor', 'ReadableType8IntentClassifier', 'ReadableType8PatternAnyEntityExtractor', 'ReadableType8ClosedListEntityExtractor', 'ReadableType8RegexEntityExtractor'
295	ReadableType ReadableType8 `json:"readableType,omitempty"`
296	Roles        *[]EntityRole `json:"roles,omitempty"`
297	// CustomPrebuiltDomainName - The domain name.
298	CustomPrebuiltDomainName *string `json:"customPrebuiltDomainName,omitempty"`
299	// CustomPrebuiltModelName - The intent name or entity name.
300	CustomPrebuiltModelName *string `json:"customPrebuiltModelName,omitempty"`
301}
302
303// EntityLabel defines the entity type and position of the extracted entity within the example.
304type EntityLabel struct {
305	// EntityName - The entity type.
306	EntityName *string `json:"entityName,omitempty"`
307	// StartTokenIndex - The index within the utterance where the extracted entity starts.
308	StartTokenIndex *int32 `json:"startTokenIndex,omitempty"`
309	// EndTokenIndex - The index within the utterance where the extracted entity ends.
310	EndTokenIndex *int32 `json:"endTokenIndex,omitempty"`
311	// Role - The role of the entity within the utterance.
312	Role *string `json:"role,omitempty"`
313	// RoleID - The role Id.
314	RoleID *string `json:"roleId,omitempty"`
315}
316
317// EntityLabelObject defines the entity type and position of the extracted entity within the example.
318type EntityLabelObject struct {
319	// EntityName - The entity type.
320	EntityName *string `json:"entityName,omitempty"`
321	// StartCharIndex - The index within the utterance where the extracted entity starts.
322	StartCharIndex *int32 `json:"startCharIndex,omitempty"`
323	// EndCharIndex - The index within the utterance where the extracted entity ends.
324	EndCharIndex *int32 `json:"endCharIndex,omitempty"`
325	// Role - The role of the entity within the utterance.
326	Role *string `json:"role,omitempty"`
327}
328
329// EntityModelInfo an Entity Extractor model info.
330type EntityModelInfo struct {
331	Roles *[]EntityRole `json:"roles,omitempty"`
332	// ID - The ID of the Entity Model.
333	ID *uuid.UUID `json:"id,omitempty"`
334	// Name - Name of the Entity Model.
335	Name *string `json:"name,omitempty"`
336	// TypeID - The type ID of the Entity Model.
337	TypeID *int32 `json:"typeId,omitempty"`
338	// ReadableType - Possible values include: 'ReadableTypeEntityExtractor', 'ReadableTypeHierarchicalEntityExtractor', 'ReadableTypeHierarchicalChildEntityExtractor', 'ReadableTypeCompositeEntityExtractor', 'ReadableTypeListEntityExtractor', 'ReadableTypePrebuiltEntityExtractor', 'ReadableTypeIntentClassifier', 'ReadableTypePatternAnyEntityExtractor', 'ReadableTypeClosedListEntityExtractor', 'ReadableTypeRegexEntityExtractor'
339	ReadableType ReadableType `json:"readableType,omitempty"`
340}
341
342// EntityPrediction a suggested entity.
343type EntityPrediction struct {
344	// EntityName - The entity's name
345	EntityName *string `json:"entityName,omitempty"`
346	// StartTokenIndex - The index within the utterance where the extracted entity starts.
347	StartTokenIndex *int32 `json:"startTokenIndex,omitempty"`
348	// EndTokenIndex - The index within the utterance where the extracted entity ends.
349	EndTokenIndex *int32 `json:"endTokenIndex,omitempty"`
350	// Phrase - The actual token(s) that comprise the entity.
351	Phrase *string `json:"phrase,omitempty"`
352}
353
354// EntityRole entity extractor role
355type EntityRole struct {
356	autorest.Response `json:"-"`
357	// ID - The entity role ID.
358	ID *uuid.UUID `json:"id,omitempty"`
359	// Name - The entity role name.
360	Name *string `json:"name,omitempty"`
361}
362
363// EntityRoleCreateObject object model for creating an entity role.
364type EntityRoleCreateObject struct {
365	// Name - The entity role name.
366	Name *string `json:"name,omitempty"`
367}
368
369// EntityRoleUpdateObject object model for updating an entity role.
370type EntityRoleUpdateObject struct {
371	// Name - The entity role name.
372	Name *string `json:"name,omitempty"`
373}
374
375// ErrorResponse error response when invoking an operation on the API.
376type ErrorResponse struct {
377	// AdditionalProperties - Unmatched properties from the message are deserialized this collection
378	AdditionalProperties map[string]interface{} `json:""`
379	ErrorType            *string                `json:"errorType,omitempty"`
380}
381
382// MarshalJSON is the custom marshaler for ErrorResponse.
383func (er ErrorResponse) MarshalJSON() ([]byte, error) {
384	objectMap := make(map[string]interface{})
385	if er.ErrorType != nil {
386		objectMap["errorType"] = er.ErrorType
387	}
388	for k, v := range er.AdditionalProperties {
389		objectMap[k] = v
390	}
391	return json.Marshal(objectMap)
392}
393
394// UnmarshalJSON is the custom unmarshaler for ErrorResponse struct.
395func (er *ErrorResponse) UnmarshalJSON(body []byte) error {
396	var m map[string]*json.RawMessage
397	err := json.Unmarshal(body, &m)
398	if err != nil {
399		return err
400	}
401	for k, v := range m {
402		switch k {
403		default:
404			if v != nil {
405				var additionalProperties interface{}
406				err = json.Unmarshal(*v, &additionalProperties)
407				if err != nil {
408					return err
409				}
410				if er.AdditionalProperties == nil {
411					er.AdditionalProperties = make(map[string]interface{})
412				}
413				er.AdditionalProperties[k] = additionalProperties
414			}
415		case "errorType":
416			if v != nil {
417				var errorType string
418				err = json.Unmarshal(*v, &errorType)
419				if err != nil {
420					return err
421				}
422				er.ErrorType = &errorType
423			}
424		}
425	}
426
427	return nil
428}
429
430// ExampleLabelObject a labeled example utterance.
431type ExampleLabelObject struct {
432	// Text - The example utterance.
433	Text *string `json:"text,omitempty"`
434	// EntityLabels - The identified entities within the example utterance.
435	EntityLabels *[]EntityLabelObject `json:"entityLabels,omitempty"`
436	// IntentName - The identified intent representing the example utterance.
437	IntentName *string `json:"intentName,omitempty"`
438}
439
440// ExplicitListItem explicit (exception) list item
441type ExplicitListItem struct {
442	autorest.Response `json:"-"`
443	// ID - The explicit list item ID.
444	ID *int64 `json:"id,omitempty"`
445	// ExplicitListItem - The explicit list item value.
446	ExplicitListItem *string `json:"explicitListItem,omitempty"`
447}
448
449// ExplicitListItemCreateObject object model for creating an explicit (exception) list item.
450type ExplicitListItemCreateObject struct {
451	// ExplicitListItem - The explicit list item.
452	ExplicitListItem *string `json:"explicitListItem,omitempty"`
453}
454
455// ExplicitListItemUpdateObject model object for updating an explicit (exception) list item.
456type ExplicitListItemUpdateObject struct {
457	// ExplicitListItem - The explicit list item.
458	ExplicitListItem *string `json:"explicitListItem,omitempty"`
459}
460
461// FeatureInfoObject the base class Features-related response objects inherit from.
462type FeatureInfoObject struct {
463	// ID - A six-digit ID used for Features.
464	ID *int32 `json:"id,omitempty"`
465	// Name - The name of the Feature.
466	Name *string `json:"name,omitempty"`
467	// IsActive - Indicates if the feature is enabled.
468	IsActive *bool `json:"isActive,omitempty"`
469}
470
471// FeaturesResponseObject model Features, including Patterns and Phraselists.
472type FeaturesResponseObject struct {
473	autorest.Response  `json:"-"`
474	PhraselistFeatures *[]PhraseListFeatureInfo `json:"phraselistFeatures,omitempty"`
475	PatternFeatures    *[]PatternFeatureInfo    `json:"patternFeatures,omitempty"`
476}
477
478// HierarchicalChildEntity a Hierarchical Child Entity.
479type HierarchicalChildEntity struct {
480	autorest.Response `json:"-"`
481	// TypeID - The type ID of the Entity Model.
482	TypeID *int32 `json:"typeId,omitempty"`
483	// ReadableType - Possible values include: 'ReadableType6EntityExtractor', 'ReadableType6HierarchicalEntityExtractor', 'ReadableType6HierarchicalChildEntityExtractor', 'ReadableType6CompositeEntityExtractor', 'ReadableType6ListEntityExtractor', 'ReadableType6PrebuiltEntityExtractor', 'ReadableType6IntentClassifier', 'ReadableType6PatternAnyEntityExtractor', 'ReadableType6ClosedListEntityExtractor', 'ReadableType6RegexEntityExtractor'
484	ReadableType ReadableType6 `json:"readableType,omitempty"`
485	// ID - The ID (GUID) belonging to a child entity.
486	ID *uuid.UUID `json:"id,omitempty"`
487	// Name - The name of a child entity.
488	Name *string `json:"name,omitempty"`
489}
490
491// HierarchicalChildModelCreateObject ...
492type HierarchicalChildModelCreateObject struct {
493	Name *string `json:"name,omitempty"`
494}
495
496// HierarchicalChildModelUpdateObject ...
497type HierarchicalChildModelUpdateObject struct {
498	Name *string `json:"name,omitempty"`
499}
500
501// HierarchicalEntityExtractor hierarchical Entity Extractor.
502type HierarchicalEntityExtractor struct {
503	autorest.Response `json:"-"`
504	// ID - The ID of the Entity Model.
505	ID *uuid.UUID `json:"id,omitempty"`
506	// Name - Name of the Entity Model.
507	Name *string `json:"name,omitempty"`
508	// TypeID - The type ID of the Entity Model.
509	TypeID *int32 `json:"typeId,omitempty"`
510	// ReadableType - Possible values include: 'ReadableType2EntityExtractor', 'ReadableType2HierarchicalEntityExtractor', 'ReadableType2HierarchicalChildEntityExtractor', 'ReadableType2CompositeEntityExtractor', 'ReadableType2ListEntityExtractor', 'ReadableType2PrebuiltEntityExtractor', 'ReadableType2IntentClassifier', 'ReadableType2PatternAnyEntityExtractor', 'ReadableType2ClosedListEntityExtractor', 'ReadableType2RegexEntityExtractor'
511	ReadableType ReadableType2 `json:"readableType,omitempty"`
512	Roles        *[]EntityRole `json:"roles,omitempty"`
513	// Children - List of child entities.
514	Children *[]ChildEntity `json:"children,omitempty"`
515}
516
517// HierarchicalEntityModel a hierarchical entity extractor.
518type HierarchicalEntityModel struct {
519	// Children - Child entities.
520	Children *[]string `json:"children,omitempty"`
521	// Name - Entity name.
522	Name *string `json:"name,omitempty"`
523}
524
525// HierarchicalModel ...
526type HierarchicalModel struct {
527	Name     *string               `json:"name,omitempty"`
528	Children *[]string             `json:"children,omitempty"`
529	Inherits *PrebuiltDomainObject `json:"inherits,omitempty"`
530	Roles    *[]string             `json:"roles,omitempty"`
531}
532
533// Int32 ...
534type Int32 struct {
535	autorest.Response `json:"-"`
536	Value             *int32 `json:"value,omitempty"`
537}
538
539// Int64 ...
540type Int64 struct {
541	autorest.Response `json:"-"`
542	Value             *int64 `json:"value,omitempty"`
543}
544
545// IntentClassifier intent Classifier.
546type IntentClassifier struct {
547	autorest.Response `json:"-"`
548	// CustomPrebuiltDomainName - The domain name.
549	CustomPrebuiltDomainName *string `json:"customPrebuiltDomainName,omitempty"`
550	// CustomPrebuiltModelName - The intent name or entity name.
551	CustomPrebuiltModelName *string `json:"customPrebuiltModelName,omitempty"`
552	// ID - The ID of the Entity Model.
553	ID *uuid.UUID `json:"id,omitempty"`
554	// Name - Name of the Entity Model.
555	Name *string `json:"name,omitempty"`
556	// TypeID - The type ID of the Entity Model.
557	TypeID *int32 `json:"typeId,omitempty"`
558	// ReadableType - Possible values include: 'ReadableTypeEntityExtractor', 'ReadableTypeHierarchicalEntityExtractor', 'ReadableTypeHierarchicalChildEntityExtractor', 'ReadableTypeCompositeEntityExtractor', 'ReadableTypeListEntityExtractor', 'ReadableTypePrebuiltEntityExtractor', 'ReadableTypeIntentClassifier', 'ReadableTypePatternAnyEntityExtractor', 'ReadableTypeClosedListEntityExtractor', 'ReadableTypeRegexEntityExtractor'
559	ReadableType ReadableType `json:"readableType,omitempty"`
560}
561
562// IntentPrediction a suggested intent.
563type IntentPrediction struct {
564	// Name - The intent's name
565	Name *string `json:"name,omitempty"`
566	// Score - The intent's score, based on the prediction model.
567	Score *float64 `json:"score,omitempty"`
568}
569
570// IntentsSuggestionExample predicted/suggested intent.
571type IntentsSuggestionExample struct {
572	// Text - The utterance. For example, "What's the weather like in seattle?"
573	Text *string `json:"text,omitempty"`
574	// TokenizedText - The tokenized utterance.
575	TokenizedText *[]string `json:"tokenizedText,omitempty"`
576	// IntentPredictions - Predicted/suggested intents.
577	IntentPredictions *[]IntentPrediction `json:"intentPredictions,omitempty"`
578	// EntityPredictions - Predicted/suggested entities.
579	EntityPredictions *[]EntityPrediction `json:"entityPredictions,omitempty"`
580}
581
582// JSONEntity exported Model - Extracted Entity from utterance.
583type JSONEntity struct {
584	// StartPos - The index within the utterance where the extracted entity starts.
585	StartPos *int32 `json:"startPos,omitempty"`
586	// EndPos - The index within the utterance where the extracted entity ends.
587	EndPos *int32 `json:"endPos,omitempty"`
588	// Entity - The entity name.
589	Entity *string `json:"entity,omitempty"`
590	// Role - The role of the entity within the utterance.
591	Role *string `json:"role,omitempty"`
592}
593
594// JSONModelFeature exported Model - Phraselist Model Feature.
595type JSONModelFeature struct {
596	// Activated - Indicates if the feature is enabled.
597	Activated *bool `json:"activated,omitempty"`
598	// Name - The Phraselist name.
599	Name *string `json:"name,omitempty"`
600	// Words - List of comma-separated phrases that represent the Phraselist.
601	Words *string `json:"words,omitempty"`
602	// Mode - An interchangeable phrase list feature serves as a list of synonyms for training. A non-exchangeable phrase list serves as separate features for training. So, if your non-interchangeable phrase list contains 5 phrases, they will be mapped to 5 separate features. You can think of the non-interchangeable phrase list as an additional bag of words to add to LUIS existing vocabulary features. It is used as a lexicon lookup feature where its value is 1 if the lexicon contains a given word or 0 if it doesn’t.  Default value is true.
603	Mode *bool `json:"mode,omitempty"`
604}
605
606// JSONRegexFeature exported Model - A Pattern feature.
607type JSONRegexFeature struct {
608	// Pattern - The Regular Expression to match.
609	Pattern *string `json:"pattern,omitempty"`
610	// Activated - Indicates if the Pattern feature is enabled.
611	Activated *bool `json:"activated,omitempty"`
612	// Name - Name of the feature.
613	Name *string `json:"name,omitempty"`
614}
615
616// JSONUtterance exported Model - Utterance that was used to train the model.
617type JSONUtterance struct {
618	// Text - The utterance.
619	Text *string `json:"text,omitempty"`
620	// Intent - The matched intent.
621	Intent *string `json:"intent,omitempty"`
622	// Entities - The matched entities.
623	Entities *[]JSONEntity `json:"entities,omitempty"`
624}
625
626// LabeledUtterance a prediction and label pair of an example.
627type LabeledUtterance struct {
628	// ID - ID of Labeled Utterance.
629	ID *int32 `json:"id,omitempty"`
630	// Text - The utterance. For example, "What's the weather like in seattle?"
631	Text *string `json:"text,omitempty"`
632	// TokenizedText - The utterance tokenized.
633	TokenizedText *[]string `json:"tokenizedText,omitempty"`
634	// IntentLabel - The intent matching the example.
635	IntentLabel *string `json:"intentLabel,omitempty"`
636	// EntityLabels - The entities matching the example.
637	EntityLabels *[]EntityLabel `json:"entityLabels,omitempty"`
638	// IntentPredictions - List of suggested intents.
639	IntentPredictions *[]IntentPrediction `json:"intentPredictions,omitempty"`
640	// EntityPredictions - List of suggested entities.
641	EntityPredictions *[]EntityPrediction `json:"entityPredictions,omitempty"`
642}
643
644// LabelExampleResponse response when adding a labeled example utterance.
645type LabelExampleResponse struct {
646	autorest.Response `json:"-"`
647	// UtteranceText - The example utterance.
648	UtteranceText *string `json:"UtteranceText,omitempty"`
649	// ExampleID - The newly created sample ID.
650	ExampleID *int32 `json:"ExampleId,omitempty"`
651}
652
653// LabelTextObject an object containing the example utterance's text.
654type LabelTextObject struct {
655	// ID - The ID of the Label.
656	ID *int32 `json:"id,omitempty"`
657	// Text - The text of the label.
658	Text *string `json:"text,omitempty"`
659}
660
661// ListApplicationInfoResponse ...
662type ListApplicationInfoResponse struct {
663	autorest.Response `json:"-"`
664	Value             *[]ApplicationInfoResponse `json:"value,omitempty"`
665}
666
667// ListAppVersionSettingObject ...
668type ListAppVersionSettingObject struct {
669	autorest.Response `json:"-"`
670	Value             *[]AppVersionSettingObject `json:"value,omitempty"`
671}
672
673// ListAvailableCulture ...
674type ListAvailableCulture struct {
675	autorest.Response `json:"-"`
676	Value             *[]AvailableCulture `json:"value,omitempty"`
677}
678
679// ListAvailablePrebuiltEntityModel ...
680type ListAvailablePrebuiltEntityModel struct {
681	autorest.Response `json:"-"`
682	Value             *[]AvailablePrebuiltEntityModel `json:"value,omitempty"`
683}
684
685// ListAzureAccountInfoObject ...
686type ListAzureAccountInfoObject struct {
687	autorest.Response `json:"-"`
688	Value             *[]AzureAccountInfoObject `json:"value,omitempty"`
689}
690
691// ListBatchLabelExample ...
692type ListBatchLabelExample struct {
693	autorest.Response `json:"-"`
694	Value             *[]BatchLabelExample `json:"value,omitempty"`
695}
696
697// ListClosedListEntityExtractor ...
698type ListClosedListEntityExtractor struct {
699	autorest.Response `json:"-"`
700	Value             *[]ClosedListEntityExtractor `json:"value,omitempty"`
701}
702
703// ListCompositeEntityExtractor ...
704type ListCompositeEntityExtractor struct {
705	autorest.Response `json:"-"`
706	Value             *[]CompositeEntityExtractor `json:"value,omitempty"`
707}
708
709// ListCustomPrebuiltModel ...
710type ListCustomPrebuiltModel struct {
711	autorest.Response `json:"-"`
712	Value             *[]CustomPrebuiltModel `json:"value,omitempty"`
713}
714
715// ListEntitiesSuggestionExample ...
716type ListEntitiesSuggestionExample struct {
717	autorest.Response `json:"-"`
718	Value             *[]EntitiesSuggestionExample `json:"value,omitempty"`
719}
720
721// ListEntityExtractor ...
722type ListEntityExtractor struct {
723	autorest.Response `json:"-"`
724	Value             *[]EntityExtractor `json:"value,omitempty"`
725}
726
727// ListEntityRole ...
728type ListEntityRole struct {
729	autorest.Response `json:"-"`
730	Value             *[]EntityRole `json:"value,omitempty"`
731}
732
733// ListExplicitListItem ...
734type ListExplicitListItem struct {
735	autorest.Response `json:"-"`
736	Value             *[]ExplicitListItem `json:"value,omitempty"`
737}
738
739// ListHierarchicalEntityExtractor ...
740type ListHierarchicalEntityExtractor struct {
741	autorest.Response `json:"-"`
742	Value             *[]HierarchicalEntityExtractor `json:"value,omitempty"`
743}
744
745// ListIntentClassifier ...
746type ListIntentClassifier struct {
747	autorest.Response `json:"-"`
748	Value             *[]IntentClassifier `json:"value,omitempty"`
749}
750
751// ListIntentsSuggestionExample ...
752type ListIntentsSuggestionExample struct {
753	autorest.Response `json:"-"`
754	Value             *[]IntentsSuggestionExample `json:"value,omitempty"`
755}
756
757// ListLabeledUtterance ...
758type ListLabeledUtterance struct {
759	autorest.Response `json:"-"`
760	Value             *[]LabeledUtterance `json:"value,omitempty"`
761}
762
763// ListLabelTextObject ...
764type ListLabelTextObject struct {
765	autorest.Response `json:"-"`
766	Value             *[]LabelTextObject `json:"value,omitempty"`
767}
768
769// ListModelInfoResponse ...
770type ListModelInfoResponse struct {
771	autorest.Response `json:"-"`
772	Value             *[]ModelInfoResponse `json:"value,omitempty"`
773}
774
775// ListModelTrainingInfo ...
776type ListModelTrainingInfo struct {
777	autorest.Response `json:"-"`
778	Value             *[]ModelTrainingInfo `json:"value,omitempty"`
779}
780
781// ListPatternAnyEntityExtractor ...
782type ListPatternAnyEntityExtractor struct {
783	autorest.Response `json:"-"`
784	Value             *[]PatternAnyEntityExtractor `json:"value,omitempty"`
785}
786
787// ListPatternFeatureInfo ...
788type ListPatternFeatureInfo struct {
789	autorest.Response `json:"-"`
790	Value             *[]PatternFeatureInfo `json:"value,omitempty"`
791}
792
793// ListPatternRuleInfo ...
794type ListPatternRuleInfo struct {
795	autorest.Response `json:"-"`
796	Value             *[]PatternRuleInfo `json:"value,omitempty"`
797}
798
799// ListPhraseListFeatureInfo ...
800type ListPhraseListFeatureInfo struct {
801	autorest.Response `json:"-"`
802	Value             *[]PhraseListFeatureInfo `json:"value,omitempty"`
803}
804
805// ListPrebuiltDomain ...
806type ListPrebuiltDomain struct {
807	autorest.Response `json:"-"`
808	Value             *[]PrebuiltDomain `json:"value,omitempty"`
809}
810
811// ListPrebuiltEntityExtractor ...
812type ListPrebuiltEntityExtractor struct {
813	autorest.Response `json:"-"`
814	Value             *[]PrebuiltEntityExtractor `json:"value,omitempty"`
815}
816
817// ListRegexEntityExtractor ...
818type ListRegexEntityExtractor struct {
819	autorest.Response `json:"-"`
820	Value             *[]RegexEntityExtractor `json:"value,omitempty"`
821}
822
823// ListString ...
824type ListString struct {
825	autorest.Response `json:"-"`
826	Value             *[]string `json:"value,omitempty"`
827}
828
829// ListUUID ...
830type ListUUID struct {
831	autorest.Response `json:"-"`
832	Value             *[]uuid.UUID `json:"value,omitempty"`
833}
834
835// ListVersionInfo ...
836type ListVersionInfo struct {
837	autorest.Response `json:"-"`
838	Value             *[]VersionInfo `json:"value,omitempty"`
839}
840
841// LuisApp exported Model - An exported LUIS Application.
842type LuisApp struct {
843	autorest.Response `json:"-"`
844	// AdditionalProperties - Unmatched properties from the message are deserialized this collection
845	AdditionalProperties map[string]interface{} `json:""`
846	// Name - The name of the application.
847	Name *string `json:"name,omitempty"`
848	// VersionID - The version ID of the application that was exported.
849	VersionID *string `json:"versionId,omitempty"`
850	// Desc - The description of the application.
851	Desc *string `json:"desc,omitempty"`
852	// Culture - The culture of the application. E.g.: en-us.
853	Culture *string `json:"culture,omitempty"`
854	// Intents - List of intents.
855	Intents *[]HierarchicalModel `json:"intents,omitempty"`
856	// Entities - List of entities.
857	Entities *[]HierarchicalModel `json:"entities,omitempty"`
858	// ClosedLists - List of list entities.
859	ClosedLists *[]ClosedList `json:"closedLists,omitempty"`
860	// Composites - List of composite entities.
861	Composites *[]HierarchicalModel `json:"composites,omitempty"`
862	// PatternAnyEntities - List of Pattern.Any entities.
863	PatternAnyEntities *[]PatternAny `json:"patternAnyEntities,omitempty"`
864	// RegexEntities - List of regular expression entities.
865	RegexEntities *[]RegexEntity `json:"regex_entities,omitempty"`
866	// PrebuiltEntities - List of prebuilt entities.
867	PrebuiltEntities *[]PrebuiltEntity `json:"prebuiltEntities,omitempty"`
868	// RegexFeatures - List of pattern features.
869	RegexFeatures *[]JSONRegexFeature `json:"regex_features,omitempty"`
870	// ModelFeatures - List of model features.
871	ModelFeatures *[]JSONModelFeature `json:"model_features,omitempty"`
872	// Patterns - List of patterns.
873	Patterns *[]PatternRule `json:"patterns,omitempty"`
874	// Utterances - List of example utterances.
875	Utterances *[]JSONUtterance `json:"utterances,omitempty"`
876}
877
878// MarshalJSON is the custom marshaler for LuisApp.
879func (la LuisApp) MarshalJSON() ([]byte, error) {
880	objectMap := make(map[string]interface{})
881	if la.Name != nil {
882		objectMap["name"] = la.Name
883	}
884	if la.VersionID != nil {
885		objectMap["versionId"] = la.VersionID
886	}
887	if la.Desc != nil {
888		objectMap["desc"] = la.Desc
889	}
890	if la.Culture != nil {
891		objectMap["culture"] = la.Culture
892	}
893	if la.Intents != nil {
894		objectMap["intents"] = la.Intents
895	}
896	if la.Entities != nil {
897		objectMap["entities"] = la.Entities
898	}
899	if la.ClosedLists != nil {
900		objectMap["closedLists"] = la.ClosedLists
901	}
902	if la.Composites != nil {
903		objectMap["composites"] = la.Composites
904	}
905	if la.PatternAnyEntities != nil {
906		objectMap["patternAnyEntities"] = la.PatternAnyEntities
907	}
908	if la.RegexEntities != nil {
909		objectMap["regex_entities"] = la.RegexEntities
910	}
911	if la.PrebuiltEntities != nil {
912		objectMap["prebuiltEntities"] = la.PrebuiltEntities
913	}
914	if la.RegexFeatures != nil {
915		objectMap["regex_features"] = la.RegexFeatures
916	}
917	if la.ModelFeatures != nil {
918		objectMap["model_features"] = la.ModelFeatures
919	}
920	if la.Patterns != nil {
921		objectMap["patterns"] = la.Patterns
922	}
923	if la.Utterances != nil {
924		objectMap["utterances"] = la.Utterances
925	}
926	for k, v := range la.AdditionalProperties {
927		objectMap[k] = v
928	}
929	return json.Marshal(objectMap)
930}
931
932// UnmarshalJSON is the custom unmarshaler for LuisApp struct.
933func (la *LuisApp) UnmarshalJSON(body []byte) error {
934	var m map[string]*json.RawMessage
935	err := json.Unmarshal(body, &m)
936	if err != nil {
937		return err
938	}
939	for k, v := range m {
940		switch k {
941		default:
942			if v != nil {
943				var additionalProperties interface{}
944				err = json.Unmarshal(*v, &additionalProperties)
945				if err != nil {
946					return err
947				}
948				if la.AdditionalProperties == nil {
949					la.AdditionalProperties = make(map[string]interface{})
950				}
951				la.AdditionalProperties[k] = additionalProperties
952			}
953		case "name":
954			if v != nil {
955				var name string
956				err = json.Unmarshal(*v, &name)
957				if err != nil {
958					return err
959				}
960				la.Name = &name
961			}
962		case "versionId":
963			if v != nil {
964				var versionID string
965				err = json.Unmarshal(*v, &versionID)
966				if err != nil {
967					return err
968				}
969				la.VersionID = &versionID
970			}
971		case "desc":
972			if v != nil {
973				var desc string
974				err = json.Unmarshal(*v, &desc)
975				if err != nil {
976					return err
977				}
978				la.Desc = &desc
979			}
980		case "culture":
981			if v != nil {
982				var culture string
983				err = json.Unmarshal(*v, &culture)
984				if err != nil {
985					return err
986				}
987				la.Culture = &culture
988			}
989		case "intents":
990			if v != nil {
991				var intents []HierarchicalModel
992				err = json.Unmarshal(*v, &intents)
993				if err != nil {
994					return err
995				}
996				la.Intents = &intents
997			}
998		case "entities":
999			if v != nil {
1000				var entities []HierarchicalModel
1001				err = json.Unmarshal(*v, &entities)
1002				if err != nil {
1003					return err
1004				}
1005				la.Entities = &entities
1006			}
1007		case "closedLists":
1008			if v != nil {
1009				var closedLists []ClosedList
1010				err = json.Unmarshal(*v, &closedLists)
1011				if err != nil {
1012					return err
1013				}
1014				la.ClosedLists = &closedLists
1015			}
1016		case "composites":
1017			if v != nil {
1018				var composites []HierarchicalModel
1019				err = json.Unmarshal(*v, &composites)
1020				if err != nil {
1021					return err
1022				}
1023				la.Composites = &composites
1024			}
1025		case "patternAnyEntities":
1026			if v != nil {
1027				var patternAnyEntities []PatternAny
1028				err = json.Unmarshal(*v, &patternAnyEntities)
1029				if err != nil {
1030					return err
1031				}
1032				la.PatternAnyEntities = &patternAnyEntities
1033			}
1034		case "regex_entities":
1035			if v != nil {
1036				var regexEntities []RegexEntity
1037				err = json.Unmarshal(*v, &regexEntities)
1038				if err != nil {
1039					return err
1040				}
1041				la.RegexEntities = &regexEntities
1042			}
1043		case "prebuiltEntities":
1044			if v != nil {
1045				var prebuiltEntities []PrebuiltEntity
1046				err = json.Unmarshal(*v, &prebuiltEntities)
1047				if err != nil {
1048					return err
1049				}
1050				la.PrebuiltEntities = &prebuiltEntities
1051			}
1052		case "regex_features":
1053			if v != nil {
1054				var regexFeatures []JSONRegexFeature
1055				err = json.Unmarshal(*v, &regexFeatures)
1056				if err != nil {
1057					return err
1058				}
1059				la.RegexFeatures = &regexFeatures
1060			}
1061		case "model_features":
1062			if v != nil {
1063				var modelFeatures []JSONModelFeature
1064				err = json.Unmarshal(*v, &modelFeatures)
1065				if err != nil {
1066					return err
1067				}
1068				la.ModelFeatures = &modelFeatures
1069			}
1070		case "patterns":
1071			if v != nil {
1072				var patterns []PatternRule
1073				err = json.Unmarshal(*v, &patterns)
1074				if err != nil {
1075					return err
1076				}
1077				la.Patterns = &patterns
1078			}
1079		case "utterances":
1080			if v != nil {
1081				var utterances []JSONUtterance
1082				err = json.Unmarshal(*v, &utterances)
1083				if err != nil {
1084					return err
1085				}
1086				la.Utterances = &utterances
1087			}
1088		}
1089	}
1090
1091	return nil
1092}
1093
1094// ModelCreateObject object model for creating a new entity extractor.
1095type ModelCreateObject struct {
1096	// Name - Name of the new entity extractor.
1097	Name *string `json:"name,omitempty"`
1098}
1099
1100// ModelInfo base type used in entity types.
1101type ModelInfo struct {
1102	// ID - The ID of the Entity Model.
1103	ID *uuid.UUID `json:"id,omitempty"`
1104	// Name - Name of the Entity Model.
1105	Name *string `json:"name,omitempty"`
1106	// TypeID - The type ID of the Entity Model.
1107	TypeID *int32 `json:"typeId,omitempty"`
1108	// ReadableType - Possible values include: 'ReadableTypeEntityExtractor', 'ReadableTypeHierarchicalEntityExtractor', 'ReadableTypeHierarchicalChildEntityExtractor', 'ReadableTypeCompositeEntityExtractor', 'ReadableTypeListEntityExtractor', 'ReadableTypePrebuiltEntityExtractor', 'ReadableTypeIntentClassifier', 'ReadableTypePatternAnyEntityExtractor', 'ReadableTypeClosedListEntityExtractor', 'ReadableTypeRegexEntityExtractor'
1109	ReadableType ReadableType `json:"readableType,omitempty"`
1110}
1111
1112// ModelInfoResponse an application model info.
1113type ModelInfoResponse struct {
1114	// ID - The ID of the Entity Model.
1115	ID *uuid.UUID `json:"id,omitempty"`
1116	// Name - Name of the Entity Model.
1117	Name *string `json:"name,omitempty"`
1118	// TypeID - The type ID of the Entity Model.
1119	TypeID *int32 `json:"typeId,omitempty"`
1120	// ReadableType - Possible values include: 'ReadableType1EntityExtractor', 'ReadableType1HierarchicalEntityExtractor', 'ReadableType1HierarchicalChildEntityExtractor', 'ReadableType1CompositeEntityExtractor', 'ReadableType1ListEntityExtractor', 'ReadableType1PrebuiltEntityExtractor', 'ReadableType1IntentClassifier', 'ReadableType1PatternAnyEntityExtractor', 'ReadableType1ClosedListEntityExtractor', 'ReadableType1RegexEntityExtractor'
1121	ReadableType ReadableType1 `json:"readableType,omitempty"`
1122	Roles        *[]EntityRole `json:"roles,omitempty"`
1123	// Children - List of child entities.
1124	Children *[]ChildEntity `json:"children,omitempty"`
1125	// SubLists - List of sublists.
1126	SubLists *[]SubClosedListResponse `json:"subLists,omitempty"`
1127	// CustomPrebuiltDomainName - The domain name.
1128	CustomPrebuiltDomainName *string `json:"customPrebuiltDomainName,omitempty"`
1129	// CustomPrebuiltModelName - The intent name or entity name.
1130	CustomPrebuiltModelName *string `json:"customPrebuiltModelName,omitempty"`
1131	// RegexPattern - The Regular Expression entity pattern.
1132	RegexPattern *string             `json:"regexPattern,omitempty"`
1133	ExplicitList *[]ExplicitListItem `json:"explicitList,omitempty"`
1134}
1135
1136// ModelTrainingDetails model Training Details.
1137type ModelTrainingDetails struct {
1138	// StatusID - The train request status ID.
1139	StatusID *int32 `json:"statusId,omitempty"`
1140	// Status - Possible values include: 'Status1Queued', 'Status1InProgress', 'Status1UpToDate', 'Status1Fail', 'Status1Success'
1141	Status Status1 `json:"status,omitempty"`
1142	// ExampleCount - The count of examples used to train the model.
1143	ExampleCount *int32 `json:"exampleCount,omitempty"`
1144	// TrainingDateTime - When the model was trained.
1145	TrainingDateTime *date.Time `json:"trainingDateTime,omitempty"`
1146	// FailureReason - Reason for the training failure.
1147	FailureReason *string `json:"failureReason,omitempty"`
1148}
1149
1150// ModelTrainingInfo model Training Info.
1151type ModelTrainingInfo struct {
1152	// ModelID - The ID (GUID) of the model.
1153	ModelID *uuid.UUID            `json:"modelId,omitempty"`
1154	Details *ModelTrainingDetails `json:"details,omitempty"`
1155}
1156
1157// ModelUpdateObject object model for updating an intent classifier.
1158type ModelUpdateObject struct {
1159	// Name - The entity's new name.
1160	Name *string `json:"name,omitempty"`
1161}
1162
1163// OperationError operation error details when invoking an operation on the API.
1164type OperationError struct {
1165	Code    *string `json:"code,omitempty"`
1166	Message *string `json:"message,omitempty"`
1167}
1168
1169// OperationStatus response of an Operation status.
1170type OperationStatus struct {
1171	autorest.Response `json:"-"`
1172	// Code - Status Code. Possible values include: 'Failed', 'FAILED', 'Success'
1173	Code OperationStatusType `json:"code,omitempty"`
1174	// Message - Status details.
1175	Message *string `json:"message,omitempty"`
1176}
1177
1178// PatternAny pattern.Any Entity Extractor.
1179type PatternAny struct {
1180	Name         *string   `json:"name,omitempty"`
1181	ExplicitList *[]string `json:"explicitList,omitempty"`
1182	Roles        *[]string `json:"roles,omitempty"`
1183}
1184
1185// PatternAnyEntityExtractor pattern.Any Entity Extractor.
1186type PatternAnyEntityExtractor struct {
1187	autorest.Response `json:"-"`
1188	// ID - The ID of the Entity Model.
1189	ID *uuid.UUID `json:"id,omitempty"`
1190	// Name - Name of the Entity Model.
1191	Name *string `json:"name,omitempty"`
1192	// TypeID - The type ID of the Entity Model.
1193	TypeID *int32 `json:"typeId,omitempty"`
1194	// ReadableType - Possible values include: 'ReadableType10EntityExtractor', 'ReadableType10HierarchicalEntityExtractor', 'ReadableType10HierarchicalChildEntityExtractor', 'ReadableType10CompositeEntityExtractor', 'ReadableType10ListEntityExtractor', 'ReadableType10PrebuiltEntityExtractor', 'ReadableType10IntentClassifier', 'ReadableType10PatternAnyEntityExtractor', 'ReadableType10ClosedListEntityExtractor', 'ReadableType10RegexEntityExtractor'
1195	ReadableType ReadableType10      `json:"readableType,omitempty"`
1196	Roles        *[]EntityRole       `json:"roles,omitempty"`
1197	ExplicitList *[]ExplicitListItem `json:"explicitList,omitempty"`
1198}
1199
1200// PatternAnyModelCreateObject model object for creating a Pattern.Any entity model.
1201type PatternAnyModelCreateObject struct {
1202	// Name - The model name.
1203	Name *string `json:"name,omitempty"`
1204	// ExplicitList - The Pattern.Any explicit list.
1205	ExplicitList *[]string `json:"explicitList,omitempty"`
1206}
1207
1208// PatternAnyModelUpdateObject model object for updating a Pattern.Any entity model.
1209type PatternAnyModelUpdateObject struct {
1210	// Name - The model name.
1211	Name *string `json:"name,omitempty"`
1212	// ExplicitList - The Pattern.Any explicit list.
1213	ExplicitList *[]string `json:"explicitList,omitempty"`
1214}
1215
1216// PatternCreateObject object model for creating a Pattern feature.
1217type PatternCreateObject struct {
1218	// Pattern - The Regular Expression to match.
1219	Pattern *string `json:"pattern,omitempty"`
1220	// Name - Name of the feature.
1221	Name *string `json:"name,omitempty"`
1222}
1223
1224// PatternFeatureInfo pattern feature.
1225type PatternFeatureInfo struct {
1226	// Pattern - The Regular Expression to match.
1227	Pattern *string `json:"pattern,omitempty"`
1228	// ID - A six-digit ID used for Features.
1229	ID *int32 `json:"id,omitempty"`
1230	// Name - The name of the Feature.
1231	Name *string `json:"name,omitempty"`
1232	// IsActive - Indicates if the feature is enabled.
1233	IsActive *bool `json:"isActive,omitempty"`
1234}
1235
1236// PatternRule pattern
1237type PatternRule struct {
1238	// Pattern - The pattern text.
1239	Pattern *string `json:"pattern,omitempty"`
1240	// Intent - The intent's name where the pattern belongs to.
1241	Intent *string `json:"intent,omitempty"`
1242}
1243
1244// PatternRuleCreateObject object model for creating a pattern
1245type PatternRuleCreateObject struct {
1246	// Pattern - The pattern text.
1247	Pattern *string `json:"pattern,omitempty"`
1248	// Intent - The intent's name which the pattern belongs to.
1249	Intent *string `json:"intent,omitempty"`
1250}
1251
1252// PatternRuleInfo pattern rule
1253type PatternRuleInfo struct {
1254	autorest.Response `json:"-"`
1255	// ID - The pattern ID.
1256	ID *uuid.UUID `json:"id,omitempty"`
1257	// Pattern - The pattern text.
1258	Pattern *string `json:"pattern,omitempty"`
1259	// Intent - The intent's name where the pattern belongs to.
1260	Intent *string `json:"intent,omitempty"`
1261}
1262
1263// PatternRuleUpdateObject object model for updating a pattern.
1264type PatternRuleUpdateObject struct {
1265	// ID - The pattern ID.
1266	ID *uuid.UUID `json:"id,omitempty"`
1267	// Pattern - The pattern text.
1268	Pattern *string `json:"pattern,omitempty"`
1269	// Intent - The intent's name which the pattern belongs to.
1270	Intent *string `json:"intent,omitempty"`
1271}
1272
1273// PatternUpdateObject object model for updating an existing Pattern feature.
1274type PatternUpdateObject struct {
1275	// Pattern - The Regular Expression to match.
1276	Pattern *string `json:"pattern,omitempty"`
1277	// Name - Name of the feature.
1278	Name *string `json:"name,omitempty"`
1279	// IsActive - Indicates if the Pattern feature is enabled.
1280	IsActive *bool `json:"isActive,omitempty"`
1281}
1282
1283// PersonalAssistantsResponse response containing user's endpoint keys and the endpoint URLs of the
1284// prebuilt Cortana applications.
1285type PersonalAssistantsResponse struct {
1286	autorest.Response `json:"-"`
1287	EndpointKeys      *[]uuid.UUID       `json:"endpointKeys,omitempty"`
1288	EndpointUrls      map[string]*string `json:"endpointUrls"`
1289}
1290
1291// MarshalJSON is the custom marshaler for PersonalAssistantsResponse.
1292func (par PersonalAssistantsResponse) MarshalJSON() ([]byte, error) {
1293	objectMap := make(map[string]interface{})
1294	if par.EndpointKeys != nil {
1295		objectMap["endpointKeys"] = par.EndpointKeys
1296	}
1297	if par.EndpointUrls != nil {
1298		objectMap["endpointUrls"] = par.EndpointUrls
1299	}
1300	return json.Marshal(objectMap)
1301}
1302
1303// PhraselistCreateObject object model for creating a phraselist model.
1304type PhraselistCreateObject struct {
1305	// Phrases - List of comma-separated phrases that represent the Phraselist.
1306	Phrases *string `json:"phrases,omitempty"`
1307	// Name - The Phraselist name.
1308	Name *string `json:"name,omitempty"`
1309	// IsExchangeable - An interchangeable phrase list feature serves as a list of synonyms for training. A non-exchangeable phrase list serves as separate features for training. So, if your non-interchangeable phrase list contains 5 phrases, they will be mapped to 5 separate features. You can think of the non-interchangeable phrase list as an additional bag of words to add to LUIS existing vocabulary features. It is used as a lexicon lookup feature where its value is 1 if the lexicon contains a given word or 0 if it doesn’t.  Default value is true.
1310	IsExchangeable *bool `json:"isExchangeable,omitempty"`
1311}
1312
1313// PhraseListFeatureInfo phraselist Feature.
1314type PhraseListFeatureInfo struct {
1315	autorest.Response `json:"-"`
1316	// Phrases - A list of comma-separated values.
1317	Phrases *string `json:"phrases,omitempty"`
1318	// IsExchangeable - An exchangeable phrase list feature are serves as single feature to the LUIS underlying training algorithm. It is used as a lexicon lookup feature where its value is 1 if the lexicon contains a given word or 0 if it doesn’t. Think of an exchangeable as a synonyms list. A non-exchangeable phrase list feature has all the phrases in the list serve as separate features to the underlying training algorithm. So, if you your phrase list feature contains 5 phrases, they will be mapped to 5 separate features. You can think of the non-exchangeable phrase list feature as an additional bag of words that you are willing to add to LUIS existing vocabulary features. Think of a non-exchangeable as set of different words. Default value is true.
1319	IsExchangeable *bool `json:"isExchangeable,omitempty"`
1320	// ID - A six-digit ID used for Features.
1321	ID *int32 `json:"id,omitempty"`
1322	// Name - The name of the Feature.
1323	Name *string `json:"name,omitempty"`
1324	// IsActive - Indicates if the feature is enabled.
1325	IsActive *bool `json:"isActive,omitempty"`
1326}
1327
1328// PhraselistUpdateObject object model for updating a Phraselist.
1329type PhraselistUpdateObject struct {
1330	// Phrases - List of comma-separated phrases that represent the Phraselist.
1331	Phrases *string `json:"phrases,omitempty"`
1332	// Name - The Phraselist name.
1333	Name *string `json:"name,omitempty"`
1334	// IsActive - Indicates if the Phraselist is enabled.
1335	IsActive *bool `json:"isActive,omitempty"`
1336	// IsExchangeable - An exchangeable phrase list feature are serves as single feature to the LUIS underlying training algorithm. It is used as a lexicon lookup feature where its value is 1 if the lexicon contains a given word or 0 if it doesn’t. Think of an exchangeable as a synonyms list. A non-exchangeable phrase list feature has all the phrases in the list serve as separate features to the underlying training algorithm. So, if you your phrase list feature contains 5 phrases, they will be mapped to 5 separate features. You can think of the non-exchangeable phrase list feature as an additional bag of words that you are willing to add to LUIS existing vocabulary features. Think of a non-exchangeable as set of different words. Default value is true.
1337	IsExchangeable *bool `json:"isExchangeable,omitempty"`
1338}
1339
1340// PrebuiltDomain prebuilt Domain.
1341type PrebuiltDomain struct {
1342	Name        *string               `json:"name,omitempty"`
1343	Culture     *string               `json:"culture,omitempty"`
1344	Description *string               `json:"description,omitempty"`
1345	Examples    *string               `json:"examples,omitempty"`
1346	Intents     *[]PrebuiltDomainItem `json:"intents,omitempty"`
1347	Entities    *[]PrebuiltDomainItem `json:"entities,omitempty"`
1348}
1349
1350// PrebuiltDomainCreateBaseObject a model object containing the name of the custom prebuilt entity and the
1351// name of the domain to which this model belongs.
1352type PrebuiltDomainCreateBaseObject struct {
1353	// DomainName - The domain name.
1354	DomainName *string `json:"domainName,omitempty"`
1355}
1356
1357// PrebuiltDomainCreateObject a prebuilt domain create object containing the name and culture of the
1358// domain.
1359type PrebuiltDomainCreateObject struct {
1360	// DomainName - The domain name.
1361	DomainName *string `json:"domainName,omitempty"`
1362	// Culture - The culture of the new domain.
1363	Culture *string `json:"culture,omitempty"`
1364}
1365
1366// PrebuiltDomainItem ...
1367type PrebuiltDomainItem struct {
1368	Name        *string `json:"name,omitempty"`
1369	Description *string `json:"description,omitempty"`
1370	Examples    *string `json:"examples,omitempty"`
1371}
1372
1373// PrebuiltDomainModelCreateObject a model object containing the name of the custom prebuilt intent or
1374// entity and the name of the domain to which this model belongs.
1375type PrebuiltDomainModelCreateObject struct {
1376	// DomainName - The domain name.
1377	DomainName *string `json:"domainName,omitempty"`
1378	// ModelName - The intent name or entity name.
1379	ModelName *string `json:"modelName,omitempty"`
1380}
1381
1382// PrebuiltDomainObject ...
1383type PrebuiltDomainObject struct {
1384	DomainName *string `json:"domain_name,omitempty"`
1385	ModelName  *string `json:"model_name,omitempty"`
1386}
1387
1388// PrebuiltEntity prebuilt Entity Extractor.
1389type PrebuiltEntity struct {
1390	Name  *string   `json:"name,omitempty"`
1391	Roles *[]string `json:"roles,omitempty"`
1392}
1393
1394// PrebuiltEntityExtractor prebuilt Entity Extractor.
1395type PrebuiltEntityExtractor struct {
1396	autorest.Response `json:"-"`
1397	// ID - The ID of the Entity Model.
1398	ID *uuid.UUID `json:"id,omitempty"`
1399	// Name - Name of the Entity Model.
1400	Name *string `json:"name,omitempty"`
1401	// TypeID - The type ID of the Entity Model.
1402	TypeID *int32 `json:"typeId,omitempty"`
1403	// ReadableType - Possible values include: 'ReadableType5EntityExtractor', 'ReadableType5HierarchicalEntityExtractor', 'ReadableType5HierarchicalChildEntityExtractor', 'ReadableType5CompositeEntityExtractor', 'ReadableType5ListEntityExtractor', 'ReadableType5PrebuiltEntityExtractor', 'ReadableType5IntentClassifier', 'ReadableType5PatternAnyEntityExtractor', 'ReadableType5ClosedListEntityExtractor', 'ReadableType5RegexEntityExtractor'
1404	ReadableType ReadableType5 `json:"readableType,omitempty"`
1405	Roles        *[]EntityRole `json:"roles,omitempty"`
1406}
1407
1408// ProductionOrStagingEndpointInfo ...
1409type ProductionOrStagingEndpointInfo struct {
1410	autorest.Response `json:"-"`
1411	// VersionID - The version ID to publish.
1412	VersionID *string `json:"versionId,omitempty"`
1413	// IsStaging - Indicates if the staging slot should be used, instead of the Production one.
1414	IsStaging *bool `json:"isStaging,omitempty"`
1415	// EndpointURL - The Runtime endpoint URL for this model version.
1416	EndpointURL *string `json:"endpointUrl,omitempty"`
1417	// Region - The target region that the application is published to.
1418	Region *string `json:"region,omitempty"`
1419	// AssignedEndpointKey - The endpoint key.
1420	AssignedEndpointKey *string `json:"assignedEndpointKey,omitempty"`
1421	// EndpointRegion - The endpoint's region.
1422	EndpointRegion *string `json:"endpointRegion,omitempty"`
1423	// FailedRegions - Regions where publishing failed.
1424	FailedRegions *string `json:"failedRegions,omitempty"`
1425	// PublishedDateTime - Timestamp when was last published.
1426	PublishedDateTime *string `json:"publishedDateTime,omitempty"`
1427}
1428
1429// PublishSettings the application publish settings.
1430type PublishSettings struct {
1431	autorest.Response `json:"-"`
1432	// ID - The application ID.
1433	ID *uuid.UUID `json:"id,omitempty"`
1434	// IsSentimentAnalysisEnabled - Setting sentiment analysis as true returns the sentiment of the input utterance along with the response
1435	IsSentimentAnalysisEnabled *bool `json:"sentimentAnalysis,omitempty"`
1436	// IsSpeechEnabled - Enables speech priming in your app
1437	IsSpeechEnabled *bool `json:"speech,omitempty"`
1438	// IsSpellCheckerEnabled - Enables spell checking of the utterance.
1439	IsSpellCheckerEnabled *bool `json:"spellChecker,omitempty"`
1440}
1441
1442// PublishSettingUpdateObject object model for updating an application's publish settings.
1443type PublishSettingUpdateObject struct {
1444	// SentimentAnalysis - Setting sentiment analysis as true returns the Sentiment of the input utterance along with the response
1445	SentimentAnalysis *bool `json:"sentimentAnalysis,omitempty"`
1446	// Speech - Setting speech as public enables speech priming in your app
1447	Speech *bool `json:"speech,omitempty"`
1448	// SpellChecker - Setting spell checker as public enables spell checking the input utterance.
1449	SpellChecker *bool `json:"spellChecker,omitempty"`
1450}
1451
1452// ReadCloser ...
1453type ReadCloser struct {
1454	autorest.Response `json:"-"`
1455	Value             *io.ReadCloser `json:"value,omitempty"`
1456}
1457
1458// RegexEntity regular Expression Entity Extractor.
1459type RegexEntity struct {
1460	Name         *string   `json:"name,omitempty"`
1461	RegexPattern *string   `json:"regexPattern,omitempty"`
1462	Roles        *[]string `json:"roles,omitempty"`
1463}
1464
1465// RegexEntityExtractor regular Expression Entity Extractor.
1466type RegexEntityExtractor struct {
1467	autorest.Response `json:"-"`
1468	// ID - The ID of the Entity Model.
1469	ID *uuid.UUID `json:"id,omitempty"`
1470	// Name - Name of the Entity Model.
1471	Name *string `json:"name,omitempty"`
1472	// TypeID - The type ID of the Entity Model.
1473	TypeID *int32 `json:"typeId,omitempty"`
1474	// ReadableType - Possible values include: 'ReadableType9EntityExtractor', 'ReadableType9HierarchicalEntityExtractor', 'ReadableType9HierarchicalChildEntityExtractor', 'ReadableType9CompositeEntityExtractor', 'ReadableType9ListEntityExtractor', 'ReadableType9PrebuiltEntityExtractor', 'ReadableType9IntentClassifier', 'ReadableType9PatternAnyEntityExtractor', 'ReadableType9ClosedListEntityExtractor', 'ReadableType9RegexEntityExtractor'
1475	ReadableType ReadableType9 `json:"readableType,omitempty"`
1476	Roles        *[]EntityRole `json:"roles,omitempty"`
1477	// RegexPattern - The Regular Expression entity pattern.
1478	RegexPattern *string `json:"regexPattern,omitempty"`
1479}
1480
1481// RegexModelCreateObject model object for creating a regular expression entity model.
1482type RegexModelCreateObject struct {
1483	// RegexPattern - The regular expression entity pattern.
1484	RegexPattern *string `json:"regexPattern,omitempty"`
1485	// Name - The model name.
1486	Name *string `json:"name,omitempty"`
1487}
1488
1489// RegexModelUpdateObject model object for updating a regular expression entity model.
1490type RegexModelUpdateObject struct {
1491	// RegexPattern - The regular expression entity pattern.
1492	RegexPattern *string `json:"regexPattern,omitempty"`
1493	// Name - The model name.
1494	Name *string `json:"name,omitempty"`
1495}
1496
1497// SetString ...
1498type SetString struct {
1499	autorest.Response `json:"-"`
1500	Value             map[string]*string `json:"value"`
1501}
1502
1503// MarshalJSON is the custom marshaler for SetString.
1504func (ss SetString) MarshalJSON() ([]byte, error) {
1505	objectMap := make(map[string]interface{})
1506	if ss.Value != nil {
1507		objectMap["value"] = ss.Value
1508	}
1509	return json.Marshal(objectMap)
1510}
1511
1512// String ...
1513type String struct {
1514	autorest.Response `json:"-"`
1515	Value             *string `json:"value,omitempty"`
1516}
1517
1518// SubClosedList sublist of items for a list entity.
1519type SubClosedList struct {
1520	// CanonicalForm - The standard form that the list represents.
1521	CanonicalForm *string `json:"canonicalForm,omitempty"`
1522	// List - List of synonym words.
1523	List *[]string `json:"list,omitempty"`
1524}
1525
1526// SubClosedListResponse sublist of items for a list entity.
1527type SubClosedListResponse struct {
1528	// ID - The sublist ID
1529	ID *int32 `json:"id,omitempty"`
1530	// CanonicalForm - The standard form that the list represents.
1531	CanonicalForm *string `json:"canonicalForm,omitempty"`
1532	// List - List of synonym words.
1533	List *[]string `json:"list,omitempty"`
1534}
1535
1536// TaskUpdateObject object model for cloning an application's version.
1537type TaskUpdateObject struct {
1538	// Version - The new version for the cloned model.
1539	Version *string `json:"version,omitempty"`
1540}
1541
1542// UserAccessList list of user permissions.
1543type UserAccessList struct {
1544	autorest.Response `json:"-"`
1545	// Owner - The email address of owner of the application.
1546	Owner  *string   `json:"owner,omitempty"`
1547	Emails *[]string `json:"emails,omitempty"`
1548}
1549
1550// UserCollaborator ...
1551type UserCollaborator struct {
1552	// Email - The email address of the user.
1553	Email *string `json:"email,omitempty"`
1554}
1555
1556// UUID ...
1557type UUID struct {
1558	autorest.Response `json:"-"`
1559	Value             *uuid.UUID `json:"value,omitempty"`
1560}
1561
1562// VersionInfo object model of an application version.
1563type VersionInfo struct {
1564	autorest.Response `json:"-"`
1565	// Version - The version ID. E.g.: "0.1"
1566	Version *string `json:"version,omitempty"`
1567	// CreatedDateTime - The version's creation timestamp.
1568	CreatedDateTime *date.Time `json:"createdDateTime,omitempty"`
1569	// LastModifiedDateTime - Timestamp of the last update.
1570	LastModifiedDateTime *date.Time `json:"lastModifiedDateTime,omitempty"`
1571	// LastTrainedDateTime - Timestamp of the last time the model was trained.
1572	LastTrainedDateTime *date.Time `json:"lastTrainedDateTime,omitempty"`
1573	// LastPublishedDateTime - Timestamp when was last published.
1574	LastPublishedDateTime *date.Time `json:"lastPublishedDateTime,omitempty"`
1575	// EndpointURL - The Runtime endpoint URL for this model version.
1576	EndpointURL *string `json:"endpointUrl,omitempty"`
1577	// AssignedEndpointKey - The endpoint key.
1578	AssignedEndpointKey map[string]*string `json:"assignedEndpointKey"`
1579	// ExternalAPIKeys - External keys.
1580	ExternalAPIKeys interface{} `json:"externalApiKeys,omitempty"`
1581	// IntentsCount - Number of intents in this model.
1582	IntentsCount *int32 `json:"intentsCount,omitempty"`
1583	// EntitiesCount - Number of entities in this model.
1584	EntitiesCount *int32 `json:"entitiesCount,omitempty"`
1585	// EndpointHitsCount - Number of calls made to this endpoint.
1586	EndpointHitsCount *int32 `json:"endpointHitsCount,omitempty"`
1587	// TrainingStatus - The current training status. Possible values include: 'NeedsTraining', 'InProgress', 'Trained'
1588	TrainingStatus TrainingStatus `json:"trainingStatus,omitempty"`
1589}
1590
1591// MarshalJSON is the custom marshaler for VersionInfo.
1592func (vi VersionInfo) MarshalJSON() ([]byte, error) {
1593	objectMap := make(map[string]interface{})
1594	if vi.Version != nil {
1595		objectMap["version"] = vi.Version
1596	}
1597	if vi.CreatedDateTime != nil {
1598		objectMap["createdDateTime"] = vi.CreatedDateTime
1599	}
1600	if vi.LastModifiedDateTime != nil {
1601		objectMap["lastModifiedDateTime"] = vi.LastModifiedDateTime
1602	}
1603	if vi.LastTrainedDateTime != nil {
1604		objectMap["lastTrainedDateTime"] = vi.LastTrainedDateTime
1605	}
1606	if vi.LastPublishedDateTime != nil {
1607		objectMap["lastPublishedDateTime"] = vi.LastPublishedDateTime
1608	}
1609	if vi.EndpointURL != nil {
1610		objectMap["endpointUrl"] = vi.EndpointURL
1611	}
1612	if vi.AssignedEndpointKey != nil {
1613		objectMap["assignedEndpointKey"] = vi.AssignedEndpointKey
1614	}
1615	if vi.ExternalAPIKeys != nil {
1616		objectMap["externalApiKeys"] = vi.ExternalAPIKeys
1617	}
1618	if vi.IntentsCount != nil {
1619		objectMap["intentsCount"] = vi.IntentsCount
1620	}
1621	if vi.EntitiesCount != nil {
1622		objectMap["entitiesCount"] = vi.EntitiesCount
1623	}
1624	if vi.EndpointHitsCount != nil {
1625		objectMap["endpointHitsCount"] = vi.EndpointHitsCount
1626	}
1627	if vi.TrainingStatus != "" {
1628		objectMap["trainingStatus"] = vi.TrainingStatus
1629	}
1630	return json.Marshal(objectMap)
1631}
1632
1633// WordListBaseUpdateObject object model for updating one of the list entity's sublists.
1634type WordListBaseUpdateObject struct {
1635	// CanonicalForm - The standard form that the list represents.
1636	CanonicalForm *string `json:"canonicalForm,omitempty"`
1637	// List - List of synonym words.
1638	List *[]string `json:"list,omitempty"`
1639}
1640
1641// WordListObject sublist of items for a list entity.
1642type WordListObject struct {
1643	// CanonicalForm - The standard form that the list represents.
1644	CanonicalForm *string `json:"canonicalForm,omitempty"`
1645	// List - List of synonym words.
1646	List *[]string `json:"list,omitempty"`
1647}
1648