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,487 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from egain_api_python import errors, models, utils
5
+ from egain_api_python._hooks import HookContext
6
+ from egain_api_python.types import OptionalNullable, UNSET
7
+ from egain_api_python.utils import get_security_from_env
8
+ from egain_api_python.utils.unmarshal_json_response import unmarshal_json_response
9
+ from typing import Any, List, Mapping, Optional, Union
10
+
11
+
12
+ class Export(BaseSDK):
13
+ def export_content(
14
+ self,
15
+ *,
16
+ portal_id: str,
17
+ language: Union[
18
+ models.KnowledgeExportLanguage, models.KnowledgeExportLanguageTypedDict
19
+ ],
20
+ resource_types: List[models.KnowledgeExportResourceType],
21
+ data_destination: Union[
22
+ models.DataDestination, models.DataDestinationTypedDict
23
+ ],
24
+ article_categories: Optional[models.ArticleCategories] = "searchable",
25
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
26
+ server_url: Optional[str] = None,
27
+ timeout_ms: Optional[int] = None,
28
+ http_headers: Optional[Mapping[str, str]] = None,
29
+ ) -> models.ExportContentResponse:
30
+ r"""Export Knowledge
31
+
32
+ ## Overview
33
+ The Content Export API initiates a bulk export of the Knowledge Hub to a client-provided Amazon S3 bucket or SFTP server path.
34
+ It returns a URL with a Job ID to enable tracking the status of this asynchronous operation.
35
+ Each export job can send multiple JSON files, depending on the total number of items to process.
36
+ More than one bulk export can take place, as needed, one per portal.
37
+
38
+ ## Permission
39
+ * Only a client application can invoke this API.
40
+
41
+
42
+ :param portal_id: 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.
43
+ :param language: The Knowledge Base language in which the content is created.
44
+ :param resource_types: Types of Knowledge Hub resources to export. Multiple values can be specified using a comma-separated list. Details of a single portal are exported. Articles whose state is Published are returned. | Portal Attribute Name | Description | ------------------------------- | ----------- | id | The ID of the Portal in Readable format. | alternateId | The system-generated ID of the Portal in long format. | name | The name of the Portal. | description | The Portal's description. | departmentId | ID of the department this Portal belongs to. | defaultContentLanguageId | The default ID of the language for the portal content. | Topic Attribute Name | Description | ------------------------------ | ----------- | id | The ID of the Topic in Readable form. | alternateId | The system-generated ID of the Topic in long form. | name | The name of the Topic. | departmentId | ID of the department this Topic belongs to. | modifiedDate | The date when the Topic was last modified on. | topicHomeArticleId | The ID of the Article used as the home page of this Topic. | childCount | Total number of children sub-topis below the current Topic. | subTopicIds | Array with the list of sub-topics (all levels of the topic hierarchy). | parentTopicId | ID of the parent Topic. -1 if it is the root Topic. | imageURL | URL of the inline Topic image. | customAttributes | One or more comma-separated names for Topic custom attributes defined by the user to be returned. | Article Attribute Name | Description | ---------------------- | ----------- | id | The ID of the Article in Readable form. | alternateId | The system-generated ID of the Article in long form. | name | The name of the Article. | additionalInfo | Additional information provided as Article metadata. | type | The Article type object and its attributes. | keywords | A comma-separated list of keywords associated with this Article, provided as metadata. | summary | A brief summary of the Article, provided as metadata. | state | The state of the Article. State P (Published). | departmentId | ID of the department this Article belongs to. | description | The description of the Article. | imageURL | The URL of the image that is present in the Article version. It is used as the thumbnail image for the Article. | attachements | The Article's uploaded attachments and their IDs. | includeInGenAI | Indicates whether this Article is used for eGain's generative AI features. | topicBreadcrumb | Contains a list of topics from the top-level topic to this Article. There may be multiple paths. | versionId | The ID of the Article version that is returned. | expirationDate | The date that the Article is set to expire. | averageRating | Average rating of the Article. | timesRated | Number or times the Article was rated. | availabilityDate | The date the Article is set to be available. | articleMacro | The macro of the Article. | content | path to the Article content in .html format. | customAttributes | One or more comma-separated names for Article custom attributes defined by the user to be returned. | personalization | Article personalization details, incuding tag categories. | editions | The editions of the Article, including the publish profile (view) associated with each edition.
45
+ :param data_destination:
46
+ :param article_categories: Category of articles to return. All includes browsable and searchable.
47
+ :param retries: Override the default retry configuration for this method
48
+ :param server_url: Override the default server URL for this method
49
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
50
+ :param http_headers: Additional headers to set or replace on requests.
51
+ """
52
+ base_url = None
53
+ url_variables = None
54
+ if timeout_ms is None:
55
+ timeout_ms = self.sdk_configuration.timeout_ms
56
+
57
+ if server_url is not None:
58
+ base_url = server_url
59
+ else:
60
+ base_url = self._get_url(base_url, url_variables)
61
+
62
+ request = models.KnowledgeExport(
63
+ article_categories=article_categories,
64
+ portal_id=portal_id,
65
+ language=utils.get_pydantic_model(language, models.KnowledgeExportLanguage),
66
+ resource_types=resource_types,
67
+ data_destination=utils.get_pydantic_model(
68
+ data_destination, models.DataDestination
69
+ ),
70
+ )
71
+
72
+ req = self._build_request(
73
+ method="POST",
74
+ path="/content/export",
75
+ base_url=base_url,
76
+ url_variables=url_variables,
77
+ request=request,
78
+ request_body_required=True,
79
+ request_has_path_params=False,
80
+ request_has_query_params=True,
81
+ user_agent_header="user-agent",
82
+ accept_header_value="application/json",
83
+ http_headers=http_headers,
84
+ security=self.sdk_configuration.security,
85
+ get_serialized_body=lambda: utils.serialize_request_body(
86
+ request, False, False, "json", models.KnowledgeExport
87
+ ),
88
+ timeout_ms=timeout_ms,
89
+ )
90
+
91
+ if retries == UNSET:
92
+ if self.sdk_configuration.retry_config is not UNSET:
93
+ retries = self.sdk_configuration.retry_config
94
+
95
+ retry_config = None
96
+ if isinstance(retries, utils.RetryConfig):
97
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
98
+
99
+ http_res = self.do_request(
100
+ hook_ctx=HookContext(
101
+ config=self.sdk_configuration,
102
+ base_url=base_url or "",
103
+ operation_id="exportContent",
104
+ oauth2_scopes=[],
105
+ security_source=get_security_from_env(
106
+ self.sdk_configuration.security, models.Security
107
+ ),
108
+ ),
109
+ request=req,
110
+ error_status_codes=["400", "401", "4XX", "500", "5XX"],
111
+ retry_config=retry_config,
112
+ )
113
+
114
+ response_data: Any = None
115
+ if utils.match_response(http_res, "202", "*"):
116
+ return models.ExportContentResponse(
117
+ headers=utils.get_response_headers(http_res.headers)
118
+ )
119
+ if utils.match_response(http_res, ["400", "401"], "application/json"):
120
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
121
+ raise errors.WSErrorCommon(response_data, http_res)
122
+ if utils.match_response(http_res, "500", "application/json"):
123
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
124
+ raise errors.WSErrorCommon(response_data, http_res)
125
+ if utils.match_response(http_res, "4XX", "*"):
126
+ http_res_text = utils.stream_to_text(http_res)
127
+ raise errors.EgainDefaultError(
128
+ "API error occurred", http_res, http_res_text
129
+ )
130
+ if utils.match_response(http_res, "5XX", "*"):
131
+ http_res_text = utils.stream_to_text(http_res)
132
+ raise errors.EgainDefaultError(
133
+ "API error occurred", http_res, http_res_text
134
+ )
135
+
136
+ raise errors.EgainDefaultError("Unexpected response received", http_res)
137
+
138
+ async def export_content_async(
139
+ self,
140
+ *,
141
+ portal_id: str,
142
+ language: Union[
143
+ models.KnowledgeExportLanguage, models.KnowledgeExportLanguageTypedDict
144
+ ],
145
+ resource_types: List[models.KnowledgeExportResourceType],
146
+ data_destination: Union[
147
+ models.DataDestination, models.DataDestinationTypedDict
148
+ ],
149
+ article_categories: Optional[models.ArticleCategories] = "searchable",
150
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
151
+ server_url: Optional[str] = None,
152
+ timeout_ms: Optional[int] = None,
153
+ http_headers: Optional[Mapping[str, str]] = None,
154
+ ) -> models.ExportContentResponse:
155
+ r"""Export Knowledge
156
+
157
+ ## Overview
158
+ The Content Export API initiates a bulk export of the Knowledge Hub to a client-provided Amazon S3 bucket or SFTP server path.
159
+ It returns a URL with a Job ID to enable tracking the status of this asynchronous operation.
160
+ Each export job can send multiple JSON files, depending on the total number of items to process.
161
+ More than one bulk export can take place, as needed, one per portal.
162
+
163
+ ## Permission
164
+ * Only a client application can invoke this API.
165
+
166
+
167
+ :param portal_id: 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.
168
+ :param language: The Knowledge Base language in which the content is created.
169
+ :param resource_types: Types of Knowledge Hub resources to export. Multiple values can be specified using a comma-separated list. Details of a single portal are exported. Articles whose state is Published are returned. | Portal Attribute Name | Description | ------------------------------- | ----------- | id | The ID of the Portal in Readable format. | alternateId | The system-generated ID of the Portal in long format. | name | The name of the Portal. | description | The Portal's description. | departmentId | ID of the department this Portal belongs to. | defaultContentLanguageId | The default ID of the language for the portal content. | Topic Attribute Name | Description | ------------------------------ | ----------- | id | The ID of the Topic in Readable form. | alternateId | The system-generated ID of the Topic in long form. | name | The name of the Topic. | departmentId | ID of the department this Topic belongs to. | modifiedDate | The date when the Topic was last modified on. | topicHomeArticleId | The ID of the Article used as the home page of this Topic. | childCount | Total number of children sub-topis below the current Topic. | subTopicIds | Array with the list of sub-topics (all levels of the topic hierarchy). | parentTopicId | ID of the parent Topic. -1 if it is the root Topic. | imageURL | URL of the inline Topic image. | customAttributes | One or more comma-separated names for Topic custom attributes defined by the user to be returned. | Article Attribute Name | Description | ---------------------- | ----------- | id | The ID of the Article in Readable form. | alternateId | The system-generated ID of the Article in long form. | name | The name of the Article. | additionalInfo | Additional information provided as Article metadata. | type | The Article type object and its attributes. | keywords | A comma-separated list of keywords associated with this Article, provided as metadata. | summary | A brief summary of the Article, provided as metadata. | state | The state of the Article. State P (Published). | departmentId | ID of the department this Article belongs to. | description | The description of the Article. | imageURL | The URL of the image that is present in the Article version. It is used as the thumbnail image for the Article. | attachements | The Article's uploaded attachments and their IDs. | includeInGenAI | Indicates whether this Article is used for eGain's generative AI features. | topicBreadcrumb | Contains a list of topics from the top-level topic to this Article. There may be multiple paths. | versionId | The ID of the Article version that is returned. | expirationDate | The date that the Article is set to expire. | averageRating | Average rating of the Article. | timesRated | Number or times the Article was rated. | availabilityDate | The date the Article is set to be available. | articleMacro | The macro of the Article. | content | path to the Article content in .html format. | customAttributes | One or more comma-separated names for Article custom attributes defined by the user to be returned. | personalization | Article personalization details, incuding tag categories. | editions | The editions of the Article, including the publish profile (view) associated with each edition.
170
+ :param data_destination:
171
+ :param article_categories: Category of articles to return. All includes browsable and searchable.
172
+ :param retries: Override the default retry configuration for this method
173
+ :param server_url: Override the default server URL for this method
174
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
175
+ :param http_headers: Additional headers to set or replace on requests.
176
+ """
177
+ base_url = None
178
+ url_variables = None
179
+ if timeout_ms is None:
180
+ timeout_ms = self.sdk_configuration.timeout_ms
181
+
182
+ if server_url is not None:
183
+ base_url = server_url
184
+ else:
185
+ base_url = self._get_url(base_url, url_variables)
186
+
187
+ request = models.KnowledgeExport(
188
+ article_categories=article_categories,
189
+ portal_id=portal_id,
190
+ language=utils.get_pydantic_model(language, models.KnowledgeExportLanguage),
191
+ resource_types=resource_types,
192
+ data_destination=utils.get_pydantic_model(
193
+ data_destination, models.DataDestination
194
+ ),
195
+ )
196
+
197
+ req = self._build_request_async(
198
+ method="POST",
199
+ path="/content/export",
200
+ base_url=base_url,
201
+ url_variables=url_variables,
202
+ request=request,
203
+ request_body_required=True,
204
+ request_has_path_params=False,
205
+ request_has_query_params=True,
206
+ user_agent_header="user-agent",
207
+ accept_header_value="application/json",
208
+ http_headers=http_headers,
209
+ security=self.sdk_configuration.security,
210
+ get_serialized_body=lambda: utils.serialize_request_body(
211
+ request, False, False, "json", models.KnowledgeExport
212
+ ),
213
+ timeout_ms=timeout_ms,
214
+ )
215
+
216
+ if retries == UNSET:
217
+ if self.sdk_configuration.retry_config is not UNSET:
218
+ retries = self.sdk_configuration.retry_config
219
+
220
+ retry_config = None
221
+ if isinstance(retries, utils.RetryConfig):
222
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
223
+
224
+ http_res = await self.do_request_async(
225
+ hook_ctx=HookContext(
226
+ config=self.sdk_configuration,
227
+ base_url=base_url or "",
228
+ operation_id="exportContent",
229
+ oauth2_scopes=[],
230
+ security_source=get_security_from_env(
231
+ self.sdk_configuration.security, models.Security
232
+ ),
233
+ ),
234
+ request=req,
235
+ error_status_codes=["400", "401", "4XX", "500", "5XX"],
236
+ retry_config=retry_config,
237
+ )
238
+
239
+ response_data: Any = None
240
+ if utils.match_response(http_res, "202", "*"):
241
+ return models.ExportContentResponse(
242
+ headers=utils.get_response_headers(http_res.headers)
243
+ )
244
+ if utils.match_response(http_res, ["400", "401"], "application/json"):
245
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
246
+ raise errors.WSErrorCommon(response_data, http_res)
247
+ if utils.match_response(http_res, "500", "application/json"):
248
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
249
+ raise errors.WSErrorCommon(response_data, http_res)
250
+ if utils.match_response(http_res, "4XX", "*"):
251
+ http_res_text = await utils.stream_to_text_async(http_res)
252
+ raise errors.EgainDefaultError(
253
+ "API error occurred", http_res, http_res_text
254
+ )
255
+ if utils.match_response(http_res, "5XX", "*"):
256
+ http_res_text = await utils.stream_to_text_async(http_res)
257
+ raise errors.EgainDefaultError(
258
+ "API error occurred", http_res, http_res_text
259
+ )
260
+
261
+ raise errors.EgainDefaultError("Unexpected response received", http_res)
262
+
263
+ def export_status(
264
+ self,
265
+ *,
266
+ job_id: str,
267
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
268
+ server_url: Optional[str] = None,
269
+ timeout_ms: Optional[int] = None,
270
+ http_headers: Optional[Mapping[str, str]] = None,
271
+ ) -> models.ExportStatus:
272
+ r"""Get Export Job Status
273
+
274
+ ## Overview
275
+ The Content Export Status API provides real-time status information to monitor job progress and check completion status.
276
+
277
+ ## Status Values
278
+ - **Pending**: Job is pending start of processing
279
+ - **In Progress**: Job is actively processing content
280
+ - **Completed**: Job finished successfully
281
+ - **Failed**: Job encountered errors and could not complete
282
+
283
+ ## Response Information
284
+ - **Current Status**: Real-time job status
285
+ - **Progress Metrics**: Items processed, total items
286
+ - **Error Details**: Specific errors encountered during processing
287
+ - **Timing Information**: Start time, estimated completion, actual completion
288
+
289
+ ## Permission
290
+ * Only a client application can invoke this API.
291
+
292
+
293
+ :param job_id: **Example Usage:** ```bash GET /content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD/status ```
294
+ :param retries: Override the default retry configuration for this method
295
+ :param server_url: Override the default server URL for this method
296
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
297
+ :param http_headers: Additional headers to set or replace on requests.
298
+ """
299
+ base_url = None
300
+ url_variables = None
301
+ if timeout_ms is None:
302
+ timeout_ms = self.sdk_configuration.timeout_ms
303
+
304
+ if server_url is not None:
305
+ base_url = server_url
306
+ else:
307
+ base_url = self._get_url(base_url, url_variables)
308
+
309
+ request = models.ExportStatusRequest(
310
+ job_id=job_id,
311
+ )
312
+
313
+ req = self._build_request(
314
+ method="GET",
315
+ path="/content/export/{jobID}/status",
316
+ base_url=base_url,
317
+ url_variables=url_variables,
318
+ request=request,
319
+ request_body_required=False,
320
+ request_has_path_params=True,
321
+ request_has_query_params=True,
322
+ user_agent_header="user-agent",
323
+ accept_header_value="application/json",
324
+ http_headers=http_headers,
325
+ security=self.sdk_configuration.security,
326
+ timeout_ms=timeout_ms,
327
+ )
328
+
329
+ if retries == UNSET:
330
+ if self.sdk_configuration.retry_config is not UNSET:
331
+ retries = self.sdk_configuration.retry_config
332
+
333
+ retry_config = None
334
+ if isinstance(retries, utils.RetryConfig):
335
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
336
+
337
+ http_res = self.do_request(
338
+ hook_ctx=HookContext(
339
+ config=self.sdk_configuration,
340
+ base_url=base_url or "",
341
+ operation_id="exportStatus",
342
+ oauth2_scopes=[],
343
+ security_source=get_security_from_env(
344
+ self.sdk_configuration.security, models.Security
345
+ ),
346
+ ),
347
+ request=req,
348
+ error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"],
349
+ retry_config=retry_config,
350
+ )
351
+
352
+ response_data: Any = None
353
+ if utils.match_response(http_res, "200", "application/json"):
354
+ return unmarshal_json_response(models.ExportStatus, http_res)
355
+ if utils.match_response(
356
+ http_res, ["400", "401", "403", "404"], "application/json"
357
+ ):
358
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
359
+ raise errors.WSErrorCommon(response_data, http_res)
360
+ if utils.match_response(http_res, "500", "application/json"):
361
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
362
+ raise errors.WSErrorCommon(response_data, http_res)
363
+ if utils.match_response(http_res, "4XX", "*"):
364
+ http_res_text = utils.stream_to_text(http_res)
365
+ raise errors.EgainDefaultError(
366
+ "API error occurred", http_res, http_res_text
367
+ )
368
+ if utils.match_response(http_res, "5XX", "*"):
369
+ http_res_text = utils.stream_to_text(http_res)
370
+ raise errors.EgainDefaultError(
371
+ "API error occurred", http_res, http_res_text
372
+ )
373
+
374
+ raise errors.EgainDefaultError("Unexpected response received", http_res)
375
+
376
+ async def export_status_async(
377
+ self,
378
+ *,
379
+ job_id: str,
380
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
381
+ server_url: Optional[str] = None,
382
+ timeout_ms: Optional[int] = None,
383
+ http_headers: Optional[Mapping[str, str]] = None,
384
+ ) -> models.ExportStatus:
385
+ r"""Get Export Job Status
386
+
387
+ ## Overview
388
+ The Content Export Status API provides real-time status information to monitor job progress and check completion status.
389
+
390
+ ## Status Values
391
+ - **Pending**: Job is pending start of processing
392
+ - **In Progress**: Job is actively processing content
393
+ - **Completed**: Job finished successfully
394
+ - **Failed**: Job encountered errors and could not complete
395
+
396
+ ## Response Information
397
+ - **Current Status**: Real-time job status
398
+ - **Progress Metrics**: Items processed, total items
399
+ - **Error Details**: Specific errors encountered during processing
400
+ - **Timing Information**: Start time, estimated completion, actual completion
401
+
402
+ ## Permission
403
+ * Only a client application can invoke this API.
404
+
405
+
406
+ :param job_id: **Example Usage:** ```bash GET /content/export/7A84B875-6F75-4C7B-B137-0632B62DB0BD/status ```
407
+ :param retries: Override the default retry configuration for this method
408
+ :param server_url: Override the default server URL for this method
409
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
410
+ :param http_headers: Additional headers to set or replace on requests.
411
+ """
412
+ base_url = None
413
+ url_variables = None
414
+ if timeout_ms is None:
415
+ timeout_ms = self.sdk_configuration.timeout_ms
416
+
417
+ if server_url is not None:
418
+ base_url = server_url
419
+ else:
420
+ base_url = self._get_url(base_url, url_variables)
421
+
422
+ request = models.ExportStatusRequest(
423
+ job_id=job_id,
424
+ )
425
+
426
+ req = self._build_request_async(
427
+ method="GET",
428
+ path="/content/export/{jobID}/status",
429
+ base_url=base_url,
430
+ url_variables=url_variables,
431
+ request=request,
432
+ request_body_required=False,
433
+ request_has_path_params=True,
434
+ request_has_query_params=True,
435
+ user_agent_header="user-agent",
436
+ accept_header_value="application/json",
437
+ http_headers=http_headers,
438
+ security=self.sdk_configuration.security,
439
+ timeout_ms=timeout_ms,
440
+ )
441
+
442
+ if retries == UNSET:
443
+ if self.sdk_configuration.retry_config is not UNSET:
444
+ retries = self.sdk_configuration.retry_config
445
+
446
+ retry_config = None
447
+ if isinstance(retries, utils.RetryConfig):
448
+ retry_config = (retries, ["429", "500", "502", "503", "504"])
449
+
450
+ http_res = await self.do_request_async(
451
+ hook_ctx=HookContext(
452
+ config=self.sdk_configuration,
453
+ base_url=base_url or "",
454
+ operation_id="exportStatus",
455
+ oauth2_scopes=[],
456
+ security_source=get_security_from_env(
457
+ self.sdk_configuration.security, models.Security
458
+ ),
459
+ ),
460
+ request=req,
461
+ error_status_codes=["400", "401", "403", "404", "4XX", "500", "5XX"],
462
+ retry_config=retry_config,
463
+ )
464
+
465
+ response_data: Any = None
466
+ if utils.match_response(http_res, "200", "application/json"):
467
+ return unmarshal_json_response(models.ExportStatus, http_res)
468
+ if utils.match_response(
469
+ http_res, ["400", "401", "403", "404"], "application/json"
470
+ ):
471
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
472
+ raise errors.WSErrorCommon(response_data, http_res)
473
+ if utils.match_response(http_res, "500", "application/json"):
474
+ response_data = unmarshal_json_response(errors.WSErrorCommonData, http_res)
475
+ raise errors.WSErrorCommon(response_data, http_res)
476
+ if utils.match_response(http_res, "4XX", "*"):
477
+ http_res_text = await utils.stream_to_text_async(http_res)
478
+ raise errors.EgainDefaultError(
479
+ "API error occurred", http_res, http_res_text
480
+ )
481
+ if utils.match_response(http_res, "5XX", "*"):
482
+ http_res_text = await utils.stream_to_text_async(http_res)
483
+ raise errors.EgainDefaultError(
484
+ "API error occurred", http_res, http_res_text
485
+ )
486
+
487
+ raise errors.EgainDefaultError("Unexpected response received", http_res)