type ContextDTO struct {
// IsContextOnly - To mark if a prompt is relevant only with a previous question or not.
// true - Do not include this QnA as search result for queries without context
// false - ignores context and includes this QnA in search resultIsContextOnly *bool `json:"isContextOnly,omitempty"`
// Prompts - List of prompts associated with the answer.Prompts *[]PromptDTO `json:"prompts,omitempty"`
}

type CreateKbDTO struct {
// Name - Friendly name for the knowledgebase.Name *string `json:"name,omitempty"`
// QnaList - List of Q-A (QnADTO) to be added to the knowledgebase. Q-A Ids are assigned by the service and should be omitted.QnaList *[]QnADTO `json:"qnaList,omitempty"`
// Urls - List of URLs to be used for extracting Q-A.Urls *[]string `json:"urls,omitempty"`
// Files - List of files from which to Extract Q-A.Files *[]FileDTO `json:"files,omitempty"`
}

type CreateKbInputDTO struct {
// QnaList - List of QNA to be added to the index. Ids are generated by the service and should be omitted.QnaList *[]QnADTO `json:"qnaList,omitempty"`
// Urls - List of URLs to be added to knowledgebase.Urls *[]string `json:"urls,omitempty"`
// Files - List of files to be added to knowledgebase.Files *[]FileDTO `json:"files,omitempty"`
}

type InnerErrorModel struct {
// Code - A more specific error code than was provided by the containing error.Code *string `json:"code,omitempty"`
// InnerError - An object containing more specific information than the current object about the error.InnerError *InnerErrorModel `json:"innerError,omitempty"`
}

type KnowledgebaseDTO struct {
autorest.Response `json:"-"`
// ID - Unique id that identifies a knowledgebase.ID *string `json:"id,omitempty"`
// HostName - URL host name at which the knowledgebase is hosted.HostName *string `json:"hostName,omitempty"`
// LastAccessedTimestamp - Time stamp at which the knowledgebase was last accessed (UTC).LastAccessedTimestamp *string `json:"lastAccessedTimestamp,omitempty"`
// LastChangedTimestamp - Time stamp at which the knowledgebase was last modified (UTC).LastChangedTimestamp *string `json:"lastChangedTimestamp,omitempty"`
// LastPublishedTimestamp - Time stamp at which the knowledgebase was last published (UTC).LastPublishedTimestamp *string `json:"lastPublishedTimestamp,omitempty"`
// Name - Friendly name of the knowledgebase.Name *string `json:"name,omitempty"`
// UserID - User who created / owns the knowledgebase.UserID *string `json:"userId,omitempty"`
// Urls - URL sources from which Q-A were extracted and added to the knowledgebase.Urls *[]string `json:"urls,omitempty"`
// Sources - Custom sources from which Q-A were extracted or explicitly added to the knowledgebase.Sources *[]string `json:"sources,omitempty"`
}

type QnADTOContext struct {
// IsContextOnly - To mark if a prompt is relevant only with a previous question or not.
// true - Do not include this QnA as search result for queries without context
// false - ignores context and includes this QnA in search resultIsContextOnly *bool `json:"isContextOnly,omitempty"`
// Prompts - List of prompts associated with the answer.Prompts *[]PromptDTO `json:"prompts,omitempty"`
}

type UpdateContextDTO struct {
// PromptsToDelete - List of prompts associated with qna to be deletedPromptsToDelete *[]int32 `json:"promptsToDelete,omitempty"`
// PromptsToAdd - List of prompts to be added to the qna.PromptsToAdd *[]PromptDTO `json:"promptsToAdd,omitempty"`
// IsContextOnly - To mark if a prompt is relevant only with a previous question or not.
// true - Do not include this QnA as search result for queries without context
// false - ignores context and includes this QnA in search resultIsContextOnly *bool `json:"isContextOnly,omitempty"`
}

UpdateContextDTO update Body schema to represent context to be updated

type UpdateKbContentsDTO struct {
// Name - Friendly name for the knowledgebase.Name *string `json:"name,omitempty"`
// QnaList - List of Q-A (UpdateQnaDTO) to be added to the knowledgebase.QnaList *[]UpdateQnaDTO `json:"qnaList,omitempty"`
// Urls - List of existing URLs to be refreshed. The content will be extracted again and re-indexed.Urls *[]string `json:"urls,omitempty"`
}

type UpdateKbOperationDTOAdd struct {
// QnaList - List of QNA to be added to the index. Ids are generated by the service and should be omitted.QnaList *[]QnADTO `json:"qnaList,omitempty"`
// Urls - List of URLs to be added to knowledgebase.Urls *[]string `json:"urls,omitempty"`
// Files - List of files to be added to knowledgebase.Files *[]FileDTO `json:"files,omitempty"`
}

UpdateKbOperationDTOAdd an instance of CreateKbInputDTO for add operation

type UpdateKbOperationDTOUpdate struct {
// Name - Friendly name for the knowledgebase.Name *string `json:"name,omitempty"`
// QnaList - List of Q-A (UpdateQnaDTO) to be added to the knowledgebase.QnaList *[]UpdateQnaDTO `json:"qnaList,omitempty"`
// Urls - List of existing URLs to be refreshed. The content will be extracted again and re-indexed.Urls *[]string `json:"urls,omitempty"`
}

UpdateKbOperationDTOUpdate an instance of UpdateKbContentsDTO for Update Operation

type UpdateQnaDTOContext struct {
// PromptsToDelete - List of prompts associated with qna to be deletedPromptsToDelete *[]int32 `json:"promptsToDelete,omitempty"`
// PromptsToAdd - List of prompts to be added to the qna.PromptsToAdd *[]PromptDTO `json:"promptsToAdd,omitempty"`
// IsContextOnly - To mark if a prompt is relevant only with a previous question or not.
// true - Do not include this QnA as search result for queries without context
// false - ignores context and includes this QnA in search resultIsContextOnly *bool `json:"isContextOnly,omitempty"`
}