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,107 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .suggestionadditionalattributes import SuggestionAdditionalAttributes
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ QueryParamMetadata,
12
+ )
13
+ import pydantic
14
+ from typing import List, Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GetSuggestionRequestTypedDict(TypedDict):
19
+ accept_language: AcceptLanguage
20
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
21
+ portal_id: str
22
+ 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."""
23
+ suggestion_id: str
24
+ r"""The ID of the Suggestion.<br><br>A Suggestion ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
25
+ suggestion_additional_attributes: NotRequired[List[SuggestionAdditionalAttributes]]
26
+ r"""The attributes of a Suggestion to be returned *in addition to* the default list of attributes, listed below. Multiple additional attributes can be specified using a comma-separated list. Passing 'all' returns all attributes.
27
+
28
+ #### Default Attributes
29
+ These Suggestion attributes are always returned:
30
+
31
+ | Name | Description
32
+ | ---- | -----------
33
+ | id | The ID of the Suggestion.
34
+ | name | The name of the Suggestion.
35
+ | status | The status of the Suggestion.
36
+ | description | The description of the Suggestion.
37
+ | language | Details about the language of the Suggestion.
38
+ | modifiedBy.id | The ID of the user that last modified the Suggestion.
39
+ | modifiedBy.firstName | The Suggestion's last modified user's first name.
40
+ | modifiedBy.middleName | The Suggestion's last modified user's middle name.
41
+ | modifiedBy.lastName | The Suggestion's last modified user's last name.
42
+ | modifiedDate | The Suggestion's last modified date <u>and</u> information about the user that last modified the Suggestion.
43
+ | link | The link object, used to retrieve the details of the Suggestion.
44
+ | hasComments | The Suggestion has one or more comments
45
+ | hasAttachments | The Suggestion has one or more attachments
46
+ | hasRelatedArticles | The Suggestion has related articles
47
+
48
+ """
49
+ custom_additional_attributes: NotRequired[str]
50
+
51
+
52
+ class GetSuggestionRequest(BaseModel):
53
+ accept_language: Annotated[
54
+ AcceptLanguage,
55
+ pydantic.Field(alias="Accept-Language"),
56
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
57
+ ]
58
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
59
+
60
+ portal_id: Annotated[
61
+ str,
62
+ pydantic.Field(alias="portalID"),
63
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
64
+ ]
65
+ 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."""
66
+
67
+ suggestion_id: Annotated[
68
+ str,
69
+ pydantic.Field(alias="suggestionID"),
70
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
71
+ ]
72
+ r"""The ID of the Suggestion.<br><br>A Suggestion ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
73
+
74
+ suggestion_additional_attributes: Annotated[
75
+ Optional[List[SuggestionAdditionalAttributes]],
76
+ pydantic.Field(alias="suggestionAdditionalAttributes"),
77
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=False)),
78
+ ] = None
79
+ r"""The attributes of a Suggestion to be returned *in addition to* the default list of attributes, listed below. Multiple additional attributes can be specified using a comma-separated list. Passing 'all' returns all attributes.
80
+
81
+ #### Default Attributes
82
+ These Suggestion attributes are always returned:
83
+
84
+ | Name | Description
85
+ | ---- | -----------
86
+ | id | The ID of the Suggestion.
87
+ | name | The name of the Suggestion.
88
+ | status | The status of the Suggestion.
89
+ | description | The description of the Suggestion.
90
+ | language | Details about the language of the Suggestion.
91
+ | modifiedBy.id | The ID of the user that last modified the Suggestion.
92
+ | modifiedBy.firstName | The Suggestion's last modified user's first name.
93
+ | modifiedBy.middleName | The Suggestion's last modified user's middle name.
94
+ | modifiedBy.lastName | The Suggestion's last modified user's last name.
95
+ | modifiedDate | The Suggestion's last modified date <u>and</u> information about the user that last modified the Suggestion.
96
+ | link | The link object, used to retrieve the details of the Suggestion.
97
+ | hasComments | The Suggestion has one or more comments
98
+ | hasAttachments | The Suggestion has one or more attachments
99
+ | hasRelatedArticles | The Suggestion has related articles
100
+
101
+ """
102
+
103
+ custom_additional_attributes: Annotated[
104
+ Optional[str],
105
+ pydantic.Field(alias="$customAdditionalAttributes"),
106
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
107
+ ] = None
@@ -0,0 +1,46 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .mandatorylanguagequeryparameter import MandatoryLanguageQueryParameter
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ QueryParamMetadata,
12
+ )
13
+ import pydantic
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class GetTagCategoriesForInterestForPortalRequestTypedDict(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
+ language: MandatoryLanguageQueryParameter
23
+ r"""The language used for fetching the details of a resource. Resources available in different languages may differ from each other."""
24
+
25
+
26
+ class GetTagCategoriesForInterestForPortalRequest(BaseModel):
27
+ accept_language: Annotated[
28
+ AcceptLanguage,
29
+ pydantic.Field(alias="Accept-Language"),
30
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
31
+ ]
32
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
33
+
34
+ portal_id: Annotated[
35
+ str,
36
+ pydantic.Field(alias="portalID"),
37
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
38
+ ]
39
+ 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."""
40
+
41
+ language: Annotated[
42
+ MandatoryLanguageQueryParameter,
43
+ pydantic.Field(alias="$lang"),
44
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
45
+ ]
46
+ r"""The language used for fetching the details of a resource. Resources available in different languages may differ from each other."""
@@ -0,0 +1,55 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from .mandatorylanguagequeryparameter import MandatoryLanguageQueryParameter
6
+ from egain_api_python.types import BaseModel
7
+ from egain_api_python.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ QueryParamMetadata,
12
+ )
13
+ import pydantic
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class GetTopicBreadcrumbForArticleRequestTypedDict(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
+ language: MandatoryLanguageQueryParameter
25
+ r"""The language used for fetching the details of a resource. Resources available in different languages may differ from each other."""
26
+
27
+
28
+ class GetTopicBreadcrumbForArticleRequest(BaseModel):
29
+ accept_language: Annotated[
30
+ AcceptLanguage,
31
+ pydantic.Field(alias="Accept-Language"),
32
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
33
+ ]
34
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
35
+
36
+ portal_id: Annotated[
37
+ str,
38
+ pydantic.Field(alias="portalID"),
39
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
40
+ ]
41
+ 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."""
42
+
43
+ article_id: Annotated[
44
+ str,
45
+ pydantic.Field(alias="articleID"),
46
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
47
+ ]
48
+ 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."""
49
+
50
+ language: Annotated[
51
+ MandatoryLanguageQueryParameter,
52
+ pydantic.Field(alias="$lang"),
53
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
54
+ ]
55
+ r"""The language used for fetching the details of a resource. Resources available in different languages may differ from each other."""
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from egain_api_python.types import BaseModel
6
+ from egain_api_python.utils import FieldMetadata, HeaderMetadata
7
+ import pydantic
8
+ from typing_extensions import Annotated, TypedDict
9
+
10
+
11
+ class GetUserDetailsRequestTypedDict(TypedDict):
12
+ accept_language: AcceptLanguage
13
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
14
+
15
+
16
+ class GetUserDetailsRequest(BaseModel):
17
+ accept_language: Annotated[
18
+ AcceptLanguage,
19
+ pydantic.Field(alias="Accept-Language"),
20
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
21
+ ]
22
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .acceptlanguage import AcceptLanguage
5
+ from egain_api_python.types import BaseModel
6
+ from egain_api_python.utils import FieldMetadata, HeaderMetadata
7
+ import pydantic
8
+ from typing_extensions import Annotated, TypedDict
9
+
10
+
11
+ class GetUserMilestonesRequestTypedDict(TypedDict):
12
+ accept_language: AcceptLanguage
13
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
14
+
15
+
16
+ class GetUserMilestonesRequest(BaseModel):
17
+ accept_language: Annotated[
18
+ AcceptLanguage,
19
+ pydantic.Field(alias="Accept-Language"),
20
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
21
+ ]
22
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
@@ -0,0 +1,67 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .sessioncontextvariable import (
5
+ SessionContextVariable,
6
+ SessionContextVariableTypedDict,
7
+ )
8
+ from .startquestionandanswer import (
9
+ StartQuestionAndAnswer,
10
+ StartQuestionAndAnswerTypedDict,
11
+ )
12
+ from egain_api_python.types import BaseModel
13
+ import pydantic
14
+ from typing import List, Optional
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class GHSearchRequestTypedDict(TypedDict):
19
+ casebase_id: str
20
+ r"""The numerical ID of the Casebase."""
21
+ questions: NotRequired[List[StartQuestionAndAnswerTypedDict]]
22
+ r"""Pre-answered Questions in Guided Help search"""
23
+ profile_id: NotRequired[str]
24
+ r"""The ID of the guided help profile.<br>
25
+ 1 will always be the **system profile**.
26
+
27
+ """
28
+ session_variable: NotRequired[List[SessionContextVariableTypedDict]]
29
+ r"""Session variables used to give Guided Help additional context."""
30
+ start_over: NotRequired[bool]
31
+ r"""Restart the current Guided Help search with the existing context along with session variable context."""
32
+ use_live_release: NotRequired[bool]
33
+ r"""Use current live release snapshot of the Casebase otherwise use the authoring release."""
34
+ ghs_article_id: NotRequired[str]
35
+ r"""Numeric ID of the guided help session article used for starting search."""
36
+
37
+
38
+ class GHSearchRequest(BaseModel):
39
+ casebase_id: Annotated[str, pydantic.Field(alias="casebaseId")]
40
+ r"""The numerical ID of the Casebase."""
41
+
42
+ questions: Optional[List[StartQuestionAndAnswer]] = None
43
+ r"""Pre-answered Questions in Guided Help search"""
44
+
45
+ profile_id: Annotated[Optional[str], pydantic.Field(alias="profileId")] = None
46
+ r"""The ID of the guided help profile.<br>
47
+ 1 will always be the **system profile**.
48
+
49
+ """
50
+
51
+ session_variable: Annotated[
52
+ Optional[List[SessionContextVariable]], pydantic.Field(alias="sessionVariable")
53
+ ] = None
54
+ r"""Session variables used to give Guided Help additional context."""
55
+
56
+ start_over: Annotated[Optional[bool], pydantic.Field(alias="startOver")] = None
57
+ r"""Restart the current Guided Help search with the existing context along with session variable context."""
58
+
59
+ use_live_release: Annotated[
60
+ Optional[bool], pydantic.Field(alias="useLiveRelease")
61
+ ] = None
62
+ r"""Use current live release snapshot of the Casebase otherwise use the authoring release."""
63
+
64
+ ghs_article_id: Annotated[Optional[str], pydantic.Field(alias="ghsArticleId")] = (
65
+ None
66
+ )
67
+ r"""Numeric ID of the guided help session article used for starting search."""
@@ -0,0 +1,75 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .actionsearch import ActionSearch, ActionSearchTypedDict
5
+ from .answeredquestion import AnsweredQuestion, AnsweredQuestionTypedDict
6
+ from .casebase import Casebase, CasebaseTypedDict
7
+ from .casesearch import CaseSearch, CaseSearchTypedDict
8
+ from .clusterid import ClusterID, ClusterIDTypedDict
9
+ from .dynamicsearch import DynamicSearch, DynamicSearchTypedDict
10
+ from .question import Question, QuestionTypedDict
11
+ from egain_api_python.types import BaseModel
12
+ import pydantic
13
+ from typing import List, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class GHSearchResultTypedDict(TypedDict):
18
+ r"""Success"""
19
+
20
+ casebase: NotRequired[CasebaseTypedDict]
21
+ action_search: NotRequired[List[ActionSearchTypedDict]]
22
+ r"""actions in the search"""
23
+ answered_question: NotRequired[List[AnsweredQuestionTypedDict]]
24
+ r"""questions answered in the search"""
25
+ case_search: NotRequired[List[CaseSearchTypedDict]]
26
+ r"""cases in the search"""
27
+ dynamic_search: NotRequired[List[DynamicSearchTypedDict]]
28
+ r"""dynamic cases in the search"""
29
+ unanswered_question: NotRequired[List[QuestionTypedDict]]
30
+ r"""unanswered questions in the search"""
31
+ startup_question: NotRequired[List[QuestionTypedDict]]
32
+ r"""startup questions in the search"""
33
+ target_clusters: NotRequired[List[ClusterIDTypedDict]]
34
+ r"""active clusters in the search"""
35
+
36
+
37
+ class GHSearchResult(BaseModel):
38
+ r"""Success"""
39
+
40
+ casebase: Optional[Casebase] = None
41
+
42
+ action_search: Annotated[
43
+ Optional[List[ActionSearch]], pydantic.Field(alias="actionSearch")
44
+ ] = None
45
+ r"""actions in the search"""
46
+
47
+ answered_question: Annotated[
48
+ Optional[List[AnsweredQuestion]], pydantic.Field(alias="answeredQuestion")
49
+ ] = None
50
+ r"""questions answered in the search"""
51
+
52
+ case_search: Annotated[
53
+ Optional[List[CaseSearch]], pydantic.Field(alias="caseSearch")
54
+ ] = None
55
+ r"""cases in the search"""
56
+
57
+ dynamic_search: Annotated[
58
+ Optional[List[DynamicSearch]], pydantic.Field(alias="dynamicSearch")
59
+ ] = None
60
+ r"""dynamic cases in the search"""
61
+
62
+ unanswered_question: Annotated[
63
+ Optional[List[Question]], pydantic.Field(alias="unansweredQuestion")
64
+ ] = None
65
+ r"""unanswered questions in the search"""
66
+
67
+ startup_question: Annotated[
68
+ Optional[List[Question]], pydantic.Field(alias="startupQuestion")
69
+ ] = None
70
+ r"""startup questions in the search"""
71
+
72
+ target_clusters: Annotated[
73
+ Optional[List[ClusterID]], pydantic.Field(alias="targetClusters")
74
+ ] = None
75
+ r"""active clusters in the search"""
@@ -0,0 +1,64 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .questionandanswer import QuestionAndAnswer, QuestionAndAnswerTypedDict
5
+ from .sessioncontextvariable import (
6
+ SessionContextVariable,
7
+ SessionContextVariableTypedDict,
8
+ )
9
+ from egain_api_python.types import BaseModel
10
+ import pydantic
11
+ from typing import List, Optional
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class GHStepSearchRequestTypedDict(TypedDict):
16
+ casebase_id: str
17
+ r"""The numerical ID of the Casebase."""
18
+ questions: List[QuestionAndAnswerTypedDict]
19
+ r"""Pre-answered Questions in Guided Help search"""
20
+ profile_id: NotRequired[str]
21
+ r"""The ID of the guided help profile.<br>
22
+ 1 will always be the **system profile**.
23
+
24
+ """
25
+ session_variable: NotRequired[List[SessionContextVariableTypedDict]]
26
+ r"""Session variables used to give Guided Help additional context."""
27
+ start_over: NotRequired[bool]
28
+ r"""Restart the current Guided Help search with the existing context along with session variable context."""
29
+ use_live_release: NotRequired[bool]
30
+ r"""Use current live release snapshot of the Casebase otherwise use the authoring release."""
31
+ ghs_article_id: NotRequired[str]
32
+ r"""Numeric ID of the guided help session article used for starting search."""
33
+
34
+
35
+ class GHStepSearchRequest(BaseModel):
36
+ casebase_id: Annotated[str, pydantic.Field(alias="casebaseId")]
37
+ r"""The numerical ID of the Casebase."""
38
+
39
+ questions: List[QuestionAndAnswer]
40
+ r"""Pre-answered Questions in Guided Help search"""
41
+
42
+ profile_id: Annotated[Optional[str], pydantic.Field(alias="profileId")] = None
43
+ r"""The ID of the guided help profile.<br>
44
+ 1 will always be the **system profile**.
45
+
46
+ """
47
+
48
+ session_variable: Annotated[
49
+ Optional[List[SessionContextVariable]], pydantic.Field(alias="sessionVariable")
50
+ ] = None
51
+ r"""Session variables used to give Guided Help additional context."""
52
+
53
+ start_over: Annotated[Optional[bool], pydantic.Field(alias="startOver")] = None
54
+ r"""Restart the current Guided Help search with the existing context along with session variable context."""
55
+
56
+ use_live_release: Annotated[
57
+ Optional[bool], pydantic.Field(alias="useLiveRelease")
58
+ ] = None
59
+ r"""Use current live release snapshot of the Casebase otherwise use the authoring release."""
60
+
61
+ ghs_article_id: Annotated[Optional[str], pydantic.Field(alias="ghsArticleId")] = (
62
+ None
63
+ )
64
+ r"""Numeric ID of the guided help session article used for starting search."""
@@ -0,0 +1,17 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .link import Link, LinkTypedDict
5
+ from egain_api_python.types import BaseModel
6
+ from typing import Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class ImageTypedDict(TypedDict):
11
+ link: NotRequired[LinkTypedDict]
12
+ r"""Defines the relationship between this resource and another object."""
13
+
14
+
15
+ class Image(BaseModel):
16
+ link: Optional[Link] = None
17
+ r"""Defines the relationship between this resource and another object."""
@@ -0,0 +1,79 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from datetime import datetime
5
+ from egain_api_python.types import BaseModel
6
+ import pydantic
7
+ from typing import Literal, Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ ImportContentType = Literal[
12
+ "AWS S3 bucket",
13
+ "Shared file path",
14
+ ]
15
+ r"""Type of data source"""
16
+
17
+
18
+ class ImportContentCredentialsTypedDict(TypedDict):
19
+ access_key: NotRequired[str]
20
+ secret_key: NotRequired[str]
21
+
22
+
23
+ class ImportContentCredentials(BaseModel):
24
+ access_key: Annotated[Optional[str], pydantic.Field(alias="accessKey")] = None
25
+
26
+ secret_key: Annotated[Optional[str], pydantic.Field(alias="secretKey")] = None
27
+
28
+
29
+ class ImportContentDataSourceTypedDict(TypedDict):
30
+ type: ImportContentType
31
+ r"""Type of data source"""
32
+ path: str
33
+ r"""Path of the data source"""
34
+ region: NotRequired[str]
35
+ r"""Region of the data source"""
36
+ credentials: NotRequired[ImportContentCredentialsTypedDict]
37
+
38
+
39
+ class ImportContentDataSource(BaseModel):
40
+ type: ImportContentType
41
+ r"""Type of data source"""
42
+
43
+ path: str
44
+ r"""Path of the data source"""
45
+
46
+ region: Optional[str] = None
47
+ r"""Region of the data source"""
48
+
49
+ credentials: Optional[ImportContentCredentials] = None
50
+
51
+
52
+ Operation = Literal[
53
+ "import",
54
+ "reimport",
55
+ ]
56
+
57
+
58
+ class ScheduleTimeTypedDict(TypedDict):
59
+ date_: datetime
60
+
61
+
62
+ class ScheduleTime(BaseModel):
63
+ date_: Annotated[datetime, pydantic.Field(alias="date")]
64
+
65
+
66
+ class ImportContentTypedDict(TypedDict):
67
+ data_source: ImportContentDataSourceTypedDict
68
+ operation: Operation
69
+ schedule_time: NotRequired[ScheduleTimeTypedDict]
70
+
71
+
72
+ class ImportContent(BaseModel):
73
+ data_source: Annotated[ImportContentDataSource, pydantic.Field(alias="dataSource")]
74
+
75
+ operation: Operation
76
+
77
+ schedule_time: Annotated[
78
+ Optional[ScheduleTime], pydantic.Field(alias="scheduleTime")
79
+ ] = None
@@ -0,0 +1,29 @@
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
+ ImportStatusStatus = Literal[
11
+ "Scheduled",
12
+ "In Progress",
13
+ "Successful",
14
+ "Failed",
15
+ "Cancelled",
16
+ ]
17
+
18
+
19
+ class ImportStatusTypedDict(TypedDict):
20
+ status: ImportStatusStatus
21
+ log_file_location: NotRequired[str]
22
+
23
+
24
+ class ImportStatus(BaseModel):
25
+ status: ImportStatusStatus
26
+
27
+ log_file_location: Annotated[
28
+ Optional[str], pydantic.Field(alias="logFileLocation")
29
+ ] = None
@@ -0,0 +1,63 @@
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
+ from typing import Literal, Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ Name = Literal[
10
+ "English (United States)",
11
+ "English (United Kingdom)",
12
+ "French (France)",
13
+ "Spanish (Spain)",
14
+ "Italian (Italy)",
15
+ "German (Germany)",
16
+ "Dutch (Netherlands)",
17
+ "Portuguese (Brazil)",
18
+ "Portuguese (Portugal)",
19
+ "Danish (Denmark)",
20
+ "Swedish (Sweden)",
21
+ "Russian (Russia)",
22
+ "French (Canada)",
23
+ "Chinese (Simplified)",
24
+ "Japanese (Japan)",
25
+ "Korean (South Korea)",
26
+ ]
27
+ r"""Name of the language."""
28
+
29
+
30
+ KbLanguageCode1 = Literal[
31
+ "en-US",
32
+ "en-GB",
33
+ "fr-FR",
34
+ "es-ES",
35
+ "it-IT",
36
+ "de-DE",
37
+ "nl-NL",
38
+ "pt-BR",
39
+ "pt-PT",
40
+ "da-DK",
41
+ "sv-SE",
42
+ "ru-RU",
43
+ "fr-CA",
44
+ "zh-CN",
45
+ "ja-JP",
46
+ "ko-KR",
47
+ ]
48
+ r"""IETF code of the language."""
49
+
50
+
51
+ class KbLanguageTypedDict(TypedDict):
52
+ name: NotRequired[Name]
53
+ r"""Name of the language."""
54
+ code: NotRequired[KbLanguageCode1]
55
+ r"""IETF code of the language."""
56
+
57
+
58
+ class KbLanguage(BaseModel):
59
+ name: Optional[Name] = None
60
+ r"""Name of the language."""
61
+
62
+ code: Optional[KbLanguageCode1] = None
63
+ r"""IETF code of the language."""