moderation_api 3.1.1 → 3.2.0

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 (282) hide show
  1. checksums.yaml +4 -4
  2. data/lib/moderation_api/analytics.rb +1746 -0
  3. data/lib/moderation_api/apikeys.rb +313 -0
  4. data/lib/moderation_api/authors.rb +1 -2
  5. data/lib/moderation_api/feedback.rb +264 -0
  6. data/lib/moderation_api/items.rb +275 -31
  7. data/lib/moderation_api/models/components/badrequesterror_code.rb +3 -1
  8. data/lib/moderation_api/models/components/label.rb +85 -0
  9. data/lib/moderation_api/models/components/label.rbi +44 -0
  10. data/lib/moderation_api/models/components/notfounderror_code.rb +2 -0
  11. data/lib/moderation_api/models/components/projectapikey.rb +65 -0
  12. data/lib/moderation_api/models/components/projectapikey.rbi +38 -0
  13. data/lib/moderation_api/models/components/publicauthor.rb +3 -3
  14. data/lib/moderation_api/models/components/{status.rb → publicauthor_status.rb} +2 -2
  15. data/lib/moderation_api/models/components/publicauthor_status.rbi +9 -0
  16. data/lib/moderation_api/models/components/queue.rb +55 -0
  17. data/lib/moderation_api/models/components/queue.rbi +32 -0
  18. data/lib/moderation_api/models/{operations/listqueueitems_data.rb → components/queueitem.rb} +76 -37
  19. data/lib/moderation_api/models/{operations/listqueueitems_data.rbi → components/queueitem.rbi} +16 -10
  20. data/lib/moderation_api/models/components/queueitem_audio.rb +43 -0
  21. data/lib/moderation_api/models/components/queueitem_audio.rbi +20 -0
  22. data/lib/moderation_api/models/components/queueitem_brand_impersonation.rb +42 -0
  23. data/lib/moderation_api/models/components/queueitem_brand_impersonation.rbi +20 -0
  24. data/lib/moderation_api/models/components/queueitem_content.rb +25 -0
  25. data/lib/moderation_api/models/components/queueitem_content.rbi +9 -0
  26. data/lib/moderation_api/models/components/queueitem_content_leaf.rb +25 -0
  27. data/lib/moderation_api/models/components/queueitem_content_leaf.rbi +9 -0
  28. data/lib/moderation_api/models/components/queueitem_content_leaf_audio.rb +43 -0
  29. data/lib/moderation_api/models/components/queueitem_content_leaf_audio.rbi +20 -0
  30. data/lib/moderation_api/models/components/queueitem_content_leaf_image.rb +54 -0
  31. data/lib/moderation_api/models/components/queueitem_content_leaf_image.rbi +26 -0
  32. data/lib/moderation_api/models/components/queueitem_content_leaf_text.rb +47 -0
  33. data/lib/moderation_api/models/components/queueitem_content_leaf_text.rbi +20 -0
  34. data/lib/moderation_api/models/components/queueitem_content_leaf_video.rb +43 -0
  35. data/lib/moderation_api/models/components/queueitem_content_leaf_video.rbi +20 -0
  36. data/lib/moderation_api/models/components/queueitem_image.rb +54 -0
  37. data/lib/moderation_api/models/components/queueitem_image.rbi +26 -0
  38. data/lib/moderation_api/models/components/queueitem_match.rb +122 -0
  39. data/lib/moderation_api/models/components/queueitem_match.rbi +62 -0
  40. data/lib/moderation_api/models/components/queueitem_object.rb +72 -0
  41. data/lib/moderation_api/models/components/queueitem_object.rbi +20 -0
  42. data/lib/moderation_api/models/components/queueitem_signals.rb +126 -0
  43. data/lib/moderation_api/models/components/queueitem_signals.rbi +62 -0
  44. data/lib/moderation_api/models/{operations/casebookagreement.rb → components/queueitem_status.rb} +5 -6
  45. data/lib/moderation_api/models/components/queueitem_status.rbi +9 -0
  46. data/lib/moderation_api/models/components/queueitem_text.rb +47 -0
  47. data/lib/moderation_api/models/components/queueitem_text.rbi +20 -0
  48. data/lib/moderation_api/models/components/queueitem_video.rb +43 -0
  49. data/lib/moderation_api/models/components/queueitem_video.rbi +20 -0
  50. data/lib/moderation_api/models/{operations/queue.rb → components/queuewithcounts.rb} +32 -31
  51. data/lib/moderation_api/models/{operations/queue.rbi → components/queuewithcounts.rbi} +10 -10
  52. data/lib/moderation_api/models/components.rb +21 -1
  53. data/lib/moderation_api/models/errors/badrequesterror.rb +2 -1
  54. data/lib/moderation_api/models/errors/notfounderror.rb +1 -0
  55. data/lib/moderation_api/models/operations/{getqueue_recommendationaction.rb → action_response.rb} +2 -2
  56. data/lib/moderation_api/models/operations/action_response.rbi +9 -0
  57. data/lib/moderation_api/models/operations/addwordlistwords_request.rb +1 -1
  58. data/lib/moderation_api/models/operations/{checkstatus.rb → bucket.rb} +4 -5
  59. data/lib/moderation_api/models/{components/status.rbi → operations/bucket.rbi} +2 -2
  60. data/lib/moderation_api/models/operations/{listqueueitems_action.rb → channel.rb} +23 -32
  61. data/lib/moderation_api/models/operations/channel.rbi +38 -0
  62. data/lib/moderation_api/models/operations/classifier_output.rb +2 -2
  63. data/lib/moderation_api/models/operations/createaction_request.rb +1 -1
  64. data/lib/moderation_api/models/operations/createauthor_request.rb +1 -1
  65. data/lib/moderation_api/models/operations/createfeedback_request.rb +38 -0
  66. data/lib/moderation_api/models/operations/createfeedback_request.rbi +20 -0
  67. data/lib/moderation_api/models/operations/createfeedback_requestbody.rb +82 -0
  68. data/lib/moderation_api/models/operations/createfeedback_requestbody.rbi +32 -0
  69. data/lib/moderation_api/models/operations/createfeedback_response.rb +51 -0
  70. data/lib/moderation_api/models/operations/createfeedback_response.rbi +32 -0
  71. data/lib/moderation_api/models/operations/createfeedback_responsebody.rb +43 -0
  72. data/lib/moderation_api/models/operations/createfeedback_responsebody.rbi +20 -0
  73. data/lib/moderation_api/models/operations/createfeedback_type.rb +19 -0
  74. data/lib/moderation_api/models/operations/createfeedback_type.rbi +9 -0
  75. data/lib/moderation_api/models/operations/createprojectapikey_request.rb +35 -0
  76. data/lib/moderation_api/models/operations/createprojectapikey_request.rbi +20 -0
  77. data/lib/moderation_api/models/operations/{resolvequeueitem_requestbody.rb → createprojectapikey_requestbody.rb} +8 -8
  78. data/lib/moderation_api/models/operations/createprojectapikey_requestbody.rbi +14 -0
  79. data/lib/moderation_api/models/operations/createprojectapikey_response.rb +51 -0
  80. data/lib/moderation_api/models/operations/createprojectapikey_response.rbi +32 -0
  81. data/lib/moderation_api/models/operations/createwebhook_request.rb +1 -1
  82. data/lib/moderation_api/models/operations/createwordlist_request.rb +38 -0
  83. data/lib/moderation_api/models/operations/createwordlist_request.rbi +20 -0
  84. data/lib/moderation_api/models/operations/createwordlist_requestbody.rb +67 -0
  85. data/lib/moderation_api/models/operations/createwordlist_requestbody.rbi +32 -0
  86. data/lib/moderation_api/models/operations/createwordlist_response.rb +51 -0
  87. data/lib/moderation_api/models/operations/createwordlist_response.rbi +32 -0
  88. data/lib/moderation_api/models/operations/createwordlist_responsebody.rb +90 -0
  89. data/lib/moderation_api/models/operations/createwordlist_responsebody.rbi +50 -0
  90. data/lib/moderation_api/models/operations/dailyreviewcount.rb +4 -4
  91. data/lib/moderation_api/models/operations/deleteaction_request.rb +1 -1
  92. data/lib/moderation_api/models/operations/deleteauthor_request.rb +1 -1
  93. data/lib/moderation_api/models/operations/deletewebhook_request.rb +1 -1
  94. data/lib/moderation_api/models/operations/executeaction_request.rb +1 -1
  95. data/lib/moderation_api/models/operations/flagratespike.rb +76 -0
  96. data/lib/moderation_api/models/operations/flagratespike.rbi +38 -0
  97. data/lib/moderation_api/models/operations/getaccount_request.rb +1 -1
  98. data/lib/moderation_api/models/operations/getaction_request.rb +1 -1
  99. data/lib/moderation_api/models/operations/getanalyticsauthors_author.rb +51 -0
  100. data/lib/moderation_api/models/operations/getanalyticsauthors_author.rbi +26 -0
  101. data/lib/moderation_api/models/operations/getanalyticsauthors_queryparam_range.rb +20 -0
  102. data/lib/moderation_api/models/operations/getanalyticsauthors_queryparam_range.rbi +9 -0
  103. data/lib/moderation_api/models/operations/{casebookanswer.rb → getanalyticsauthors_range_response.rb} +6 -6
  104. data/lib/moderation_api/models/operations/getanalyticsauthors_range_response.rbi +9 -0
  105. data/lib/moderation_api/models/operations/getanalyticsauthors_request.rb +71 -0
  106. data/lib/moderation_api/models/operations/getanalyticsauthors_request.rbi +32 -0
  107. data/lib/moderation_api/models/operations/getanalyticsauthors_response.rb +51 -0
  108. data/lib/moderation_api/models/operations/getanalyticsauthors_response.rbi +32 -0
  109. data/lib/moderation_api/models/operations/getanalyticsauthors_responsebody.rb +67 -0
  110. data/lib/moderation_api/models/operations/getanalyticsauthors_responsebody.rbi +26 -0
  111. data/lib/moderation_api/models/operations/getanalyticsautomation_queryparam_range.rb +20 -0
  112. data/lib/moderation_api/models/operations/getanalyticsautomation_queryparam_range.rbi +9 -0
  113. data/lib/moderation_api/models/operations/getanalyticsautomation_range_response.rb +23 -0
  114. data/lib/moderation_api/models/operations/getanalyticsautomation_range_response.rbi +9 -0
  115. data/lib/moderation_api/models/operations/getanalyticsautomation_request.rb +61 -0
  116. data/lib/moderation_api/models/operations/getanalyticsautomation_request.rbi +26 -0
  117. data/lib/moderation_api/models/operations/getanalyticsautomation_response.rb +51 -0
  118. data/lib/moderation_api/models/operations/getanalyticsautomation_response.rbi +32 -0
  119. data/lib/moderation_api/models/operations/getanalyticsautomation_responsebody.rb +186 -0
  120. data/lib/moderation_api/models/operations/getanalyticsautomation_responsebody.rbi +92 -0
  121. data/lib/moderation_api/models/operations/getanalyticschannels_queryparam_range.rb +20 -0
  122. data/lib/moderation_api/models/operations/getanalyticschannels_queryparam_range.rbi +9 -0
  123. data/lib/moderation_api/models/operations/getanalyticschannels_range_response.rb +23 -0
  124. data/lib/moderation_api/models/operations/getanalyticschannels_range_response.rbi +9 -0
  125. data/lib/moderation_api/models/operations/getanalyticschannels_request.rb +49 -0
  126. data/lib/moderation_api/models/operations/getanalyticschannels_request.rbi +20 -0
  127. data/lib/moderation_api/models/operations/getanalyticschannels_response.rb +51 -0
  128. data/lib/moderation_api/models/operations/getanalyticschannels_response.rbi +32 -0
  129. data/lib/moderation_api/models/operations/getanalyticschannels_responsebody.rb +58 -0
  130. data/lib/moderation_api/models/operations/getanalyticschannels_responsebody.rbi +20 -0
  131. data/lib/moderation_api/models/operations/{listqueueitems_label.rb → getanalyticspolicies_policy.rb} +14 -14
  132. data/lib/moderation_api/models/operations/{listqueueitems_label.rbi → getanalyticspolicies_policy.rbi} +6 -6
  133. data/lib/moderation_api/models/operations/getanalyticspolicies_queryparam_range.rb +20 -0
  134. data/lib/moderation_api/models/operations/getanalyticspolicies_queryparam_range.rbi +9 -0
  135. data/lib/moderation_api/models/operations/getanalyticspolicies_range_response.rb +23 -0
  136. data/lib/moderation_api/models/operations/getanalyticspolicies_range_response.rbi +9 -0
  137. data/lib/moderation_api/models/operations/getanalyticspolicies_request.rb +71 -0
  138. data/lib/moderation_api/models/operations/getanalyticspolicies_request.rbi +32 -0
  139. data/lib/moderation_api/models/operations/getanalyticspolicies_response.rb +51 -0
  140. data/lib/moderation_api/models/operations/getanalyticspolicies_response.rbi +32 -0
  141. data/lib/moderation_api/models/operations/getanalyticspolicies_responsebody.rb +67 -0
  142. data/lib/moderation_api/models/operations/getanalyticspolicies_responsebody.rbi +26 -0
  143. data/lib/moderation_api/models/operations/getanalyticssummary_queryparam_range.rb +20 -0
  144. data/lib/moderation_api/models/operations/getanalyticssummary_queryparam_range.rbi +9 -0
  145. data/lib/moderation_api/models/operations/getanalyticssummary_range_response.rb +23 -0
  146. data/lib/moderation_api/models/operations/getanalyticssummary_range_response.rbi +9 -0
  147. data/lib/moderation_api/models/operations/getanalyticssummary_request.rb +61 -0
  148. data/lib/moderation_api/models/operations/getanalyticssummary_request.rbi +26 -0
  149. data/lib/moderation_api/models/operations/getanalyticssummary_response.rb +51 -0
  150. data/lib/moderation_api/models/operations/getanalyticssummary_response.rbi +32 -0
  151. data/lib/moderation_api/models/operations/getanalyticssummary_responsebody.rb +94 -0
  152. data/lib/moderation_api/models/operations/getanalyticssummary_responsebody.rbi +44 -0
  153. data/lib/moderation_api/models/operations/getanalyticsvolumes_queryparam_range.rb +20 -0
  154. data/lib/moderation_api/models/operations/getanalyticsvolumes_queryparam_range.rbi +9 -0
  155. data/lib/moderation_api/models/operations/getanalyticsvolumes_range_response.rb +23 -0
  156. data/lib/moderation_api/models/operations/getanalyticsvolumes_range_response.rbi +9 -0
  157. data/lib/moderation_api/models/operations/getanalyticsvolumes_request.rb +61 -0
  158. data/lib/moderation_api/models/operations/getanalyticsvolumes_request.rbi +26 -0
  159. data/lib/moderation_api/models/operations/getanalyticsvolumes_response.rb +51 -0
  160. data/lib/moderation_api/models/operations/getanalyticsvolumes_response.rbi +32 -0
  161. data/lib/moderation_api/models/operations/getanalyticsvolumes_responsebody.rb +82 -0
  162. data/lib/moderation_api/models/operations/getanalyticsvolumes_responsebody.rbi +32 -0
  163. data/lib/moderation_api/models/operations/getauthor_request.rb +1 -1
  164. data/lib/moderation_api/models/operations/getqueue_request.rb +2 -2
  165. data/lib/moderation_api/models/operations/getqueue_responsebody.rb +2 -2
  166. data/lib/moderation_api/models/operations/getqueuestats_request.rb +2 -2
  167. data/lib/moderation_api/models/operations/getqueuestats_responsebody.rb +2 -11
  168. data/lib/moderation_api/models/operations/getqueuestats_responsebody.rbi +0 -6
  169. data/lib/moderation_api/models/operations/getwebhook_request.rb +1 -1
  170. data/lib/moderation_api/models/operations/getwebhooksecret_request.rb +1 -1
  171. data/lib/moderation_api/models/operations/getwordlist_request.rb +1 -1
  172. data/lib/moderation_api/models/operations/getwordlistembeddingstatus_request.rb +1 -1
  173. data/lib/moderation_api/models/operations/{submitcontent_label.rb → label.rb} +1 -1
  174. data/lib/moderation_api/models/operations/{submitcontent_label.rbi → label.rbi} +2 -2
  175. data/lib/moderation_api/models/operations/listactions_request.rb +1 -1
  176. data/lib/moderation_api/models/operations/listauthors_request.rb +4 -14
  177. data/lib/moderation_api/models/operations/listauthors_request.rbi +0 -6
  178. data/lib/moderation_api/models/operations/listqueueitems_request.rb +39 -49
  179. data/lib/moderation_api/models/operations/listqueueitems_request.rbi +16 -22
  180. data/lib/moderation_api/models/operations/listqueueitems_responsebody.rb +2 -5
  181. data/lib/moderation_api/models/operations/listqueues_request.rb +53 -0
  182. data/lib/moderation_api/models/operations/listqueues_request.rbi +26 -0
  183. data/lib/moderation_api/models/operations/listqueues_response.rb +63 -0
  184. data/lib/moderation_api/models/operations/listqueues_response.rbi +32 -0
  185. data/lib/moderation_api/models/operations/listqueues_responsebody.rb +43 -0
  186. data/lib/moderation_api/models/operations/listqueues_responsebody.rbi +20 -0
  187. data/lib/moderation_api/models/operations/listwebhooks_request.rb +1 -1
  188. data/lib/moderation_api/models/operations/listwordlists_request.rb +1 -1
  189. data/lib/moderation_api/models/operations/previousperiod.rb +112 -0
  190. data/lib/moderation_api/models/operations/previousperiod.rbi +56 -0
  191. data/lib/moderation_api/models/operations/recommendation.rb +3 -6
  192. data/lib/moderation_api/models/operations/removewordlistwords_request.rb +1 -1
  193. data/lib/moderation_api/models/operations/resolvequeueitem_request.rb +5 -17
  194. data/lib/moderation_api/models/operations/resolvequeueitem_request.rbi +0 -6
  195. data/lib/moderation_api/models/operations/resolvequeueitem_responsebody.rb +3 -11
  196. data/lib/moderation_api/models/operations/resolvequeueitem_responsebody.rbi +0 -6
  197. data/lib/moderation_api/models/operations/resolvequeueitems_request.rb +46 -0
  198. data/lib/moderation_api/models/operations/resolvequeueitems_request.rbi +26 -0
  199. data/lib/moderation_api/models/operations/{unresolvequeueitem_requestbody.rb → resolvequeueitems_requestbody.rb} +9 -9
  200. data/lib/moderation_api/models/operations/resolvequeueitems_requestbody.rbi +14 -0
  201. data/lib/moderation_api/models/operations/resolvequeueitems_response.rb +51 -0
  202. data/lib/moderation_api/models/operations/resolvequeueitems_response.rbi +32 -0
  203. data/lib/moderation_api/models/operations/resolvequeueitems_responsebody.rb +43 -0
  204. data/lib/moderation_api/models/operations/resolvequeueitems_responsebody.rbi +20 -0
  205. data/lib/moderation_api/models/operations/reviewstats.rb +6 -14
  206. data/lib/moderation_api/models/operations/reviewstats.rbi +0 -6
  207. data/lib/moderation_api/models/operations/{flaggedcontenttrend.rb → rule.rb} +14 -14
  208. data/lib/moderation_api/models/operations/rule.rbi +20 -0
  209. data/lib/moderation_api/models/operations/{listqueueitems_sortdirection.rb → sort.rb} +6 -4
  210. data/lib/moderation_api/models/operations/{mediatype.rbi → sort.rbi} +2 -2
  211. data/lib/moderation_api/models/operations/sortby.rb +0 -1
  212. data/lib/moderation_api/models/operations/{listauthors_sortdirection.rb → sortdirection.rb} +2 -2
  213. data/lib/moderation_api/models/operations/sortdirection.rbi +9 -0
  214. data/lib/moderation_api/models/operations/source.rb +20 -0
  215. data/lib/moderation_api/models/operations/{isflagged.rbi → source.rbi} +2 -2
  216. data/lib/moderation_api/models/operations/{author.rb → submitcontent_author.rb} +1 -1
  217. data/lib/moderation_api/models/operations/{author.rbi → submitcontent_author.rbi} +2 -2
  218. data/lib/moderation_api/models/operations/{policy_response.rb → submitcontent_policy_response.rb} +1 -1
  219. data/lib/moderation_api/models/operations/submitcontent_policy_response.rbi +9 -0
  220. data/lib/moderation_api/models/operations/submitcontent_request.rb +1 -1
  221. data/lib/moderation_api/models/operations/submitcontent_requestbody.rb +1 -1
  222. data/lib/moderation_api/models/operations/submitcontent_responsebody.rb +2 -2
  223. data/lib/moderation_api/models/operations/topreviewer.rb +14 -48
  224. data/lib/moderation_api/models/operations/topreviewer.rbi +4 -22
  225. data/lib/moderation_api/models/operations/totals.rb +122 -0
  226. data/lib/moderation_api/models/operations/totals.rbi +62 -0
  227. data/lib/moderation_api/models/operations/trends.rb +3 -16
  228. data/lib/moderation_api/models/operations/trends.rbi +0 -6
  229. data/lib/moderation_api/models/operations/unresolvequeueitem_request.rb +5 -17
  230. data/lib/moderation_api/models/operations/unresolvequeueitem_request.rbi +0 -6
  231. data/lib/moderation_api/models/operations/unresolvequeueitem_responsebody.rb +17 -5
  232. data/lib/moderation_api/models/operations/{listqueueitems_status.rb → unresolvequeueitem_status.rb} +2 -2
  233. data/lib/moderation_api/models/operations/unresolvequeueitem_status.rbi +9 -0
  234. data/lib/moderation_api/models/operations/updateaction_request.rb +1 -1
  235. data/lib/moderation_api/models/operations/updateauthor_request.rb +1 -1
  236. data/lib/moderation_api/models/operations/updatewebhook_request.rb +1 -1
  237. data/lib/moderation_api/models/operations/updatewordlist_request.rb +1 -1
  238. data/lib/moderation_api/models/operations/updatewordlist_requestbody.rb +1 -1
  239. data/lib/moderation_api/models/operations/volume.rb +76 -0
  240. data/lib/moderation_api/models/operations/volume.rbi +38 -0
  241. data/lib/moderation_api/models/operations.rb +111 -32
  242. data/lib/moderation_api/moderationapi.rb +4 -0
  243. data/lib/moderation_api/projects.rb +7 -0
  244. data/lib/moderation_api/queue.rb +319 -2
  245. data/lib/moderation_api/sdkconfiguration.rb +2 -2
  246. data/lib/moderation_api/wordlist.rb +225 -1
  247. data/lib/moderation_api.rb +3 -0
  248. metadata +179 -62
  249. data/lib/moderation_api/models/operations/actionstat.rb +0 -59
  250. data/lib/moderation_api/models/operations/actionstat.rbi +0 -32
  251. data/lib/moderation_api/models/operations/casebookagreement.rbi +0 -9
  252. data/lib/moderation_api/models/operations/casebookanswer.rbi +0 -9
  253. data/lib/moderation_api/models/operations/checkstatus.rbi +0 -9
  254. data/lib/moderation_api/models/operations/filter.rb +0 -306
  255. data/lib/moderation_api/models/operations/filter.rbi +0 -158
  256. data/lib/moderation_api/models/operations/filterlabel.rb +0 -72
  257. data/lib/moderation_api/models/operations/filterlabel.rbi +0 -32
  258. data/lib/moderation_api/models/operations/flaggedcontenttrend.rbi +0 -20
  259. data/lib/moderation_api/models/operations/getqueue_contenttype.rb +0 -28
  260. data/lib/moderation_api/models/operations/getqueue_contenttype.rbi +0 -9
  261. data/lib/moderation_api/models/operations/getqueue_recommendationaction.rbi +0 -9
  262. data/lib/moderation_api/models/operations/getqueue_type.rb +0 -23
  263. data/lib/moderation_api/models/operations/getqueue_type.rbi +0 -9
  264. data/lib/moderation_api/models/operations/isflagged.rb +0 -23
  265. data/lib/moderation_api/models/operations/listauthors_sortdirection.rbi +0 -9
  266. data/lib/moderation_api/models/operations/listqueueitems_action.rbi +0 -38
  267. data/lib/moderation_api/models/operations/listqueueitems_sortdirection.rbi +0 -9
  268. data/lib/moderation_api/models/operations/listqueueitems_status.rbi +0 -9
  269. data/lib/moderation_api/models/operations/mediatype.rb +0 -24
  270. data/lib/moderation_api/models/operations/metadatafilter.rb +0 -38
  271. data/lib/moderation_api/models/operations/metadatafilter.rbi +0 -20
  272. data/lib/moderation_api/models/operations/policy_response.rbi +0 -9
  273. data/lib/moderation_api/models/operations/resolvequeueitem_requestbody.rbi +0 -14
  274. data/lib/moderation_api/models/operations/sortfield.rb +0 -19
  275. data/lib/moderation_api/models/operations/sortfield.rbi +0 -9
  276. data/lib/moderation_api/models/operations/submitcontent_recommendation_action.rb +0 -22
  277. data/lib/moderation_api/models/operations/submitcontent_recommendation_action.rbi +0 -9
  278. data/lib/moderation_api/models/operations/topaction.rb +0 -51
  279. data/lib/moderation_api/models/operations/topaction.rbi +0 -26
  280. data/lib/moderation_api/models/operations/unresolvequeueitem_requestbody.rbi +0 -14
  281. data/lib/moderation_api/models/operations/withinunit.rb +0 -25
  282. data/lib/moderation_api/models/operations/withinunit.rbi +0 -9
@@ -0,0 +1,1746 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require "faraday"
7
+ require "faraday/multipart"
8
+ require "faraday/retry"
9
+ require "sorbet-runtime"
10
+
11
+ require_relative "sdk_hooks/hooks"
12
+ require_relative "utils/retries"
13
+
14
+ module ModerationApi
15
+ extend T::Sig
16
+
17
+ class Analytics
18
+ extend T::Sig
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+ end
24
+
25
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
26
+ def get_url(base_url:, url_variables: nil)
27
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
28
+
29
+ if base_url.nil?
30
+ base_url = sd_base_url
31
+ end
32
+
33
+ if url_variables.nil?
34
+ url_variables = sd_options
35
+ end
36
+
37
+ return Utils.template_url(base_url, url_variables)
38
+ end
39
+
40
+ sig {
41
+ params(
42
+ range: T.nilable(Models::Operations::GetAnalyticsSummaryQueryParamRange),
43
+ channel: T.nilable(::String),
44
+ project_id: T.nilable(::String),
45
+ timeout_ms: T.nilable(Integer),
46
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
47
+ )
48
+ .returns(Models::Operations::GetAnalyticsSummaryResponse)
49
+ }
50
+ def summary(range: nil, channel: nil, project_id: nil, timeout_ms: nil, http_headers: nil)
51
+ # summary - Get the analytics summary
52
+ # Get the totals of the project for a time window: requests, flags, flag rate, allowed, rejected and sent to review, with the window before for the trend. Also the review queue backlog and a flag-rate spike, if there is one.
53
+ request = Models::Operations::GetAnalyticsSummaryRequest.new(
54
+ range: range,
55
+ channel: channel,
56
+ project_id: project_id
57
+ )
58
+ url, params = @sdk_configuration.get_server_details
59
+ base_url = Utils.template_url(url, params)
60
+ url = "#{base_url}/analytics/summary"
61
+ headers = Utils.get_headers(request)
62
+ headers = T.cast(headers, T::Hash[String, String])
63
+ query_params = Utils.get_query_params(Models::Operations::GetAnalyticsSummaryRequest, request, nil)
64
+ headers["Accept"] = "application/json"
65
+ headers["user-agent"] = @sdk_configuration.user_agent
66
+
67
+ security = @sdk_configuration.security_source&.call
68
+
69
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
70
+ timeout ||= @sdk_configuration.timeout
71
+
72
+ connection = @sdk_configuration.client
73
+
74
+ hook_ctx = SDKHooks::HookContext.new(
75
+ config: @sdk_configuration,
76
+ base_url: base_url,
77
+ oauth2_scopes: nil,
78
+ operation_id: "getAnalyticsSummary",
79
+ security_source: @sdk_configuration.security_source
80
+ )
81
+
82
+ error = T.let(nil, T.nilable(StandardError))
83
+ http_response = T.let(nil, T.nilable(Faraday::Response))
84
+
85
+ begin
86
+ http_response = T.must(connection).get(url) do |req|
87
+ req.headers.merge!(headers)
88
+ req.options.timeout = timeout unless timeout.nil?
89
+ req.params = query_params
90
+ Utils.configure_request_security(req, security)
91
+ http_headers&.each do |key, value|
92
+ req.headers[key.to_s] = value
93
+ end
94
+
95
+ @sdk_configuration.hooks.before_request(
96
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
97
+ hook_ctx: hook_ctx
98
+ ),
99
+ request: req
100
+ )
101
+ end
102
+
103
+ rescue StandardError => e
104
+ error = e
105
+ ensure
106
+ if http_response.nil? || Utils.error_status?(http_response.status)
107
+ http_response = @sdk_configuration.hooks.after_error(
108
+ error: error,
109
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
110
+ hook_ctx: hook_ctx
111
+ ),
112
+ response: http_response
113
+ )
114
+ else
115
+ http_response = @sdk_configuration.hooks.after_success(
116
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
117
+ hook_ctx: hook_ctx
118
+ ),
119
+ response: http_response
120
+ )
121
+ end
122
+
123
+ if http_response.nil?
124
+ raise error if !error.nil?
125
+ raise "no response"
126
+ end
127
+ end
128
+
129
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
130
+ if Utils.match_status_code(http_response.status, ["200"])
131
+ if Utils.match_content_type(content_type, "application/json")
132
+ http_response = @sdk_configuration.hooks.after_success(
133
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
134
+ hook_ctx: hook_ctx
135
+ ),
136
+ response: http_response
137
+ )
138
+ response_data = http_response.env.response_body
139
+ obj = Crystalline.unmarshal_json(
140
+ JSON.parse(response_data),
141
+ Models::Operations::GetAnalyticsSummaryResponseBody
142
+ )
143
+ response = Models::Operations::GetAnalyticsSummaryResponse.new(
144
+ status_code: http_response.status,
145
+ content_type: content_type,
146
+ raw_response: http_response,
147
+ object: T.unsafe(obj)
148
+ )
149
+
150
+ return response
151
+ else
152
+ raise(
153
+ ::ModerationApi::Models::Errors::APIError.new(
154
+ status_code: http_response.status,
155
+ body: http_response.env.response_body,
156
+ raw_response: http_response
157
+ ),
158
+ "Unknown content type received"
159
+ )
160
+ end
161
+ elsif Utils.match_status_code(http_response.status, ["400"])
162
+ if Utils.match_content_type(content_type, "application/json")
163
+ http_response = @sdk_configuration.hooks.after_success(
164
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
165
+ hook_ctx: hook_ctx
166
+ ),
167
+ response: http_response
168
+ )
169
+ response_data = http_response.env.response_body
170
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
171
+ obj.raw_response = http_response
172
+ raise obj
173
+ else
174
+ raise(
175
+ ::ModerationApi::Models::Errors::APIError.new(
176
+ status_code: http_response.status,
177
+ body: http_response.env.response_body,
178
+ raw_response: http_response
179
+ ),
180
+ "Unknown content type received"
181
+ )
182
+ end
183
+ elsif Utils.match_status_code(http_response.status, ["401"])
184
+ if Utils.match_content_type(content_type, "application/json")
185
+ http_response = @sdk_configuration.hooks.after_success(
186
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
187
+ hook_ctx: hook_ctx
188
+ ),
189
+ response: http_response
190
+ )
191
+ response_data = http_response.env.response_body
192
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
193
+ obj.raw_response = http_response
194
+ raise obj
195
+ else
196
+ raise(
197
+ ::ModerationApi::Models::Errors::APIError.new(
198
+ status_code: http_response.status,
199
+ body: http_response.env.response_body,
200
+ raw_response: http_response
201
+ ),
202
+ "Unknown content type received"
203
+ )
204
+ end
205
+ elsif Utils.match_status_code(http_response.status, ["403"])
206
+ if Utils.match_content_type(content_type, "application/json")
207
+ http_response = @sdk_configuration.hooks.after_success(
208
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
209
+ hook_ctx: hook_ctx
210
+ ),
211
+ response: http_response
212
+ )
213
+ response_data = http_response.env.response_body
214
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
215
+ obj.raw_response = http_response
216
+ raise obj
217
+ else
218
+ raise(
219
+ ::ModerationApi::Models::Errors::APIError.new(
220
+ status_code: http_response.status,
221
+ body: http_response.env.response_body,
222
+ raw_response: http_response
223
+ ),
224
+ "Unknown content type received"
225
+ )
226
+ end
227
+ elsif Utils.match_status_code(http_response.status, ["404"])
228
+ if Utils.match_content_type(content_type, "application/json")
229
+ http_response = @sdk_configuration.hooks.after_success(
230
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
231
+ hook_ctx: hook_ctx
232
+ ),
233
+ response: http_response
234
+ )
235
+ response_data = http_response.env.response_body
236
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
237
+ obj.raw_response = http_response
238
+ raise obj
239
+ else
240
+ raise(
241
+ ::ModerationApi::Models::Errors::APIError.new(
242
+ status_code: http_response.status,
243
+ body: http_response.env.response_body,
244
+ raw_response: http_response
245
+ ),
246
+ "Unknown content type received"
247
+ )
248
+ end
249
+ elsif Utils.match_status_code(http_response.status, ["429"])
250
+ if Utils.match_content_type(content_type, "application/json")
251
+ http_response = @sdk_configuration.hooks.after_success(
252
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
253
+ hook_ctx: hook_ctx
254
+ ),
255
+ response: http_response
256
+ )
257
+ response_data = http_response.env.response_body
258
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
259
+ obj.raw_response = http_response
260
+ raise obj
261
+ else
262
+ raise(
263
+ ::ModerationApi::Models::Errors::APIError.new(
264
+ status_code: http_response.status,
265
+ body: http_response.env.response_body,
266
+ raw_response: http_response
267
+ ),
268
+ "Unknown content type received"
269
+ )
270
+ end
271
+ elsif Utils.match_status_code(http_response.status, ["500"])
272
+ if Utils.match_content_type(content_type, "application/json")
273
+ http_response = @sdk_configuration.hooks.after_success(
274
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
275
+ hook_ctx: hook_ctx
276
+ ),
277
+ response: http_response
278
+ )
279
+ response_data = http_response.env.response_body
280
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerError)
281
+ obj.raw_response = http_response
282
+ raise obj
283
+ else
284
+ raise(
285
+ ::ModerationApi::Models::Errors::APIError.new(
286
+ status_code: http_response.status,
287
+ body: http_response.env.response_body,
288
+ raw_response: http_response
289
+ ),
290
+ "Unknown content type received"
291
+ )
292
+ end
293
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
294
+ raise(
295
+ ::ModerationApi::Models::Errors::APIError.new(
296
+ status_code: http_response.status,
297
+ body: http_response.env.response_body,
298
+ raw_response: http_response
299
+ ),
300
+ "API error occurred"
301
+ )
302
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
303
+ raise(
304
+ ::ModerationApi::Models::Errors::APIError.new(
305
+ status_code: http_response.status,
306
+ body: http_response.env.response_body,
307
+ raw_response: http_response
308
+ ),
309
+ "API error occurred"
310
+ )
311
+ else
312
+ raise(
313
+ ::ModerationApi::Models::Errors::APIError.new(
314
+ status_code: http_response.status,
315
+ body: http_response.env.response_body,
316
+ raw_response: http_response
317
+ ),
318
+ "Unknown status code received"
319
+ )
320
+
321
+ end
322
+ end
323
+
324
+ sig {
325
+ params(
326
+ range: T.nilable(Models::Operations::GetAnalyticsPoliciesQueryParamRange),
327
+ channel: T.nilable(::String),
328
+ limit: T.nilable(::Integer),
329
+ project_id: T.nilable(::String),
330
+ timeout_ms: T.nilable(Integer),
331
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
332
+ )
333
+ .returns(Models::Operations::GetAnalyticsPoliciesResponse)
334
+ }
335
+ def policies(range: nil, channel: nil, limit: nil, project_id: nil, timeout_ms: nil, http_headers: nil)
336
+ # policies - Get the most flagged policies
337
+ # Get the policy labels that flagged the most content in a time window, largest first, with the count in the window before.
338
+ request = Models::Operations::GetAnalyticsPoliciesRequest.new(
339
+ range: range,
340
+ channel: channel,
341
+ limit: limit,
342
+ project_id: project_id
343
+ )
344
+ url, params = @sdk_configuration.get_server_details
345
+ base_url = Utils.template_url(url, params)
346
+ url = "#{base_url}/analytics/policies"
347
+ headers = Utils.get_headers(request)
348
+ headers = T.cast(headers, T::Hash[String, String])
349
+ query_params = Utils.get_query_params(Models::Operations::GetAnalyticsPoliciesRequest, request, nil)
350
+ headers["Accept"] = "application/json"
351
+ headers["user-agent"] = @sdk_configuration.user_agent
352
+
353
+ security = @sdk_configuration.security_source&.call
354
+
355
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
356
+ timeout ||= @sdk_configuration.timeout
357
+
358
+ connection = @sdk_configuration.client
359
+
360
+ hook_ctx = SDKHooks::HookContext.new(
361
+ config: @sdk_configuration,
362
+ base_url: base_url,
363
+ oauth2_scopes: nil,
364
+ operation_id: "getAnalyticsPolicies",
365
+ security_source: @sdk_configuration.security_source
366
+ )
367
+
368
+ error = T.let(nil, T.nilable(StandardError))
369
+ http_response = T.let(nil, T.nilable(Faraday::Response))
370
+
371
+ begin
372
+ http_response = T.must(connection).get(url) do |req|
373
+ req.headers.merge!(headers)
374
+ req.options.timeout = timeout unless timeout.nil?
375
+ req.params = query_params
376
+ Utils.configure_request_security(req, security)
377
+ http_headers&.each do |key, value|
378
+ req.headers[key.to_s] = value
379
+ end
380
+
381
+ @sdk_configuration.hooks.before_request(
382
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
383
+ hook_ctx: hook_ctx
384
+ ),
385
+ request: req
386
+ )
387
+ end
388
+
389
+ rescue StandardError => e
390
+ error = e
391
+ ensure
392
+ if http_response.nil? || Utils.error_status?(http_response.status)
393
+ http_response = @sdk_configuration.hooks.after_error(
394
+ error: error,
395
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
396
+ hook_ctx: hook_ctx
397
+ ),
398
+ response: http_response
399
+ )
400
+ else
401
+ http_response = @sdk_configuration.hooks.after_success(
402
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
403
+ hook_ctx: hook_ctx
404
+ ),
405
+ response: http_response
406
+ )
407
+ end
408
+
409
+ if http_response.nil?
410
+ raise error if !error.nil?
411
+ raise "no response"
412
+ end
413
+ end
414
+
415
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
416
+ if Utils.match_status_code(http_response.status, ["200"])
417
+ if Utils.match_content_type(content_type, "application/json")
418
+ http_response = @sdk_configuration.hooks.after_success(
419
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
420
+ hook_ctx: hook_ctx
421
+ ),
422
+ response: http_response
423
+ )
424
+ response_data = http_response.env.response_body
425
+ obj = Crystalline.unmarshal_json(
426
+ JSON.parse(response_data),
427
+ Models::Operations::GetAnalyticsPoliciesResponseBody
428
+ )
429
+ response = Models::Operations::GetAnalyticsPoliciesResponse.new(
430
+ status_code: http_response.status,
431
+ content_type: content_type,
432
+ raw_response: http_response,
433
+ object: T.unsafe(obj)
434
+ )
435
+
436
+ return response
437
+ else
438
+ raise(
439
+ ::ModerationApi::Models::Errors::APIError.new(
440
+ status_code: http_response.status,
441
+ body: http_response.env.response_body,
442
+ raw_response: http_response
443
+ ),
444
+ "Unknown content type received"
445
+ )
446
+ end
447
+ elsif Utils.match_status_code(http_response.status, ["400"])
448
+ if Utils.match_content_type(content_type, "application/json")
449
+ http_response = @sdk_configuration.hooks.after_success(
450
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
451
+ hook_ctx: hook_ctx
452
+ ),
453
+ response: http_response
454
+ )
455
+ response_data = http_response.env.response_body
456
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
457
+ obj.raw_response = http_response
458
+ raise obj
459
+ else
460
+ raise(
461
+ ::ModerationApi::Models::Errors::APIError.new(
462
+ status_code: http_response.status,
463
+ body: http_response.env.response_body,
464
+ raw_response: http_response
465
+ ),
466
+ "Unknown content type received"
467
+ )
468
+ end
469
+ elsif Utils.match_status_code(http_response.status, ["401"])
470
+ if Utils.match_content_type(content_type, "application/json")
471
+ http_response = @sdk_configuration.hooks.after_success(
472
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
473
+ hook_ctx: hook_ctx
474
+ ),
475
+ response: http_response
476
+ )
477
+ response_data = http_response.env.response_body
478
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
479
+ obj.raw_response = http_response
480
+ raise obj
481
+ else
482
+ raise(
483
+ ::ModerationApi::Models::Errors::APIError.new(
484
+ status_code: http_response.status,
485
+ body: http_response.env.response_body,
486
+ raw_response: http_response
487
+ ),
488
+ "Unknown content type received"
489
+ )
490
+ end
491
+ elsif Utils.match_status_code(http_response.status, ["403"])
492
+ if Utils.match_content_type(content_type, "application/json")
493
+ http_response = @sdk_configuration.hooks.after_success(
494
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
495
+ hook_ctx: hook_ctx
496
+ ),
497
+ response: http_response
498
+ )
499
+ response_data = http_response.env.response_body
500
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
501
+ obj.raw_response = http_response
502
+ raise obj
503
+ else
504
+ raise(
505
+ ::ModerationApi::Models::Errors::APIError.new(
506
+ status_code: http_response.status,
507
+ body: http_response.env.response_body,
508
+ raw_response: http_response
509
+ ),
510
+ "Unknown content type received"
511
+ )
512
+ end
513
+ elsif Utils.match_status_code(http_response.status, ["404"])
514
+ if Utils.match_content_type(content_type, "application/json")
515
+ http_response = @sdk_configuration.hooks.after_success(
516
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
517
+ hook_ctx: hook_ctx
518
+ ),
519
+ response: http_response
520
+ )
521
+ response_data = http_response.env.response_body
522
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
523
+ obj.raw_response = http_response
524
+ raise obj
525
+ else
526
+ raise(
527
+ ::ModerationApi::Models::Errors::APIError.new(
528
+ status_code: http_response.status,
529
+ body: http_response.env.response_body,
530
+ raw_response: http_response
531
+ ),
532
+ "Unknown content type received"
533
+ )
534
+ end
535
+ elsif Utils.match_status_code(http_response.status, ["429"])
536
+ if Utils.match_content_type(content_type, "application/json")
537
+ http_response = @sdk_configuration.hooks.after_success(
538
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
539
+ hook_ctx: hook_ctx
540
+ ),
541
+ response: http_response
542
+ )
543
+ response_data = http_response.env.response_body
544
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
545
+ obj.raw_response = http_response
546
+ raise obj
547
+ else
548
+ raise(
549
+ ::ModerationApi::Models::Errors::APIError.new(
550
+ status_code: http_response.status,
551
+ body: http_response.env.response_body,
552
+ raw_response: http_response
553
+ ),
554
+ "Unknown content type received"
555
+ )
556
+ end
557
+ elsif Utils.match_status_code(http_response.status, ["500"])
558
+ if Utils.match_content_type(content_type, "application/json")
559
+ http_response = @sdk_configuration.hooks.after_success(
560
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
561
+ hook_ctx: hook_ctx
562
+ ),
563
+ response: http_response
564
+ )
565
+ response_data = http_response.env.response_body
566
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerError)
567
+ obj.raw_response = http_response
568
+ raise obj
569
+ else
570
+ raise(
571
+ ::ModerationApi::Models::Errors::APIError.new(
572
+ status_code: http_response.status,
573
+ body: http_response.env.response_body,
574
+ raw_response: http_response
575
+ ),
576
+ "Unknown content type received"
577
+ )
578
+ end
579
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
580
+ raise(
581
+ ::ModerationApi::Models::Errors::APIError.new(
582
+ status_code: http_response.status,
583
+ body: http_response.env.response_body,
584
+ raw_response: http_response
585
+ ),
586
+ "API error occurred"
587
+ )
588
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
589
+ raise(
590
+ ::ModerationApi::Models::Errors::APIError.new(
591
+ status_code: http_response.status,
592
+ body: http_response.env.response_body,
593
+ raw_response: http_response
594
+ ),
595
+ "API error occurred"
596
+ )
597
+ else
598
+ raise(
599
+ ::ModerationApi::Models::Errors::APIError.new(
600
+ status_code: http_response.status,
601
+ body: http_response.env.response_body,
602
+ raw_response: http_response
603
+ ),
604
+ "Unknown status code received"
605
+ )
606
+
607
+ end
608
+ end
609
+
610
+ sig {
611
+ params(
612
+ range: T.nilable(Models::Operations::GetAnalyticsAuthorsQueryParamRange),
613
+ channel: T.nilable(::String),
614
+ limit: T.nilable(::Integer),
615
+ project_id: T.nilable(::String),
616
+ timeout_ms: T.nilable(Integer),
617
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
618
+ )
619
+ .returns(Models::Operations::GetAnalyticsAuthorsResponse)
620
+ }
621
+ def authors(range: nil, channel: nil, limit: nil, project_id: nil, timeout_ms: nil, http_headers: nil)
622
+ # authors - Get the most flagged authors
623
+ # Get the authors with the most flagged content in a time window, largest first.
624
+ request = Models::Operations::GetAnalyticsAuthorsRequest.new(
625
+ range: range,
626
+ channel: channel,
627
+ limit: limit,
628
+ project_id: project_id
629
+ )
630
+ url, params = @sdk_configuration.get_server_details
631
+ base_url = Utils.template_url(url, params)
632
+ url = "#{base_url}/analytics/authors"
633
+ headers = Utils.get_headers(request)
634
+ headers = T.cast(headers, T::Hash[String, String])
635
+ query_params = Utils.get_query_params(Models::Operations::GetAnalyticsAuthorsRequest, request, nil)
636
+ headers["Accept"] = "application/json"
637
+ headers["user-agent"] = @sdk_configuration.user_agent
638
+
639
+ security = @sdk_configuration.security_source&.call
640
+
641
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
642
+ timeout ||= @sdk_configuration.timeout
643
+
644
+ connection = @sdk_configuration.client
645
+
646
+ hook_ctx = SDKHooks::HookContext.new(
647
+ config: @sdk_configuration,
648
+ base_url: base_url,
649
+ oauth2_scopes: nil,
650
+ operation_id: "getAnalyticsAuthors",
651
+ security_source: @sdk_configuration.security_source
652
+ )
653
+
654
+ error = T.let(nil, T.nilable(StandardError))
655
+ http_response = T.let(nil, T.nilable(Faraday::Response))
656
+
657
+ begin
658
+ http_response = T.must(connection).get(url) do |req|
659
+ req.headers.merge!(headers)
660
+ req.options.timeout = timeout unless timeout.nil?
661
+ req.params = query_params
662
+ Utils.configure_request_security(req, security)
663
+ http_headers&.each do |key, value|
664
+ req.headers[key.to_s] = value
665
+ end
666
+
667
+ @sdk_configuration.hooks.before_request(
668
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
669
+ hook_ctx: hook_ctx
670
+ ),
671
+ request: req
672
+ )
673
+ end
674
+
675
+ rescue StandardError => e
676
+ error = e
677
+ ensure
678
+ if http_response.nil? || Utils.error_status?(http_response.status)
679
+ http_response = @sdk_configuration.hooks.after_error(
680
+ error: error,
681
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
682
+ hook_ctx: hook_ctx
683
+ ),
684
+ response: http_response
685
+ )
686
+ else
687
+ http_response = @sdk_configuration.hooks.after_success(
688
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
689
+ hook_ctx: hook_ctx
690
+ ),
691
+ response: http_response
692
+ )
693
+ end
694
+
695
+ if http_response.nil?
696
+ raise error if !error.nil?
697
+ raise "no response"
698
+ end
699
+ end
700
+
701
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
702
+ if Utils.match_status_code(http_response.status, ["200"])
703
+ if Utils.match_content_type(content_type, "application/json")
704
+ http_response = @sdk_configuration.hooks.after_success(
705
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
706
+ hook_ctx: hook_ctx
707
+ ),
708
+ response: http_response
709
+ )
710
+ response_data = http_response.env.response_body
711
+ obj = Crystalline.unmarshal_json(
712
+ JSON.parse(response_data),
713
+ Models::Operations::GetAnalyticsAuthorsResponseBody
714
+ )
715
+ response = Models::Operations::GetAnalyticsAuthorsResponse.new(
716
+ status_code: http_response.status,
717
+ content_type: content_type,
718
+ raw_response: http_response,
719
+ object: T.unsafe(obj)
720
+ )
721
+
722
+ return response
723
+ else
724
+ raise(
725
+ ::ModerationApi::Models::Errors::APIError.new(
726
+ status_code: http_response.status,
727
+ body: http_response.env.response_body,
728
+ raw_response: http_response
729
+ ),
730
+ "Unknown content type received"
731
+ )
732
+ end
733
+ elsif Utils.match_status_code(http_response.status, ["400"])
734
+ if Utils.match_content_type(content_type, "application/json")
735
+ http_response = @sdk_configuration.hooks.after_success(
736
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
737
+ hook_ctx: hook_ctx
738
+ ),
739
+ response: http_response
740
+ )
741
+ response_data = http_response.env.response_body
742
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
743
+ obj.raw_response = http_response
744
+ raise obj
745
+ else
746
+ raise(
747
+ ::ModerationApi::Models::Errors::APIError.new(
748
+ status_code: http_response.status,
749
+ body: http_response.env.response_body,
750
+ raw_response: http_response
751
+ ),
752
+ "Unknown content type received"
753
+ )
754
+ end
755
+ elsif Utils.match_status_code(http_response.status, ["401"])
756
+ if Utils.match_content_type(content_type, "application/json")
757
+ http_response = @sdk_configuration.hooks.after_success(
758
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
759
+ hook_ctx: hook_ctx
760
+ ),
761
+ response: http_response
762
+ )
763
+ response_data = http_response.env.response_body
764
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
765
+ obj.raw_response = http_response
766
+ raise obj
767
+ else
768
+ raise(
769
+ ::ModerationApi::Models::Errors::APIError.new(
770
+ status_code: http_response.status,
771
+ body: http_response.env.response_body,
772
+ raw_response: http_response
773
+ ),
774
+ "Unknown content type received"
775
+ )
776
+ end
777
+ elsif Utils.match_status_code(http_response.status, ["403"])
778
+ if Utils.match_content_type(content_type, "application/json")
779
+ http_response = @sdk_configuration.hooks.after_success(
780
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
781
+ hook_ctx: hook_ctx
782
+ ),
783
+ response: http_response
784
+ )
785
+ response_data = http_response.env.response_body
786
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
787
+ obj.raw_response = http_response
788
+ raise obj
789
+ else
790
+ raise(
791
+ ::ModerationApi::Models::Errors::APIError.new(
792
+ status_code: http_response.status,
793
+ body: http_response.env.response_body,
794
+ raw_response: http_response
795
+ ),
796
+ "Unknown content type received"
797
+ )
798
+ end
799
+ elsif Utils.match_status_code(http_response.status, ["404"])
800
+ if Utils.match_content_type(content_type, "application/json")
801
+ http_response = @sdk_configuration.hooks.after_success(
802
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
803
+ hook_ctx: hook_ctx
804
+ ),
805
+ response: http_response
806
+ )
807
+ response_data = http_response.env.response_body
808
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
809
+ obj.raw_response = http_response
810
+ raise obj
811
+ else
812
+ raise(
813
+ ::ModerationApi::Models::Errors::APIError.new(
814
+ status_code: http_response.status,
815
+ body: http_response.env.response_body,
816
+ raw_response: http_response
817
+ ),
818
+ "Unknown content type received"
819
+ )
820
+ end
821
+ elsif Utils.match_status_code(http_response.status, ["429"])
822
+ if Utils.match_content_type(content_type, "application/json")
823
+ http_response = @sdk_configuration.hooks.after_success(
824
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
825
+ hook_ctx: hook_ctx
826
+ ),
827
+ response: http_response
828
+ )
829
+ response_data = http_response.env.response_body
830
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
831
+ obj.raw_response = http_response
832
+ raise obj
833
+ else
834
+ raise(
835
+ ::ModerationApi::Models::Errors::APIError.new(
836
+ status_code: http_response.status,
837
+ body: http_response.env.response_body,
838
+ raw_response: http_response
839
+ ),
840
+ "Unknown content type received"
841
+ )
842
+ end
843
+ elsif Utils.match_status_code(http_response.status, ["500"])
844
+ if Utils.match_content_type(content_type, "application/json")
845
+ http_response = @sdk_configuration.hooks.after_success(
846
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
847
+ hook_ctx: hook_ctx
848
+ ),
849
+ response: http_response
850
+ )
851
+ response_data = http_response.env.response_body
852
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerError)
853
+ obj.raw_response = http_response
854
+ raise obj
855
+ else
856
+ raise(
857
+ ::ModerationApi::Models::Errors::APIError.new(
858
+ status_code: http_response.status,
859
+ body: http_response.env.response_body,
860
+ raw_response: http_response
861
+ ),
862
+ "Unknown content type received"
863
+ )
864
+ end
865
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
866
+ raise(
867
+ ::ModerationApi::Models::Errors::APIError.new(
868
+ status_code: http_response.status,
869
+ body: http_response.env.response_body,
870
+ raw_response: http_response
871
+ ),
872
+ "API error occurred"
873
+ )
874
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
875
+ raise(
876
+ ::ModerationApi::Models::Errors::APIError.new(
877
+ status_code: http_response.status,
878
+ body: http_response.env.response_body,
879
+ raw_response: http_response
880
+ ),
881
+ "API error occurred"
882
+ )
883
+ else
884
+ raise(
885
+ ::ModerationApi::Models::Errors::APIError.new(
886
+ status_code: http_response.status,
887
+ body: http_response.env.response_body,
888
+ raw_response: http_response
889
+ ),
890
+ "Unknown status code received"
891
+ )
892
+
893
+ end
894
+ end
895
+
896
+ sig {
897
+ params(
898
+ range: T.nilable(Models::Operations::GetAnalyticsChannelsQueryParamRange),
899
+ project_id: T.nilable(::String),
900
+ timeout_ms: T.nilable(Integer),
901
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
902
+ )
903
+ .returns(Models::Operations::GetAnalyticsChannelsResponse)
904
+ }
905
+ def channels(range: nil, project_id: nil, timeout_ms: nil, http_headers: nil)
906
+ # channels - Get analytics per channel
907
+ # Get requests, flags and flag rate for each channel of the project in a time window.
908
+ request = Models::Operations::GetAnalyticsChannelsRequest.new(
909
+ range: range,
910
+ project_id: project_id
911
+ )
912
+ url, params = @sdk_configuration.get_server_details
913
+ base_url = Utils.template_url(url, params)
914
+ url = "#{base_url}/analytics/channels"
915
+ headers = Utils.get_headers(request)
916
+ headers = T.cast(headers, T::Hash[String, String])
917
+ query_params = Utils.get_query_params(Models::Operations::GetAnalyticsChannelsRequest, request, nil)
918
+ headers["Accept"] = "application/json"
919
+ headers["user-agent"] = @sdk_configuration.user_agent
920
+
921
+ security = @sdk_configuration.security_source&.call
922
+
923
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
924
+ timeout ||= @sdk_configuration.timeout
925
+
926
+ connection = @sdk_configuration.client
927
+
928
+ hook_ctx = SDKHooks::HookContext.new(
929
+ config: @sdk_configuration,
930
+ base_url: base_url,
931
+ oauth2_scopes: nil,
932
+ operation_id: "getAnalyticsChannels",
933
+ security_source: @sdk_configuration.security_source
934
+ )
935
+
936
+ error = T.let(nil, T.nilable(StandardError))
937
+ http_response = T.let(nil, T.nilable(Faraday::Response))
938
+
939
+ begin
940
+ http_response = T.must(connection).get(url) do |req|
941
+ req.headers.merge!(headers)
942
+ req.options.timeout = timeout unless timeout.nil?
943
+ req.params = query_params
944
+ Utils.configure_request_security(req, security)
945
+ http_headers&.each do |key, value|
946
+ req.headers[key.to_s] = value
947
+ end
948
+
949
+ @sdk_configuration.hooks.before_request(
950
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
951
+ hook_ctx: hook_ctx
952
+ ),
953
+ request: req
954
+ )
955
+ end
956
+
957
+ rescue StandardError => e
958
+ error = e
959
+ ensure
960
+ if http_response.nil? || Utils.error_status?(http_response.status)
961
+ http_response = @sdk_configuration.hooks.after_error(
962
+ error: error,
963
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
964
+ hook_ctx: hook_ctx
965
+ ),
966
+ response: http_response
967
+ )
968
+ else
969
+ http_response = @sdk_configuration.hooks.after_success(
970
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
971
+ hook_ctx: hook_ctx
972
+ ),
973
+ response: http_response
974
+ )
975
+ end
976
+
977
+ if http_response.nil?
978
+ raise error if !error.nil?
979
+ raise "no response"
980
+ end
981
+ end
982
+
983
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
984
+ if Utils.match_status_code(http_response.status, ["200"])
985
+ if Utils.match_content_type(content_type, "application/json")
986
+ http_response = @sdk_configuration.hooks.after_success(
987
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
988
+ hook_ctx: hook_ctx
989
+ ),
990
+ response: http_response
991
+ )
992
+ response_data = http_response.env.response_body
993
+ obj = Crystalline.unmarshal_json(
994
+ JSON.parse(response_data),
995
+ Models::Operations::GetAnalyticsChannelsResponseBody
996
+ )
997
+ response = Models::Operations::GetAnalyticsChannelsResponse.new(
998
+ status_code: http_response.status,
999
+ content_type: content_type,
1000
+ raw_response: http_response,
1001
+ object: T.unsafe(obj)
1002
+ )
1003
+
1004
+ return response
1005
+ else
1006
+ raise(
1007
+ ::ModerationApi::Models::Errors::APIError.new(
1008
+ status_code: http_response.status,
1009
+ body: http_response.env.response_body,
1010
+ raw_response: http_response
1011
+ ),
1012
+ "Unknown content type received"
1013
+ )
1014
+ end
1015
+ elsif Utils.match_status_code(http_response.status, ["400"])
1016
+ if Utils.match_content_type(content_type, "application/json")
1017
+ http_response = @sdk_configuration.hooks.after_success(
1018
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1019
+ hook_ctx: hook_ctx
1020
+ ),
1021
+ response: http_response
1022
+ )
1023
+ response_data = http_response.env.response_body
1024
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
1025
+ obj.raw_response = http_response
1026
+ raise obj
1027
+ else
1028
+ raise(
1029
+ ::ModerationApi::Models::Errors::APIError.new(
1030
+ status_code: http_response.status,
1031
+ body: http_response.env.response_body,
1032
+ raw_response: http_response
1033
+ ),
1034
+ "Unknown content type received"
1035
+ )
1036
+ end
1037
+ elsif Utils.match_status_code(http_response.status, ["401"])
1038
+ if Utils.match_content_type(content_type, "application/json")
1039
+ http_response = @sdk_configuration.hooks.after_success(
1040
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1041
+ hook_ctx: hook_ctx
1042
+ ),
1043
+ response: http_response
1044
+ )
1045
+ response_data = http_response.env.response_body
1046
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
1047
+ obj.raw_response = http_response
1048
+ raise obj
1049
+ else
1050
+ raise(
1051
+ ::ModerationApi::Models::Errors::APIError.new(
1052
+ status_code: http_response.status,
1053
+ body: http_response.env.response_body,
1054
+ raw_response: http_response
1055
+ ),
1056
+ "Unknown content type received"
1057
+ )
1058
+ end
1059
+ elsif Utils.match_status_code(http_response.status, ["403"])
1060
+ if Utils.match_content_type(content_type, "application/json")
1061
+ http_response = @sdk_configuration.hooks.after_success(
1062
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1063
+ hook_ctx: hook_ctx
1064
+ ),
1065
+ response: http_response
1066
+ )
1067
+ response_data = http_response.env.response_body
1068
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
1069
+ obj.raw_response = http_response
1070
+ raise obj
1071
+ else
1072
+ raise(
1073
+ ::ModerationApi::Models::Errors::APIError.new(
1074
+ status_code: http_response.status,
1075
+ body: http_response.env.response_body,
1076
+ raw_response: http_response
1077
+ ),
1078
+ "Unknown content type received"
1079
+ )
1080
+ end
1081
+ elsif Utils.match_status_code(http_response.status, ["404"])
1082
+ if Utils.match_content_type(content_type, "application/json")
1083
+ http_response = @sdk_configuration.hooks.after_success(
1084
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1085
+ hook_ctx: hook_ctx
1086
+ ),
1087
+ response: http_response
1088
+ )
1089
+ response_data = http_response.env.response_body
1090
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
1091
+ obj.raw_response = http_response
1092
+ raise obj
1093
+ else
1094
+ raise(
1095
+ ::ModerationApi::Models::Errors::APIError.new(
1096
+ status_code: http_response.status,
1097
+ body: http_response.env.response_body,
1098
+ raw_response: http_response
1099
+ ),
1100
+ "Unknown content type received"
1101
+ )
1102
+ end
1103
+ elsif Utils.match_status_code(http_response.status, ["429"])
1104
+ if Utils.match_content_type(content_type, "application/json")
1105
+ http_response = @sdk_configuration.hooks.after_success(
1106
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1107
+ hook_ctx: hook_ctx
1108
+ ),
1109
+ response: http_response
1110
+ )
1111
+ response_data = http_response.env.response_body
1112
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
1113
+ obj.raw_response = http_response
1114
+ raise obj
1115
+ else
1116
+ raise(
1117
+ ::ModerationApi::Models::Errors::APIError.new(
1118
+ status_code: http_response.status,
1119
+ body: http_response.env.response_body,
1120
+ raw_response: http_response
1121
+ ),
1122
+ "Unknown content type received"
1123
+ )
1124
+ end
1125
+ elsif Utils.match_status_code(http_response.status, ["500"])
1126
+ if Utils.match_content_type(content_type, "application/json")
1127
+ http_response = @sdk_configuration.hooks.after_success(
1128
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1129
+ hook_ctx: hook_ctx
1130
+ ),
1131
+ response: http_response
1132
+ )
1133
+ response_data = http_response.env.response_body
1134
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerError)
1135
+ obj.raw_response = http_response
1136
+ raise obj
1137
+ else
1138
+ raise(
1139
+ ::ModerationApi::Models::Errors::APIError.new(
1140
+ status_code: http_response.status,
1141
+ body: http_response.env.response_body,
1142
+ raw_response: http_response
1143
+ ),
1144
+ "Unknown content type received"
1145
+ )
1146
+ end
1147
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
1148
+ raise(
1149
+ ::ModerationApi::Models::Errors::APIError.new(
1150
+ status_code: http_response.status,
1151
+ body: http_response.env.response_body,
1152
+ raw_response: http_response
1153
+ ),
1154
+ "API error occurred"
1155
+ )
1156
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
1157
+ raise(
1158
+ ::ModerationApi::Models::Errors::APIError.new(
1159
+ status_code: http_response.status,
1160
+ body: http_response.env.response_body,
1161
+ raw_response: http_response
1162
+ ),
1163
+ "API error occurred"
1164
+ )
1165
+ else
1166
+ raise(
1167
+ ::ModerationApi::Models::Errors::APIError.new(
1168
+ status_code: http_response.status,
1169
+ body: http_response.env.response_body,
1170
+ raw_response: http_response
1171
+ ),
1172
+ "Unknown status code received"
1173
+ )
1174
+
1175
+ end
1176
+ end
1177
+
1178
+ sig {
1179
+ params(
1180
+ range: T.nilable(Models::Operations::GetAnalyticsVolumesQueryParamRange),
1181
+ channel: T.nilable(::String),
1182
+ project_id: T.nilable(::String),
1183
+ timeout_ms: T.nilable(Integer),
1184
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
1185
+ )
1186
+ .returns(Models::Operations::GetAnalyticsVolumesResponse)
1187
+ }
1188
+ def volumes(range: nil, channel: nil, project_id: nil, timeout_ms: nil, http_headers: nil)
1189
+ # volumes - Get volumes over time
1190
+ # Get requests, flags, rejections and reviews per hour (24h) or per day (7d, 30d, 90d), oldest first.
1191
+ request = Models::Operations::GetAnalyticsVolumesRequest.new(
1192
+ range: range,
1193
+ channel: channel,
1194
+ project_id: project_id
1195
+ )
1196
+ url, params = @sdk_configuration.get_server_details
1197
+ base_url = Utils.template_url(url, params)
1198
+ url = "#{base_url}/analytics/volumes"
1199
+ headers = Utils.get_headers(request)
1200
+ headers = T.cast(headers, T::Hash[String, String])
1201
+ query_params = Utils.get_query_params(Models::Operations::GetAnalyticsVolumesRequest, request, nil)
1202
+ headers["Accept"] = "application/json"
1203
+ headers["user-agent"] = @sdk_configuration.user_agent
1204
+
1205
+ security = @sdk_configuration.security_source&.call
1206
+
1207
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
1208
+ timeout ||= @sdk_configuration.timeout
1209
+
1210
+ connection = @sdk_configuration.client
1211
+
1212
+ hook_ctx = SDKHooks::HookContext.new(
1213
+ config: @sdk_configuration,
1214
+ base_url: base_url,
1215
+ oauth2_scopes: nil,
1216
+ operation_id: "getAnalyticsVolumes",
1217
+ security_source: @sdk_configuration.security_source
1218
+ )
1219
+
1220
+ error = T.let(nil, T.nilable(StandardError))
1221
+ http_response = T.let(nil, T.nilable(Faraday::Response))
1222
+
1223
+ begin
1224
+ http_response = T.must(connection).get(url) do |req|
1225
+ req.headers.merge!(headers)
1226
+ req.options.timeout = timeout unless timeout.nil?
1227
+ req.params = query_params
1228
+ Utils.configure_request_security(req, security)
1229
+ http_headers&.each do |key, value|
1230
+ req.headers[key.to_s] = value
1231
+ end
1232
+
1233
+ @sdk_configuration.hooks.before_request(
1234
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
1235
+ hook_ctx: hook_ctx
1236
+ ),
1237
+ request: req
1238
+ )
1239
+ end
1240
+
1241
+ rescue StandardError => e
1242
+ error = e
1243
+ ensure
1244
+ if http_response.nil? || Utils.error_status?(http_response.status)
1245
+ http_response = @sdk_configuration.hooks.after_error(
1246
+ error: error,
1247
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
1248
+ hook_ctx: hook_ctx
1249
+ ),
1250
+ response: http_response
1251
+ )
1252
+ else
1253
+ http_response = @sdk_configuration.hooks.after_success(
1254
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1255
+ hook_ctx: hook_ctx
1256
+ ),
1257
+ response: http_response
1258
+ )
1259
+ end
1260
+
1261
+ if http_response.nil?
1262
+ raise error if !error.nil?
1263
+ raise "no response"
1264
+ end
1265
+ end
1266
+
1267
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
1268
+ if Utils.match_status_code(http_response.status, ["200"])
1269
+ if Utils.match_content_type(content_type, "application/json")
1270
+ http_response = @sdk_configuration.hooks.after_success(
1271
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1272
+ hook_ctx: hook_ctx
1273
+ ),
1274
+ response: http_response
1275
+ )
1276
+ response_data = http_response.env.response_body
1277
+ obj = Crystalline.unmarshal_json(
1278
+ JSON.parse(response_data),
1279
+ Models::Operations::GetAnalyticsVolumesResponseBody
1280
+ )
1281
+ response = Models::Operations::GetAnalyticsVolumesResponse.new(
1282
+ status_code: http_response.status,
1283
+ content_type: content_type,
1284
+ raw_response: http_response,
1285
+ object: T.unsafe(obj)
1286
+ )
1287
+
1288
+ return response
1289
+ else
1290
+ raise(
1291
+ ::ModerationApi::Models::Errors::APIError.new(
1292
+ status_code: http_response.status,
1293
+ body: http_response.env.response_body,
1294
+ raw_response: http_response
1295
+ ),
1296
+ "Unknown content type received"
1297
+ )
1298
+ end
1299
+ elsif Utils.match_status_code(http_response.status, ["400"])
1300
+ if Utils.match_content_type(content_type, "application/json")
1301
+ http_response = @sdk_configuration.hooks.after_success(
1302
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1303
+ hook_ctx: hook_ctx
1304
+ ),
1305
+ response: http_response
1306
+ )
1307
+ response_data = http_response.env.response_body
1308
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
1309
+ obj.raw_response = http_response
1310
+ raise obj
1311
+ else
1312
+ raise(
1313
+ ::ModerationApi::Models::Errors::APIError.new(
1314
+ status_code: http_response.status,
1315
+ body: http_response.env.response_body,
1316
+ raw_response: http_response
1317
+ ),
1318
+ "Unknown content type received"
1319
+ )
1320
+ end
1321
+ elsif Utils.match_status_code(http_response.status, ["401"])
1322
+ if Utils.match_content_type(content_type, "application/json")
1323
+ http_response = @sdk_configuration.hooks.after_success(
1324
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1325
+ hook_ctx: hook_ctx
1326
+ ),
1327
+ response: http_response
1328
+ )
1329
+ response_data = http_response.env.response_body
1330
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
1331
+ obj.raw_response = http_response
1332
+ raise obj
1333
+ else
1334
+ raise(
1335
+ ::ModerationApi::Models::Errors::APIError.new(
1336
+ status_code: http_response.status,
1337
+ body: http_response.env.response_body,
1338
+ raw_response: http_response
1339
+ ),
1340
+ "Unknown content type received"
1341
+ )
1342
+ end
1343
+ elsif Utils.match_status_code(http_response.status, ["403"])
1344
+ if Utils.match_content_type(content_type, "application/json")
1345
+ http_response = @sdk_configuration.hooks.after_success(
1346
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1347
+ hook_ctx: hook_ctx
1348
+ ),
1349
+ response: http_response
1350
+ )
1351
+ response_data = http_response.env.response_body
1352
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
1353
+ obj.raw_response = http_response
1354
+ raise obj
1355
+ else
1356
+ raise(
1357
+ ::ModerationApi::Models::Errors::APIError.new(
1358
+ status_code: http_response.status,
1359
+ body: http_response.env.response_body,
1360
+ raw_response: http_response
1361
+ ),
1362
+ "Unknown content type received"
1363
+ )
1364
+ end
1365
+ elsif Utils.match_status_code(http_response.status, ["404"])
1366
+ if Utils.match_content_type(content_type, "application/json")
1367
+ http_response = @sdk_configuration.hooks.after_success(
1368
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1369
+ hook_ctx: hook_ctx
1370
+ ),
1371
+ response: http_response
1372
+ )
1373
+ response_data = http_response.env.response_body
1374
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
1375
+ obj.raw_response = http_response
1376
+ raise obj
1377
+ else
1378
+ raise(
1379
+ ::ModerationApi::Models::Errors::APIError.new(
1380
+ status_code: http_response.status,
1381
+ body: http_response.env.response_body,
1382
+ raw_response: http_response
1383
+ ),
1384
+ "Unknown content type received"
1385
+ )
1386
+ end
1387
+ elsif Utils.match_status_code(http_response.status, ["429"])
1388
+ if Utils.match_content_type(content_type, "application/json")
1389
+ http_response = @sdk_configuration.hooks.after_success(
1390
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1391
+ hook_ctx: hook_ctx
1392
+ ),
1393
+ response: http_response
1394
+ )
1395
+ response_data = http_response.env.response_body
1396
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
1397
+ obj.raw_response = http_response
1398
+ raise obj
1399
+ else
1400
+ raise(
1401
+ ::ModerationApi::Models::Errors::APIError.new(
1402
+ status_code: http_response.status,
1403
+ body: http_response.env.response_body,
1404
+ raw_response: http_response
1405
+ ),
1406
+ "Unknown content type received"
1407
+ )
1408
+ end
1409
+ elsif Utils.match_status_code(http_response.status, ["500"])
1410
+ if Utils.match_content_type(content_type, "application/json")
1411
+ http_response = @sdk_configuration.hooks.after_success(
1412
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1413
+ hook_ctx: hook_ctx
1414
+ ),
1415
+ response: http_response
1416
+ )
1417
+ response_data = http_response.env.response_body
1418
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerError)
1419
+ obj.raw_response = http_response
1420
+ raise obj
1421
+ else
1422
+ raise(
1423
+ ::ModerationApi::Models::Errors::APIError.new(
1424
+ status_code: http_response.status,
1425
+ body: http_response.env.response_body,
1426
+ raw_response: http_response
1427
+ ),
1428
+ "Unknown content type received"
1429
+ )
1430
+ end
1431
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
1432
+ raise(
1433
+ ::ModerationApi::Models::Errors::APIError.new(
1434
+ status_code: http_response.status,
1435
+ body: http_response.env.response_body,
1436
+ raw_response: http_response
1437
+ ),
1438
+ "API error occurred"
1439
+ )
1440
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
1441
+ raise(
1442
+ ::ModerationApi::Models::Errors::APIError.new(
1443
+ status_code: http_response.status,
1444
+ body: http_response.env.response_body,
1445
+ raw_response: http_response
1446
+ ),
1447
+ "API error occurred"
1448
+ )
1449
+ else
1450
+ raise(
1451
+ ::ModerationApi::Models::Errors::APIError.new(
1452
+ status_code: http_response.status,
1453
+ body: http_response.env.response_body,
1454
+ raw_response: http_response
1455
+ ),
1456
+ "Unknown status code received"
1457
+ )
1458
+
1459
+ end
1460
+ end
1461
+
1462
+ sig {
1463
+ params(
1464
+ range: T.nilable(Models::Operations::GetAnalyticsAutomationQueryParamRange),
1465
+ channel: T.nilable(::String),
1466
+ project_id: T.nilable(::String),
1467
+ timeout_ms: T.nilable(Integer),
1468
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
1469
+ )
1470
+ .returns(Models::Operations::GetAnalyticsAutomationResponse)
1471
+ }
1472
+ def automation(range: nil, channel: nil, project_id: nil, timeout_ms: nil, http_headers: nil)
1473
+ # automation - Get the automation breakdown
1474
+ # Get how flagged content was handled in a time window: settled by rules or the casebook, or sent to human review, and what the reviewers decided.
1475
+ request = Models::Operations::GetAnalyticsAutomationRequest.new(
1476
+ range: range,
1477
+ channel: channel,
1478
+ project_id: project_id
1479
+ )
1480
+ url, params = @sdk_configuration.get_server_details
1481
+ base_url = Utils.template_url(url, params)
1482
+ url = "#{base_url}/analytics/automation"
1483
+ headers = Utils.get_headers(request)
1484
+ headers = T.cast(headers, T::Hash[String, String])
1485
+ query_params = Utils.get_query_params(Models::Operations::GetAnalyticsAutomationRequest, request, nil)
1486
+ headers["Accept"] = "application/json"
1487
+ headers["user-agent"] = @sdk_configuration.user_agent
1488
+
1489
+ security = @sdk_configuration.security_source&.call
1490
+
1491
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
1492
+ timeout ||= @sdk_configuration.timeout
1493
+
1494
+ connection = @sdk_configuration.client
1495
+
1496
+ hook_ctx = SDKHooks::HookContext.new(
1497
+ config: @sdk_configuration,
1498
+ base_url: base_url,
1499
+ oauth2_scopes: nil,
1500
+ operation_id: "getAnalyticsAutomation",
1501
+ security_source: @sdk_configuration.security_source
1502
+ )
1503
+
1504
+ error = T.let(nil, T.nilable(StandardError))
1505
+ http_response = T.let(nil, T.nilable(Faraday::Response))
1506
+
1507
+ begin
1508
+ http_response = T.must(connection).get(url) do |req|
1509
+ req.headers.merge!(headers)
1510
+ req.options.timeout = timeout unless timeout.nil?
1511
+ req.params = query_params
1512
+ Utils.configure_request_security(req, security)
1513
+ http_headers&.each do |key, value|
1514
+ req.headers[key.to_s] = value
1515
+ end
1516
+
1517
+ @sdk_configuration.hooks.before_request(
1518
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
1519
+ hook_ctx: hook_ctx
1520
+ ),
1521
+ request: req
1522
+ )
1523
+ end
1524
+
1525
+ rescue StandardError => e
1526
+ error = e
1527
+ ensure
1528
+ if http_response.nil? || Utils.error_status?(http_response.status)
1529
+ http_response = @sdk_configuration.hooks.after_error(
1530
+ error: error,
1531
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
1532
+ hook_ctx: hook_ctx
1533
+ ),
1534
+ response: http_response
1535
+ )
1536
+ else
1537
+ http_response = @sdk_configuration.hooks.after_success(
1538
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1539
+ hook_ctx: hook_ctx
1540
+ ),
1541
+ response: http_response
1542
+ )
1543
+ end
1544
+
1545
+ if http_response.nil?
1546
+ raise error if !error.nil?
1547
+ raise "no response"
1548
+ end
1549
+ end
1550
+
1551
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
1552
+ if Utils.match_status_code(http_response.status, ["200"])
1553
+ if Utils.match_content_type(content_type, "application/json")
1554
+ http_response = @sdk_configuration.hooks.after_success(
1555
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1556
+ hook_ctx: hook_ctx
1557
+ ),
1558
+ response: http_response
1559
+ )
1560
+ response_data = http_response.env.response_body
1561
+ obj = Crystalline.unmarshal_json(
1562
+ JSON.parse(response_data),
1563
+ Models::Operations::GetAnalyticsAutomationResponseBody
1564
+ )
1565
+ response = Models::Operations::GetAnalyticsAutomationResponse.new(
1566
+ status_code: http_response.status,
1567
+ content_type: content_type,
1568
+ raw_response: http_response,
1569
+ object: T.unsafe(obj)
1570
+ )
1571
+
1572
+ return response
1573
+ else
1574
+ raise(
1575
+ ::ModerationApi::Models::Errors::APIError.new(
1576
+ status_code: http_response.status,
1577
+ body: http_response.env.response_body,
1578
+ raw_response: http_response
1579
+ ),
1580
+ "Unknown content type received"
1581
+ )
1582
+ end
1583
+ elsif Utils.match_status_code(http_response.status, ["400"])
1584
+ if Utils.match_content_type(content_type, "application/json")
1585
+ http_response = @sdk_configuration.hooks.after_success(
1586
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1587
+ hook_ctx: hook_ctx
1588
+ ),
1589
+ response: http_response
1590
+ )
1591
+ response_data = http_response.env.response_body
1592
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::BadRequestError)
1593
+ obj.raw_response = http_response
1594
+ raise obj
1595
+ else
1596
+ raise(
1597
+ ::ModerationApi::Models::Errors::APIError.new(
1598
+ status_code: http_response.status,
1599
+ body: http_response.env.response_body,
1600
+ raw_response: http_response
1601
+ ),
1602
+ "Unknown content type received"
1603
+ )
1604
+ end
1605
+ elsif Utils.match_status_code(http_response.status, ["401"])
1606
+ if Utils.match_content_type(content_type, "application/json")
1607
+ http_response = @sdk_configuration.hooks.after_success(
1608
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1609
+ hook_ctx: hook_ctx
1610
+ ),
1611
+ response: http_response
1612
+ )
1613
+ response_data = http_response.env.response_body
1614
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::AuthenticationError)
1615
+ obj.raw_response = http_response
1616
+ raise obj
1617
+ else
1618
+ raise(
1619
+ ::ModerationApi::Models::Errors::APIError.new(
1620
+ status_code: http_response.status,
1621
+ body: http_response.env.response_body,
1622
+ raw_response: http_response
1623
+ ),
1624
+ "Unknown content type received"
1625
+ )
1626
+ end
1627
+ elsif Utils.match_status_code(http_response.status, ["403"])
1628
+ if Utils.match_content_type(content_type, "application/json")
1629
+ http_response = @sdk_configuration.hooks.after_success(
1630
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1631
+ hook_ctx: hook_ctx
1632
+ ),
1633
+ response: http_response
1634
+ )
1635
+ response_data = http_response.env.response_body
1636
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::PermissionDeniedError)
1637
+ obj.raw_response = http_response
1638
+ raise obj
1639
+ else
1640
+ raise(
1641
+ ::ModerationApi::Models::Errors::APIError.new(
1642
+ status_code: http_response.status,
1643
+ body: http_response.env.response_body,
1644
+ raw_response: http_response
1645
+ ),
1646
+ "Unknown content type received"
1647
+ )
1648
+ end
1649
+ elsif Utils.match_status_code(http_response.status, ["404"])
1650
+ if Utils.match_content_type(content_type, "application/json")
1651
+ http_response = @sdk_configuration.hooks.after_success(
1652
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1653
+ hook_ctx: hook_ctx
1654
+ ),
1655
+ response: http_response
1656
+ )
1657
+ response_data = http_response.env.response_body
1658
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::NotFoundError)
1659
+ obj.raw_response = http_response
1660
+ raise obj
1661
+ else
1662
+ raise(
1663
+ ::ModerationApi::Models::Errors::APIError.new(
1664
+ status_code: http_response.status,
1665
+ body: http_response.env.response_body,
1666
+ raw_response: http_response
1667
+ ),
1668
+ "Unknown content type received"
1669
+ )
1670
+ end
1671
+ elsif Utils.match_status_code(http_response.status, ["429"])
1672
+ if Utils.match_content_type(content_type, "application/json")
1673
+ http_response = @sdk_configuration.hooks.after_success(
1674
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1675
+ hook_ctx: hook_ctx
1676
+ ),
1677
+ response: http_response
1678
+ )
1679
+ response_data = http_response.env.response_body
1680
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::RateLimitError)
1681
+ obj.raw_response = http_response
1682
+ raise obj
1683
+ else
1684
+ raise(
1685
+ ::ModerationApi::Models::Errors::APIError.new(
1686
+ status_code: http_response.status,
1687
+ body: http_response.env.response_body,
1688
+ raw_response: http_response
1689
+ ),
1690
+ "Unknown content type received"
1691
+ )
1692
+ end
1693
+ elsif Utils.match_status_code(http_response.status, ["500"])
1694
+ if Utils.match_content_type(content_type, "application/json")
1695
+ http_response = @sdk_configuration.hooks.after_success(
1696
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1697
+ hook_ctx: hook_ctx
1698
+ ),
1699
+ response: http_response
1700
+ )
1701
+ response_data = http_response.env.response_body
1702
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::InternalServerError)
1703
+ obj.raw_response = http_response
1704
+ raise obj
1705
+ else
1706
+ raise(
1707
+ ::ModerationApi::Models::Errors::APIError.new(
1708
+ status_code: http_response.status,
1709
+ body: http_response.env.response_body,
1710
+ raw_response: http_response
1711
+ ),
1712
+ "Unknown content type received"
1713
+ )
1714
+ end
1715
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
1716
+ raise(
1717
+ ::ModerationApi::Models::Errors::APIError.new(
1718
+ status_code: http_response.status,
1719
+ body: http_response.env.response_body,
1720
+ raw_response: http_response
1721
+ ),
1722
+ "API error occurred"
1723
+ )
1724
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
1725
+ raise(
1726
+ ::ModerationApi::Models::Errors::APIError.new(
1727
+ status_code: http_response.status,
1728
+ body: http_response.env.response_body,
1729
+ raw_response: http_response
1730
+ ),
1731
+ "API error occurred"
1732
+ )
1733
+ else
1734
+ raise(
1735
+ ::ModerationApi::Models::Errors::APIError.new(
1736
+ status_code: http_response.status,
1737
+ body: http_response.env.response_body,
1738
+ raw_response: http_response
1739
+ ),
1740
+ "Unknown status code received"
1741
+ )
1742
+
1743
+ end
1744
+ end
1745
+ end
1746
+ end