e621 2.2.6 → 3.0.1

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 (396) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -41
  3. package/dist/lib/Debug.d.ts +1 -0
  4. package/dist/lib/Debug.js +16 -0
  5. package/dist/lib/errors.d.ts +8 -0
  6. package/dist/lib/errors.js +37 -0
  7. package/dist/lib/generated/client/client.d.ts +2 -0
  8. package/dist/lib/generated/client/client.js +236 -0
  9. package/dist/lib/generated/client/index.d.ts +8 -0
  10. package/dist/lib/generated/client/index.js +7 -0
  11. package/dist/lib/generated/client/types.d.ts +117 -0
  12. package/dist/lib/generated/client/types.js +3 -0
  13. package/dist/lib/generated/client/utils.d.ts +33 -0
  14. package/dist/lib/generated/client/utils.js +229 -0
  15. package/dist/lib/generated/client.d.ts +12 -0
  16. package/dist/lib/generated/client.js +4 -0
  17. package/dist/lib/generated/core/auth.d.ts +18 -0
  18. package/dist/lib/generated/core/auth.js +15 -0
  19. package/dist/lib/generated/core/bodySerializer.d.ts +25 -0
  20. package/dist/lib/generated/core/bodySerializer.js +58 -0
  21. package/dist/lib/generated/core/params.d.ts +43 -0
  22. package/dist/lib/generated/core/params.js +101 -0
  23. package/dist/lib/generated/core/pathSerializer.d.ts +33 -0
  24. package/dist/lib/generated/core/pathSerializer.js +107 -0
  25. package/dist/lib/generated/core/queryKeySerializer.d.ts +18 -0
  26. package/dist/lib/generated/core/queryKeySerializer.js +93 -0
  27. package/dist/lib/generated/core/serverSentEvents.d.ts +71 -0
  28. package/dist/lib/generated/core/serverSentEvents.js +134 -0
  29. package/dist/lib/generated/core/types.d.ts +78 -0
  30. package/dist/lib/generated/core/types.js +3 -0
  31. package/dist/lib/generated/core/utils.d.ts +19 -0
  32. package/dist/lib/generated/core/utils.js +88 -0
  33. package/dist/lib/generated/schemas.d.ts +2989 -0
  34. package/dist/lib/generated/schemas.js +4014 -0
  35. package/dist/lib/generated/sdk.d.ts +1417 -0
  36. package/dist/lib/generated/sdk.js +2633 -0
  37. package/dist/lib/generated/source.json +18815 -0
  38. package/dist/lib/generated/types.d.ts +9923 -0
  39. package/dist/lib/generated/types.js +3 -0
  40. package/dist/lib/generated.d.ts +4 -0
  41. package/dist/lib/generated.js +5 -0
  42. package/dist/lib/index.d.ts +58 -0
  43. package/dist/lib/index.js +74 -0
  44. package/dist/lib/models/ApiKey.d.ts +14 -0
  45. package/dist/lib/models/ApiKey.js +17 -0
  46. package/dist/lib/models/Artist.d.ts +61 -0
  47. package/dist/lib/models/Artist.js +86 -0
  48. package/dist/lib/models/ArtistUrl.d.ts +14 -0
  49. package/dist/lib/models/ArtistUrl.js +17 -0
  50. package/dist/lib/models/ArtistVersion.d.ts +14 -0
  51. package/dist/lib/models/ArtistVersion.js +17 -0
  52. package/dist/lib/models/AvoidPosting.d.ts +63 -0
  53. package/dist/lib/models/AvoidPosting.js +97 -0
  54. package/dist/lib/models/AvoidPostingVersion.d.ts +14 -0
  55. package/dist/lib/models/AvoidPostingVersion.js +17 -0
  56. package/dist/lib/models/Ban.d.ts +14 -0
  57. package/dist/lib/models/Ban.js +17 -0
  58. package/dist/lib/models/Base.d.ts +11 -0
  59. package/dist/lib/models/Base.js +39 -0
  60. package/dist/lib/models/Blip.d.ts +79 -0
  61. package/dist/lib/models/Blip.js +120 -0
  62. package/dist/lib/models/BulkUpdateRequest.d.ts +49 -0
  63. package/dist/lib/models/BulkUpdateRequest.js +75 -0
  64. package/dist/lib/models/Comment.d.ts +101 -0
  65. package/dist/lib/models/Comment.js +157 -0
  66. package/dist/lib/models/CurrentUser.d.ts +14 -0
  67. package/dist/lib/models/CurrentUser.js +17 -0
  68. package/dist/lib/models/DMail.d.ts +46 -0
  69. package/dist/lib/models/DMail.js +73 -0
  70. package/dist/lib/models/EditHistory.d.ts +14 -0
  71. package/dist/lib/models/EditHistory.js +17 -0
  72. package/dist/lib/models/EmailBlacklist.d.ts +26 -0
  73. package/dist/lib/models/EmailBlacklist.js +37 -0
  74. package/dist/lib/models/ForumPost.d.ts +98 -0
  75. package/dist/lib/models/ForumPost.js +154 -0
  76. package/dist/lib/models/ForumPostVote.d.ts +24 -0
  77. package/dist/lib/models/ForumPostVote.js +35 -0
  78. package/dist/lib/models/ForumTopic.d.ts +81 -0
  79. package/dist/lib/models/ForumTopic.js +131 -0
  80. package/dist/lib/models/FullCurrentUser.d.ts +14 -0
  81. package/dist/lib/models/FullCurrentUser.js +17 -0
  82. package/dist/lib/models/FullUser.d.ts +14 -0
  83. package/dist/lib/models/FullUser.js +17 -0
  84. package/dist/lib/models/Help.d.ts +39 -0
  85. package/dist/lib/models/Help.js +57 -0
  86. package/dist/lib/models/IpBan.d.ts +28 -0
  87. package/dist/lib/models/IpBan.js +39 -0
  88. package/dist/lib/models/IqdbPost.d.ts +14 -0
  89. package/dist/lib/models/IqdbPost.js +17 -0
  90. package/dist/lib/models/Mascot.d.ts +39 -0
  91. package/dist/lib/models/Mascot.js +57 -0
  92. package/dist/lib/models/ModAction.d.ts +14 -0
  93. package/dist/lib/models/ModAction.js +17 -0
  94. package/dist/lib/models/NewsUpdate.d.ts +39 -0
  95. package/dist/lib/models/NewsUpdate.js +57 -0
  96. package/dist/lib/models/Note.d.ts +45 -0
  97. package/dist/lib/models/Note.js +71 -0
  98. package/dist/lib/models/NoteVersion.d.ts +24 -0
  99. package/dist/lib/models/NoteVersion.js +35 -0
  100. package/dist/lib/models/Pool.d.ts +67 -0
  101. package/dist/lib/models/Pool.js +109 -0
  102. package/dist/lib/models/PoolVersion.d.ts +24 -0
  103. package/dist/lib/models/PoolVersion.js +35 -0
  104. package/dist/lib/models/Post.d.ts +175 -0
  105. package/dist/lib/models/Post.js +287 -0
  106. package/dist/lib/models/PostApproval.d.ts +26 -0
  107. package/dist/lib/models/PostApproval.js +37 -0
  108. package/dist/lib/models/PostDisapproval.d.ts +14 -0
  109. package/dist/lib/models/PostDisapproval.js +17 -0
  110. package/dist/lib/models/PostEvent.d.ts +14 -0
  111. package/dist/lib/models/PostEvent.js +17 -0
  112. package/dist/lib/models/PostFlag.d.ts +38 -0
  113. package/dist/lib/models/PostFlag.js +57 -0
  114. package/dist/lib/models/PostReplacement.d.ts +75 -0
  115. package/dist/lib/models/PostReplacement.js +117 -0
  116. package/dist/lib/models/PostSet.d.ts +75 -0
  117. package/dist/lib/models/PostSet.js +117 -0
  118. package/dist/lib/models/PostVersion.d.ts +58 -0
  119. package/dist/lib/models/PostVersion.js +93 -0
  120. package/dist/lib/models/RisingSearchTrend.d.ts +14 -0
  121. package/dist/lib/models/RisingSearchTrend.js +17 -0
  122. package/dist/lib/models/SearchTrend.d.ts +14 -0
  123. package/dist/lib/models/SearchTrend.js +17 -0
  124. package/dist/lib/models/SearchTrendBlacklist.d.ts +14 -0
  125. package/dist/lib/models/SearchTrendBlacklist.js +17 -0
  126. package/dist/lib/models/StaffNote.d.ts +53 -0
  127. package/dist/lib/models/StaffNote.js +79 -0
  128. package/dist/lib/models/Tag.d.ts +59 -0
  129. package/dist/lib/models/Tag.js +91 -0
  130. package/dist/lib/models/TagAlias.d.ts +51 -0
  131. package/dist/lib/models/TagAlias.js +77 -0
  132. package/dist/lib/models/TagCorrection.d.ts +15 -0
  133. package/dist/lib/models/TagCorrection.js +20 -0
  134. package/dist/lib/models/TagImplication.d.ts +51 -0
  135. package/dist/lib/models/TagImplication.js +77 -0
  136. package/dist/lib/models/TagPreview.d.ts +14 -0
  137. package/dist/lib/models/TagPreview.js +17 -0
  138. package/dist/lib/models/TagTypeVersion.d.ts +14 -0
  139. package/dist/lib/models/TagTypeVersion.js +17 -0
  140. package/dist/lib/models/Takedown.d.ts +87 -0
  141. package/dist/lib/models/Takedown.js +137 -0
  142. package/dist/lib/models/Ticket.d.ts +51 -0
  143. package/dist/lib/models/Ticket.js +77 -0
  144. package/dist/lib/models/Upload.d.ts +14 -0
  145. package/dist/lib/models/Upload.js +17 -0
  146. package/dist/lib/models/UploadWhitelist.d.ts +37 -0
  147. package/dist/lib/models/UploadWhitelist.js +55 -0
  148. package/dist/lib/models/User.d.ts +97 -0
  149. package/dist/lib/models/User.js +160 -0
  150. package/dist/lib/models/UserFeedback.d.ts +63 -0
  151. package/dist/lib/models/UserFeedback.js +97 -0
  152. package/dist/lib/models/UserNameChangeRequest.d.ts +26 -0
  153. package/dist/lib/models/UserNameChangeRequest.js +37 -0
  154. package/dist/lib/models/WikiPage.d.ts +49 -0
  155. package/dist/lib/models/WikiPage.js +75 -0
  156. package/dist/lib/models/WikiPageVersion.d.ts +24 -0
  157. package/dist/lib/models/WikiPageVersion.js +35 -0
  158. package/dist/lib/models/index.d.ts +56 -0
  159. package/dist/lib/models/index.js +57 -0
  160. package/dist/lib/modules/ArtistUrls.d.ts +18 -0
  161. package/dist/lib/modules/ArtistUrls.js +28 -0
  162. package/dist/lib/modules/ArtistVersions.d.ts +18 -0
  163. package/dist/lib/modules/ArtistVersions.js +28 -0
  164. package/dist/lib/modules/Artists.d.ts +90 -0
  165. package/dist/lib/modules/Artists.js +151 -0
  166. package/dist/lib/modules/AvoidPostingVersions.d.ts +18 -0
  167. package/dist/lib/modules/AvoidPostingVersions.js +28 -0
  168. package/dist/lib/modules/AvoidPostings.d.ts +112 -0
  169. package/dist/lib/modules/AvoidPostings.js +181 -0
  170. package/dist/lib/modules/Bans.d.ts +26 -0
  171. package/dist/lib/modules/Bans.js +47 -0
  172. package/dist/lib/modules/Base.d.ts +20 -0
  173. package/dist/lib/modules/Base.js +39 -0
  174. package/dist/lib/modules/Blips.d.ts +108 -0
  175. package/dist/lib/modules/Blips.js +188 -0
  176. package/dist/lib/modules/BulkUpdateRequests.d.ts +76 -0
  177. package/dist/lib/modules/BulkUpdateRequests.js +136 -0
  178. package/dist/lib/modules/CommentVotes.d.ts +30 -0
  179. package/dist/lib/modules/CommentVotes.js +56 -0
  180. package/dist/lib/modules/Comments.d.ts +115 -0
  181. package/dist/lib/modules/Comments.js +195 -0
  182. package/dist/lib/modules/DMails.d.ts +70 -0
  183. package/dist/lib/modules/DMails.js +134 -0
  184. package/dist/lib/modules/DText.d.ts +22 -0
  185. package/dist/lib/modules/DText.js +32 -0
  186. package/dist/lib/modules/EditHistories.d.ts +34 -0
  187. package/dist/lib/modules/EditHistories.js +56 -0
  188. package/dist/lib/modules/EmailBlacklists.d.ts +45 -0
  189. package/dist/lib/modules/EmailBlacklists.js +74 -0
  190. package/dist/lib/modules/Favorites.d.ts +44 -0
  191. package/dist/lib/modules/Favorites.js +73 -0
  192. package/dist/lib/modules/ForumPosts.d.ts +110 -0
  193. package/dist/lib/modules/ForumPosts.js +190 -0
  194. package/dist/lib/modules/ForumTopics.d.ts +125 -0
  195. package/dist/lib/modules/ForumTopics.js +237 -0
  196. package/dist/lib/modules/HelpPages.d.ts +67 -0
  197. package/dist/lib/modules/HelpPages.js +118 -0
  198. package/dist/lib/modules/IpBans.d.ts +47 -0
  199. package/dist/lib/modules/IpBans.js +76 -0
  200. package/dist/lib/modules/IqdbQueries.d.ts +36 -0
  201. package/dist/lib/modules/IqdbQueries.js +63 -0
  202. package/dist/lib/modules/Mascots.d.ts +60 -0
  203. package/dist/lib/modules/Mascots.js +98 -0
  204. package/dist/lib/modules/ModActions.d.ts +34 -0
  205. package/dist/lib/modules/ModActions.js +55 -0
  206. package/dist/lib/modules/NewsUpdates.d.ts +60 -0
  207. package/dist/lib/modules/NewsUpdates.js +98 -0
  208. package/dist/lib/modules/NoteVersions.d.ts +18 -0
  209. package/dist/lib/modules/NoteVersions.js +28 -0
  210. package/dist/lib/modules/Notes.d.ts +72 -0
  211. package/dist/lib/modules/Notes.js +133 -0
  212. package/dist/lib/modules/PoolVersions.d.ts +18 -0
  213. package/dist/lib/modules/PoolVersions.js +28 -0
  214. package/dist/lib/modules/Pools.d.ts +107 -0
  215. package/dist/lib/modules/Pools.js +197 -0
  216. package/dist/lib/modules/Popular.d.ts +18 -0
  217. package/dist/lib/modules/Popular.js +31 -0
  218. package/dist/lib/modules/PostApprovals.d.ts +42 -0
  219. package/dist/lib/modules/PostApprovals.js +77 -0
  220. package/dist/lib/modules/PostDisapprovals.d.ts +37 -0
  221. package/dist/lib/modules/PostDisapprovals.js +55 -0
  222. package/dist/lib/modules/PostEvents.d.ts +20 -0
  223. package/dist/lib/modules/PostEvents.js +30 -0
  224. package/dist/lib/modules/PostFlags.d.ts +53 -0
  225. package/dist/lib/modules/PostFlags.js +93 -0
  226. package/dist/lib/modules/PostReplacements.d.ts +97 -0
  227. package/dist/lib/modules/PostReplacements.js +167 -0
  228. package/dist/lib/modules/PostSets.d.ts +119 -0
  229. package/dist/lib/modules/PostSets.js +211 -0
  230. package/dist/lib/modules/PostVersions.d.ts +51 -0
  231. package/dist/lib/modules/PostVersions.js +94 -0
  232. package/dist/lib/modules/PostVotes.d.ts +28 -0
  233. package/dist/lib/modules/PostVotes.js +54 -0
  234. package/dist/lib/modules/Posts.d.ts +193 -0
  235. package/dist/lib/modules/Posts.js +395 -0
  236. package/dist/lib/modules/RelatedTags.d.ts +22 -0
  237. package/dist/lib/modules/RelatedTags.js +29 -0
  238. package/dist/lib/modules/SearchTrendBlacklists.d.ts +64 -0
  239. package/dist/lib/modules/SearchTrendBlacklists.js +101 -0
  240. package/dist/lib/modules/SearchTrends.d.ts +57 -0
  241. package/dist/lib/modules/SearchTrends.js +92 -0
  242. package/dist/lib/modules/StaffNotes.d.ts +80 -0
  243. package/dist/lib/modules/StaffNotes.js +140 -0
  244. package/dist/lib/modules/TagAliases.d.ts +80 -0
  245. package/dist/lib/modules/TagAliases.js +140 -0
  246. package/dist/lib/modules/TagCorrections.d.ts +25 -0
  247. package/dist/lib/modules/TagCorrections.js +52 -0
  248. package/dist/lib/modules/TagImplications.d.ts +80 -0
  249. package/dist/lib/modules/TagImplications.js +140 -0
  250. package/dist/lib/modules/TagTypeVersions.d.ts +18 -0
  251. package/dist/lib/modules/TagTypeVersions.js +28 -0
  252. package/dist/lib/modules/Tags.d.ts +64 -0
  253. package/dist/lib/modules/Tags.js +116 -0
  254. package/dist/lib/modules/Takedowns.d.ts +123 -0
  255. package/dist/lib/modules/Takedowns.js +211 -0
  256. package/dist/lib/modules/Tickets.d.ts +71 -0
  257. package/dist/lib/modules/Tickets.js +123 -0
  258. package/dist/lib/modules/UploadWhitelists.d.ts +71 -0
  259. package/dist/lib/modules/UploadWhitelists.js +117 -0
  260. package/dist/lib/modules/Uploads.d.ts +42 -0
  261. package/dist/lib/modules/Uploads.js +78 -0
  262. package/dist/lib/modules/UserFeedbacks.d.ts +94 -0
  263. package/dist/lib/modules/UserFeedbacks.js +165 -0
  264. package/dist/lib/modules/UserNameChangeRequests.d.ts +59 -0
  265. package/dist/lib/modules/UserNameChangeRequests.js +99 -0
  266. package/dist/lib/modules/Users.d.ts +135 -0
  267. package/dist/lib/modules/Users.js +263 -0
  268. package/dist/lib/modules/WikiPageVersions.d.ts +26 -0
  269. package/dist/lib/modules/WikiPageVersions.js +47 -0
  270. package/dist/lib/modules/WikiPages.d.ts +76 -0
  271. package/dist/lib/modules/WikiPages.js +137 -0
  272. package/dist/lib/modules/admin/Users.d.ts +45 -0
  273. package/dist/lib/modules/admin/Users.js +77 -0
  274. package/dist/lib/modules/comments/Votes.d.ts +31 -0
  275. package/dist/lib/modules/comments/Votes.js +51 -0
  276. package/dist/lib/modules/forum_posts/Votes.d.ts +29 -0
  277. package/dist/lib/modules/forum_posts/Votes.js +51 -0
  278. package/dist/lib/modules/index.d.ts +178 -0
  279. package/dist/lib/modules/index.js +118 -0
  280. package/dist/lib/modules/posts/Flag.d.ts +16 -0
  281. package/dist/lib/modules/posts/Flag.js +31 -0
  282. package/dist/lib/modules/posts/Votes.d.ts +31 -0
  283. package/dist/lib/modules/posts/Votes.js +51 -0
  284. package/dist/lib/modules/users/DMails.d.ts +29 -0
  285. package/dist/lib/modules/users/DMails.js +55 -0
  286. package/dist/lib/util.d.ts +50 -0
  287. package/dist/lib/util.js +49 -0
  288. package/dist/package.json +73 -0
  289. package/package.json +46 -20
  290. package/tsconfig.json +54 -0
  291. package/.mocharc.json +0 -6
  292. package/.ncurc.json +0 -3
  293. package/.node-version +0 -1
  294. package/Features/Artists.md +0 -39
  295. package/Features/Blips.md +0 -33
  296. package/Features/E621SearchInconsistencies.md +0 -54
  297. package/Features/FuturePlans.md +0 -50
  298. package/Features/Notes.md +0 -34
  299. package/Features/Pools.md +0 -38
  300. package/Features/PostFlags.md +0 -31
  301. package/Features/PostSets.md +0 -36
  302. package/Features/Posts.md +0 -46
  303. package/Features/README.md +0 -15
  304. package/Features/Tags.md +0 -34
  305. package/Features/Takedowns.md +0 -32
  306. package/Features/UserFeedback.md +0 -32
  307. package/Features/Users.md +0 -36
  308. package/Features/WikiPages.md +0 -36
  309. package/build/package.json +0 -45
  310. package/build/src/index.d.ts +0 -68
  311. package/build/src/index.js +0 -194
  312. package/build/src/modules/Artists.d.ts +0 -128
  313. package/build/src/modules/Artists.js +0 -295
  314. package/build/src/modules/Blips.d.ts +0 -79
  315. package/build/src/modules/Blips.js +0 -157
  316. package/build/src/modules/Notes.d.ts +0 -88
  317. package/build/src/modules/Notes.js +0 -189
  318. package/build/src/modules/Pools.d.ts +0 -130
  319. package/build/src/modules/Pools.js +0 -261
  320. package/build/src/modules/PostFlags.d.ts +0 -55
  321. package/build/src/modules/PostFlags.js +0 -126
  322. package/build/src/modules/PostSets.d.ts +0 -102
  323. package/build/src/modules/PostSets.js +0 -208
  324. package/build/src/modules/Posts.d.ts +0 -154
  325. package/build/src/modules/Posts.js +0 -390
  326. package/build/src/modules/Tags.d.ts +0 -78
  327. package/build/src/modules/Tags.js +0 -174
  328. package/build/src/modules/Takedowns.d.ts +0 -81
  329. package/build/src/modules/Takedowns.js +0 -195
  330. package/build/src/modules/UserFeedback.d.ts +0 -66
  331. package/build/src/modules/UserFeedback.js +0 -136
  332. package/build/src/modules/Users.d.ts +0 -117
  333. package/build/src/modules/Users.js +0 -261
  334. package/build/src/modules/WikiPages.d.ts +0 -107
  335. package/build/src/modules/WikiPages.js +0 -220
  336. package/build/src/structures/Artist.d.ts +0 -36
  337. package/build/src/structures/Artist.js +0 -51
  338. package/build/src/structures/ArtistHistory.d.ts +0 -39
  339. package/build/src/structures/ArtistHistory.js +0 -50
  340. package/build/src/structures/AuthenticatedUser.d.ts +0 -109
  341. package/build/src/structures/AuthenticatedUser.js +0 -128
  342. package/build/src/structures/Blip.d.ts +0 -66
  343. package/build/src/structures/Blip.js +0 -85
  344. package/build/src/structures/Note.d.ts +0 -32
  345. package/build/src/structures/Note.js +0 -41
  346. package/build/src/structures/NoteHistory.d.ts +0 -38
  347. package/build/src/structures/NoteHistory.js +0 -47
  348. package/build/src/structures/Pool.d.ts +0 -85
  349. package/build/src/structures/Pool.js +0 -112
  350. package/build/src/structures/PoolHistory.d.ts +0 -43
  351. package/build/src/structures/PoolHistory.js +0 -54
  352. package/build/src/structures/Post.d.ts +0 -157
  353. package/build/src/structures/Post.js +0 -170
  354. package/build/src/structures/PostApproval.d.ts +0 -25
  355. package/build/src/structures/PostApproval.js +0 -33
  356. package/build/src/structures/PostFlag.d.ts +0 -38
  357. package/build/src/structures/PostFlag.js +0 -47
  358. package/build/src/structures/PostHistory.d.ts +0 -52
  359. package/build/src/structures/PostHistory.js +0 -93
  360. package/build/src/structures/PostSet.d.ts +0 -71
  361. package/build/src/structures/PostSet.js +0 -93
  362. package/build/src/structures/Tag.d.ts +0 -61
  363. package/build/src/structures/Tag.js +0 -87
  364. package/build/src/structures/TagHistory.d.ts +0 -28
  365. package/build/src/structures/TagHistory.js +0 -36
  366. package/build/src/structures/Takedown.d.ts +0 -49
  367. package/build/src/structures/Takedown.js +0 -64
  368. package/build/src/structures/User.d.ts +0 -62
  369. package/build/src/structures/User.js +0 -80
  370. package/build/src/structures/WikiPage.d.ts +0 -17
  371. package/build/src/structures/WikiPage.js +0 -27
  372. package/build/src/structures/WikiPageHistory.d.ts +0 -38
  373. package/build/src/structures/WikiPageHistory.js +0 -49
  374. package/build/src/types/artists.d.ts +0 -82
  375. package/build/src/types/blips.d.ts +0 -37
  376. package/build/src/types/index.d.ts +0 -96
  377. package/build/src/types/notes.d.ts +0 -64
  378. package/build/src/types/pools.d.ts +0 -62
  379. package/build/src/types/post_flags.d.ts +0 -36
  380. package/build/src/types/post_sets.d.ts +0 -33
  381. package/build/src/types/posts.d.ts +0 -181
  382. package/build/src/types/tags.d.ts +0 -56
  383. package/build/src/types/takedowns.d.ts +0 -62
  384. package/build/src/types/user_feedback.d.ts +0 -27
  385. package/build/src/types/users.d.ts +0 -277
  386. package/build/src/types/wiki_pages.d.ts +0 -66
  387. package/build/src/util/Debug.d.ts +0 -1
  388. package/build/src/util/Debug.js +0 -16
  389. package/build/src/util/FormHelper.d.ts +0 -9
  390. package/build/src/util/FormHelper.js +0 -15
  391. package/build/src/util/MultipartData.d.ts +0 -7
  392. package/build/src/util/MultipartData.js +0 -39
  393. package/build/src/util/RequestHandler.d.ts +0 -38
  394. package/build/src/util/RequestHandler.js +0 -343
  395. package/build/src/util/Timer.d.ts +0 -6
  396. package/build/src/util/Timer.js +0 -74
@@ -0,0 +1,2633 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ import { client } from './client.js';
3
+ import { formDataBodySerializer, urlSearchParamsBodySerializer } from './client/index.js';
4
+ /**
5
+ * Get API Keys
6
+ *
7
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
8
+ */
9
+ export const getApiKeys = (options) => (options?.client ?? client).get({
10
+ security: [{
11
+ in: 'cookie',
12
+ name: '_danbooru_session',
13
+ type: 'apiKey'
14
+ }],
15
+ url: '/api_keys.json',
16
+ ...options
17
+ });
18
+ /**
19
+ * Create API Key
20
+ *
21
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
22
+ */
23
+ export const createApiKey = (options) => (options?.client ?? client).post({
24
+ ...urlSearchParamsBodySerializer,
25
+ security: [{
26
+ in: 'cookie',
27
+ name: '_danbooru_session',
28
+ type: 'apiKey'
29
+ }, {
30
+ in: 'query',
31
+ name: 'authenticity_token',
32
+ type: 'apiKey'
33
+ }],
34
+ url: '/api_keys.json',
35
+ ...options,
36
+ headers: {
37
+ 'Content-Type': 'application/x-www-form-urlencoded',
38
+ ...options?.headers
39
+ }
40
+ });
41
+ /**
42
+ * Delete API Key
43
+ *
44
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
45
+ */
46
+ export const deleteApiKey = (options) => (options.client ?? client).delete({
47
+ security: [{
48
+ in: 'cookie',
49
+ name: '_danbooru_session',
50
+ type: 'apiKey'
51
+ }, {
52
+ in: 'query',
53
+ name: 'authenticity_token',
54
+ type: 'apiKey'
55
+ }],
56
+ url: '/api_keys/{id}.json',
57
+ ...options
58
+ });
59
+ /**
60
+ * Regenerate API Key
61
+ *
62
+ * Requires [browser authentication](#operations-Sessions-login) (username & password), as well as hourly password confirmations (reauthentication).
63
+ */
64
+ export const regenerateApiKey = (options) => (options.client ?? client).post({
65
+ ...urlSearchParamsBodySerializer,
66
+ security: [{
67
+ in: 'cookie',
68
+ name: '_danbooru_session',
69
+ type: 'apiKey'
70
+ }, {
71
+ in: 'query',
72
+ name: 'authenticity_token',
73
+ type: 'apiKey'
74
+ }],
75
+ url: '/api_keys/{id}/regenerate.json',
76
+ ...options,
77
+ headers: {
78
+ 'Content-Type': 'application/x-www-form-urlencoded',
79
+ ...options.headers
80
+ }
81
+ });
82
+ /**
83
+ * Search Artists
84
+ */
85
+ export const searchArtists = (options) => (options?.client ?? client).get({ url: '/artists.json', ...options });
86
+ /**
87
+ * Create Artist
88
+ *
89
+ * `other_names` & `urls` are silently truncated to 25 entries.
90
+ * `notes` is silently truncated to the wiki page limit (250,000).
91
+ * Individual `other_names` are silently truncated to 100 characters.
92
+ *
93
+ */
94
+ export const createArtist = (options) => (options?.client ?? client).post({
95
+ ...urlSearchParamsBodySerializer,
96
+ security: [{ scheme: 'basic', type: 'http' }],
97
+ url: '/artists.json',
98
+ ...options,
99
+ headers: {
100
+ 'Content-Type': 'application/x-www-form-urlencoded',
101
+ ...options?.headers
102
+ }
103
+ });
104
+ /**
105
+ * Delete Artist
106
+ *
107
+ * You must be an Admin+ to delete an artist.
108
+ *
109
+ */
110
+ export const deleteArtist = (options) => (options.client ?? client).delete({
111
+ security: [{ scheme: 'basic', type: 'http' }],
112
+ url: '/artists/{idOrName}.json',
113
+ ...options
114
+ });
115
+ /**
116
+ * Get Artist
117
+ */
118
+ export const getArtist = (options) => (options.client ?? client).get({ url: '/artists/{idOrName}.json', ...options });
119
+ /**
120
+ * Edit Artist
121
+ *
122
+ * If an artist is locked, you must be Janitor+ to edit them.
123
+ * `other_names` & `urls` are silently truncated to 25 entries.
124
+ * `notes` is silently truncated to the wiki page limit (250,000).
125
+ * Individual `other_names` are silently truncated to 100 characters.
126
+ * If an artist is on the avoid posting list, you must have the bd staff user flag to edit name, other_names, or group_name.
127
+ *
128
+ */
129
+ export const editArtist = (options) => (options.client ?? client).patch({
130
+ ...urlSearchParamsBodySerializer,
131
+ security: [{ scheme: 'basic', type: 'http' }],
132
+ url: '/artists/{idOrName}.json',
133
+ ...options,
134
+ headers: {
135
+ 'Content-Type': 'application/x-www-form-urlencoded',
136
+ ...options.headers
137
+ }
138
+ });
139
+ /**
140
+ * Revert Artist
141
+ *
142
+ * If an artist is locked, you must be Janitor+ to revert them.
143
+ *
144
+ */
145
+ export const revertArtist = (options) => (options.client ?? client).put({
146
+ security: [{ scheme: 'basic', type: 'http' }],
147
+ url: '/artists/{idOrName}/revert.json',
148
+ ...options
149
+ });
150
+ /**
151
+ * Search Artist Versions
152
+ */
153
+ export const searchArtistVersions = (options) => (options?.client ?? client).get({ url: '/artist_versions.json', ...options });
154
+ /**
155
+ * Search Artist URLs
156
+ */
157
+ export const searchArtistUrls = (options) => (options?.client ?? client).get({
158
+ querySerializer: { parameters: { 'search[artist]': { object: { style: 'form' } } } },
159
+ url: '/artist_urls.json',
160
+ ...options
161
+ });
162
+ /**
163
+ * Search Avoid Posting Entries
164
+ */
165
+ export const searchAvoidPostings = (options) => (options?.client ?? client).get({ url: '/avoid_postings.json', ...options });
166
+ /**
167
+ * Create Avoid Posting Entry
168
+ *
169
+ * Must have the bd staff user flag.
170
+ */
171
+ export const createAvoidPosting = (options) => (options?.client ?? client).post({
172
+ ...urlSearchParamsBodySerializer,
173
+ security: [{ scheme: 'basic', type: 'http' }],
174
+ url: '/avoid_postings.json',
175
+ ...options,
176
+ headers: {
177
+ 'Content-Type': 'application/x-www-form-urlencoded',
178
+ ...options?.headers
179
+ }
180
+ });
181
+ /**
182
+ * Destroy Avoid Posting Entry
183
+ *
184
+ * Must have the bd staff user flag.
185
+ */
186
+ export const destroyAvoidPosting = (options) => (options.client ?? client).delete({
187
+ security: [{ scheme: 'basic', type: 'http' }],
188
+ url: '/avoid_postings/{idOrName}.json',
189
+ ...options
190
+ });
191
+ /**
192
+ * Get Avoid Posting Entry
193
+ */
194
+ export const getAvoidPosting = (options) => (options.client ?? client).get({ url: '/avoid_postings/{idOrName}.json', ...options });
195
+ /**
196
+ * Edit Avoid Posting Entry
197
+ *
198
+ * Must have the bd staff user flag.
199
+ */
200
+ export const editAvoidPosting = (options) => (options.client ?? client).patch({
201
+ ...urlSearchParamsBodySerializer,
202
+ security: [{ scheme: 'basic', type: 'http' }],
203
+ url: '/avoid_postings/{idOrName}.json',
204
+ ...options,
205
+ headers: {
206
+ 'Content-Type': 'application/x-www-form-urlencoded',
207
+ ...options.headers
208
+ }
209
+ });
210
+ /**
211
+ * Delete Avoid Posting Entry
212
+ *
213
+ * Must have the bd staff user flag.
214
+ */
215
+ export const deleteAvoidPosting = (options) => (options.client ?? client).put({
216
+ security: [{ scheme: 'basic', type: 'http' }],
217
+ url: '/avoid_postings/{idOrName}/delete.json',
218
+ ...options
219
+ });
220
+ /**
221
+ * Undelete Avoid Posting Entry
222
+ *
223
+ * Must have the bd staff user flag.
224
+ */
225
+ export const undeleteAvoidPosting = (options) => (options.client ?? client).put({
226
+ security: [{ scheme: 'basic', type: 'http' }],
227
+ url: '/avoid_postings/{idOrName}/undelete.json',
228
+ ...options
229
+ });
230
+ /**
231
+ * Search Avoid Posting Versions
232
+ */
233
+ export const searchAvoidPostingVersions = (options) => (options?.client ?? client).get({ url: '/avoid_posting_versions.json', ...options });
234
+ /**
235
+ * Search Bans
236
+ */
237
+ export const searchBans = (options) => (options?.client ?? client).get({ url: '/bans.json', ...options });
238
+ /**
239
+ * Get Ban
240
+ */
241
+ export const getBan = (options) => (options.client ?? client).get({ url: '/bans/{id}.json', ...options });
242
+ /**
243
+ * Search Blips
244
+ */
245
+ export const searchBlips = (options) => (options?.client ?? client).get({ url: '/blips.json', ...options });
246
+ /**
247
+ * Create Blip
248
+ */
249
+ export const createBlip = (options) => (options?.client ?? client).post({
250
+ ...urlSearchParamsBodySerializer,
251
+ security: [{ scheme: 'basic', type: 'http' }],
252
+ url: '/blips.json',
253
+ ...options,
254
+ headers: {
255
+ 'Content-Type': 'application/x-www-form-urlencoded',
256
+ ...options?.headers
257
+ }
258
+ });
259
+ /**
260
+ * Delete Blip
261
+ *
262
+ * You must be Admin+.
263
+ *
264
+ */
265
+ export const deleteBlip = (options) => (options.client ?? client).delete({
266
+ security: [{ scheme: 'basic', type: 'http' }],
267
+ url: '/blips/{id}.json',
268
+ ...options
269
+ });
270
+ /**
271
+ * Get Blip
272
+ */
273
+ export const getBlip = (options) => (options.client ?? client).get({ url: '/blips/{id}.json', ...options });
274
+ /**
275
+ * Edit Blip
276
+ *
277
+ * Unless Admin+, blips cannot be edited after 5 minutes. Marked blips cannot be edited.
278
+ */
279
+ export const editBlip = (options) => (options.client ?? client).patch({
280
+ ...urlSearchParamsBodySerializer,
281
+ security: [{ scheme: 'basic', type: 'http' }],
282
+ url: '/blips/{id}.json',
283
+ ...options,
284
+ headers: {
285
+ 'Content-Type': 'application/x-www-form-urlencoded',
286
+ ...options.headers
287
+ }
288
+ });
289
+ /**
290
+ * Hide Blip
291
+ *
292
+ * You must be the creator or Moderator+.
293
+ *
294
+ */
295
+ export const hideBlip = (options) => (options.client ?? client).post({
296
+ security: [{ scheme: 'basic', type: 'http' }],
297
+ url: '/blips/{id}/hide.json',
298
+ ...options
299
+ });
300
+ /**
301
+ * Unhide Blip
302
+ *
303
+ * You must be Moderator+.
304
+ *
305
+ */
306
+ export const unhideBlip = (options) => (options.client ?? client).post({
307
+ security: [{ scheme: 'basic', type: 'http' }],
308
+ url: '/blips/{id}/unhide.json',
309
+ ...options
310
+ });
311
+ /**
312
+ * Mark Blip
313
+ *
314
+ * You must be Moderator+.
315
+ */
316
+ export const markBlip = (options) => (options.client ?? client).post({
317
+ security: [{ scheme: 'basic', type: 'http' }],
318
+ url: '/blips/{id}/warning.json',
319
+ ...options,
320
+ headers: {
321
+ 'Content-Type': 'application/json',
322
+ ...options.headers
323
+ }
324
+ });
325
+ /**
326
+ * Search Bulk Update Requests
327
+ */
328
+ export const searchBulkUpdateRequests = (options) => (options?.client ?? client).get({ url: '/bulk_update_requests.json', ...options });
329
+ /**
330
+ * Create Bulk Update Request
331
+ */
332
+ export const createBulkUpdateRequest = (options) => (options?.client ?? client).post({
333
+ ...urlSearchParamsBodySerializer,
334
+ security: [{ scheme: 'basic', type: 'http' }],
335
+ url: '/bulk_update_requests.json',
336
+ ...options,
337
+ headers: {
338
+ 'Content-Type': 'application/x-www-form-urlencoded',
339
+ ...options?.headers
340
+ }
341
+ });
342
+ /**
343
+ * Reject Bulk Update Request
344
+ *
345
+ * You must be the creator of the BUR, or Admin+.
346
+ */
347
+ export const rejectBulkUpdateRequest = (options) => (options.client ?? client).delete({
348
+ security: [{ scheme: 'basic', type: 'http' }],
349
+ url: '/bulk_update_request/{id}.json',
350
+ ...options
351
+ });
352
+ /**
353
+ * Get Bulk Update Request
354
+ */
355
+ export const getBulkUpdateRequest = (options) => (options.client ?? client).get({ url: '/bulk_update_request/{id}.json', ...options });
356
+ /**
357
+ * Edit Bulk Update Request
358
+ *
359
+ * You must be the creator of the BUR, or Admin+.
360
+ */
361
+ export const editBulkUpdateRequest = (options) => (options.client ?? client).patch({
362
+ ...urlSearchParamsBodySerializer,
363
+ security: [{ scheme: 'basic', type: 'http' }],
364
+ url: '/bulk_update_request/{id}.json',
365
+ ...options,
366
+ headers: {
367
+ 'Content-Type': 'application/x-www-form-urlencoded',
368
+ ...options.headers
369
+ }
370
+ });
371
+ /**
372
+ * Approve Bulk Update Request
373
+ *
374
+ * Must be Admin+.
375
+ */
376
+ export const approveBulkUpdateRequest = (options) => (options.client ?? client).post({ url: '/bulk_update_request/{id}/approve.json', ...options });
377
+ /**
378
+ * Search Comments
379
+ *
380
+ * For searching comments, group_by=comment must be set.
381
+ */
382
+ export const searchComments = (options) => (options?.client ?? client).get({ url: '/comments.json', ...options });
383
+ /**
384
+ * Create Comment
385
+ */
386
+ export const createComment = (options) => (options?.client ?? client).post({
387
+ ...urlSearchParamsBodySerializer,
388
+ security: [{ scheme: 'basic', type: 'http' }],
389
+ url: '/comments.json',
390
+ ...options,
391
+ headers: {
392
+ 'Content-Type': 'application/x-www-form-urlencoded',
393
+ ...options?.headers
394
+ }
395
+ });
396
+ /**
397
+ * Delete Comment
398
+ *
399
+ * You must be Admin+.
400
+ *
401
+ */
402
+ export const deleteComment = (options) => (options.client ?? client).delete({
403
+ security: [{ scheme: 'basic', type: 'http' }],
404
+ url: '/comments/{id}.json',
405
+ ...options
406
+ });
407
+ /**
408
+ * Get Comment
409
+ *
410
+ * If the comment is hidden, you must be the creator or Janitor+ to see it.
411
+ */
412
+ export const getComment = (options) => (options.client ?? client).get({ url: '/comments/{id}.json', ...options });
413
+ /**
414
+ * Edit Comment
415
+ *
416
+ * You must be the creator of the comment, or Admin+ to edit. Marked comments cannot be edited.
417
+ *
418
+ */
419
+ export const editComment = (options) => (options.client ?? client).patch({
420
+ ...urlSearchParamsBodySerializer,
421
+ security: [{ scheme: 'basic', type: 'http' }],
422
+ url: '/comments/{id}.json',
423
+ ...options,
424
+ headers: {
425
+ 'Content-Type': 'application/x-www-form-urlencoded',
426
+ ...options.headers
427
+ }
428
+ });
429
+ /**
430
+ * Hide Comment
431
+ *
432
+ * You must be the creator or Moderator+.
433
+ *
434
+ */
435
+ export const hideComment = (options) => (options.client ?? client).post({
436
+ security: [{ scheme: 'basic', type: 'http' }],
437
+ url: '/comments/{id}/hide.json',
438
+ ...options
439
+ });
440
+ /**
441
+ * Unhide Comment
442
+ *
443
+ * You must be Moderator+.
444
+ *
445
+ */
446
+ export const unhideComment = (options) => (options.client ?? client).post({
447
+ security: [{ scheme: 'basic', type: 'http' }],
448
+ url: '/comments/{id}/unhide.json',
449
+ ...options
450
+ });
451
+ /**
452
+ * Mark Comment
453
+ *
454
+ * You must be Moderator+.
455
+ */
456
+ export const markComment = (options) => (options.client ?? client).post({
457
+ security: [{ scheme: 'basic', type: 'http' }],
458
+ url: '/comments/{id}/warning.json',
459
+ ...options,
460
+ headers: {
461
+ 'Content-Type': 'application/json',
462
+ ...options.headers
463
+ }
464
+ });
465
+ /**
466
+ * Delete Comment Vote
467
+ */
468
+ export const deleteCommentVote = (options) => (options.client ?? client).delete({
469
+ security: [{ scheme: 'basic', type: 'http' }],
470
+ url: '/comments/{id}/votes.json',
471
+ ...options
472
+ });
473
+ /**
474
+ * Create Comment Vote
475
+ */
476
+ export const createCommentVote = (options) => (options.client ?? client).post({
477
+ security: [{ scheme: 'basic', type: 'http' }],
478
+ url: '/comments/{id}/votes.json',
479
+ ...options
480
+ });
481
+ /**
482
+ * Lock Comment Votes
483
+ *
484
+ * You must be Moderator+. Errors if ids is not provided.
485
+ *
486
+ */
487
+ export const lockCommentVotes = (options) => (options.client ?? client).post({
488
+ security: [{ scheme: 'basic', type: 'http' }],
489
+ url: '/comment_votes/lock.json',
490
+ ...options
491
+ });
492
+ /**
493
+ * Delete Comment Votes
494
+ *
495
+ * You must be Admin+. Errors if ids is not provided.
496
+ *
497
+ */
498
+ export const deleteCommentVotes = (options) => (options.client ?? client).post({
499
+ security: [{ scheme: 'basic', type: 'http' }],
500
+ url: '/comment_votes/delete.json',
501
+ ...options
502
+ });
503
+ /**
504
+ * Search DMails
505
+ */
506
+ export const searchDMails = (options) => (options?.client ?? client).get({ url: '/dmails.json', ...options });
507
+ /**
508
+ * Delete DMail
509
+ *
510
+ * Deleting simply hides your copy of the dmail.
511
+ */
512
+ export const deleteDMail = (options) => (options.client ?? client).delete({
513
+ security: [{ scheme: 'basic', type: 'http' }],
514
+ url: '/dmails/{id}.json',
515
+ ...options
516
+ });
517
+ /**
518
+ * Get DMail
519
+ *
520
+ * Fetching a dmail will not mark it as read.
521
+ */
522
+ export const getDMail = (options) => (options.client ?? client).get({ url: '/dmails/{id}.json', ...options });
523
+ /**
524
+ * Mark DMail As Read
525
+ */
526
+ export const markDMailAsRead = (options) => (options.client ?? client).put({
527
+ security: [{ scheme: 'basic', type: 'http' }],
528
+ url: '/dmails/{id}/mark_as_read.json',
529
+ ...options
530
+ });
531
+ /**
532
+ * Mark DMail As Unread
533
+ */
534
+ export const markDMailAsUnread = (options) => (options.client ?? client).put({
535
+ security: [{ scheme: 'basic', type: 'http' }],
536
+ url: '/dmails/{id}/mark_as_unread.json',
537
+ ...options
538
+ });
539
+ /**
540
+ * Mark All DMails As Read
541
+ */
542
+ export const markAllDMailsAsRead = (options) => (options?.client ?? client).put({
543
+ security: [{ scheme: 'basic', type: 'http' }],
544
+ url: '/dmails/mark_all_as_read.json',
545
+ ...options
546
+ });
547
+ /**
548
+ * Preview DText
549
+ *
550
+ * Note while this route does not require auth, without auth it requires a CSRF token. For that reason it has been marked as requiring auth.
551
+ */
552
+ export const previewDText = (options) => (options?.client ?? client).post({
553
+ security: [{ scheme: 'basic', type: 'http' }, {
554
+ in: 'query',
555
+ name: 'authenticity_token',
556
+ type: 'apiKey'
557
+ }],
558
+ url: '/dtext_preview.json',
559
+ ...options,
560
+ headers: {
561
+ 'Content-Type': 'application/json',
562
+ ...options?.headers
563
+ }
564
+ });
565
+ /**
566
+ * Search Edit Histories
567
+ *
568
+ * You must be Moderator+.
569
+ */
570
+ export const searchEditHistories = (options) => (options?.client ?? client).get({
571
+ security: [{ scheme: 'basic', type: 'http' }],
572
+ url: '/edit_histories.json',
573
+ ...options
574
+ });
575
+ /**
576
+ * Get Edit History
577
+ *
578
+ * You must be Moderator+.
579
+ */
580
+ export const getEditHistory = (options) => (options.client ?? client).get({
581
+ security: [{ scheme: 'basic', type: 'http' }],
582
+ url: '/edit_histories/{id}.json',
583
+ ...options
584
+ });
585
+ /**
586
+ * Search Email Blacklists
587
+ */
588
+ export const searchEmailBlacklists = (options) => (options?.client ?? client).get({ url: '/email_blacklists.json', ...options });
589
+ /**
590
+ * Create Email Blacklist
591
+ *
592
+ * You must be Admin+.
593
+ */
594
+ export const createEmailBlacklist = (options) => (options?.client ?? client).post({
595
+ ...urlSearchParamsBodySerializer,
596
+ security: [{ scheme: 'basic', type: 'http' }],
597
+ url: '/email_blacklists.json',
598
+ ...options,
599
+ headers: {
600
+ 'Content-Type': 'application/x-www-form-urlencoded',
601
+ ...options?.headers
602
+ }
603
+ });
604
+ /**
605
+ * Delete Email Blacklist
606
+ *
607
+ * You must be Admin+.
608
+ */
609
+ export const deleteEmailBlacklist = (options) => (options.client ?? client).delete({
610
+ security: [{ scheme: 'basic', type: 'http' }],
611
+ url: '/email_blacklists/{id}.json',
612
+ ...options
613
+ });
614
+ /**
615
+ * List Favorites
616
+ */
617
+ export const listFavorites = (options) => (options?.client ?? client).get({ url: '/favorites.json', ...options });
618
+ /**
619
+ * Add Favorite
620
+ */
621
+ export const addFavorite = (options) => (options?.client ?? client).post({
622
+ security: [{ scheme: 'basic', type: 'http' }],
623
+ url: '/favorites.json',
624
+ ...options,
625
+ headers: {
626
+ 'Content-Type': 'application/json',
627
+ ...options?.headers
628
+ }
629
+ });
630
+ /**
631
+ * Remove Favorite
632
+ */
633
+ export const removeFavorite = (options) => (options.client ?? client).delete({
634
+ security: [{ scheme: 'basic', type: 'http' }],
635
+ url: '/favorites/{id}.json',
636
+ ...options
637
+ });
638
+ /**
639
+ * Search Forum Posts
640
+ */
641
+ export const searchForumPosts = (options) => (options?.client ?? client).get({ url: '/forum_posts.json', ...options });
642
+ /**
643
+ * Create Forum Post
644
+ */
645
+ export const createForumPost = (options) => (options?.client ?? client).post({
646
+ ...urlSearchParamsBodySerializer,
647
+ security: [{ scheme: 'basic', type: 'http' }],
648
+ url: '/forum_posts.json',
649
+ ...options,
650
+ headers: {
651
+ 'Content-Type': 'application/x-www-form-urlencoded',
652
+ ...options?.headers
653
+ }
654
+ });
655
+ /**
656
+ * Delete Forum Post
657
+ *
658
+ * You must be Admin+.
659
+ */
660
+ export const deleteForumPost = (options) => (options.client ?? client).delete({
661
+ security: [{ scheme: 'basic', type: 'http' }],
662
+ url: '/forum_posts/{id}.json',
663
+ ...options
664
+ });
665
+ /**
666
+ * Get Forum Post
667
+ *
668
+ * If the forum post is hidden, you must be the creator or Moderator+ to see it.
669
+ */
670
+ export const getForumPost = (options) => (options.client ?? client).get({ url: '/forum_posts/{id}.json', ...options });
671
+ /**
672
+ * Edit Forum Post
673
+ *
674
+ * You must be the creator of the forum post, or Admin+ to edit. Marked forum posts cannot be edited.
675
+ */
676
+ export const editForumPost = (options) => (options.client ?? client).patch({
677
+ ...urlSearchParamsBodySerializer,
678
+ security: [{ scheme: 'basic', type: 'http' }],
679
+ url: '/forum_posts/{id}.json',
680
+ ...options,
681
+ headers: {
682
+ 'Content-Type': 'application/x-www-form-urlencoded',
683
+ ...options.headers
684
+ }
685
+ });
686
+ /**
687
+ * Hide Forum Post
688
+ *
689
+ * You must be the creator or Moderator+.
690
+ */
691
+ export const hideForumPost = (options) => (options.client ?? client).post({
692
+ security: [{ scheme: 'basic', type: 'http' }],
693
+ url: '/forum_posts/{id}/hide.json',
694
+ ...options
695
+ });
696
+ /**
697
+ * Unhide Forum Post
698
+ *
699
+ * You must be Moderator+.
700
+ */
701
+ export const unhideForumPost = (options) => (options.client ?? client).post({
702
+ security: [{ scheme: 'basic', type: 'http' }],
703
+ url: '/forum_posts/{id}/unhide.json',
704
+ ...options
705
+ });
706
+ /**
707
+ * Mark Forum Post
708
+ *
709
+ * You must be Moderator+.
710
+ *
711
+ */
712
+ export const markForumPost = (options) => (options.client ?? client).post({
713
+ security: [{ scheme: 'basic', type: 'http' }],
714
+ url: '/forum_posts/{id}/warning.json',
715
+ ...options,
716
+ headers: {
717
+ 'Content-Type': 'application/json',
718
+ ...options.headers
719
+ }
720
+ });
721
+ /**
722
+ * Delete Forum Post Vote
723
+ */
724
+ export const deleteForumPostVote = (options) => (options.client ?? client).delete({
725
+ security: [{ scheme: 'basic', type: 'http' }],
726
+ url: '/forum_posts/{id}/votes.json',
727
+ ...options
728
+ });
729
+ /**
730
+ * Create Forum Post Vote
731
+ */
732
+ export const createForumPostVote = (options) => (options.client ?? client).post({
733
+ ...urlSearchParamsBodySerializer,
734
+ security: [{ scheme: 'basic', type: 'http' }],
735
+ url: '/forum_posts/{id}/votes.json',
736
+ ...options,
737
+ headers: {
738
+ 'Content-Type': 'application/x-www-form-urlencoded',
739
+ ...options.headers
740
+ }
741
+ });
742
+ /**
743
+ * Search Forum Topics
744
+ */
745
+ export const searchForumTopics = (options) => (options?.client ?? client).get({ url: '/forum_topics.json', ...options });
746
+ /**
747
+ * Create Forum Topic
748
+ */
749
+ export const createForumTopic = (options) => (options?.client ?? client).post({
750
+ ...urlSearchParamsBodySerializer,
751
+ security: [{ scheme: 'basic', type: 'http' }],
752
+ url: '/forum_topics.json',
753
+ ...options,
754
+ headers: {
755
+ 'Content-Type': 'application/x-www-form-urlencoded',
756
+ ...options?.headers
757
+ }
758
+ });
759
+ /**
760
+ * Delete Forum Topic
761
+ *
762
+ * You must be Admin+.
763
+ */
764
+ export const deleteForumTopic = (options) => (options.client ?? client).delete({
765
+ security: [{ scheme: 'basic', type: 'http' }],
766
+ url: '/forum_topics/{id}.json',
767
+ ...options
768
+ });
769
+ /**
770
+ * Get Forum Forum Topic
771
+ *
772
+ * If the forum topic is hidden, you must be the creator or Moderator+ to see it.
773
+ */
774
+ export const getForumTopic = (options) => (options.client ?? client).get({ url: '/forum_topics/{id}.json', ...options });
775
+ /**
776
+ * Edit Forum Topic
777
+ */
778
+ export const editForumTopic = (options) => (options.client ?? client).patch({
779
+ ...urlSearchParamsBodySerializer,
780
+ security: [{ scheme: 'basic', type: 'http' }],
781
+ url: '/forum_topics/{id}.json',
782
+ ...options,
783
+ headers: {
784
+ 'Content-Type': 'application/x-www-form-urlencoded',
785
+ ...options.headers
786
+ }
787
+ });
788
+ /**
789
+ * Hide Forum Topic
790
+ *
791
+ * You must be the creator or Moderator+.
792
+ */
793
+ export const hideForumTopic = (options) => (options.client ?? client).post({
794
+ security: [{ scheme: 'basic', type: 'http' }],
795
+ url: '/forum_topics/{id}/hide.json',
796
+ ...options
797
+ });
798
+ /**
799
+ * Unhide Forum Topic
800
+ *
801
+ * You must be Moderator+.
802
+ */
803
+ export const unhideForumTopic = (options) => (options.client ?? client).post({
804
+ security: [{ scheme: 'basic', type: 'http' }],
805
+ url: '/forum_topics/{id}/unhide.json',
806
+ ...options
807
+ });
808
+ /**
809
+ * Subscribe To Forum Topic
810
+ */
811
+ export const subscribeForumTopic = (options) => (options.client ?? client).post({
812
+ security: [{ scheme: 'basic', type: 'http' }],
813
+ url: '/forum_topics/{id}/subscribe.json',
814
+ ...options
815
+ });
816
+ /**
817
+ * Unsubscribe From Forum Topic
818
+ */
819
+ export const unsubscribeForumTopic = (options) => (options.client ?? client).post({
820
+ security: [{ scheme: 'basic', type: 'http' }],
821
+ url: '/forum_topics/{id}/unsubscribe.json',
822
+ ...options
823
+ });
824
+ /**
825
+ * Mark All Forum Topics As Read
826
+ */
827
+ export const markAllForumTopicsAsRead = (options) => (options?.client ?? client).post({
828
+ security: [{ scheme: 'basic', type: 'http' }],
829
+ url: '/forum_topics/mark_all_as_read.json',
830
+ ...options,
831
+ headers: {
832
+ 'Content-Type': 'application/json',
833
+ ...options?.headers
834
+ }
835
+ });
836
+ /**
837
+ * List Help Pages
838
+ *
839
+ * Will error if no help pages exist.
840
+ */
841
+ export const listHelpPages = (options) => (options?.client ?? client).get({ url: '/help.json', ...options });
842
+ /**
843
+ * Create Help Page
844
+ *
845
+ * You must be Admin+.
846
+ */
847
+ export const createHelpPage = (options) => (options?.client ?? client).post({
848
+ ...urlSearchParamsBodySerializer,
849
+ security: [{ scheme: 'basic', type: 'http' }],
850
+ url: '/help.json',
851
+ ...options,
852
+ headers: {
853
+ 'Content-Type': 'application/x-www-form-urlencoded',
854
+ ...options?.headers
855
+ }
856
+ });
857
+ /**
858
+ * Delete Help Page
859
+ *
860
+ * You must be Admin+.
861
+ */
862
+ export const deleteHelpPage = (options) => (options.client ?? client).delete({
863
+ security: [{ scheme: 'basic', type: 'http' }],
864
+ url: '/help/{id}.json',
865
+ ...options
866
+ });
867
+ /**
868
+ * Get Help Page
869
+ */
870
+ export const getHelpPage = (options) => (options.client ?? client).get({ url: '/help/{id}.json', ...options });
871
+ /**
872
+ * Edit Help Page
873
+ *
874
+ * You must be Admin+
875
+ */
876
+ export const editHelpPage = (options) => (options.client ?? client).patch({
877
+ ...urlSearchParamsBodySerializer,
878
+ security: [{ scheme: 'basic', type: 'http' }],
879
+ url: '/help/{id}.json',
880
+ ...options,
881
+ headers: {
882
+ 'Content-Type': 'application/x-www-form-urlencoded',
883
+ ...options.headers
884
+ }
885
+ });
886
+ /**
887
+ * List IP Bans
888
+ */
889
+ export const listIpBans = (options) => (options?.client ?? client).get({
890
+ security: [{ scheme: 'basic', type: 'http' }],
891
+ url: '/ip_bans.json',
892
+ ...options
893
+ });
894
+ /**
895
+ * Create IP Ban
896
+ *
897
+ * You must be Admin+.
898
+ */
899
+ export const createIpBan = (options) => (options?.client ?? client).post({
900
+ ...urlSearchParamsBodySerializer,
901
+ security: [{ scheme: 'basic', type: 'http' }],
902
+ url: '/ip_bans.json',
903
+ ...options,
904
+ headers: {
905
+ 'Content-Type': 'application/x-www-form-urlencoded',
906
+ ...options?.headers
907
+ }
908
+ });
909
+ /**
910
+ * Delete IP Ban
911
+ *
912
+ * You must be Admin+.
913
+ */
914
+ export const deleteIpBan = (options) => (options.client ?? client).delete({
915
+ security: [{ scheme: 'basic', type: 'http' }],
916
+ url: '/ip_bans/{id}.json',
917
+ ...options
918
+ });
919
+ /**
920
+ * Query IQDB
921
+ */
922
+ export const queryIqdbGet = (options) => (options?.client ?? client).get({ url: '/iqdb_queries.json', ...options });
923
+ /**
924
+ * Query IQDB
925
+ */
926
+ export const queryIqdbPost = (options) => (options?.client ?? client).post({
927
+ url: '/iqdb_queries.json',
928
+ ...options,
929
+ headers: {
930
+ 'Content-Type': 'application/json',
931
+ ...options?.headers
932
+ }
933
+ });
934
+ /**
935
+ * Search Mascots
936
+ */
937
+ export const searchMascots = (options) => (options?.client ?? client).get({ url: '/mascots.json', ...options });
938
+ /**
939
+ * Create Mascot
940
+ *
941
+ * You must be Admin+.
942
+ */
943
+ export const createMascot = (options) => (options?.client ?? client).post({
944
+ ...formDataBodySerializer,
945
+ security: [{ scheme: 'basic', type: 'http' }],
946
+ url: '/mascots.json',
947
+ ...options,
948
+ headers: {
949
+ 'Content-Type': null,
950
+ ...options?.headers
951
+ }
952
+ });
953
+ /**
954
+ * Delete Mascot
955
+ *
956
+ * You must be Admin+.
957
+ */
958
+ export const deleteMascot = (options) => (options.client ?? client).delete({
959
+ security: [{ scheme: 'basic', type: 'http' }],
960
+ url: '/mascots/{id}.json',
961
+ ...options
962
+ });
963
+ /**
964
+ * Edit Mascot
965
+ *
966
+ * You must be Admin+.
967
+ */
968
+ export const editMascot = (options) => (options.client ?? client).patch({
969
+ ...formDataBodySerializer,
970
+ security: [{ scheme: 'basic', type: 'http' }],
971
+ url: '/mascots/{id}.json',
972
+ ...options,
973
+ headers: {
974
+ 'Content-Type': null,
975
+ ...options.headers
976
+ }
977
+ });
978
+ /**
979
+ * Search Mod Actions
980
+ *
981
+ * Note that some mod actions are not in use anymore. Their entries exist for historical purposes only.<br>
982
+ * The current legacy actions are as follows:<br>
983
+ * * `created_positive_record`, `created_neutral_record`, `created_negative_record`
984
+ * * `created_flag_reason`, `edited_flag_reason`, `deleted_flag_reason`
985
+ * * `post_move_favorites`, `post_delete`, `post_undelete`, `post_destroy`, `post_rating_lock`, `post_unapprove`
986
+ * * `post_replacement_accept`, `post_replacement_reject`, `post_replacement_delete`
987
+ *
988
+ */
989
+ export const searchModActions = (options) => (options?.client ?? client).get({ url: '/mod_actions.json', ...options });
990
+ /**
991
+ * Get Mod Action
992
+ */
993
+ export const getModAction = (options) => (options.client ?? client).get({ url: '/mod_actions/{id}.json', ...options });
994
+ /**
995
+ * List News Updates
996
+ */
997
+ export const listNewsUpdates = (options) => (options?.client ?? client).get({ url: '/news_updates.json', ...options });
998
+ /**
999
+ * Create News Update
1000
+ *
1001
+ * You must be Admin+.
1002
+ */
1003
+ export const createNewsUpdate = (options) => (options?.client ?? client).post({
1004
+ ...urlSearchParamsBodySerializer,
1005
+ security: [{ scheme: 'basic', type: 'http' }],
1006
+ url: '/news_updates.json',
1007
+ ...options,
1008
+ headers: {
1009
+ 'Content-Type': 'application/x-www-form-urlencoded',
1010
+ ...options?.headers
1011
+ }
1012
+ });
1013
+ /**
1014
+ * Delete News Update
1015
+ *
1016
+ * You must be Admin+.
1017
+ */
1018
+ export const deleteNewsUpdate = (options) => (options.client ?? client).delete({
1019
+ security: [{ scheme: 'basic', type: 'http' }],
1020
+ url: '/news_updates/{id}.json',
1021
+ ...options
1022
+ });
1023
+ /**
1024
+ * Edit News Update
1025
+ *
1026
+ * You must be Admin+
1027
+ */
1028
+ export const editNewsUpdate = (options) => (options.client ?? client).patch({
1029
+ ...urlSearchParamsBodySerializer,
1030
+ security: [{ scheme: 'basic', type: 'http' }],
1031
+ url: '/news_updates/{id}.json',
1032
+ ...options,
1033
+ headers: {
1034
+ 'Content-Type': 'application/x-www-form-urlencoded',
1035
+ ...options.headers
1036
+ }
1037
+ });
1038
+ /**
1039
+ * Search Notes
1040
+ */
1041
+ export const searchNotes = (options) => (options?.client ?? client).get({ url: '/notes.json', ...options });
1042
+ /**
1043
+ * Create Note
1044
+ */
1045
+ export const createNote = (options) => (options?.client ?? client).post({
1046
+ ...urlSearchParamsBodySerializer,
1047
+ security: [{ scheme: 'basic', type: 'http' }],
1048
+ url: '/notes.json',
1049
+ ...options,
1050
+ headers: {
1051
+ 'Content-Type': 'application/x-www-form-urlencoded',
1052
+ ...options?.headers
1053
+ }
1054
+ });
1055
+ /**
1056
+ * Delete Note
1057
+ */
1058
+ export const deleteNote = (options) => (options.client ?? client).delete({
1059
+ security: [{ scheme: 'basic', type: 'http' }],
1060
+ url: '/notes/{id}.json',
1061
+ ...options
1062
+ });
1063
+ /**
1064
+ * Get Note
1065
+ */
1066
+ export const getNote = (options) => (options.client ?? client).get({ url: '/notes/{id}.json', ...options });
1067
+ /**
1068
+ * Edit Note
1069
+ */
1070
+ export const editNote = (options) => (options.client ?? client).patch({
1071
+ ...urlSearchParamsBodySerializer,
1072
+ security: [{ scheme: 'basic', type: 'http' }],
1073
+ url: '/notes/{id}.json',
1074
+ ...options,
1075
+ headers: {
1076
+ 'Content-Type': 'application/x-www-form-urlencoded',
1077
+ ...options.headers
1078
+ }
1079
+ });
1080
+ /**
1081
+ * Revert Note
1082
+ */
1083
+ export const revertNote = (options) => (options.client ?? client).post({
1084
+ security: [{ scheme: 'basic', type: 'http' }],
1085
+ url: '/notes/{id}/revert.json',
1086
+ ...options
1087
+ });
1088
+ /**
1089
+ * Search Note Versions
1090
+ */
1091
+ export const searchNoteVersions = (options) => (options?.client ?? client).get({ url: '/note_versions.json', ...options });
1092
+ /**
1093
+ * Search Pools
1094
+ */
1095
+ export const searchPools = (options) => (options?.client ?? client).get({ url: '/pools.json', ...options });
1096
+ /**
1097
+ * Create Pool
1098
+ */
1099
+ export const createPool = (options) => (options?.client ?? client).post({
1100
+ ...urlSearchParamsBodySerializer,
1101
+ security: [{ scheme: 'basic', type: 'http' }],
1102
+ url: '/pools.json',
1103
+ ...options,
1104
+ headers: {
1105
+ 'Content-Type': 'application/x-www-form-urlencoded',
1106
+ ...options?.headers
1107
+ }
1108
+ });
1109
+ /**
1110
+ * Delete Pool
1111
+ *
1112
+ * You must be Janitor+.
1113
+ */
1114
+ export const deletePool = (options) => (options.client ?? client).delete({
1115
+ security: [{ scheme: 'basic', type: 'http' }],
1116
+ url: '/pools/{id}.json',
1117
+ ...options
1118
+ });
1119
+ /**
1120
+ * Get Pool
1121
+ */
1122
+ export const getPool = (options) => (options.client ?? client).get({ url: '/pools/{id}.json', ...options });
1123
+ /**
1124
+ * Edit Pool
1125
+ */
1126
+ export const editPool = (options) => (options.client ?? client).patch({
1127
+ ...urlSearchParamsBodySerializer,
1128
+ security: [{ scheme: 'basic', type: 'http' }],
1129
+ url: '/pools/{id}.json',
1130
+ ...options,
1131
+ headers: {
1132
+ 'Content-Type': 'application/x-www-form-urlencoded',
1133
+ ...options.headers
1134
+ }
1135
+ });
1136
+ /**
1137
+ * Revert Pool
1138
+ */
1139
+ export const revertPool = (options) => (options.client ?? client).put({
1140
+ security: [{ scheme: 'basic', type: 'http' }],
1141
+ url: '/pools/{id}/revert.json',
1142
+ ...options
1143
+ });
1144
+ /**
1145
+ * Remove Post From Pool
1146
+ */
1147
+ export const removePostFromPool = (options) => (options?.client ?? client).delete({
1148
+ ...urlSearchParamsBodySerializer,
1149
+ security: [{ scheme: 'basic', type: 'http' }],
1150
+ url: '/pool_element.json',
1151
+ ...options,
1152
+ headers: {
1153
+ 'Content-Type': 'application/x-www-form-urlencoded',
1154
+ ...options?.headers
1155
+ }
1156
+ });
1157
+ /**
1158
+ * Add Post To Pool
1159
+ */
1160
+ export const addPostToPool = (options) => (options?.client ?? client).post({
1161
+ ...urlSearchParamsBodySerializer,
1162
+ security: [{ scheme: 'basic', type: 'http' }],
1163
+ url: '/pool_element.json',
1164
+ ...options,
1165
+ headers: {
1166
+ 'Content-Type': 'application/x-www-form-urlencoded',
1167
+ ...options?.headers
1168
+ }
1169
+ });
1170
+ /**
1171
+ * Get Recent Pools
1172
+ */
1173
+ export const getRecentPools = (options) => (options?.client ?? client).get({
1174
+ ...urlSearchParamsBodySerializer,
1175
+ security: [{ scheme: 'basic', type: 'http' }],
1176
+ url: '/pool_element/recent.json',
1177
+ ...options,
1178
+ headers: {
1179
+ 'Content-Type': 'application/x-www-form-urlencoded',
1180
+ ...options?.headers
1181
+ }
1182
+ });
1183
+ /**
1184
+ * Search Pool Versions
1185
+ */
1186
+ export const searchPoolVersions = (options) => (options?.client ?? client).get({ url: '/pool_versions.json', ...options });
1187
+ /**
1188
+ * List Most Upvoted Posts
1189
+ */
1190
+ export const listPopular = (options) => (options?.client ?? client).get({ url: '/popular.json', ...options });
1191
+ /**
1192
+ * Search Posts
1193
+ */
1194
+ export const searchPosts = (options) => (options?.client ?? client).get({ url: '/posts.json', ...options });
1195
+ /**
1196
+ * Get Random Post
1197
+ */
1198
+ export const getRandomPost = (options) => (options?.client ?? client).get({ url: '/posts/random.json', ...options });
1199
+ /**
1200
+ * Get Post
1201
+ */
1202
+ export const getPost = (options) => (options.client ?? client).get({ url: '/posts/{id}.json', ...options });
1203
+ /**
1204
+ * Edit Post
1205
+ *
1206
+ * Most errors are silently swallowed.
1207
+ */
1208
+ export const editPost = (options) => (options.client ?? client).patch({
1209
+ ...urlSearchParamsBodySerializer,
1210
+ security: [{ scheme: 'basic', type: 'http' }],
1211
+ url: '/posts/{id}.json',
1212
+ ...options,
1213
+ headers: {
1214
+ 'Content-Type': 'application/x-www-form-urlencoded',
1215
+ ...options.headers
1216
+ }
1217
+ });
1218
+ /**
1219
+ * Update Post IQDB
1220
+ *
1221
+ * You must be Admin+.
1222
+ */
1223
+ export const updatePostIqdb = (options) => (options.client ?? client).get({
1224
+ security: [{ scheme: 'basic', type: 'http' }],
1225
+ url: '/posts/{id}/update_iqdb.json',
1226
+ ...options
1227
+ });
1228
+ /**
1229
+ * Mark Post As Translated
1230
+ *
1231
+ * Will error if no body is provided.
1232
+ */
1233
+ export const markPostAsTranslated = (options) => (options.client ?? client).post({
1234
+ security: [{ scheme: 'basic', type: 'http' }],
1235
+ url: '/posts/{id}/mark_as_translated.json',
1236
+ ...options,
1237
+ headers: {
1238
+ 'Content-Type': 'application/json',
1239
+ ...options.headers
1240
+ }
1241
+ });
1242
+ /**
1243
+ * Copy Notes To Post
1244
+ */
1245
+ export const copyNotesToPost = (options) => (options.client ?? client).put({
1246
+ security: [{ scheme: 'basic', type: 'http' }],
1247
+ url: '/posts/{id}/copy_notes.json',
1248
+ ...options,
1249
+ headers: {
1250
+ 'Content-Type': 'application/json',
1251
+ ...options.headers
1252
+ }
1253
+ });
1254
+ /**
1255
+ * Revert Post
1256
+ */
1257
+ export const revertPost = (options) => (options.client ?? client).post({
1258
+ security: [{ scheme: 'basic', type: 'http' }],
1259
+ url: '/posts/{id}/revert.json',
1260
+ ...options
1261
+ });
1262
+ /**
1263
+ * Get Post In Sequence
1264
+ */
1265
+ export const getPostInSequence = (options) => (options.client ?? client).get({ url: '/posts/{id}/show_seq.json', ...options });
1266
+ /**
1267
+ * Unflag Post
1268
+ *
1269
+ * You must have the "Approve Posts" permission.
1270
+ */
1271
+ export const unflagPost = (options) => (options.client ?? client).delete({
1272
+ ...urlSearchParamsBodySerializer,
1273
+ security: [{ scheme: 'basic', type: 'http' }],
1274
+ url: '/posts/{id}/flag.json',
1275
+ ...options,
1276
+ headers: {
1277
+ 'Content-Type': 'application/x-www-form-urlencoded',
1278
+ ...options.headers
1279
+ }
1280
+ });
1281
+ /**
1282
+ * List Post Favorites
1283
+ *
1284
+ * You must be the user or Moderator+ to see users that have their favorites hidden.
1285
+ */
1286
+ export const listPostFavorites = (options) => (options.client ?? client).get({ url: '/posts/{id}/favorites.json', ...options });
1287
+ /**
1288
+ * Delete Post Vote
1289
+ */
1290
+ export const deletePostVote = (options) => (options.client ?? client).delete({
1291
+ security: [{ scheme: 'basic', type: 'http' }],
1292
+ url: '/posts/{id}/votes.json',
1293
+ ...options
1294
+ });
1295
+ /**
1296
+ * Create Post Vote
1297
+ */
1298
+ export const createPostVote = (options) => (options.client ?? client).post({
1299
+ security: [{ scheme: 'basic', type: 'http' }],
1300
+ url: '/posts/{id}/votes.json',
1301
+ ...options
1302
+ });
1303
+ /**
1304
+ * Search Post Sets
1305
+ */
1306
+ export const searchPostSets = (options) => (options?.client ?? client).get({ url: '/post_sets.json', ...options });
1307
+ /**
1308
+ * Create Post Set
1309
+ */
1310
+ export const createPostSet = (options) => (options?.client ?? client).post({
1311
+ ...urlSearchParamsBodySerializer,
1312
+ security: [{ scheme: 'basic', type: 'http' }],
1313
+ url: '/post_sets.json',
1314
+ ...options,
1315
+ headers: {
1316
+ 'Content-Type': 'application/x-www-form-urlencoded',
1317
+ ...options?.headers
1318
+ }
1319
+ });
1320
+ /**
1321
+ * Delete Post Set
1322
+ *
1323
+ * You must be the owner of the set, or Admin+.
1324
+ */
1325
+ export const deletePostSet = (options) => (options.client ?? client).delete({
1326
+ security: [{ scheme: 'basic', type: 'http' }],
1327
+ url: '/post_sets/{id}.json',
1328
+ ...options
1329
+ });
1330
+ /**
1331
+ * Get Post Set
1332
+ *
1333
+ * You must be Moderator+ if the set is not public.
1334
+ */
1335
+ export const getPostSet = (options) => (options.client ?? client).get({ url: '/post_sets/{id}.json', ...options });
1336
+ /**
1337
+ * Edit Post Set
1338
+ *
1339
+ * You must be the owner of the set, or Admin+.
1340
+ */
1341
+ export const editPostSet = (options) => (options.client ?? client).patch({
1342
+ ...urlSearchParamsBodySerializer,
1343
+ security: [{ scheme: 'basic', type: 'http' }],
1344
+ url: '/post_sets/{id}.json',
1345
+ ...options,
1346
+ headers: {
1347
+ 'Content-Type': 'application/x-www-form-urlencoded',
1348
+ ...options.headers
1349
+ }
1350
+ });
1351
+ /**
1352
+ * Update Post Set Posts
1353
+ *
1354
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1355
+ */
1356
+ export const updatePostSetPosts = (options) => (options.client ?? client).post({
1357
+ ...urlSearchParamsBodySerializer,
1358
+ security: [{ scheme: 'basic', type: 'http' }],
1359
+ url: '/post_sets/{id}/update_posts.json',
1360
+ ...options,
1361
+ headers: {
1362
+ 'Content-Type': 'application/x-www-form-urlencoded',
1363
+ ...options.headers
1364
+ }
1365
+ });
1366
+ /**
1367
+ * Add Posts To Post Set
1368
+ *
1369
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1370
+ */
1371
+ export const addPostsToPostSet = (options) => (options.client ?? client).post({
1372
+ ...urlSearchParamsBodySerializer,
1373
+ security: [{ scheme: 'basic', type: 'http' }],
1374
+ url: '/post_sets/{id}/add_posts.json',
1375
+ ...options,
1376
+ headers: {
1377
+ 'Content-Type': 'application/x-www-form-urlencoded',
1378
+ ...options.headers
1379
+ }
1380
+ });
1381
+ /**
1382
+ * Remove Posts From Post Set
1383
+ *
1384
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1385
+ */
1386
+ export const removePostsFromPostSet = (options) => (options.client ?? client).post({
1387
+ ...urlSearchParamsBodySerializer,
1388
+ security: [{ scheme: 'basic', type: 'http' }],
1389
+ url: '/post_sets/{id}/remove_posts.json',
1390
+ ...options,
1391
+ headers: {
1392
+ 'Content-Type': 'application/x-www-form-urlencoded',
1393
+ ...options.headers
1394
+ }
1395
+ });
1396
+ /**
1397
+ * List Post Sets For Select
1398
+ *
1399
+ * You must be the owner of the set, a maintainer (if public), or Admin+.
1400
+ */
1401
+ export const listPostSetsForSelect = (options) => (options?.client ?? client).get({
1402
+ security: [{ scheme: 'basic', type: 'http' }],
1403
+ url: '/post_sets/for_select.json',
1404
+ ...options
1405
+ });
1406
+ /**
1407
+ * Search Post Approvals
1408
+ */
1409
+ export const searchPostApprovals = (options) => (options?.client ?? client).get({ url: '/post_approvals.json', ...options });
1410
+ /**
1411
+ * Search Post Events
1412
+ */
1413
+ export const searchPostEvents = (options) => (options?.client ?? client).get({
1414
+ security: [{ scheme: 'basic', type: 'http' }],
1415
+ url: '/post_events.json',
1416
+ ...options
1417
+ });
1418
+ /**
1419
+ * Search Post Flags
1420
+ */
1421
+ export const searchPostFlags = (options) => (options?.client ?? client).get({ url: '/post_flags.json', ...options });
1422
+ /**
1423
+ * Create Post Flag
1424
+ *
1425
+ * Will error if post_id is not provided.
1426
+ */
1427
+ export const createPostFlag = (options) => (options?.client ?? client).post({
1428
+ ...urlSearchParamsBodySerializer,
1429
+ security: [{ scheme: 'basic', type: 'http' }],
1430
+ url: '/post_flags.json',
1431
+ ...options,
1432
+ headers: {
1433
+ 'Content-Type': 'application/x-www-form-urlencoded',
1434
+ ...options?.headers
1435
+ }
1436
+ });
1437
+ /**
1438
+ * Get Post Flag
1439
+ */
1440
+ export const getPostFlag = (options) => (options.client ?? client).get({ url: '/post_flags/{id}.json', ...options });
1441
+ /**
1442
+ * Clear Post Flag Note
1443
+ *
1444
+ * You must be Janitor+
1445
+ */
1446
+ export const clearPostFlagNote = (options) => (options.client ?? client).post({
1447
+ security: [{ scheme: 'basic', type: 'http' }],
1448
+ url: '/post_flags/{id}/clear_note.json',
1449
+ ...options
1450
+ });
1451
+ /**
1452
+ * Search Post Replacements
1453
+ *
1454
+ * Rejected replacements can only be seen by staff.
1455
+ */
1456
+ export const searchPostReplacements = (options) => (options?.client ?? client).get({ url: '/post_replacements.json', ...options });
1457
+ /**
1458
+ * Create Post Replacement
1459
+ */
1460
+ export const createPostReplacement = (options) => (options?.client ?? client).post({
1461
+ ...formDataBodySerializer,
1462
+ security: [{ scheme: 'basic', type: 'http' }],
1463
+ url: '/post_replacements.json',
1464
+ ...options,
1465
+ headers: {
1466
+ 'Content-Type': null,
1467
+ ...options?.headers
1468
+ }
1469
+ });
1470
+ /**
1471
+ * Delete Post Replacement
1472
+ *
1473
+ * You must be Admin+.
1474
+ */
1475
+ export const deletePostReplacement = (options) => (options.client ?? client).delete({
1476
+ security: [{ scheme: 'basic', type: 'http' }],
1477
+ url: '/post_replacements/{id}.json',
1478
+ ...options
1479
+ });
1480
+ /**
1481
+ * Approve Post Replacement
1482
+ *
1483
+ * You must have the "Approve Posts" permission.
1484
+ */
1485
+ export const approvePostReplacement = (options) => (options.client ?? client).put({
1486
+ security: [{ scheme: 'basic', type: 'http' }],
1487
+ url: '/post_replacements/{id}/approve.json',
1488
+ ...options
1489
+ });
1490
+ /**
1491
+ * Reject Post Replacement
1492
+ *
1493
+ * You must have the "Approve Posts" permission.
1494
+ */
1495
+ export const rejectPostReplacement = (options) => (options.client ?? client).put({
1496
+ security: [{ scheme: 'basic', type: 'http' }],
1497
+ url: '/post_replacements/{id}/reject.json',
1498
+ ...options
1499
+ });
1500
+ /**
1501
+ * Promote Post Replacement
1502
+ *
1503
+ * You must have the "Approve Posts" permission.
1504
+ */
1505
+ export const promotePostReplacement = (options) => (options.client ?? client).post({
1506
+ security: [{ scheme: 'basic', type: 'http' }],
1507
+ url: '/post_replacements/{id}/promote.json',
1508
+ ...options
1509
+ });
1510
+ /**
1511
+ * Toggle Post Replacement Penalty
1512
+ *
1513
+ * You must have the "Approve Posts" permission.
1514
+ */
1515
+ export const togglePostReplacementPenalty = (options) => (options.client ?? client).put({
1516
+ security: [{ scheme: 'basic', type: 'http' }],
1517
+ url: '/post_replacements/{id}/toggle_penalize.json',
1518
+ ...options
1519
+ });
1520
+ /**
1521
+ * Search Post Versions
1522
+ */
1523
+ export const searchPostVersions = (options) => (options?.client ?? client).get({ url: '/post_versions.json', ...options });
1524
+ /**
1525
+ * Hide Post Version
1526
+ *
1527
+ * You must be Admin+.
1528
+ */
1529
+ export const hidePostVersion = (options) => (options.client ?? client).put({
1530
+ security: [{ scheme: 'basic', type: 'http' }],
1531
+ url: '/post_versions/{id}/hide.json',
1532
+ ...options
1533
+ });
1534
+ /**
1535
+ * Unhide Post Version
1536
+ *
1537
+ * You must be Admin+.
1538
+ */
1539
+ export const unhidePostVersion = (options) => (options.client ?? client).put({
1540
+ security: [{ scheme: 'basic', type: 'http' }],
1541
+ url: '/post_versions/{id}/unhide.json',
1542
+ ...options
1543
+ });
1544
+ /**
1545
+ * Undo Post Version
1546
+ */
1547
+ export const undoPostVersion = (options) => (options.client ?? client).put({
1548
+ security: [{ scheme: 'basic', type: 'http' }],
1549
+ url: '/post_versions/{id}/undo.json',
1550
+ ...options
1551
+ });
1552
+ /**
1553
+ * Lock Post Votes
1554
+ *
1555
+ * You must be Moderator+. Errors if ids is not provided.
1556
+ */
1557
+ export const lockPostVotes = (options) => (options.client ?? client).post({
1558
+ security: [{ scheme: 'basic', type: 'http' }],
1559
+ url: '/post_votes/lock.json',
1560
+ ...options
1561
+ });
1562
+ /**
1563
+ * Delete Post Vote
1564
+ *
1565
+ * You must be Admin+. Errors if ids is not provided.
1566
+ */
1567
+ export const deletePostVotes = (options) => (options.client ?? client).post({
1568
+ security: [{ scheme: 'basic', type: 'http' }],
1569
+ url: '/post_votes/delete.json',
1570
+ ...options
1571
+ });
1572
+ /**
1573
+ * Search Tags
1574
+ */
1575
+ export const searchTags = (options) => (options?.client ?? client).get({ url: '/tags.json', ...options });
1576
+ /**
1577
+ * Delete Tag
1578
+ *
1579
+ * You must have the bd staff user flag.
1580
+ */
1581
+ export const deleteTag = (options) => (options.client ?? client).delete({
1582
+ security: [{ scheme: 'basic', type: 'http' }],
1583
+ url: '/tags/{id}.json',
1584
+ ...options
1585
+ });
1586
+ /**
1587
+ * Get Tag
1588
+ */
1589
+ export const getTag = (options) => (options.client ?? client).get({ url: '/tags/{id}.json', ...options });
1590
+ /**
1591
+ * Edit Tag
1592
+ *
1593
+ * Must be Admin+ if the tag is locked or post count is >100.
1594
+ */
1595
+ export const editTag = (options) => (options.client ?? client).patch({
1596
+ ...urlSearchParamsBodySerializer,
1597
+ security: [{ scheme: 'basic', type: 'http' }],
1598
+ url: '/tags/{id}.json',
1599
+ ...options,
1600
+ headers: {
1601
+ 'Content-Type': 'application/x-www-form-urlencoded',
1602
+ ...options.headers
1603
+ }
1604
+ });
1605
+ /**
1606
+ * Get Tag Correction
1607
+ */
1608
+ export const getTagCorrection = (options) => (options.client ?? client).get({ url: '/tags/{id}/correction.json', ...options });
1609
+ /**
1610
+ * Correct Tag
1611
+ *
1612
+ * You must be Janitor+. `commit=Fix` must be set.
1613
+ */
1614
+ export const correctTag = (options) => (options.client ?? client).post({
1615
+ ...urlSearchParamsBodySerializer,
1616
+ security: [{ scheme: 'basic', type: 'http' }],
1617
+ url: '/tags/{id}/correction.json',
1618
+ ...options,
1619
+ headers: {
1620
+ 'Content-Type': 'application/x-www-form-urlencoded',
1621
+ ...options.headers
1622
+ }
1623
+ });
1624
+ /**
1625
+ * Preview Tags
1626
+ */
1627
+ export const previewTags = (options) => (options?.client ?? client).post({
1628
+ ...urlSearchParamsBodySerializer,
1629
+ security: [{ scheme: 'basic', type: 'http' }],
1630
+ url: '/tags/preview.json',
1631
+ ...options,
1632
+ headers: {
1633
+ 'Content-Type': 'application/x-www-form-urlencoded',
1634
+ ...options?.headers
1635
+ }
1636
+ });
1637
+ /**
1638
+ * Search Tag Type Versions
1639
+ */
1640
+ export const searchTagTypeVersions = (options) => (options?.client ?? client).get({ url: '/tag_type_versions.json', ...options });
1641
+ /**
1642
+ * Search Tag Aliases
1643
+ */
1644
+ export const searchTagAliases = (options) => (options?.client ?? client).get({ url: '/tag_aliases.json', ...options });
1645
+ /**
1646
+ * Reject Tag Alias
1647
+ *
1648
+ * You must be the creator of the request (if pending), or Admin+.
1649
+ */
1650
+ export const rejectTagAlias = (options) => (options.client ?? client).delete({
1651
+ security: [{ scheme: 'basic', type: 'http' }],
1652
+ url: '/tag_aliases/{id}.json',
1653
+ ...options
1654
+ });
1655
+ /**
1656
+ * Get Tag Alias
1657
+ */
1658
+ export const getTagAlias = (options) => (options.client ?? client).get({ url: '/tag_aliases/{id}.json', ...options });
1659
+ /**
1660
+ * Edit Tag Alias
1661
+ *
1662
+ * You must be Admin+.
1663
+ */
1664
+ export const editTagAlias = (options) => (options.client ?? client).patch({
1665
+ ...urlSearchParamsBodySerializer,
1666
+ security: [{ scheme: 'basic', type: 'http' }],
1667
+ url: '/tag_aliases/{id}.json',
1668
+ ...options,
1669
+ headers: {
1670
+ 'Content-Type': 'application/x-www-form-urlencoded',
1671
+ ...options.headers
1672
+ }
1673
+ });
1674
+ /**
1675
+ * Approve Tag Alias
1676
+ *
1677
+ * You must be Admin+.
1678
+ */
1679
+ export const approveTagAlias = (options) => (options.client ?? client).post({
1680
+ security: [{ scheme: 'basic', type: 'http' }],
1681
+ url: '/tag_aliases/{id}/approve.json',
1682
+ ...options
1683
+ });
1684
+ /**
1685
+ * Create Tag Alias
1686
+ *
1687
+ * Errors will result in a 406 with no information.
1688
+ */
1689
+ export const createTagAlias = (options) => (options?.client ?? client).post({
1690
+ ...urlSearchParamsBodySerializer,
1691
+ security: [{ scheme: 'basic', type: 'http' }],
1692
+ url: '/tag_alias_requests.json',
1693
+ ...options,
1694
+ headers: {
1695
+ 'Content-Type': 'application/x-www-form-urlencoded',
1696
+ ...options?.headers
1697
+ }
1698
+ });
1699
+ /**
1700
+ * Search Tag Implications
1701
+ */
1702
+ export const searchTagImplications = (options) => (options?.client ?? client).get({ url: '/tag_implications.json', ...options });
1703
+ /**
1704
+ * Reject Tag Implication
1705
+ *
1706
+ * You must be the creator of the request (if pending), or Admin+.
1707
+ */
1708
+ export const rejectTagImplication = (options) => (options.client ?? client).delete({
1709
+ security: [{ scheme: 'basic', type: 'http' }],
1710
+ url: '/tag_implications/{id}.json',
1711
+ ...options
1712
+ });
1713
+ /**
1714
+ * Get Tag Implication
1715
+ */
1716
+ export const getTagImplication = (options) => (options.client ?? client).get({ url: '/tag_implications/{id}.json', ...options });
1717
+ /**
1718
+ * Edit Tag Implication
1719
+ *
1720
+ * You must be Admin+.
1721
+ */
1722
+ export const editTagImplication = (options) => (options.client ?? client).patch({
1723
+ ...urlSearchParamsBodySerializer,
1724
+ security: [{ scheme: 'basic', type: 'http' }],
1725
+ url: '/tag_implications/{id}.json',
1726
+ ...options,
1727
+ headers: {
1728
+ 'Content-Type': 'application/x-www-form-urlencoded',
1729
+ ...options.headers
1730
+ }
1731
+ });
1732
+ /**
1733
+ * Approve Tag Implication
1734
+ *
1735
+ * You must be Admin+.
1736
+ */
1737
+ export const approveTagImplication = (options) => (options.client ?? client).post({
1738
+ security: [{ scheme: 'basic', type: 'http' }],
1739
+ url: '/tag_implications/{id}/approve.json',
1740
+ ...options
1741
+ });
1742
+ /**
1743
+ * Create Tag Implication
1744
+ *
1745
+ * Errors will result in a 406 with no information.
1746
+ */
1747
+ export const createTagImplication = (options) => (options?.client ?? client).post({
1748
+ ...urlSearchParamsBodySerializer,
1749
+ security: [{ scheme: 'basic', type: 'http' }],
1750
+ url: '/tag_implication_requests.json',
1751
+ ...options,
1752
+ headers: {
1753
+ 'Content-Type': 'application/x-www-form-urlencoded',
1754
+ ...options?.headers
1755
+ }
1756
+ });
1757
+ /**
1758
+ * List Bulk Related Tags
1759
+ */
1760
+ export const listBulkRelatedTags = (options) => (options?.client ?? client).post({
1761
+ security: [{ scheme: 'basic', type: 'http' }],
1762
+ url: '/related_tag/bulk.json',
1763
+ ...options,
1764
+ headers: {
1765
+ 'Content-Type': 'application/json',
1766
+ ...options?.headers
1767
+ }
1768
+ });
1769
+ /**
1770
+ * List Search Trends
1771
+ */
1772
+ export const listSearchTrends = (options) => (options?.client ?? client).get({ url: '/search_trends.json', ...options });
1773
+ /**
1774
+ * List Rising Search Trends
1775
+ */
1776
+ export const listRisingSearchTrends = (options) => (options?.client ?? client).get({ url: '/search_trends/rising.json', ...options });
1777
+ /**
1778
+ * Clear Search Trends Cache
1779
+ *
1780
+ * You must be Admin+.
1781
+ */
1782
+ export const clearSearchTrendsCache = (options) => (options?.client ?? client).post({
1783
+ security: [{ scheme: 'basic', type: 'http' }],
1784
+ url: '/search_trends/clear_cache.json',
1785
+ ...options
1786
+ });
1787
+ /**
1788
+ * Update Search Trends Settings
1789
+ *
1790
+ * You must be Admin+.
1791
+ */
1792
+ export const updateSearchTrendsSettings = (options) => (options?.client ?? client).post({
1793
+ security: [{ scheme: 'basic', type: 'http' }],
1794
+ url: '/search_trends/update_settings.json',
1795
+ ...options,
1796
+ headers: {
1797
+ 'Content-Type': 'application/json',
1798
+ ...options?.headers
1799
+ }
1800
+ });
1801
+ /**
1802
+ * Search Search Trend Blacklists
1803
+ *
1804
+ * You must be Admin+.
1805
+ */
1806
+ export const searchSearchTrendBlacklists = (options) => (options?.client ?? client).get({
1807
+ security: [{ scheme: 'basic', type: 'http' }],
1808
+ url: '/search_trend_blacklists.json',
1809
+ ...options
1810
+ });
1811
+ /**
1812
+ * Create Search Trend Blacklist
1813
+ *
1814
+ * You must be Admin+.
1815
+ */
1816
+ export const createSearchTrendBlacklist = (options) => (options?.client ?? client).post({
1817
+ security: [{ scheme: 'basic', type: 'http' }],
1818
+ url: '/search_trend_blacklists.json',
1819
+ ...options,
1820
+ headers: {
1821
+ 'Content-Type': 'application/json',
1822
+ ...options?.headers
1823
+ }
1824
+ });
1825
+ /**
1826
+ * Delete Search Trend Blacklist
1827
+ *
1828
+ * You must be Admin+.
1829
+ */
1830
+ export const deleteSearchTrendBlacklist = (options) => (options.client ?? client).delete({
1831
+ security: [{ scheme: 'basic', type: 'http' }],
1832
+ url: '/search_trend_blacklists/{id}.json',
1833
+ ...options
1834
+ });
1835
+ /**
1836
+ * Purge Search Trend Blacklist
1837
+ *
1838
+ * You must be Admin+.
1839
+ */
1840
+ export const purgeSearchTrendBlacklist = (options) => (options.client ?? client).delete({
1841
+ security: [{ scheme: 'basic', type: 'http' }],
1842
+ url: '/search_trend_blacklists/{id}/purge.json',
1843
+ ...options
1844
+ });
1845
+ /**
1846
+ * Login
1847
+ */
1848
+ export const login = (options) => (options?.client ?? client).post({
1849
+ ...urlSearchParamsBodySerializer,
1850
+ security: [{
1851
+ in: 'query',
1852
+ name: 'authenticity_token',
1853
+ type: 'apiKey'
1854
+ }],
1855
+ url: '/session.json',
1856
+ ...options,
1857
+ headers: {
1858
+ 'Content-Type': 'application/x-www-form-urlencoded',
1859
+ ...options?.headers
1860
+ }
1861
+ });
1862
+ /**
1863
+ * Search Staff Notes
1864
+ */
1865
+ export const searchStaffNotes = (options) => (options?.client ?? client).get({ url: '/staff_notes.json', ...options });
1866
+ /**
1867
+ * Create Staff Note
1868
+ */
1869
+ export const createStaffNote = (options) => (options?.client ?? client).post({
1870
+ ...urlSearchParamsBodySerializer,
1871
+ security: [{ scheme: 'basic', type: 'http' }],
1872
+ url: '/staff_notes.json',
1873
+ ...options,
1874
+ headers: {
1875
+ 'Content-Type': 'application/x-www-form-urlencoded',
1876
+ ...options?.headers
1877
+ }
1878
+ });
1879
+ /**
1880
+ * Get Staff Note
1881
+ */
1882
+ export const getStaffNote = (options) => (options.client ?? client).get({ url: '/staff_notes/{id}.json', ...options });
1883
+ /**
1884
+ * Edit Staff Note
1885
+ *
1886
+ * You must be the creator or Admin+.
1887
+ */
1888
+ export const editStaffNote = (options) => (options.client ?? client).patch({
1889
+ ...urlSearchParamsBodySerializer,
1890
+ security: [{ scheme: 'basic', type: 'http' }],
1891
+ url: '/staff_notes/{id}.json',
1892
+ ...options,
1893
+ headers: {
1894
+ 'Content-Type': 'application/x-www-form-urlencoded',
1895
+ ...options.headers
1896
+ }
1897
+ });
1898
+ /**
1899
+ * Delete Staff Note
1900
+ *
1901
+ * You must be the creator or Admin+.
1902
+ *
1903
+ */
1904
+ export const deleteStaffNote = (options) => (options.client ?? client).put({
1905
+ security: [{ scheme: 'basic', type: 'http' }],
1906
+ url: '/staff_notes/{id}/delete.json',
1907
+ ...options
1908
+ });
1909
+ /**
1910
+ * Undelete Staff Note
1911
+ *
1912
+ * You must be the creator or Admin+.
1913
+ *
1914
+ */
1915
+ export const undeleteStaffNote = (options) => (options.client ?? client).put({
1916
+ security: [{ scheme: 'basic', type: 'http' }],
1917
+ url: '/staff_notes/{id}/undelete.json',
1918
+ ...options
1919
+ });
1920
+ /**
1921
+ * Search Takedowns
1922
+ */
1923
+ export const searchTakedowns = (options) => (options?.client ?? client).get({ url: '/takedowns.json', ...options });
1924
+ /**
1925
+ * Create Takedown
1926
+ */
1927
+ export const createTakedown = (options) => (options?.client ?? client).post({
1928
+ ...urlSearchParamsBodySerializer,
1929
+ security: [{ scheme: 'basic', type: 'http' }],
1930
+ url: '/takedowns.json',
1931
+ ...options,
1932
+ headers: {
1933
+ 'Content-Type': 'application/x-www-form-urlencoded',
1934
+ ...options?.headers
1935
+ }
1936
+ });
1937
+ /**
1938
+ * Delete Takedown
1939
+ *
1940
+ * You must have the bd staff user flag.
1941
+ */
1942
+ export const deleteTakedown = (options) => (options.client ?? client).delete({
1943
+ security: [{ scheme: 'basic', type: 'http' }],
1944
+ url: '/takedowns/{id}.json',
1945
+ ...options
1946
+ });
1947
+ /**
1948
+ * Get Takedown
1949
+ */
1950
+ export const getTakedown = (options) => (options.client ?? client).get({ url: '/takedowns/{id}.json', ...options });
1951
+ /**
1952
+ * Edit Takedown
1953
+ *
1954
+ * You must have the bd staff user flag.
1955
+ */
1956
+ export const editTakedown = (options) => (options.client ?? client).patch({
1957
+ ...urlSearchParamsBodySerializer,
1958
+ security: [{ scheme: 'basic', type: 'http' }],
1959
+ url: '/takedowns/{id}.json',
1960
+ ...options,
1961
+ headers: {
1962
+ 'Content-Type': 'application/x-www-form-urlencoded',
1963
+ ...options.headers
1964
+ }
1965
+ });
1966
+ /**
1967
+ * Add Posts To Takedown By IDs
1968
+ *
1969
+ * You must have the bd staff user flag.
1970
+ */
1971
+ export const addPostsToTakedownByIds = (options) => (options.client ?? client).post({
1972
+ ...urlSearchParamsBodySerializer,
1973
+ security: [{ scheme: 'basic', type: 'http' }],
1974
+ url: '/takedowns/{id}/add_by_ids.json',
1975
+ ...options,
1976
+ headers: {
1977
+ 'Content-Type': 'application/x-www-form-urlencoded',
1978
+ ...options.headers
1979
+ }
1980
+ });
1981
+ /**
1982
+ * Add Posts To Takedown By Tags
1983
+ *
1984
+ * You must have the bd staff user flag.
1985
+ */
1986
+ export const addPostsToTakedownByTags = (options) => (options.client ?? client).post({
1987
+ ...urlSearchParamsBodySerializer,
1988
+ security: [{ scheme: 'basic', type: 'http' }],
1989
+ url: '/takedowns/{id}/add_by_tags.json',
1990
+ ...options,
1991
+ headers: {
1992
+ 'Content-Type': 'application/x-www-form-urlencoded',
1993
+ ...options.headers
1994
+ }
1995
+ });
1996
+ /**
1997
+ * Count Matching Posts
1998
+ *
1999
+ * You must have the bd staff user flag.
2000
+ */
2001
+ export const countMatchingPosts = (options) => (options.client ?? client).post({
2002
+ ...urlSearchParamsBodySerializer,
2003
+ security: [{ scheme: 'basic', type: 'http' }],
2004
+ url: '/takedowns/{id}/count_matching_posts.json',
2005
+ ...options,
2006
+ headers: {
2007
+ 'Content-Type': 'application/x-www-form-urlencoded',
2008
+ ...options.headers
2009
+ }
2010
+ });
2011
+ /**
2012
+ * Remove Posts From Takedown By IDs
2013
+ *
2014
+ * You must have the bd staff user flag.
2015
+ */
2016
+ export const removePostsFromTakedownByIds = (options) => (options.client ?? client).post({
2017
+ ...urlSearchParamsBodySerializer,
2018
+ security: [{ scheme: 'basic', type: 'http' }],
2019
+ url: '/takedowns/{id}/remove_by_ids.json',
2020
+ ...options,
2021
+ headers: {
2022
+ 'Content-Type': 'application/x-www-form-urlencoded',
2023
+ ...options.headers
2024
+ }
2025
+ });
2026
+ /**
2027
+ * Search Tickets
2028
+ *
2029
+ * You must be Janitor+ to see tickets you did not create.
2030
+ */
2031
+ export const searchTickets = (options) => (options?.client ?? client).get({ url: '/tickets.json', ...options });
2032
+ /**
2033
+ * Get Ticket
2034
+ *
2035
+ * You must be Janitor+ to see tickets you did not create.
2036
+ */
2037
+ export const getTicket = (options) => (options.client ?? client).get({
2038
+ security: [{ scheme: 'basic', type: 'http' }],
2039
+ url: '/tickets/{id}.json',
2040
+ ...options
2041
+ });
2042
+ /**
2043
+ * Edit Ticket
2044
+ *
2045
+ * You must be Moderator+.
2046
+ */
2047
+ export const editTicket = (options) => (options.client ?? client).patch({
2048
+ ...urlSearchParamsBodySerializer,
2049
+ security: [{ scheme: 'basic', type: 'http' }],
2050
+ url: '/tickets/{id}.json',
2051
+ ...options,
2052
+ headers: {
2053
+ 'Content-Type': 'application/x-www-form-urlencoded',
2054
+ ...options.headers
2055
+ }
2056
+ });
2057
+ /**
2058
+ * Claim Ticket
2059
+ *
2060
+ * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.
2061
+ */
2062
+ export const claimTicket = (options) => (options.client ?? client).post({
2063
+ security: [{ scheme: 'basic', type: 'http' }],
2064
+ url: '/tickets/{id}/claim.json',
2065
+ ...options
2066
+ });
2067
+ /**
2068
+ * Unclaim Ticket
2069
+ *
2070
+ * You must be Moderator+. Errors are quietly swallowed and shown as notices in html.
2071
+ */
2072
+ export const unclaimTicket = (options) => (options.client ?? client).post({
2073
+ security: [{ scheme: 'basic', type: 'http' }],
2074
+ url: '/tickets/{id}/unclaim.json',
2075
+ ...options
2076
+ });
2077
+ /**
2078
+ * Search Uploads
2079
+ */
2080
+ export const searchUploads = (options) => (options?.client ?? client).get({ url: '/uploads.json', ...options });
2081
+ /**
2082
+ * Upload Post
2083
+ */
2084
+ export const uploadPost = (options) => (options?.client ?? client).post({
2085
+ ...formDataBodySerializer,
2086
+ security: [{ scheme: 'basic', type: 'http' }],
2087
+ url: '/uploads.json',
2088
+ ...options,
2089
+ headers: {
2090
+ 'Content-Type': null,
2091
+ ...options?.headers
2092
+ }
2093
+ });
2094
+ /**
2095
+ * Get Upload
2096
+ *
2097
+ * You must be Janitor+.
2098
+ */
2099
+ export const getUpload = (options) => (options.client ?? client).get({ url: '/uploads/{id}.json', ...options });
2100
+ /**
2101
+ * Search Upload Whitelists
2102
+ */
2103
+ export const searchUploadWhitelists = (options) => (options?.client ?? client).get({ url: '/upload_whitelists.json', ...options });
2104
+ /**
2105
+ * Create Upload Whitelist
2106
+ *
2107
+ * You must be Admin+.
2108
+ */
2109
+ export const createUploadWhitelist = (options) => (options?.client ?? client).post({
2110
+ ...urlSearchParamsBodySerializer,
2111
+ security: [{ scheme: 'basic', type: 'http' }],
2112
+ url: '/upload_whitelists.json',
2113
+ ...options,
2114
+ headers: {
2115
+ 'Content-Type': 'application/x-www-form-urlencoded',
2116
+ ...options?.headers
2117
+ }
2118
+ });
2119
+ /**
2120
+ * Delete Upload Whitelist
2121
+ *
2122
+ * You must be Admin+.
2123
+ */
2124
+ export const deleteUploadWhitelist = (options) => (options.client ?? client).delete({
2125
+ security: [{ scheme: 'basic', type: 'http' }],
2126
+ url: '/upload_whitelists/{id}.json',
2127
+ ...options
2128
+ });
2129
+ /**
2130
+ * Edit Upload Whitelist
2131
+ */
2132
+ export const editUploadWhitelist = (options) => (options.client ?? client).patch({
2133
+ ...urlSearchParamsBodySerializer,
2134
+ security: [{ scheme: 'basic', type: 'http' }],
2135
+ url: '/upload_whitelists/{id}.json',
2136
+ ...options,
2137
+ headers: {
2138
+ 'Content-Type': 'application/x-www-form-urlencoded',
2139
+ ...options.headers
2140
+ }
2141
+ });
2142
+ /**
2143
+ * Check If URL Is Allowed
2144
+ */
2145
+ export const checkIfUrlIsAllowed = (options) => (options?.client ?? client).get({
2146
+ security: [{ scheme: 'basic', type: 'http' }],
2147
+ url: '/upload_whitelists/is_allowed.json',
2148
+ ...options
2149
+ });
2150
+ /**
2151
+ * Search Users
2152
+ */
2153
+ export const searchUsers = (options) => (options?.client ?? client).get({ url: '/users.json', ...options });
2154
+ /**
2155
+ * Get Current User
2156
+ *
2157
+ * This will return the default settings for anonymous users if no authentication is used.
2158
+ * This most interesting part is probably the default blacklist, located in `blacklisted_tags`.
2159
+ *
2160
+ */
2161
+ export const getMe = (options) => (options?.client ?? client).get({ url: '/users/me.json', ...options });
2162
+ /**
2163
+ * Get Avatar Menu
2164
+ */
2165
+ export const getAvatarMenu = (options) => (options?.client ?? client).get({
2166
+ security: [{ scheme: 'basic', type: 'http' }],
2167
+ url: '/users/avatar_menu.json',
2168
+ ...options
2169
+ });
2170
+ /**
2171
+ * Get User
2172
+ */
2173
+ export const getUser = (options) => (options.client ?? client).get({ url: '/users/{idOrName}.json', ...options });
2174
+ /**
2175
+ * Edit Current User
2176
+ */
2177
+ export const editCurrentUser = (options) => (options.client ?? client).patch({
2178
+ ...urlSearchParamsBodySerializer,
2179
+ security: [{ scheme: 'basic', type: 'http' }],
2180
+ url: '/users/{idOrName}.json',
2181
+ ...options,
2182
+ headers: {
2183
+ 'Content-Type': 'application/x-www-form-urlencoded',
2184
+ ...options.headers
2185
+ }
2186
+ });
2187
+ /**
2188
+ * Get User Upload Limit
2189
+ */
2190
+ export const getUserUploadLimit = (options) => (options.client ?? client).get({
2191
+ security: [{ scheme: 'basic', type: 'http' }],
2192
+ url: '/users/{idOrName}/upload_limit.json',
2193
+ ...options
2194
+ });
2195
+ /**
2196
+ * Clear User Favorites
2197
+ *
2198
+ * You must be Admin+.
2199
+ */
2200
+ export const clearUserFavorites = (options) => (options.client ?? client).post({
2201
+ security: [{ scheme: 'basic', type: 'http' }],
2202
+ url: '/users/{idOrName}/flush_favorites.json',
2203
+ ...options
2204
+ });
2205
+ /**
2206
+ * Staff Fix User Counts
2207
+ *
2208
+ * You must be Janitor+.
2209
+ */
2210
+ export const staffFixUserCounts = (options) => (options.client ?? client).get({
2211
+ security: [{ scheme: 'basic', type: 'http' }],
2212
+ url: '/users/{idOrName}/fix_counts.json',
2213
+ ...options
2214
+ });
2215
+ /**
2216
+ * Toggle User Uploads
2217
+ *
2218
+ * You must be Janitor+.
2219
+ * This endpoint will return HTML when disabling uploads (due to a reason being required), this endpoint should only be used for reenabling. Use [Disable User Uploads](#operation-Users-disableUserUploads) to disable uploads.
2220
+ *
2221
+ */
2222
+ export const toggleUserUploads = (options) => (options.client ?? client).get({
2223
+ security: [{ scheme: 'basic', type: 'http' }],
2224
+ url: '/users/{idOrName}/toggle_uploads.json',
2225
+ ...options
2226
+ });
2227
+ /**
2228
+ * Disable User Uploads
2229
+ *
2230
+ * You must be Janitor+.
2231
+ */
2232
+ export const disableUserUploads = (options) => (options.client ?? client).post({
2233
+ ...urlSearchParamsBodySerializer,
2234
+ security: [{ scheme: 'basic', type: 'http' }],
2235
+ url: '/users/{idOrName}/disable_uploads.json',
2236
+ ...options,
2237
+ headers: {
2238
+ 'Content-Type': 'application/x-www-form-urlencoded',
2239
+ ...options.headers
2240
+ }
2241
+ });
2242
+ /**
2243
+ * Audit User DMails
2244
+ *
2245
+ * Must have the bd auditor user flag.
2246
+ */
2247
+ export const auditUserDMails = (options) => (options.client ?? client).get({
2248
+ security: [{ scheme: 'basic', type: 'http' }],
2249
+ url: '/users/{user_id}/dmails.json',
2250
+ ...options
2251
+ });
2252
+ /**
2253
+ * Audit User DMail
2254
+ *
2255
+ * Must have the bd auditor user flag.
2256
+ */
2257
+ export const auditUserDMail = (options) => (options.client ?? client).get({
2258
+ security: [{ scheme: 'basic', type: 'http' }],
2259
+ url: '/users/{user_id}/dmails/{id}.json',
2260
+ ...options
2261
+ });
2262
+ /**
2263
+ * Fix User Counts
2264
+ */
2265
+ export const fixUserCounts = (options) => (options?.client ?? client).post({
2266
+ security: [{ scheme: 'basic', type: 'http' }],
2267
+ url: '/maintenance/user/count_fixes.json',
2268
+ ...options
2269
+ });
2270
+ /**
2271
+ * Update User Dmail Filter
2272
+ */
2273
+ export const updateUserDmailFilter = (options) => (options.client ?? client).patch({
2274
+ ...urlSearchParamsBodySerializer,
2275
+ security: [{ scheme: 'basic', type: 'http' }],
2276
+ url: '/maintenance/user/dmail_filter.json',
2277
+ ...options,
2278
+ headers: {
2279
+ 'Content-Type': 'application/x-www-form-urlencoded',
2280
+ ...options.headers
2281
+ }
2282
+ });
2283
+ /**
2284
+ * Search User Feedbacks
2285
+ */
2286
+ export const searchUserFeedbacks = (options) => (options?.client ?? client).get({ url: '/user_feedbacks.json', ...options });
2287
+ /**
2288
+ * Create User Feedback
2289
+ *
2290
+ * You must be Moderator+.
2291
+ */
2292
+ export const createUserFeedback = (options) => (options?.client ?? client).post({
2293
+ ...urlSearchParamsBodySerializer,
2294
+ security: [{ scheme: 'basic', type: 'http' }],
2295
+ url: '/user_feedbacks.json',
2296
+ ...options,
2297
+ headers: {
2298
+ 'Content-Type': 'application/x-www-form-urlencoded',
2299
+ ...options?.headers
2300
+ }
2301
+ });
2302
+ /**
2303
+ * Destroy User Feedback
2304
+ *
2305
+ * You must be Admin+, or the creator and Moderator+.
2306
+ */
2307
+ export const destroyUserFeedback = (options) => (options.client ?? client).delete({
2308
+ security: [{ scheme: 'basic', type: 'http' }],
2309
+ url: '/user_feedbacks/{id}.json',
2310
+ ...options
2311
+ });
2312
+ /**
2313
+ * Get User Feedback
2314
+ *
2315
+ * You must be Janitor+ if the feedback is deleted.
2316
+ */
2317
+ export const getUserFeedback = (options) => (options.client ?? client).get({ url: '/user_feedbacks/{id}.json', ...options });
2318
+ /**
2319
+ * Edit User Feedback
2320
+ *
2321
+ * You must be Moderator+.
2322
+ */
2323
+ export const editUserFeedback = (options) => (options.client ?? client).patch({
2324
+ ...urlSearchParamsBodySerializer,
2325
+ security: [{ scheme: 'basic', type: 'http' }],
2326
+ url: '/user_feedbacks/{id}.json',
2327
+ ...options,
2328
+ headers: {
2329
+ 'Content-Type': 'application/x-www-form-urlencoded',
2330
+ ...options.headers
2331
+ }
2332
+ });
2333
+ /**
2334
+ * Delete User Feedback
2335
+ *
2336
+ * You must be Moderator+.
2337
+ */
2338
+ export const deleteUserFeedback = (options) => (options.client ?? client).put({
2339
+ security: [{ scheme: 'basic', type: 'http' }],
2340
+ url: '/user_feedbacks/{id}/delete.json',
2341
+ ...options
2342
+ });
2343
+ /**
2344
+ * Undelete User Feedback
2345
+ *
2346
+ * You must be Moderator+.
2347
+ */
2348
+ export const undeleteUserFeedback = (options) => (options.client ?? client).put({
2349
+ security: [{ scheme: 'basic', type: 'http' }],
2350
+ url: '/user_feedbacks/{id}/undelete.json',
2351
+ ...options
2352
+ });
2353
+ /**
2354
+ * Search User Name Change Requests
2355
+ *
2356
+ * You must be Moderator+.
2357
+ */
2358
+ export const searchUserNameChangeRequests = (options) => (options?.client ?? client).get({
2359
+ security: [{ scheme: 'basic', type: 'http' }],
2360
+ url: '/user_name_change_requests.json',
2361
+ ...options
2362
+ });
2363
+ /**
2364
+ * Create User Name Change Request
2365
+ */
2366
+ export const createUserNameChangeRequest = (options) => (options?.client ?? client).post({
2367
+ ...urlSearchParamsBodySerializer,
2368
+ security: [{ scheme: 'basic', type: 'http' }],
2369
+ url: '/user_name_change_requests.json',
2370
+ ...options,
2371
+ headers: {
2372
+ 'Content-Type': 'application/x-www-form-urlencoded',
2373
+ ...options?.headers
2374
+ }
2375
+ });
2376
+ /**
2377
+ * Delete User Name Change Request
2378
+ *
2379
+ * You must be Moderator+.
2380
+ */
2381
+ export const deleteUserNameChangeRequest = (options) => (options.client ?? client).delete({
2382
+ security: [{ scheme: 'basic', type: 'http' }],
2383
+ url: '/user_name_change_requests/{id}.json',
2384
+ ...options
2385
+ });
2386
+ /**
2387
+ * Get User Name Change Request
2388
+ *
2389
+ * You must be the creator of the request or Moderator+.
2390
+ */
2391
+ export const getUserNameChangeRequest = (options) => (options.client ?? client).get({
2392
+ security: [{ scheme: 'basic', type: 'http' }],
2393
+ url: '/user_name_change_requests/{id}.json',
2394
+ ...options
2395
+ });
2396
+ /**
2397
+ * Search Wiki Pages
2398
+ */
2399
+ export const searchWikiPages = (options) => (options?.client ?? client).get({ url: '/wiki_pages.json', ...options });
2400
+ /**
2401
+ * Create Wiki Page
2402
+ */
2403
+ export const createWikiPage = (options) => (options?.client ?? client).post({
2404
+ ...urlSearchParamsBodySerializer,
2405
+ security: [{ scheme: 'basic', type: 'http' }],
2406
+ url: '/wiki_pages.json',
2407
+ ...options,
2408
+ headers: {
2409
+ 'Content-Type': 'application/x-www-form-urlencoded',
2410
+ ...options?.headers
2411
+ }
2412
+ });
2413
+ /**
2414
+ * Delete Wiki Page
2415
+ *
2416
+ * You must be Admin+
2417
+ */
2418
+ export const deleteWikiPage = (options) => (options.client ?? client).delete({
2419
+ security: [{ scheme: 'basic', type: 'http' }],
2420
+ url: '/wiki_pages/{id}.json',
2421
+ ...options
2422
+ });
2423
+ /**
2424
+ * Get Wiki Page
2425
+ */
2426
+ export const getWikiPage = (options) => (options.client ?? client).get({ url: '/wiki_pages/{id}.json', ...options });
2427
+ /**
2428
+ * Edit Wiki Page
2429
+ *
2430
+ * You must be Janitor+ if the wiki page is locked.
2431
+ */
2432
+ export const editWikiPage = (options) => (options.client ?? client).patch({
2433
+ ...urlSearchParamsBodySerializer,
2434
+ security: [{ scheme: 'basic', type: 'http' }],
2435
+ url: '/wiki_pages/{id}.json',
2436
+ ...options,
2437
+ headers: {
2438
+ 'Content-Type': 'application/x-www-form-urlencoded',
2439
+ ...options.headers
2440
+ }
2441
+ });
2442
+ /**
2443
+ * Revert Wiki Page
2444
+ */
2445
+ export const revertWikiPage = (options) => (options.client ?? client).put({
2446
+ security: [{ scheme: 'basic', type: 'http' }],
2447
+ url: '/wiki_page/{id}/revert.json',
2448
+ ...options
2449
+ });
2450
+ /**
2451
+ * Search Wiki Page Versions
2452
+ */
2453
+ export const searchWikiPageVersions = (options) => (options?.client ?? client).get({ url: '/wiki_page_versions.json', ...options });
2454
+ /**
2455
+ * Get Wiki Page Version
2456
+ */
2457
+ export const getWikiPageVersion = (options) => (options.client ?? client).get({ url: '/wiki_page_versions/{id}.json', ...options });
2458
+ /**
2459
+ * Get Alt List
2460
+ *
2461
+ * You must be Admin+.
2462
+ */
2463
+ export const getAltList = (options) => (options?.client ?? client).get({
2464
+ security: [{ scheme: 'basic', type: 'http' }],
2465
+ url: '/admin/users/alt_list.json',
2466
+ ...options
2467
+ });
2468
+ /**
2469
+ * Admin Edit User
2470
+ *
2471
+ * You must be Admin+. If editing an Admin+, you must be Owner+.
2472
+ */
2473
+ export const adminEditUser = (options) => (options.client ?? client).patch({
2474
+ ...urlSearchParamsBodySerializer,
2475
+ security: [{ scheme: 'basic', type: 'http' }],
2476
+ url: '/admins/users/{id}.json',
2477
+ ...options,
2478
+ headers: {
2479
+ 'Content-Type': 'application/x-www-form-urlencoded',
2480
+ ...options.headers
2481
+ }
2482
+ });
2483
+ /**
2484
+ * Admin Anonymize User
2485
+ *
2486
+ * You must have the bd staff user flag. Cannot be used on staff.
2487
+ */
2488
+ export const adminAnonymizeUser = (options) => (options.client ?? client).post({
2489
+ security: [{ scheme: 'basic', type: 'http' }],
2490
+ url: '/admins/users/{id}/anonymize.json',
2491
+ ...options
2492
+ });
2493
+ /**
2494
+ * Delete Post
2495
+ *
2496
+ * You must have the "Approve Posts" permission. `commit=Delete` must be set.
2497
+ */
2498
+ export const deletePost = (options) => (options.client ?? client).post({
2499
+ ...urlSearchParamsBodySerializer,
2500
+ security: [{ scheme: 'basic', type: 'http' }],
2501
+ url: '/moderator/post/posts/{id}/delete.json',
2502
+ ...options,
2503
+ headers: {
2504
+ 'Content-Type': 'application/x-www-form-urlencoded',
2505
+ ...options.headers
2506
+ }
2507
+ });
2508
+ /**
2509
+ * Undelete Post
2510
+ *
2511
+ * You must have the "Approve Posts" permission.
2512
+ */
2513
+ export const undeletePost = (options) => (options.client ?? client).post({
2514
+ security: [{ scheme: 'basic', type: 'http' }],
2515
+ url: '/moderator/post/posts/{id}/undelete.json',
2516
+ ...options
2517
+ });
2518
+ /**
2519
+ * Regenerate Post Thumbnails
2520
+ *
2521
+ * You must be Janitor+.
2522
+ */
2523
+ export const regeneratePostThumbnails = (options) => (options.client ?? client).post({
2524
+ security: [{ scheme: 'basic', type: 'http' }],
2525
+ url: '/moderator/post/posts/{id}/regenerate_thumbnails.json',
2526
+ ...options
2527
+ });
2528
+ /**
2529
+ * Regenerate Post Videos
2530
+ *
2531
+ * You must be Janitor+.
2532
+ */
2533
+ export const regeneratePostVideos = (options) => (options.client ?? client).post({
2534
+ security: [{ scheme: 'basic', type: 'http' }],
2535
+ url: '/moderator/post/posts/{id}/regenerate_videos.json',
2536
+ ...options
2537
+ });
2538
+ /**
2539
+ * Expunge Post
2540
+ *
2541
+ * You must have the "Approve Posts" permission and be Admin+.
2542
+ */
2543
+ export const expungePost = (options) => (options.client ?? client).post({
2544
+ ...urlSearchParamsBodySerializer,
2545
+ security: [{ scheme: 'basic', type: 'http' }],
2546
+ url: '/moderator/post/posts/{id}/expunge.json',
2547
+ ...options,
2548
+ headers: {
2549
+ 'Content-Type': 'application/x-www-form-urlencoded',
2550
+ ...options.headers
2551
+ }
2552
+ });
2553
+ /**
2554
+ * Move Post Favorites
2555
+ *
2556
+ * You must have the "Approve Posts" permission. `commit=Submit`` must be set.
2557
+ */
2558
+ export const movePostFavorites = (options) => (options.client ?? client).post({
2559
+ ...urlSearchParamsBodySerializer,
2560
+ security: [{ scheme: 'basic', type: 'http' }],
2561
+ url: '/moderator/post/posts/{id}/move_favorites.json',
2562
+ ...options,
2563
+ headers: {
2564
+ 'Content-Type': 'application/x-www-form-urlencoded',
2565
+ ...options.headers
2566
+ }
2567
+ });
2568
+ /**
2569
+ * AI Check Post
2570
+ *
2571
+ * You must be Janitor+.
2572
+ */
2573
+ export const aiCheckPost = (options) => (options.client ?? client).get({
2574
+ security: [{ scheme: 'basic', type: 'http' }],
2575
+ url: '/moderator/post/posts/{id}/ai_check.json',
2576
+ ...options
2577
+ });
2578
+ /**
2579
+ * Unapprove Post
2580
+ *
2581
+ * You must have the "Approve Posts" permission. The response does not differ for success or failure.
2582
+ */
2583
+ export const unapprovePost = (options) => (options?.client ?? client).delete({
2584
+ ...urlSearchParamsBodySerializer,
2585
+ security: [{ scheme: 'basic', type: 'http' }],
2586
+ url: '/moderator/post/approval.json',
2587
+ ...options,
2588
+ headers: {
2589
+ 'Content-Type': 'application/x-www-form-urlencoded',
2590
+ ...options?.headers
2591
+ }
2592
+ });
2593
+ /**
2594
+ * Approve Post
2595
+ *
2596
+ * You must have the "Approve Posts" permission.
2597
+ */
2598
+ export const approvePost = (options) => (options?.client ?? client).post({
2599
+ ...urlSearchParamsBodySerializer,
2600
+ security: [{ scheme: 'basic', type: 'http' }],
2601
+ url: '/moderator/post/approval.json',
2602
+ ...options,
2603
+ headers: {
2604
+ 'Content-Type': 'application/x-www-form-urlencoded',
2605
+ ...options?.headers
2606
+ }
2607
+ });
2608
+ /**
2609
+ * Search Post Disapprovals
2610
+ *
2611
+ * You must have the "Approve Posts" permission.
2612
+ */
2613
+ export const searchPostDisapprovals = (options) => (options?.client ?? client).get({
2614
+ security: [{ scheme: 'basic', type: 'http' }],
2615
+ url: '/moderator/post/disapprovals.json',
2616
+ ...options
2617
+ });
2618
+ /**
2619
+ * Create Post Disapproval
2620
+ *
2621
+ * You must have the "Approve Posts" permission.
2622
+ */
2623
+ export const createPostDisapproval = (options) => (options?.client ?? client).post({
2624
+ ...urlSearchParamsBodySerializer,
2625
+ security: [{ scheme: 'basic', type: 'http' }],
2626
+ url: '/moderator/post/disapprovals.json',
2627
+ ...options,
2628
+ headers: {
2629
+ 'Content-Type': 'application/x-www-form-urlencoded',
2630
+ ...options?.headers
2631
+ }
2632
+ });
2633
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dlbmVyYXRlZC9zZGsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscURBQXFEO0FBRXJELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFlLHNCQUFzQixFQUE2Qyw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBaUJsSjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQXVDLE9BQStDLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQXNEO0lBQ3RNLFFBQVEsRUFBRSxDQUFDO1lBQ0gsRUFBRSxFQUFFLFFBQVE7WUFDWixJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLElBQUksRUFBRSxRQUFRO1NBQ2pCLENBQUM7SUFDTixHQUFHLEVBQUUsZ0JBQWdCO0lBQ3JCLEdBQUcsT0FBTztDQUNiLENBQUMsQ0FBQztBQUVIOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBdUMsT0FBaUQsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBMEQ7SUFDL00sR0FBRyw2QkFBNkI7SUFDaEMsUUFBUSxFQUFFLENBQUM7WUFDSCxFQUFFLEVBQUUsUUFBUTtZQUNaLElBQUksRUFBRSxtQkFBbUI7WUFDekIsSUFBSSxFQUFFLFFBQVE7U0FDakIsRUFBRTtZQUNDLEVBQUUsRUFBRSxPQUFPO1lBQ1gsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsUUFBUTtTQUNqQixDQUFDO0lBQ04sR0FBRyxFQUFFLGdCQUFnQjtJQUNyQixHQUFHLE9BQU87SUFDVixPQUFPLEVBQUU7UUFDTCxjQUFjLEVBQUUsbUNBQW1DO1FBQ25ELEdBQUcsT0FBTyxFQUFFLE9B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