egain-api-python 0.1.1__py3-none-any.whl

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.
Files changed (332) hide show
  1. egain_api_python/__init__.py +17 -0
  2. egain_api_python/_hooks/__init__.py +5 -0
  3. egain_api_python/_hooks/registration.py +13 -0
  4. egain_api_python/_hooks/sdkhooks.py +76 -0
  5. egain_api_python/_hooks/types.py +112 -0
  6. egain_api_python/_version.py +15 -0
  7. egain_api_python/aiservices.py +23 -0
  8. egain_api_python/answers.py +281 -0
  9. egain_api_python/articlelists.py +469 -0
  10. egain_api_python/basesdk.py +368 -0
  11. egain_api_python/connectorssearchevents.py +537 -0
  12. egain_api_python/content.py +23 -0
  13. egain_api_python/errors/__init__.py +78 -0
  14. egain_api_python/errors/egaindefaulterror.py +40 -0
  15. egain_api_python/errors/egainerror.py +30 -0
  16. egain_api_python/errors/gethealthop.py +74 -0
  17. egain_api_python/errors/no_response_error.py +17 -0
  18. egain_api_python/errors/responsevalidationerror.py +27 -0
  19. egain_api_python/errors/schemas_wserrorcommon.py +51 -0
  20. egain_api_python/errors/wserrorcommon.py +49 -0
  21. egain_api_python/escalation.py +955 -0
  22. egain_api_python/export.py +487 -0
  23. egain_api_python/federatedsearchevent.py +287 -0
  24. egain_api_python/general.py +925 -0
  25. egain_api_python/guidedhelp.py +3373 -0
  26. egain_api_python/health.py +253 -0
  27. egain_api_python/httpclient.py +125 -0
  28. egain_api_python/import_.py +1161 -0
  29. egain_api_python/models/__init__.py +2136 -0
  30. egain_api_python/models/acceptghsolutionop.py +52 -0
  31. egain_api_python/models/acceptlanguage.py +23 -0
  32. egain_api_python/models/accessibleportal.py +37 -0
  33. egain_api_python/models/action.py +56 -0
  34. egain_api_python/models/actionsearch.py +92 -0
  35. egain_api_python/models/addasreferenceop.py +52 -0
  36. egain_api_python/models/addbookmarkop.py +43 -0
  37. egain_api_python/models/additionalsnippets.py +57 -0
  38. egain_api_python/models/addtoreplyop.py +52 -0
  39. egain_api_python/models/aisearchop.py +131 -0
  40. egain_api_python/models/aisearchresponse.py +67 -0
  41. egain_api_python/models/allaccessibleportals.py +28 -0
  42. egain_api_python/models/answer.py +21 -0
  43. egain_api_python/models/answeredquestion.py +125 -0
  44. egain_api_python/models/answerrange.py +41 -0
  45. egain_api_python/models/answersrequest.py +78 -0
  46. egain_api_python/models/answersresponse.py +93 -0
  47. egain_api_python/models/article.py +241 -0
  48. egain_api_python/models/articleactivitylink.py +62 -0
  49. egain_api_python/models/articleadditionalattributes.py +23 -0
  50. egain_api_python/models/articleaisearchresult.py +254 -0
  51. egain_api_python/models/articleattachment.py +44 -0
  52. egain_api_python/models/articlelist.py +48 -0
  53. egain_api_python/models/articlelistresult.py +38 -0
  54. egain_api_python/models/articlelistsresult.py +22 -0
  55. egain_api_python/models/articlepermissions.py +25 -0
  56. egain_api_python/models/articlepermissionsresult.py +27 -0
  57. egain_api_python/models/articlerating.py +51 -0
  58. egain_api_python/models/articleratingsresponse.py +28 -0
  59. egain_api_python/models/articleresult.py +159 -0
  60. egain_api_python/models/articleresultadditionalattributes.py +22 -0
  61. egain_api_python/models/articleresults.py +32 -0
  62. egain_api_python/models/articlesearchresult.py +243 -0
  63. egain_api_python/models/articlesearchresults.py +32 -0
  64. egain_api_python/models/articlesort.py +11 -0
  65. egain_api_python/models/articlesortorder.py +11 -0
  66. egain_api_python/models/articletype.py +56 -0
  67. egain_api_python/models/articlewitheditions.py +227 -0
  68. egain_api_python/models/attachment.py +31 -0
  69. egain_api_python/models/attachmentadditionalattributes.py +10 -0
  70. egain_api_python/models/attachmentcontent.py +57 -0
  71. egain_api_python/models/attachmentcontentresult.py +22 -0
  72. egain_api_python/models/attachmentforcreatesuggestion.py +25 -0
  73. egain_api_python/models/attachments.py +35 -0
  74. egain_api_python/models/attachmentsummary.py +37 -0
  75. egain_api_python/models/attachmentupload.py +20 -0
  76. egain_api_python/models/avertcustomerescalationop.py +44 -0
  77. egain_api_python/models/bookmark.py +57 -0
  78. egain_api_python/models/bookmarkresult.py +26 -0
  79. egain_api_python/models/bookmarkstatus.py +34 -0
  80. egain_api_python/models/case.py +158 -0
  81. egain_api_python/models/caseadditionalattributes.py +11 -0
  82. egain_api_python/models/caseanswer.py +21 -0
  83. egain_api_python/models/casebase.py +67 -0
  84. egain_api_python/models/casebaseresult.py +28 -0
  85. egain_api_python/models/casebasesearchsettings.py +26 -0
  86. egain_api_python/models/caselistresult.py +74 -0
  87. egain_api_python/models/caselistresults.py +28 -0
  88. egain_api_python/models/casequestion.py +16 -0
  89. egain_api_python/models/casequestiondetail.py +29 -0
  90. egain_api_python/models/casesearch.py +80 -0
  91. egain_api_python/models/clusterid.py +16 -0
  92. egain_api_python/models/clusterresult.py +37 -0
  93. egain_api_python/models/clusterresults.py +28 -0
  94. egain_api_python/models/comment.py +33 -0
  95. egain_api_python/models/comments.py +26 -0
  96. egain_api_python/models/completecustomerescalationop.py +44 -0
  97. egain_api_python/models/compliancearticleresult.py +166 -0
  98. egain_api_python/models/compliancearticleresultadditionalattributes.py +22 -0
  99. egain_api_python/models/compliancearticleresults.py +35 -0
  100. egain_api_python/models/complianceforarticle.py +59 -0
  101. egain_api_python/models/complyarticleop.py +40 -0
  102. egain_api_python/models/components_schemas_tag.py +25 -0
  103. egain_api_python/models/components_schemas_tagcategory.py +39 -0
  104. egain_api_python/models/components_schemas_taggroup.py +25 -0
  105. egain_api_python/models/configurableattribute.py +25 -0
  106. egain_api_python/models/configurableattributes.py +15 -0
  107. egain_api_python/models/contactperson.py +43 -0
  108. egain_api_python/models/contacts.py +21 -0
  109. egain_api_python/models/createbookmark.py +64 -0
  110. egain_api_python/models/createdby.py +37 -0
  111. egain_api_python/models/createfederatedsearchevent.py +85 -0
  112. egain_api_python/models/createfederatedsearchresulteventop.py +46 -0
  113. egain_api_python/models/createimportop.py +20 -0
  114. egain_api_python/models/createimportvalidationop.py +20 -0
  115. egain_api_python/models/createquickpick.py +34 -0
  116. egain_api_python/models/createquickpickop.py +55 -0
  117. egain_api_python/models/createsearchresulteventforconnectors.py +71 -0
  118. egain_api_python/models/createsearchresulteventforconnectorsop.py +48 -0
  119. egain_api_python/models/createsignedurlop.py +29 -0
  120. egain_api_python/models/createsuggestion.py +126 -0
  121. egain_api_python/models/createviewedsearchresulteventforconnectors.py +76 -0
  122. egain_api_python/models/createviewedsearchresultseventforconnectorsop.py +48 -0
  123. egain_api_python/models/customattribute.py +35 -0
  124. egain_api_python/models/deletebookmarkop.py +40 -0
  125. egain_api_python/models/deletesuggestionop.py +40 -0
  126. egain_api_python/models/department.py +21 -0
  127. egain_api_python/models/detailfield.py +32 -0
  128. egain_api_python/models/displayfield.py +27 -0
  129. egain_api_python/models/dynamiccluster.py +21 -0
  130. egain_api_python/models/dynamicsearch.py +40 -0
  131. egain_api_python/models/edition.py +79 -0
  132. egain_api_python/models/editionwithcontent.py +68 -0
  133. egain_api_python/models/email.py +21 -0
  134. egain_api_python/models/exportcontentop.py +14 -0
  135. egain_api_python/models/exportstatus.py +106 -0
  136. egain_api_python/models/exportstatusop.py +31 -0
  137. egain_api_python/models/feedbackarticleforsuggestion.py +34 -0
  138. egain_api_python/models/folderbreadcrumb.py +24 -0
  139. egain_api_python/models/foldersummary.py +29 -0
  140. egain_api_python/models/getacknowledgedcompliancearticlesop.py +119 -0
  141. egain_api_python/models/getallarticlelistsop.py +47 -0
  142. egain_api_python/models/getallcasebasesreleasesop.py +65 -0
  143. egain_api_python/models/getallcasesop.py +83 -0
  144. egain_api_python/models/getallportalsop.py +60 -0
  145. egain_api_python/models/getallprofilesinportalop.py +64 -0
  146. egain_api_python/models/getallquickpicksop.py +83 -0
  147. egain_api_python/models/getalltopicsop.py +132 -0
  148. egain_api_python/models/getalluserprofilesop.py +47 -0
  149. egain_api_python/models/getancestortopicsop.py +133 -0
  150. egain_api_python/models/getannouncementarticlesop.py +134 -0
  151. egain_api_python/models/getarticleattachmentbyidop.py +31 -0
  152. egain_api_python/models/getarticlebyidop.py +257 -0
  153. egain_api_python/models/getarticlebyidwitheditionsop.py +46 -0
  154. egain_api_python/models/getarticleeditiondetailsop.py +55 -0
  155. egain_api_python/models/getarticlelistdetailsop.py +115 -0
  156. egain_api_python/models/getarticlepermissionsbyidop.py +40 -0
  157. egain_api_python/models/getarticlepersonalizationop.py +73 -0
  158. egain_api_python/models/getarticleratingsop.py +74 -0
  159. egain_api_python/models/getarticlesintopicop.py +172 -0
  160. egain_api_python/models/getattachmentbyidinportalop.py +56 -0
  161. egain_api_python/models/getbookmarkop.py +31 -0
  162. egain_api_python/models/getcasebasereleasebyidop.py +64 -0
  163. egain_api_python/models/getcasebyidop.py +75 -0
  164. egain_api_python/models/getchildtopicsop.py +150 -0
  165. egain_api_python/models/getclusterbycasebasereleaseidop.py +74 -0
  166. egain_api_python/models/gethealthop.py +130 -0
  167. egain_api_python/models/getimportcontentop.py +46 -0
  168. egain_api_python/models/getmyportalsop.py +97 -0
  169. egain_api_python/models/getmysubscriptionop.py +115 -0
  170. egain_api_python/models/getpendingcompliancearticlesop.py +119 -0
  171. egain_api_python/models/getpopulararticlesop.py +133 -0
  172. egain_api_python/models/getportaldetailsbyidop.py +47 -0
  173. egain_api_python/models/getrelatedarticlesforsuggestionop.py +96 -0
  174. egain_api_python/models/getrelatedarticlesop.py +143 -0
  175. egain_api_python/models/getsuggestionattachmentbyidop.py +76 -0
  176. egain_api_python/models/getsuggestionattachmentsop.py +40 -0
  177. egain_api_python/models/getsuggestioncommentsop.py +40 -0
  178. egain_api_python/models/getsuggestionop.py +107 -0
  179. egain_api_python/models/gettagcategoriesforinterestforportalop.py +46 -0
  180. egain_api_python/models/gettopicbreadcrumbforarticleop.py +55 -0
  181. egain_api_python/models/getuserdetailsop.py +22 -0
  182. egain_api_python/models/getusermilestonesop.py +22 -0
  183. egain_api_python/models/ghsearchrequest.py +67 -0
  184. egain_api_python/models/ghsearchresult.py +75 -0
  185. egain_api_python/models/ghstepsearchrequest.py +64 -0
  186. egain_api_python/models/image.py +17 -0
  187. egain_api_python/models/importcontent.py +79 -0
  188. egain_api_python/models/importstatus.py +29 -0
  189. egain_api_python/models/kblanguage.py +63 -0
  190. egain_api_python/models/kblanguagecode.py +48 -0
  191. egain_api_python/models/kblanguages.py +22 -0
  192. egain_api_python/models/knowledgeexport.py +237 -0
  193. egain_api_python/models/l10nstring.py +22 -0
  194. egain_api_python/models/languagecode.py +39 -0
  195. egain_api_python/models/languagecode_parameter.py +39 -0
  196. egain_api_python/models/languagequeryparameter.py +39 -0
  197. egain_api_python/models/link.py +25 -0
  198. egain_api_python/models/makesuggestionop.py +44 -0
  199. egain_api_python/models/mandatorylanguagequeryparameter.py +38 -0
  200. egain_api_python/models/metadata.py +29 -0
  201. egain_api_python/models/milestone.py +21 -0
  202. egain_api_python/models/milestonename.py +26 -0
  203. egain_api_python/models/milestones.py +21 -0
  204. egain_api_python/models/modifiedby.py +37 -0
  205. egain_api_python/models/modifysuggestion.py +78 -0
  206. egain_api_python/models/modifysuggestionsop.py +44 -0
  207. egain_api_python/models/optionalarticleattributes.py +20 -0
  208. egain_api_python/models/order.py +10 -0
  209. egain_api_python/models/ownedby.py +37 -0
  210. egain_api_python/models/paginationinfo.py +32 -0
  211. egain_api_python/models/patchimportcontentvalidationop.py +46 -0
  212. egain_api_python/models/personalization.py +67 -0
  213. egain_api_python/models/phone.py +21 -0
  214. egain_api_python/models/portal.py +102 -0
  215. egain_api_python/models/portalresult.py +28 -0
  216. egain_api_python/models/portalsettings.py +398 -0
  217. egain_api_python/models/post_portalid_answersop.py +88 -0
  218. egain_api_python/models/post_portalid_retrieveop.py +88 -0
  219. egain_api_python/models/profile.py +26 -0
  220. egain_api_python/models/profileresult.py +24 -0
  221. egain_api_python/models/publishprofile.py +30 -0
  222. egain_api_python/models/publishview.py +38 -0
  223. egain_api_python/models/question.py +101 -0
  224. egain_api_python/models/questionandanswer.py +26 -0
  225. egain_api_python/models/quickpickrating.py +32 -0
  226. egain_api_python/models/quickpickresult.py +38 -0
  227. egain_api_python/models/quickpickresults.py +28 -0
  228. egain_api_python/models/ratearticleop.py +71 -0
  229. egain_api_python/models/referenceresponse.py +80 -0
  230. egain_api_python/models/rejectghsolutionop.py +52 -0
  231. egain_api_python/models/relatedquestions.py +28 -0
  232. egain_api_python/models/resourcetype_parameter.py +10 -0
  233. egain_api_python/models/restorequickpickop.py +63 -0
  234. egain_api_python/models/retrieverequest.py +47 -0
  235. egain_api_python/models/retrieveresponse.py +96 -0
  236. egain_api_python/models/role.py +26 -0
  237. egain_api_python/models/roletemplate.py +25 -0
  238. egain_api_python/models/schemas_answer.py +94 -0
  239. egain_api_python/models/schemas_customattribute.py +35 -0
  240. egain_api_python/models/schemas_link.py +27 -0
  241. egain_api_python/models/schemas_tag.py +21 -0
  242. egain_api_python/models/schemas_tagcategory.py +75 -0
  243. egain_api_python/models/schemas_taggroup.py +31 -0
  244. egain_api_python/models/schemas_tags.py +19 -0
  245. egain_api_python/models/schemas_wserrorcommon.py +17 -0
  246. egain_api_python/models/searchfilterattribute.py +61 -0
  247. egain_api_python/models/searchpriortoescalationop.py +108 -0
  248. egain_api_python/models/searchresult.py +101 -0
  249. egain_api_python/models/searchsuggestionop.py +93 -0
  250. egain_api_python/models/security.py +25 -0
  251. egain_api_python/models/selectuserprofileop.py +44 -0
  252. egain_api_python/models/sessioncontextvariable.py +17 -0
  253. egain_api_python/models/shorturl.py +32 -0
  254. egain_api_python/models/sortidname.py +10 -0
  255. egain_api_python/models/sortidnamedepartment.py +11 -0
  256. egain_api_python/models/stage.py +26 -0
  257. egain_api_python/models/startcustomerescalationop.py +66 -0
  258. egain_api_python/models/startescalationrequest.py +94 -0
  259. egain_api_python/models/startghsearchop.py +74 -0
  260. egain_api_python/models/startquestionandanswer.py +26 -0
  261. egain_api_python/models/stepghsearchop.py +62 -0
  262. egain_api_python/models/stringattributevalue.py +30 -0
  263. egain_api_python/models/structuredauthoringfields.py +33 -0
  264. egain_api_python/models/subscribearticleop.py +40 -0
  265. egain_api_python/models/suggestion.py +190 -0
  266. egain_api_python/models/suggestionadditionalattributes.py +11 -0
  267. egain_api_python/models/suggestionattachment.py +46 -0
  268. egain_api_python/models/suggestions.py +28 -0
  269. egain_api_python/models/tag.py +17 -0
  270. egain_api_python/models/tagcategoriesforinterest.py +22 -0
  271. egain_api_python/models/tagcategory.py +34 -0
  272. egain_api_python/models/taggroup.py +17 -0
  273. egain_api_python/models/taggroups.py +20 -0
  274. egain_api_python/models/tags.py +17 -0
  275. egain_api_python/models/topic.py +113 -0
  276. egain_api_python/models/topicadditionalattributes.py +20 -0
  277. egain_api_python/models/topicaisearchresult.py +67 -0
  278. egain_api_python/models/topicbreadcrumb.py +24 -0
  279. egain_api_python/models/topicresult.py +26 -0
  280. egain_api_python/models/topicsummary.py +31 -0
  281. egain_api_python/models/topictreenode.py +27 -0
  282. egain_api_python/models/topictreeresult.py +28 -0
  283. egain_api_python/models/unsubscribearticleop.py +55 -0
  284. egain_api_python/models/uploadattachmentop.py +36 -0
  285. egain_api_python/models/userdetails.py +44 -0
  286. egain_api_python/models/userprofile.py +33 -0
  287. egain_api_python/models/userprofiles.py +21 -0
  288. egain_api_python/models/userview.py +33 -0
  289. egain_api_python/models/validateimportcontent.py +58 -0
  290. egain_api_python/models/virtualcase.py +52 -0
  291. egain_api_python/models/workflow.py +21 -0
  292. egain_api_python/models/workflowmilestone.py +11 -0
  293. egain_api_python/models/wserrorcommon.py +17 -0
  294. egain_api_python/populararticles.py +287 -0
  295. egain_api_python/portal_article.py +4935 -0
  296. egain_api_python/portal_attachment.py +494 -0
  297. egain_api_python/portal_bookmark.py +707 -0
  298. egain_api_python/portal_sdk.py +88 -0
  299. egain_api_python/portal_suggestion.py +2283 -0
  300. egain_api_python/portal_topic.py +975 -0
  301. egain_api_python/portal_userdetails.py +211 -0
  302. egain_api_python/portal_userprofile.py +431 -0
  303. egain_api_python/py.typed +1 -0
  304. egain_api_python/retrieve.py +265 -0
  305. egain_api_python/sdk.py +216 -0
  306. egain_api_python/sdkconfiguration.py +50 -0
  307. egain_api_python/search.py +251 -0
  308. egain_api_python/types/__init__.py +21 -0
  309. egain_api_python/types/basemodel.py +39 -0
  310. egain_api_python/usermilestones.py +219 -0
  311. egain_api_python/utils/__init__.py +200 -0
  312. egain_api_python/utils/annotations.py +79 -0
  313. egain_api_python/utils/datetimes.py +23 -0
  314. egain_api_python/utils/enums.py +74 -0
  315. egain_api_python/utils/eventstreaming.py +248 -0
  316. egain_api_python/utils/forms.py +223 -0
  317. egain_api_python/utils/headers.py +136 -0
  318. egain_api_python/utils/logger.py +27 -0
  319. egain_api_python/utils/metadata.py +118 -0
  320. egain_api_python/utils/queryparams.py +205 -0
  321. egain_api_python/utils/requestbodies.py +66 -0
  322. egain_api_python/utils/retries.py +217 -0
  323. egain_api_python/utils/security.py +192 -0
  324. egain_api_python/utils/serializers.py +249 -0
  325. egain_api_python/utils/unmarshal_json_response.py +24 -0
  326. egain_api_python/utils/url.py +155 -0
  327. egain_api_python/utils/values.py +137 -0
  328. egain_api_python-0.1.1.dist-info/METADATA +827 -0
  329. egain_api_python-0.1.1.dist-info/RECORD +332 -0
  330. egain_api_python-0.1.1.dist-info/WHEEL +5 -0
  331. egain_api_python-0.1.1.dist-info/licenses/LICENSE +21 -0
  332. egain_api_python-0.1.1.dist-info/top_level.txt +1 -0
@@ -0,0 +1,52 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .quickpickrating import QuickpickRating, QuickpickRatingTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ RequestMetadata,
12
+ )
13
+ import pydantic
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class AcceptGHSolutionRequestTypedDict(TypedDict):
18
+ accept_language: AcceptLanguage
19
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
20
+ portal_id: str
21
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
22
+ case_id: str
23
+ r"""The numerical ID of the Case for which details is to be fetched."""
24
+ quickpick_rating: QuickpickRatingTypedDict
25
+
26
+
27
+ class AcceptGHSolutionRequest(BaseModel):
28
+ accept_language: Annotated[
29
+ AcceptLanguage,
30
+ pydantic.Field(alias="Accept-Language"),
31
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
32
+ ]
33
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
34
+
35
+ portal_id: Annotated[
36
+ str,
37
+ pydantic.Field(alias="portalID"),
38
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
39
+ ]
40
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
41
+
42
+ case_id: Annotated[
43
+ str,
44
+ pydantic.Field(alias="caseID"),
45
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
46
+ ]
47
+ r"""The numerical ID of the Case for which details is to be fetched."""
48
+
49
+ quickpick_rating: Annotated[
50
+ QuickpickRating,
51
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
52
+ ]
@@ -0,0 +1,23 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from typing import Literal
5
+
6
+
7
+ AcceptLanguage = Literal[
8
+ "en-US",
9
+ "es-ES",
10
+ "fr-FR",
11
+ "it-IT",
12
+ "de-DE",
13
+ "nl-NL",
14
+ "pt-BR",
15
+ "pt-PT",
16
+ "da-DK",
17
+ "ru-RU",
18
+ "fr-CA",
19
+ "zh-CN",
20
+ "ja-JP",
21
+ "ko-KR",
22
+ "sv-SE",
23
+ ]
@@ -0,0 +1,37 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .department import Department, DepartmentTypedDict
5
+ from .shorturl import ShortURL, ShortURLTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ import pydantic
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class AccessiblePortalTypedDict(TypedDict):
13
+ id: NotRequired[str]
14
+ r"""ID of portal. <br>A Portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
15
+ name: NotRequired[str]
16
+ r"""Name of portal"""
17
+ description: NotRequired[str]
18
+ r"""Description of portal"""
19
+ department: NotRequired[DepartmentTypedDict]
20
+ short_url: NotRequired[List[ShortURLTypedDict]]
21
+
22
+
23
+ class AccessiblePortal(BaseModel):
24
+ id: Optional[str] = None
25
+ r"""ID of portal. <br>A Portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
26
+
27
+ name: Optional[str] = None
28
+ r"""Name of portal"""
29
+
30
+ description: Optional[str] = None
31
+ r"""Description of portal"""
32
+
33
+ department: Optional[Department] = None
34
+
35
+ short_url: Annotated[Optional[List[ShortURL]], pydantic.Field(alias="shortURL")] = (
36
+ None
37
+ )
@@ -0,0 +1,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .articletype import ArticleType, ArticleTypeTypedDict
5
+ from .metadata import Metadata, MetadataTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ import pydantic
8
+ from typing import List, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class ActionTypedDict(TypedDict):
13
+ id: NotRequired[str]
14
+ r"""ID of the action"""
15
+ title: NotRequired[str]
16
+ r"""Name of the action"""
17
+ type: NotRequired[str]
18
+ r"""type of the action"""
19
+ short_name: NotRequired[str]
20
+ r"""short name of the action"""
21
+ reject_count: NotRequired[int]
22
+ r"""number of times action was rejected."""
23
+ accept_count: NotRequired[int]
24
+ r"""number of times action was accepted."""
25
+ metadata: NotRequired[List[MetadataTypedDict]]
26
+ r"""Metadata of action"""
27
+ article_type: NotRequired[ArticleTypeTypedDict]
28
+ r"""The type of the Article and its attributes."""
29
+
30
+
31
+ class Action(BaseModel):
32
+ id: Optional[str] = None
33
+ r"""ID of the action"""
34
+
35
+ title: Optional[str] = None
36
+ r"""Name of the action"""
37
+
38
+ type: Optional[str] = None
39
+ r"""type of the action"""
40
+
41
+ short_name: Annotated[Optional[str], pydantic.Field(alias="shortName")] = None
42
+ r"""short name of the action"""
43
+
44
+ reject_count: Annotated[Optional[int], pydantic.Field(alias="rejectCount")] = None
45
+ r"""number of times action was rejected."""
46
+
47
+ accept_count: Annotated[Optional[int], pydantic.Field(alias="acceptCount")] = None
48
+ r"""number of times action was accepted."""
49
+
50
+ metadata: Optional[List[Metadata]] = None
51
+ r"""Metadata of action"""
52
+
53
+ article_type: Annotated[
54
+ Optional[ArticleType], pydantic.Field(alias="articleType")
55
+ ] = None
56
+ r"""The type of the Article and its attributes."""
@@ -0,0 +1,92 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .articletype import ArticleType, ArticleTypeTypedDict
5
+ from .metadata import Metadata, MetadataTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ import pydantic
8
+ from typing import List, Literal, Optional
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ ActionSearchType = Literal[
13
+ "control",
14
+ "article",
15
+ ]
16
+ r"""type of the action"""
17
+
18
+
19
+ class ActionSearchTypedDict(TypedDict):
20
+ accept_count: NotRequired[int]
21
+ r"""number of times action was accepted"""
22
+ has_additional_info: NotRequired[bool]
23
+ r"""indicates if action has additional information"""
24
+ metadata: NotRequired[List[MetadataTypedDict]]
25
+ r"""Metadata in action search."""
26
+ article_id: NotRequired[str]
27
+ r"""The ID of the Article .<br>The ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
28
+ case_id: NotRequired[str]
29
+ r"""The numerical ID of the case."""
30
+ passed_threshold_value: NotRequired[bool]
31
+ r"""indicates if the case has passed the threshold value"""
32
+ reject_count: NotRequired[int]
33
+ r"""The number of times action was rejected"""
34
+ short_name: NotRequired[str]
35
+ r"""short name"""
36
+ score: NotRequired[int]
37
+ r"""score of the case"""
38
+ name: NotRequired[str]
39
+ r"""name of the case"""
40
+ action_id: NotRequired[str]
41
+ r"""The ID of the Action."""
42
+ type: NotRequired[ActionSearchType]
43
+ r"""type of the action"""
44
+ article_type: NotRequired[ArticleTypeTypedDict]
45
+ r"""The type of the Article and its attributes."""
46
+
47
+
48
+ class ActionSearch(BaseModel):
49
+ accept_count: Annotated[Optional[int], pydantic.Field(alias="acceptCount")] = None
50
+ r"""number of times action was accepted"""
51
+
52
+ has_additional_info: Annotated[
53
+ Optional[bool], pydantic.Field(alias="hasAdditionalInfo")
54
+ ] = None
55
+ r"""indicates if action has additional information"""
56
+
57
+ metadata: Optional[List[Metadata]] = None
58
+ r"""Metadata in action search."""
59
+
60
+ article_id: Annotated[Optional[str], pydantic.Field(alias="articleId")] = None
61
+ r"""The ID of the Article .<br>The ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
62
+
63
+ case_id: Annotated[Optional[str], pydantic.Field(alias="caseId")] = None
64
+ r"""The numerical ID of the case."""
65
+
66
+ passed_threshold_value: Annotated[
67
+ Optional[bool], pydantic.Field(alias="passedThresholdValue")
68
+ ] = None
69
+ r"""indicates if the case has passed the threshold value"""
70
+
71
+ reject_count: Annotated[Optional[int], pydantic.Field(alias="rejectCount")] = None
72
+ r"""The number of times action was rejected"""
73
+
74
+ short_name: Annotated[Optional[str], pydantic.Field(alias="shortName")] = None
75
+ r"""short name"""
76
+
77
+ score: Optional[int] = None
78
+ r"""score of the case"""
79
+
80
+ name: Optional[str] = None
81
+ r"""name of the case"""
82
+
83
+ action_id: Annotated[Optional[str], pydantic.Field(alias="actionId")] = None
84
+ r"""The ID of the Action."""
85
+
86
+ type: Optional[ActionSearchType] = None
87
+ r"""type of the action"""
88
+
89
+ article_type: Annotated[
90
+ Optional[ArticleType], pydantic.Field(alias="articleType")
91
+ ] = None
92
+ r"""The type of the Article and its attributes."""
@@ -0,0 +1,52 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .articleactivitylink import ArticleActivityLink, ArticleActivityLinkTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ RequestMetadata,
12
+ )
13
+ import pydantic
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class AddAsReferenceRequestTypedDict(TypedDict):
18
+ accept_language: AcceptLanguage
19
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
20
+ portal_id: str
21
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
22
+ article_id: str
23
+ r"""The ID of the Article.<br><br>An Article ID is composed of a 2-4 letter prefix followed by a dash and 4-15 digits."""
24
+ article_activity_link: ArticleActivityLinkTypedDict
25
+
26
+
27
+ class AddAsReferenceRequest(BaseModel):
28
+ accept_language: Annotated[
29
+ AcceptLanguage,
30
+ pydantic.Field(alias="Accept-Language"),
31
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
32
+ ]
33
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
34
+
35
+ portal_id: Annotated[
36
+ str,
37
+ pydantic.Field(alias="portalID"),
38
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
39
+ ]
40
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
41
+
42
+ article_id: Annotated[
43
+ str,
44
+ pydantic.Field(alias="articleID"),
45
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
46
+ ]
47
+ r"""The ID of the Article.<br><br>An Article ID is composed of a 2-4 letter prefix followed by a dash and 4-15 digits."""
48
+
49
+ article_activity_link: Annotated[
50
+ ArticleActivityLink,
51
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
52
+ ]
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .createbookmark import CreateBookmark, CreateBookmarkTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ RequestMetadata,
12
+ )
13
+ import pydantic
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class AddbookmarkRequestTypedDict(TypedDict):
18
+ portal_id: str
19
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
20
+ accept_language: AcceptLanguage
21
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
22
+ create_bookmark: CreateBookmarkTypedDict
23
+
24
+
25
+ class AddbookmarkRequest(BaseModel):
26
+ portal_id: Annotated[
27
+ str,
28
+ pydantic.Field(alias="portalID"),
29
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
30
+ ]
31
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
32
+
33
+ accept_language: Annotated[
34
+ AcceptLanguage,
35
+ pydantic.Field(alias="Accept-Language"),
36
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
37
+ ]
38
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
39
+
40
+ create_bookmark: Annotated[
41
+ CreateBookmark,
42
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
43
+ ]
@@ -0,0 +1,57 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from egain_api_python.types import BaseModel
5
+ import pydantic
6
+ from typing import Literal, Optional
7
+ from typing_extensions import Annotated, NotRequired, TypedDict
8
+
9
+
10
+ AdditionalSnippetsDocType = Literal[
11
+ "HTML",
12
+ "Doc",
13
+ "Pdf",
14
+ ]
15
+ r"""Format of the source document (HTML, Doc, or PDF)."""
16
+
17
+
18
+ class AdditionalSnippetsTypedDict(TypedDict):
19
+ id: str
20
+ r"""The ID of the Article. <br><br> An Article ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
21
+ name: str
22
+ r"""The name of the Article or source content."""
23
+ doc_type: AdditionalSnippetsDocType
24
+ r"""Format of the source document (HTML, Doc, or PDF)."""
25
+ doc_name: str
26
+ r"""Name of the attachment, if an attachment was used as the source content."""
27
+ snippet: str
28
+ r"""A snippet of the article content."""
29
+ relevance_score: float
30
+ r"""Generated confidence score (0.0-1.0) for the snippet's relevance to the query."""
31
+ keyword_snippet: NotRequired[str]
32
+ r"""A keyword snippet of the article content."""
33
+
34
+
35
+ class AdditionalSnippets(BaseModel):
36
+ id: str
37
+ r"""The ID of the Article. <br><br> An Article ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
38
+
39
+ name: str
40
+ r"""The name of the Article or source content."""
41
+
42
+ doc_type: Annotated[AdditionalSnippetsDocType, pydantic.Field(alias="docType")]
43
+ r"""Format of the source document (HTML, Doc, or PDF)."""
44
+
45
+ doc_name: Annotated[str, pydantic.Field(alias="docName")]
46
+ r"""Name of the attachment, if an attachment was used as the source content."""
47
+
48
+ snippet: str
49
+ r"""A snippet of the article content."""
50
+
51
+ relevance_score: Annotated[float, pydantic.Field(alias="relevanceScore")]
52
+ r"""Generated confidence score (0.0-1.0) for the snippet's relevance to the query."""
53
+
54
+ keyword_snippet: Annotated[
55
+ Optional[str], pydantic.Field(alias="keywordSnippet")
56
+ ] = None
57
+ r"""A keyword snippet of the article content."""
@@ -0,0 +1,52 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .articleactivitylink import ArticleActivityLink, ArticleActivityLinkTypedDict
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ RequestMetadata,
12
+ )
13
+ import pydantic
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class AddToReplyRequestTypedDict(TypedDict):
18
+ accept_language: AcceptLanguage
19
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
20
+ portal_id: str
21
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
22
+ article_id: str
23
+ r"""The ID of the Article.<br><br>An Article ID is composed of a 2-4 letter prefix followed by a dash and 4-15 digits."""
24
+ article_activity_link: ArticleActivityLinkTypedDict
25
+
26
+
27
+ class AddToReplyRequest(BaseModel):
28
+ accept_language: Annotated[
29
+ AcceptLanguage,
30
+ pydantic.Field(alias="Accept-Language"),
31
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
32
+ ]
33
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
34
+
35
+ portal_id: Annotated[
36
+ str,
37
+ pydantic.Field(alias="portalID"),
38
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
39
+ ]
40
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
41
+
42
+ article_id: Annotated[
43
+ str,
44
+ pydantic.Field(alias="articleID"),
45
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
46
+ ]
47
+ r"""The ID of the Article.<br><br>An Article ID is composed of a 2-4 letter prefix followed by a dash and 4-15 digits."""
48
+
49
+ article_activity_link: Annotated[
50
+ ArticleActivityLink,
51
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
52
+ ]
@@ -0,0 +1,131 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .languagecode_parameter import LanguageCodeParameter
5
+ from .resourcetype_parameter import ResourceTypeParameter
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import FieldMetadata, PathParamMetadata, QueryParamMetadata
8
+ import pydantic
9
+ from typing import Dict, List, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class AiSearchRequestTypedDict(TypedDict):
14
+ q: str
15
+ r"""The search query string. The string must be escaped as required by the URL syntax rules."""
16
+ portal_id: str
17
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
18
+ dollar_filter_user_profile_id: NotRequired[str]
19
+ r"""The ID of the user profile.
20
+
21
+ """
22
+ language: NotRequired[LanguageCodeParameter]
23
+ r"""The language that describes the details of a resource. Resources available in different languages may differ from each other. <br><br> If lang is not passed, then the portal's default language is used."""
24
+ dollar_filter_tags: NotRequired[Dict[str, List[str]]]
25
+ r"""An object where each key is a **Category Tag ID** (numeric string),
26
+ and each value is an array of **Tag IDs** for that category.
27
+
28
+ """
29
+ dollar_filter_topic_ids: NotRequired[List[str]]
30
+ r"""An array of topic IDs. It is used to restrict search results to specific topics."""
31
+ dollar_filter_exclude_topic_ids: NotRequired[List[str]]
32
+ r"""An array of topic IDs that will be excluded from the search. It includes articles that belong to the topic."""
33
+ resource_type: NotRequired[ResourceTypeParameter]
34
+ r"""Type of resource to be fetched."""
35
+ article_custom_additional_attributes: NotRequired[str]
36
+ r"""One or more comma-separated names for article custom attributes defined by the user to be returned."""
37
+ topic_custom_additional_attributes: NotRequired[str]
38
+ r"""One or more comma-separated names for topic custom attributes defined by the user to be returned."""
39
+ pagenum: NotRequired[int]
40
+ r"""Pagination parameter that specifies the page number of results to be returned. Used in conjunction with $pagesize."""
41
+ pagesize: NotRequired[int]
42
+ r"""Pagination parameter that specifies the number of results per page. Used in conjunction with $pagenum."""
43
+
44
+
45
+ class AiSearchRequest(BaseModel):
46
+ q: Annotated[
47
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
48
+ ]
49
+ r"""The search query string. The string must be escaped as required by the URL syntax rules."""
50
+
51
+ portal_id: Annotated[
52
+ str,
53
+ pydantic.Field(alias="portalID"),
54
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
55
+ ]
56
+ r"""The ID of the portal being accessed.<br><br>A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
57
+
58
+ dollar_filter_user_profile_id: Annotated[
59
+ Optional[str],
60
+ pydantic.Field(alias="$filter[userProfileID]"),
61
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
62
+ ] = None
63
+ r"""The ID of the user profile.
64
+
65
+ """
66
+
67
+ language: Annotated[
68
+ Optional[LanguageCodeParameter],
69
+ pydantic.Field(alias="$lang"),
70
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
71
+ ] = None
72
+ r"""The language that describes the details of a resource. Resources available in different languages may differ from each other. <br><br> If lang is not passed, then the portal's default language is used."""
73
+
74
+ dollar_filter_tags: Annotated[
75
+ Optional[Dict[str, List[str]]],
76
+ pydantic.Field(alias="$filter[tags]"),
77
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
78
+ ] = None
79
+ r"""An object where each key is a **Category Tag ID** (numeric string),
80
+ and each value is an array of **Tag IDs** for that category.
81
+
82
+ """
83
+
84
+ dollar_filter_topic_ids: Annotated[
85
+ Optional[List[str]],
86
+ pydantic.Field(alias="$filter[topicIds]"),
87
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
88
+ ] = None
89
+ r"""An array of topic IDs. It is used to restrict search results to specific topics."""
90
+
91
+ dollar_filter_exclude_topic_ids: Annotated[
92
+ Optional[List[str]],
93
+ pydantic.Field(alias="$filter[excludeTopicIds]"),
94
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
95
+ ] = None
96
+ r"""An array of topic IDs that will be excluded from the search. It includes articles that belong to the topic."""
97
+
98
+ resource_type: Annotated[
99
+ Optional[ResourceTypeParameter],
100
+ pydantic.Field(alias="resourceType"),
101
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
102
+ ] = None
103
+ r"""Type of resource to be fetched."""
104
+
105
+ article_custom_additional_attributes: Annotated[
106
+ Optional[str],
107
+ pydantic.Field(alias="articleCustomAdditionalAttributes"),
108
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
109
+ ] = None
110
+ r"""One or more comma-separated names for article custom attributes defined by the user to be returned."""
111
+
112
+ topic_custom_additional_attributes: Annotated[
113
+ Optional[str],
114
+ pydantic.Field(alias="topicCustomAdditionalAttributes"),
115
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
116
+ ] = None
117
+ r"""One or more comma-separated names for topic custom attributes defined by the user to be returned."""
118
+
119
+ pagenum: Annotated[
120
+ Optional[int],
121
+ pydantic.Field(alias="$pagenum"),
122
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
123
+ ] = 1
124
+ r"""Pagination parameter that specifies the page number of results to be returned. Used in conjunction with $pagesize."""
125
+
126
+ pagesize: Annotated[
127
+ Optional[int],
128
+ pydantic.Field(alias="$pagesize"),
129
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
130
+ ] = 10
131
+ r"""Pagination parameter that specifies the number of results per page. Used in conjunction with $pagenum."""
@@ -0,0 +1,67 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .articleaisearchresult import ArticleAISearchResult, ArticleAISearchResultTypedDict
5
+ from .paginationinfo import PaginationInfo, PaginationInfoTypedDict
6
+ from .topicaisearchresult import TopicAISearchResult, TopicAISearchResultTypedDict
7
+ from egain_api_python.types import BaseModel
8
+ import pydantic
9
+ from typing import List, Literal, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ AISearchResponseType = Literal[
14
+ "portal",
15
+ "custom",
16
+ ]
17
+ r"""The channel where the query originated, e.g., directly from the portal or via a custom integration."""
18
+
19
+
20
+ class AISearchResponseChannelTypedDict(TypedDict):
21
+ type: AISearchResponseType
22
+ r"""The channel where the query originated, e.g., directly from the portal or via a custom integration."""
23
+ name: NotRequired[str]
24
+ r"""The name of the channel."""
25
+
26
+
27
+ class AISearchResponseChannel(BaseModel):
28
+ type: AISearchResponseType
29
+ r"""The channel where the query originated, e.g., directly from the portal or via a custom integration."""
30
+
31
+ name: Optional[str] = None
32
+ r"""The name of the channel."""
33
+
34
+
35
+ class SearchResultsTypedDict(TypedDict):
36
+ r"""Top search results with relevance scores"""
37
+
38
+ article: NotRequired[List[ArticleAISearchResultTypedDict]]
39
+ topic: NotRequired[List[TopicAISearchResultTypedDict]]
40
+
41
+
42
+ class SearchResults(BaseModel):
43
+ r"""Top search results with relevance scores"""
44
+
45
+ article: Optional[List[ArticleAISearchResult]] = None
46
+
47
+ topic: Optional[List[TopicAISearchResult]] = None
48
+
49
+
50
+ class AISearchResponseTypedDict(TypedDict):
51
+ channel: NotRequired[AISearchResponseChannelTypedDict]
52
+ search_results: NotRequired[SearchResultsTypedDict]
53
+ r"""Top search results with relevance scores"""
54
+ pagination_info: NotRequired[PaginationInfoTypedDict]
55
+
56
+
57
+ class AISearchResponse(BaseModel):
58
+ channel: Optional[AISearchResponseChannel] = None
59
+
60
+ search_results: Annotated[
61
+ Optional[SearchResults], pydantic.Field(alias="searchResults")
62
+ ] = None
63
+ r"""Top search results with relevance scores"""
64
+
65
+ pagination_info: Annotated[
66
+ Optional[PaginationInfo], pydantic.Field(alias="paginationInfo")
67
+ ] = None