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,26 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .comment import Comment, CommentTypedDict
5
+ from egain_api_python.types import BaseModel
6
+ from typing import List, Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class CommentsTypedDict(TypedDict):
11
+ r"""This schema contains the definition of an array of comments."""
12
+
13
+ count: NotRequired[int]
14
+ r"""The number of comments."""
15
+ comments: NotRequired[List[CommentTypedDict]]
16
+ r"""The list of comments."""
17
+
18
+
19
+ class Comments(BaseModel):
20
+ r"""This schema contains the definition of an array of comments."""
21
+
22
+ count: Optional[int] = None
23
+ r"""The number of comments."""
24
+
25
+ comments: Optional[List[Comment]] = None
26
+ r"""The list of comments."""
@@ -0,0 +1,44 @@
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, PathParamMetadata
7
+ import pydantic
8
+ from typing_extensions import Annotated, TypedDict
9
+
10
+
11
+ class CompleteCustomerEscalationRequestTypedDict(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
+ portal_id: str
15
+ 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."""
16
+ escalation_id: str
17
+ r"""The ID (uuid) of the customer escalation.
18
+
19
+ """
20
+
21
+
22
+ class CompleteCustomerEscalationRequest(BaseModel):
23
+ accept_language: Annotated[
24
+ AcceptLanguage,
25
+ pydantic.Field(alias="Accept-Language"),
26
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
27
+ ]
28
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
29
+
30
+ portal_id: Annotated[
31
+ str,
32
+ pydantic.Field(alias="portalID"),
33
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
34
+ ]
35
+ 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."""
36
+
37
+ escalation_id: Annotated[
38
+ str,
39
+ pydantic.Field(alias="escalationId"),
40
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
41
+ ]
42
+ r"""The ID (uuid) of the customer escalation.
43
+
44
+ """
@@ -0,0 +1,166 @@
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 .complianceforarticle import ComplianceForArticle, ComplianceForArticleTypedDict
6
+ from .createdby import CreatedBy, CreatedByTypedDict
7
+ from .customattribute import CustomAttribute, CustomAttributeTypedDict
8
+ from .languagecode import LanguageCode
9
+ from .link import Link, LinkTypedDict
10
+ from .modifiedby import ModifiedBy, ModifiedByTypedDict
11
+ from .ownedby import OwnedBy, OwnedByTypedDict
12
+ from .personalization import Personalization, PersonalizationTypedDict
13
+ from .topicbreadcrumb import TopicBreadcrumb, TopicBreadcrumbTypedDict
14
+ from .workflow import Workflow, WorkflowTypedDict
15
+ from egain_api_python.types import BaseModel
16
+ import pydantic
17
+ from typing import List, Optional
18
+ from typing_extensions import Annotated, NotRequired, TypedDict
19
+
20
+
21
+ class ComplianceArticleResultTypedDict(TypedDict):
22
+ r"""Article search result, a subset of Article that does not contain content and contentText."""
23
+
24
+ id: NotRequired[str]
25
+ r"""The ID of the Article.<br>An Article ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
26
+ article_type: NotRequired[ArticleTypeTypedDict]
27
+ r"""The type of the Article and its attributes."""
28
+ article_keywords: NotRequired[str]
29
+ r"""A comma-separated list of keywords associated with this Article. 1 KB max size limit."""
30
+ article_summary: NotRequired[str]
31
+ r"""A brief summary of the Article, provided as metadata. 1 KB max size limit."""
32
+ average_rating: NotRequired[float]
33
+ r"""The average rating of the Article."""
34
+ created_by: NotRequired[CreatedByTypedDict]
35
+ modified_by: NotRequired[ModifiedByTypedDict]
36
+ owned_by: NotRequired[OwnedByTypedDict]
37
+ created_date: NotRequired[str]
38
+ custom_attributes: NotRequired[List[CustomAttributeTypedDict]]
39
+ r"""A list of custom attributes."""
40
+ description: NotRequired[str]
41
+ r"""A description of the Article. The maximum allowed Article description size is 1 KB."""
42
+ has_attachments: NotRequired[bool]
43
+ r"""Indicates whether the Article has any attachments."""
44
+ is_subscribed: NotRequired[bool]
45
+ r"""Indicates whether the Article is subscribed for notifications."""
46
+ modified_date: NotRequired[str]
47
+ r"""The date on which the Article was last modified."""
48
+ update_summary: NotRequired[str]
49
+ r"""Summary of latest update change to article."""
50
+ language_code: NotRequired[LanguageCode]
51
+ r"""Language code of the resource's language."""
52
+ link: NotRequired[LinkTypedDict]
53
+ r"""Defines the relationship between this resource and another object."""
54
+ image_url: NotRequired[str]
55
+ r"""The URL of the image that is present in the Article version. It is used as the thumbnail image for the Article."""
56
+ name: NotRequired[str]
57
+ r"""The name of the Article."""
58
+ times_rated: NotRequired[int]
59
+ r"""The number of times that this Article has been rated."""
60
+ topic_breadcrumb: NotRequired[List[TopicBreadcrumbTypedDict]]
61
+ r"""A list of topics from the root topic to this Article. There may be multiple paths."""
62
+ version_id: NotRequired[str]
63
+ r"""The ID of this version of the Article."""
64
+ workflow: NotRequired[WorkflowTypedDict]
65
+ r"""The Article's workflow."""
66
+ compliance: NotRequired[ComplianceForArticleTypedDict]
67
+ r"""This schema contains the compliance details for an Article."""
68
+ personalization: NotRequired[PersonalizationTypedDict]
69
+ r"""Personalization allows the filtering of search results and controls the access to articles and article editions."""
70
+
71
+
72
+ class ComplianceArticleResult(BaseModel):
73
+ r"""Article search result, a subset of Article that does not contain content and contentText."""
74
+
75
+ id: Optional[str] = None
76
+ r"""The ID of the Article.<br>An Article ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
77
+
78
+ article_type: Annotated[
79
+ Optional[ArticleType], pydantic.Field(alias="articleType")
80
+ ] = None
81
+ r"""The type of the Article and its attributes."""
82
+
83
+ article_keywords: Annotated[
84
+ Optional[str], pydantic.Field(alias="articleKeywords")
85
+ ] = None
86
+ r"""A comma-separated list of keywords associated with this Article. 1 KB max size limit."""
87
+
88
+ article_summary: Annotated[
89
+ Optional[str], pydantic.Field(alias="articleSummary")
90
+ ] = None
91
+ r"""A brief summary of the Article, provided as metadata. 1 KB max size limit."""
92
+
93
+ average_rating: Annotated[
94
+ Optional[float], pydantic.Field(alias="averageRating")
95
+ ] = None
96
+ r"""The average rating of the Article."""
97
+
98
+ created_by: Annotated[Optional[CreatedBy], pydantic.Field(alias="createdBy")] = None
99
+
100
+ modified_by: Annotated[Optional[ModifiedBy], pydantic.Field(alias="modifiedBy")] = (
101
+ None
102
+ )
103
+
104
+ owned_by: Annotated[Optional[OwnedBy], pydantic.Field(alias="ownedBy")] = None
105
+
106
+ created_date: Annotated[Optional[str], pydantic.Field(alias="createdDate")] = None
107
+
108
+ custom_attributes: Annotated[
109
+ Optional[List[CustomAttribute]], pydantic.Field(alias="customAttributes")
110
+ ] = None
111
+ r"""A list of custom attributes."""
112
+
113
+ description: Optional[str] = None
114
+ r"""A description of the Article. The maximum allowed Article description size is 1 KB."""
115
+
116
+ has_attachments: Annotated[
117
+ Optional[bool], pydantic.Field(alias="hasAttachments")
118
+ ] = None
119
+ r"""Indicates whether the Article has any attachments."""
120
+
121
+ is_subscribed: Annotated[Optional[bool], pydantic.Field(alias="isSubscribed")] = (
122
+ None
123
+ )
124
+ r"""Indicates whether the Article is subscribed for notifications."""
125
+
126
+ modified_date: Annotated[Optional[str], pydantic.Field(alias="modifiedDate")] = None
127
+ r"""The date on which the Article was last modified."""
128
+
129
+ update_summary: Annotated[Optional[str], pydantic.Field(alias="updateSummary")] = (
130
+ None
131
+ )
132
+ r"""Summary of latest update change to article."""
133
+
134
+ language_code: Annotated[
135
+ Optional[LanguageCode], pydantic.Field(alias="languageCode")
136
+ ] = None
137
+ r"""Language code of the resource's language."""
138
+
139
+ link: Optional[Link] = None
140
+ r"""Defines the relationship between this resource and another object."""
141
+
142
+ image_url: Annotated[Optional[str], pydantic.Field(alias="imageURL")] = None
143
+ r"""The URL of the image that is present in the Article version. It is used as the thumbnail image for the Article."""
144
+
145
+ name: Optional[str] = None
146
+ r"""The name of the Article."""
147
+
148
+ times_rated: Annotated[Optional[int], pydantic.Field(alias="timesRated")] = None
149
+ r"""The number of times that this Article has been rated."""
150
+
151
+ topic_breadcrumb: Annotated[
152
+ Optional[List[TopicBreadcrumb]], pydantic.Field(alias="topicBreadcrumb")
153
+ ] = None
154
+ r"""A list of topics from the root topic to this Article. There may be multiple paths."""
155
+
156
+ version_id: Annotated[Optional[str], pydantic.Field(alias="versionId")] = None
157
+ r"""The ID of this version of the Article."""
158
+
159
+ workflow: Optional[Workflow] = None
160
+ r"""The Article's workflow."""
161
+
162
+ compliance: Optional[ComplianceForArticle] = None
163
+ r"""This schema contains the compliance details for an Article."""
164
+
165
+ personalization: Optional[Personalization] = None
166
+ r"""Personalization allows the filtering of search results and controls the access to articles and article editions."""
@@ -0,0 +1,22 @@
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
+ ComplianceArticleResultAdditionalAttributes = Literal[
8
+ "averageRating",
9
+ "articleSummary",
10
+ "customAttributes",
11
+ "description",
12
+ "imageURL",
13
+ "isSubscribed",
14
+ "timesRated",
15
+ "topicBreadcrumb",
16
+ "ownedBy",
17
+ "ownedBy.userName",
18
+ "workflow",
19
+ "compliance",
20
+ "personalization",
21
+ "all",
22
+ ]
@@ -0,0 +1,35 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .compliancearticleresult import (
5
+ ComplianceArticleResult,
6
+ ComplianceArticleResultTypedDict,
7
+ )
8
+ from .paginationinfo import PaginationInfo, PaginationInfoTypedDict
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 ComplianceArticleResultsTypedDict(TypedDict):
16
+ r"""One or more instances of Compliance Article."""
17
+
18
+ article: NotRequired[List[ComplianceArticleResultTypedDict]]
19
+ r"""Article details
20
+
21
+ """
22
+ pagination_info: NotRequired[PaginationInfoTypedDict]
23
+
24
+
25
+ class ComplianceArticleResults(BaseModel):
26
+ r"""One or more instances of Compliance Article."""
27
+
28
+ article: Optional[List[ComplianceArticleResult]] = None
29
+ r"""Article details
30
+
31
+ """
32
+
33
+ pagination_info: Annotated[
34
+ Optional[PaginationInfo], pydantic.Field(alias="paginationInfo")
35
+ ] = None
@@ -0,0 +1,59 @@
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 Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class StartDateDateAndTimeTypedDict(TypedDict):
12
+ r"""The start date for the Article."""
13
+
14
+ date_: datetime
15
+ r"""The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>."""
16
+
17
+
18
+ class StartDateDateAndTime(BaseModel):
19
+ r"""The start date for the Article."""
20
+
21
+ date_: Annotated[datetime, pydantic.Field(alias="date")]
22
+ r"""The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>."""
23
+
24
+
25
+ class DueDateDateAndTimeTypedDict(TypedDict):
26
+ r"""The end date for the Article."""
27
+
28
+ date_: datetime
29
+ r"""The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>."""
30
+
31
+
32
+ class DueDateDateAndTime(BaseModel):
33
+ r"""The end date for the Article."""
34
+
35
+ date_: Annotated[datetime, pydantic.Field(alias="date")]
36
+ r"""The date in the format <code>YYYY-MM-DDTHH:MM:SS</code>."""
37
+
38
+
39
+ class ComplianceForArticleTypedDict(TypedDict):
40
+ r"""This schema contains the compliance details for an Article."""
41
+
42
+ start_date: NotRequired[StartDateDateAndTimeTypedDict]
43
+ r"""The start date for the Article."""
44
+ due_date: NotRequired[DueDateDateAndTimeTypedDict]
45
+ r"""The end date for the Article."""
46
+
47
+
48
+ class ComplianceForArticle(BaseModel):
49
+ r"""This schema contains the compliance details for an Article."""
50
+
51
+ start_date: Annotated[
52
+ Optional[StartDateDateAndTime], pydantic.Field(alias="startDate")
53
+ ] = None
54
+ r"""The start date for the Article."""
55
+
56
+ due_date: Annotated[
57
+ Optional[DueDateDateAndTime], pydantic.Field(alias="dueDate")
58
+ ] = None
59
+ r"""The end date for the Article."""
@@ -0,0 +1,40 @@
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, PathParamMetadata
7
+ import pydantic
8
+ from typing_extensions import Annotated, TypedDict
9
+
10
+
11
+ class ComplyArticleRequestTypedDict(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
+ portal_id: str
15
+ 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."""
16
+ article_id: str
17
+ 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."""
18
+
19
+
20
+ class ComplyArticleRequest(BaseModel):
21
+ accept_language: Annotated[
22
+ AcceptLanguage,
23
+ pydantic.Field(alias="Accept-Language"),
24
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
25
+ ]
26
+ r"""The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses)."""
27
+
28
+ portal_id: Annotated[
29
+ str,
30
+ pydantic.Field(alias="portalID"),
31
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
32
+ ]
33
+ 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."""
34
+
35
+ article_id: Annotated[
36
+ str,
37
+ pydantic.Field(alias="articleID"),
38
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
39
+ ]
40
+ 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."""
@@ -0,0 +1,25 @@
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 Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class ComponentsSchemasTagTypedDict(TypedDict):
10
+ r"""Tag"""
11
+
12
+ name: NotRequired[str]
13
+ r"""Name of the Tag"""
14
+ id: NotRequired[str]
15
+ r"""The ID of the Tag .<br>A Tag ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
16
+
17
+
18
+ class ComponentsSchemasTag(BaseModel):
19
+ r"""Tag"""
20
+
21
+ name: Optional[str] = None
22
+ r"""Name of the Tag"""
23
+
24
+ id: Optional[str] = None
25
+ r"""The ID of the Tag .<br>A Tag ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
@@ -0,0 +1,39 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .components_schemas_tag import ComponentsSchemasTag, ComponentsSchemasTagTypedDict
5
+ from .components_schemas_taggroup import (
6
+ ComponentsSchemasTagGroup,
7
+ ComponentsSchemasTagGroupTypedDict,
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 ComponentsSchemasTagCategoryTypedDict(TypedDict):
16
+ r"""Tag Categories for Interest configured for a portal."""
17
+
18
+ name: NotRequired[str]
19
+ r"""Name of the Tag Category"""
20
+ id: NotRequired[str]
21
+ r"""The ID of the Tag Category.<br>A Tag Category ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
22
+ tag: NotRequired[List[ComponentsSchemasTagTypedDict]]
23
+ tag_group: NotRequired[List[ComponentsSchemasTagGroupTypedDict]]
24
+
25
+
26
+ class ComponentsSchemasTagCategory(BaseModel):
27
+ r"""Tag Categories for Interest configured for a portal."""
28
+
29
+ name: Optional[str] = None
30
+ r"""Name of the Tag Category"""
31
+
32
+ id: Optional[str] = None
33
+ r"""The ID of the Tag Category.<br>A Tag Category ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
34
+
35
+ tag: Optional[List[ComponentsSchemasTag]] = None
36
+
37
+ tag_group: Annotated[
38
+ Optional[List[ComponentsSchemasTagGroup]], pydantic.Field(alias="tagGroup")
39
+ ] = None
@@ -0,0 +1,25 @@
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 Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class ComponentsSchemasTagGroupTypedDict(TypedDict):
10
+ r"""Group of Tags"""
11
+
12
+ name: NotRequired[str]
13
+ r"""Name of the Tag Group"""
14
+ id: NotRequired[str]
15
+ r"""The ID of the Tag Group.<br>A Tag Group ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
16
+
17
+
18
+ class ComponentsSchemasTagGroup(BaseModel):
19
+ r"""Group of Tags"""
20
+
21
+ name: Optional[str] = None
22
+ r"""Name of the Tag Group"""
23
+
24
+ id: Optional[str] = None
25
+ r"""The ID of the Tag Group.<br>A Tag Group ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits."""
@@ -0,0 +1,25 @@
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_extensions import TypedDict
6
+
7
+
8
+ class ConfigurableAttributeTypedDict(TypedDict):
9
+ name: str
10
+ r"""The name of the attribute."""
11
+ mandatory: bool
12
+ r"""Indicates if the attribute is mandatory."""
13
+ editable: bool
14
+ r"""Indicates if the attribute is editable."""
15
+
16
+
17
+ class ConfigurableAttribute(BaseModel):
18
+ name: str
19
+ r"""The name of the attribute."""
20
+
21
+ mandatory: bool
22
+ r"""Indicates if the attribute is mandatory."""
23
+
24
+ editable: bool
25
+ r"""Indicates if the attribute is editable."""
@@ -0,0 +1,15 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .configurableattribute import ConfigurableAttribute, ConfigurableAttributeTypedDict
5
+ from egain_api_python.types import BaseModel
6
+ from typing import List, Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class ConfigurableAttributesTypedDict(TypedDict):
11
+ attribute: NotRequired[List[ConfigurableAttributeTypedDict]]
12
+
13
+
14
+ class ConfigurableAttributes(BaseModel):
15
+ attribute: Optional[List[ConfigurableAttribute]] = None
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .email import Email, EmailTypedDict
5
+ from .phone import Phone, PhoneTypedDict
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 ContactPersonTypedDict(TypedDict):
13
+ r"""ContactPerson"""
14
+
15
+ first_name: str
16
+ r"""First name of the customer"""
17
+ email: List[EmailTypedDict]
18
+ r"""Email details"""
19
+ middle_name: NotRequired[str]
20
+ r"""Middle name of the customer"""
21
+ last_name: NotRequired[str]
22
+ r"""Last name of the customer"""
23
+ phone: NotRequired[List[PhoneTypedDict]]
24
+ r"""Phone details"""
25
+
26
+
27
+ class ContactPerson(BaseModel):
28
+ r"""ContactPerson"""
29
+
30
+ first_name: Annotated[str, pydantic.Field(alias="firstName")]
31
+ r"""First name of the customer"""
32
+
33
+ email: List[Email]
34
+ r"""Email details"""
35
+
36
+ middle_name: Annotated[Optional[str], pydantic.Field(alias="middleName")] = None
37
+ r"""Middle name of the customer"""
38
+
39
+ last_name: Annotated[Optional[str], pydantic.Field(alias="lastName")] = None
40
+ r"""Last name of the customer"""
41
+
42
+ phone: Optional[List[Phone]] = None
43
+ r"""Phone details"""
@@ -0,0 +1,21 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .contactperson import ContactPerson, ContactPersonTypedDict
5
+ from egain_api_python.types import BaseModel
6
+ from typing import List, Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class ContactsTypedDict(TypedDict):
11
+ r"""Contacts"""
12
+
13
+ contact: NotRequired[List[ContactPersonTypedDict]]
14
+ r"""Contact Person"""
15
+
16
+
17
+ class Contacts(BaseModel):
18
+ r"""Contacts"""
19
+
20
+ contact: Optional[List[ContactPerson]] = None
21
+ r"""Contact Person"""
@@ -0,0 +1,64 @@
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
+ UserType = Literal[
11
+ "customer",
12
+ "agent",
13
+ ]
14
+ r"""The type of the user associated with the bookmark."""
15
+
16
+
17
+ class CreateBookmarkTypedDict(TypedDict):
18
+ resource_id: NotRequired[str]
19
+ r"""The ID of the article or topic associated with this bookmark. A case ID or an article ID is composed of a 2-4 letter prefix, followed by a dash and 15 digits.<br><br>This attribute must be provided if <code>resourceType</code> is set to \"1 - Article\" or \"2 - Topic\"."""
20
+ user_id: NotRequired[str]
21
+ r"""The ID of the user associated with the bookmark."""
22
+ user_type: NotRequired[UserType]
23
+ r"""The type of the user associated with the bookmark."""
24
+ bookmark_name: NotRequired[str]
25
+ r"""The name of the bookmark."""
26
+ resource_type: NotRequired[int]
27
+ r"""Determines the type of resource:
28
+ <li>1 - Article</li>
29
+ <li>2 - Topic</li>
30
+ <li>3 - External Content</li>
31
+ """
32
+ resource_name: NotRequired[str]
33
+ r"""The name of the resource associated with the bookmark.<br><br>This attribute is only available for article and topic bookmarks."""
34
+ external_content_id: NotRequired[str]
35
+ r"""The ID of the external content.<br><br>This attribute must be provided if <code>resourceType</code> is set to \"3 - External Content\"."""
36
+
37
+
38
+ class CreateBookmark(BaseModel):
39
+ resource_id: Annotated[Optional[str], pydantic.Field(alias="resourceId")] = None
40
+ r"""The ID of the article or topic associated with this bookmark. A case ID or an article ID is composed of a 2-4 letter prefix, followed by a dash and 15 digits.<br><br>This attribute must be provided if <code>resourceType</code> is set to \"1 - Article\" or \"2 - Topic\"."""
41
+
42
+ user_id: Annotated[Optional[str], pydantic.Field(alias="userId")] = None
43
+ r"""The ID of the user associated with the bookmark."""
44
+
45
+ user_type: Annotated[Optional[UserType], pydantic.Field(alias="userType")] = None
46
+ r"""The type of the user associated with the bookmark."""
47
+
48
+ bookmark_name: Annotated[Optional[str], pydantic.Field(alias="bookmarkName")] = None
49
+ r"""The name of the bookmark."""
50
+
51
+ resource_type: Annotated[Optional[int], pydantic.Field(alias="resourceType")] = None
52
+ r"""Determines the type of resource:
53
+ <li>1 - Article</li>
54
+ <li>2 - Topic</li>
55
+ <li>3 - External Content</li>
56
+ """
57
+
58
+ resource_name: Annotated[Optional[str], pydantic.Field(alias="resourceName")] = None
59
+ r"""The name of the resource associated with the bookmark.<br><br>This attribute is only available for article and topic bookmarks."""
60
+
61
+ external_content_id: Annotated[
62
+ Optional[str], pydantic.Field(alias="externalContentId")
63
+ ] = None
64
+ r"""The ID of the external content.<br><br>This attribute must be provided if <code>resourceType</code> is set to \"3 - External Content\"."""