x-twitter-scraper 0.4.3 → 0.4.4

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 (522) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/LICENSE +201 -0
  4. data/README.md +10 -12
  5. data/lib/x_twitter_scraper/client.rb +30 -26
  6. data/lib/x_twitter_scraper/internal/transport/base_client.rb +5 -0
  7. data/lib/x_twitter_scraper/internal/type/base_model.rb +4 -3
  8. data/lib/x_twitter_scraper/internal/util.rb +3 -1
  9. data/lib/x_twitter_scraper/models/account_retrieve_response.rb +138 -23
  10. data/lib/x_twitter_scraper/models/content_disclosure.rb +66 -0
  11. data/lib/x_twitter_scraper/models/credit_redirect_topup_checkout_params.rb +22 -0
  12. data/lib/x_twitter_scraper/models/credit_retrieve_balance_response.rb +37 -10
  13. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_params.rb +22 -0
  14. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_response.rb +45 -0
  15. data/lib/x_twitter_scraper/models/credit_topup_balance_params.rb +13 -5
  16. data/lib/x_twitter_scraper/models/credit_topup_balance_response.rb +18 -5
  17. data/lib/x_twitter_scraper/models/draft_list_params.rb +8 -2
  18. data/lib/x_twitter_scraper/models/draw_detail.rb +15 -1
  19. data/lib/x_twitter_scraper/models/draw_export_params.rb +3 -3
  20. data/lib/x_twitter_scraper/models/draw_list_item.rb +8 -1
  21. data/lib/x_twitter_scraper/models/draw_list_params.rb +13 -7
  22. data/lib/x_twitter_scraper/models/draw_run_response.rb +13 -2
  23. data/lib/x_twitter_scraper/models/embedded_tweet.rb +202 -0
  24. data/lib/x_twitter_scraper/models/error.rb +203 -34
  25. data/lib/x_twitter_scraper/models/event.rb +48 -6
  26. data/lib/x_twitter_scraper/models/event_detail.rb +46 -7
  27. data/lib/x_twitter_scraper/models/event_list_params.rb +13 -7
  28. data/lib/x_twitter_scraper/models/event_type.rb +17 -2
  29. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +308 -7
  30. data/lib/x_twitter_scraper/models/extraction_estimate_cost_response.rb +38 -14
  31. data/lib/x_twitter_scraper/models/extraction_export_results_params.rb +3 -3
  32. data/lib/x_twitter_scraper/models/extraction_job.rb +3 -0
  33. data/lib/x_twitter_scraper/models/extraction_list_params.rb +16 -7
  34. data/lib/x_twitter_scraper/models/extraction_retrieve_params.rb +5 -5
  35. data/lib/x_twitter_scraper/models/extraction_retrieve_response.rb +2 -2
  36. data/lib/x_twitter_scraper/models/extraction_run_params.rb +304 -7
  37. data/lib/x_twitter_scraper/models/extraction_run_response.rb +3 -0
  38. data/lib/x_twitter_scraper/models/guest_wallet_amount.rb +25 -0
  39. data/lib/x_twitter_scraper/models/guest_wallet_create_params.rb +36 -0
  40. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +161 -0
  41. data/lib/x_twitter_scraper/models/{integration_list_params.rb → guest_wallet_retrieve_status_params.rb} +2 -2
  42. data/lib/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rb +196 -0
  43. data/lib/x_twitter_scraper/models/guest_wallet_topup_params.rb +36 -0
  44. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +172 -0
  45. data/lib/x_twitter_scraper/models/monitor.rb +9 -1
  46. data/lib/x_twitter_scraper/models/monitor_create_response.rb +16 -1
  47. data/lib/x_twitter_scraper/models/monitors/keyword_create_params.rb +34 -0
  48. data/lib/x_twitter_scraper/models/monitors/keyword_create_response.rb +59 -0
  49. data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_params.rb +22 -0
  50. data/lib/x_twitter_scraper/models/monitors/keyword_deactivate_response.rb +18 -0
  51. data/lib/x_twitter_scraper/models/monitors/keyword_list_params.rb +16 -0
  52. data/lib/x_twitter_scraper/models/monitors/keyword_list_response.rb +76 -0
  53. data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_params.rb +22 -0
  54. data/lib/x_twitter_scraper/models/monitors/keyword_retrieve_response.rb +59 -0
  55. data/lib/x_twitter_scraper/models/monitors/keyword_update_params.rb +40 -0
  56. data/lib/x_twitter_scraper/models/monitors/keyword_update_response.rb +59 -0
  57. data/lib/x_twitter_scraper/models/paginated_tweets.rb +8 -4
  58. data/lib/x_twitter_scraper/models/paginated_users.rb +8 -4
  59. data/lib/x_twitter_scraper/models/radar_item.rb +99 -6
  60. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rb +39 -14
  61. data/lib/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rb +14 -5
  62. data/lib/x_twitter_scraper/models/search_tweet.rb +236 -0
  63. data/lib/x_twitter_scraper/models/subscribe_create_params.rb +21 -1
  64. data/lib/x_twitter_scraper/models/subscribe_create_response.rb +10 -10
  65. data/lib/x_twitter_scraper/models/trend_list_params.rb +7 -4
  66. data/lib/x_twitter_scraper/models/tweet_media.rb +77 -0
  67. data/lib/x_twitter_scraper/models/user_profile.rb +258 -0
  68. data/lib/x_twitter_scraper/models/webhook.rb +46 -1
  69. data/lib/x_twitter_scraper/models/webhook_create_response.rb +2 -1
  70. data/lib/x_twitter_scraper/models/{api_key_revoke_params.rb → webhook_resume_params.rb} +2 -2
  71. data/lib/x_twitter_scraper/models/webhook_resume_response.rb +31 -0
  72. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rb +31 -0
  73. data/lib/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rb +66 -0
  74. data/lib/x_twitter_scraper/models/x/account_create_params.rb +1 -9
  75. data/lib/x_twitter_scraper/models/x/account_create_response.rb +30 -1
  76. data/lib/x_twitter_scraper/models/x/account_reauth_params.rb +9 -1
  77. data/lib/x_twitter_scraper/models/x/account_reauth_response.rb +36 -1
  78. data/lib/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rb +6 -2
  79. data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +20 -0
  80. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +20 -0
  81. data/lib/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rb +17 -1
  82. data/lib/x_twitter_scraper/models/x/communities/tweet_list_params.rb +43 -9
  83. data/lib/x_twitter_scraper/models/x/community_retrieve_info_response.rb +69 -1
  84. data/lib/x_twitter_scraper/models/x/community_retrieve_members_params.rb +14 -1
  85. data/lib/x_twitter_scraper/models/x/community_retrieve_search_params.rb +38 -4
  86. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_params.rb +13 -1
  87. data/lib/x_twitter_scraper/models/x/dm_retrieve_history_response.rb +26 -9
  88. data/lib/x_twitter_scraper/models/x/dm_send_params.rb +3 -9
  89. data/lib/x_twitter_scraper/models/x/follower_check_params.rb +4 -4
  90. data/lib/x_twitter_scraper/models/x/list_retrieve_followers_params.rb +15 -1
  91. data/lib/x_twitter_scraper/models/x/list_retrieve_members_params.rb +9 -1
  92. data/lib/x_twitter_scraper/models/x/list_retrieve_tweets_params.rb +16 -1
  93. data/lib/x_twitter_scraper/models/x/media_download_params.rb +19 -3
  94. data/lib/x_twitter_scraper/models/x/media_upload_params.rb +8 -15
  95. data/lib/x_twitter_scraper/models/x/media_upload_response.rb +10 -1
  96. data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +8 -8
  97. data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +8 -8
  98. data/lib/x_twitter_scraper/models/x/tweet_author.rb +4 -21
  99. data/lib/x_twitter_scraper/models/x/tweet_create_params.rb +18 -11
  100. data/lib/x_twitter_scraper/models/x/tweet_create_response.rb +28 -1
  101. data/lib/x_twitter_scraper/models/x/tweet_detail.rb +109 -43
  102. data/lib/x_twitter_scraper/models/x/tweet_get_favoriters_params.rb +15 -1
  103. data/lib/x_twitter_scraper/models/x/tweet_get_quotes_params.rb +268 -1
  104. data/lib/x_twitter_scraper/models/x/tweet_get_replies_params.rb +268 -1
  105. data/lib/x_twitter_scraper/models/x/tweet_get_retweeters_params.rb +15 -1
  106. data/lib/x_twitter_scraper/models/x/tweet_get_thread_params.rb +16 -1
  107. data/lib/x_twitter_scraper/models/x/tweet_retrieve_response.rb +9 -4
  108. data/lib/x_twitter_scraper/models/x/tweet_search_params.rb +314 -8
  109. data/lib/x_twitter_scraper/models/x/user_remove_follower_params.rb +31 -0
  110. data/lib/x_twitter_scraper/models/x/user_remove_follower_response.rb +18 -0
  111. data/lib/x_twitter_scraper/models/x/user_retrieve_batch_params.rb +6 -2
  112. data/lib/x_twitter_scraper/models/x/user_retrieve_batch_response.rb +83 -0
  113. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_params.rb +25 -3
  114. data/lib/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rb +16 -1
  115. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +25 -3
  116. data/lib/x_twitter_scraper/models/x/user_retrieve_likes_params.rb +268 -1
  117. data/lib/x_twitter_scraper/models/x/user_retrieve_media_params.rb +268 -1
  118. data/lib/x_twitter_scraper/models/x/user_retrieve_mentions_params.rb +268 -1
  119. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +306 -0
  120. data/lib/x_twitter_scraper/models/x/user_retrieve_tweets_params.rb +268 -1
  121. data/lib/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rb +16 -1
  122. data/lib/x_twitter_scraper/models/x/write_action_retrieve_params.rb +22 -0
  123. data/lib/x_twitter_scraper/models/x/write_action_retrieve_response.rb +173 -0
  124. data/lib/x_twitter_scraper/models/x/x_account.rb +56 -2
  125. data/lib/x_twitter_scraper/models/x/x_account_detail.rb +23 -8
  126. data/lib/x_twitter_scraper/models/x_get_article_response.rb +189 -11
  127. data/lib/x_twitter_scraper/models/x_get_home_timeline_params.rb +2 -2
  128. data/lib/x_twitter_scraper/models/x_get_notifications_params.rb +3 -3
  129. data/lib/x_twitter_scraper/models/x_get_trends_params.rb +17 -1
  130. data/lib/x_twitter_scraper/models.rb +21 -21
  131. data/lib/x_twitter_scraper/resources/account.rb +1 -3
  132. data/lib/x_twitter_scraper/resources/compose.rb +1 -1
  133. data/lib/x_twitter_scraper/resources/credits.rb +54 -4
  134. data/lib/x_twitter_scraper/resources/drafts.rb +7 -4
  135. data/lib/x_twitter_scraper/resources/draws.rb +14 -8
  136. data/lib/x_twitter_scraper/resources/events.rb +7 -5
  137. data/lib/x_twitter_scraper/resources/extractions.rb +145 -20
  138. data/lib/x_twitter_scraper/resources/guest_wallets.rb +108 -0
  139. data/lib/x_twitter_scraper/resources/monitors/keywords.rb +128 -0
  140. data/lib/x_twitter_scraper/resources/monitors.rb +13 -5
  141. data/lib/x_twitter_scraper/resources/radar.rb +8 -6
  142. data/lib/x_twitter_scraper/resources/styles.rb +1 -1
  143. data/lib/x_twitter_scraper/resources/subscribe.rb +9 -4
  144. data/lib/x_twitter_scraper/resources/support/tickets.rb +3 -3
  145. data/lib/x_twitter_scraper/resources/trends.rb +7 -4
  146. data/lib/x_twitter_scraper/resources/webhooks.rb +25 -5
  147. data/lib/x_twitter_scraper/resources/x/account_connection_challenges.rb +41 -0
  148. data/lib/x_twitter_scraper/resources/x/accounts.rb +7 -13
  149. data/lib/x_twitter_scraper/resources/x/bookmarks.rb +1 -1
  150. data/lib/x_twitter_scraper/resources/x/communities/join.rb +6 -6
  151. data/lib/x_twitter_scraper/resources/x/communities/tweets.rb +27 -10
  152. data/lib/x_twitter_scraper/resources/x/communities.rb +27 -11
  153. data/lib/x_twitter_scraper/resources/x/dm.rb +9 -6
  154. data/lib/x_twitter_scraper/resources/x/followers.rb +4 -4
  155. data/lib/x_twitter_scraper/resources/x/lists.rb +22 -9
  156. data/lib/x_twitter_scraper/resources/x/media.rb +11 -9
  157. data/lib/x_twitter_scraper/resources/x/profile.rb +6 -6
  158. data/lib/x_twitter_scraper/resources/x/tweets.rb +282 -28
  159. data/lib/x_twitter_scraper/resources/x/users.rb +485 -34
  160. data/lib/x_twitter_scraper/resources/x/write_actions.rb +37 -0
  161. data/lib/x_twitter_scraper/resources/x.rb +33 -13
  162. data/lib/x_twitter_scraper/version.rb +1 -1
  163. data/lib/x_twitter_scraper.rb +41 -27
  164. data/rbi/x_twitter_scraper/client.rbi +14 -22
  165. data/rbi/x_twitter_scraper/models/account_retrieve_response.rbi +181 -23
  166. data/rbi/x_twitter_scraper/models/content_disclosure.rbi +149 -0
  167. data/rbi/x_twitter_scraper/models/{integration_retrieve_params.rbi → credit_redirect_topup_checkout_params.rbi} +14 -6
  168. data/rbi/x_twitter_scraper/models/credit_retrieve_balance_response.rbi +35 -9
  169. data/rbi/x_twitter_scraper/models/{integration_list_deliveries_params.rbi → credit_retrieve_topup_status_params.rbi} +8 -17
  170. data/rbi/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbi +107 -0
  171. data/rbi/x_twitter_scraper/models/credit_topup_balance_params.rbi +20 -6
  172. data/rbi/x_twitter_scraper/models/credit_topup_balance_response.rbi +19 -5
  173. data/rbi/x_twitter_scraper/models/draft_list_params.rbi +8 -2
  174. data/rbi/x_twitter_scraper/models/draw_detail.rbi +2 -0
  175. data/rbi/x_twitter_scraper/models/draw_export_params.rbi +3 -12
  176. data/rbi/x_twitter_scraper/models/draw_list_item.rbi +2 -0
  177. data/rbi/x_twitter_scraper/models/draw_list_params.rbi +16 -10
  178. data/rbi/x_twitter_scraper/models/draw_run_response.rbi +15 -1
  179. data/rbi/x_twitter_scraper/models/embedded_tweet.rbi +255 -0
  180. data/rbi/x_twitter_scraper/models/error.rbi +865 -87
  181. data/rbi/x_twitter_scraper/models/event.rbi +63 -4
  182. data/rbi/x_twitter_scraper/models/event_detail.rbi +73 -5
  183. data/rbi/x_twitter_scraper/models/event_list_params.rbi +16 -10
  184. data/rbi/x_twitter_scraper/models/event_type.rbi +58 -4
  185. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +580 -2
  186. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_response.rbi +98 -14
  187. data/rbi/x_twitter_scraper/models/extraction_export_results_params.rbi +3 -13
  188. data/rbi/x_twitter_scraper/models/extraction_job.rbi +15 -0
  189. data/rbi/x_twitter_scraper/models/extraction_list_params.rbi +31 -10
  190. data/rbi/x_twitter_scraper/models/extraction_retrieve_params.rbi +8 -8
  191. data/rbi/x_twitter_scraper/models/extraction_retrieve_response.rbi +2 -2
  192. data/rbi/x_twitter_scraper/models/extraction_run_params.rbi +546 -2
  193. data/rbi/x_twitter_scraper/models/extraction_run_response.rbi +15 -0
  194. data/rbi/x_twitter_scraper/models/guest_wallet_amount.rbi +39 -0
  195. data/rbi/x_twitter_scraper/models/guest_wallet_create_params.rbi +58 -0
  196. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +243 -0
  197. data/rbi/x_twitter_scraper/models/{integration_list_params.rbi → guest_wallet_retrieve_status_params.rbi} +2 -2
  198. data/rbi/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbi +402 -0
  199. data/rbi/x_twitter_scraper/models/guest_wallet_topup_params.rbi +58 -0
  200. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +293 -0
  201. data/rbi/x_twitter_scraper/models/monitor.rbi +8 -0
  202. data/rbi/x_twitter_scraper/models/monitor_create_response.rbi +14 -0
  203. data/rbi/x_twitter_scraper/models/monitors/keyword_create_params.rbi +56 -0
  204. data/rbi/x_twitter_scraper/models/monitors/keyword_create_response.rbi +75 -0
  205. data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbi +40 -0
  206. data/rbi/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbi +28 -0
  207. data/rbi/x_twitter_scraper/models/monitors/keyword_list_params.rbi +34 -0
  208. data/rbi/x_twitter_scraper/models/monitors/keyword_list_response.rbi +123 -0
  209. data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbi +40 -0
  210. data/rbi/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbi +75 -0
  211. data/rbi/x_twitter_scraper/models/monitors/keyword_update_params.rbi +72 -0
  212. data/rbi/x_twitter_scraper/models/monitors/keyword_update_response.rbi +75 -0
  213. data/rbi/x_twitter_scraper/models/paginated_tweets.rbi +8 -4
  214. data/rbi/x_twitter_scraper/models/paginated_users.rbi +8 -4
  215. data/rbi/x_twitter_scraper/models/radar_item.rbi +131 -6
  216. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbi +109 -20
  217. data/rbi/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbi +22 -5
  218. data/rbi/x_twitter_scraper/models/search_tweet.rbi +316 -0
  219. data/rbi/x_twitter_scraper/models/subscribe_create_params.rbi +62 -2
  220. data/rbi/x_twitter_scraper/models/subscribe_create_response.rbi +10 -23
  221. data/rbi/x_twitter_scraper/models/trend_list_params.rbi +4 -4
  222. data/rbi/x_twitter_scraper/models/tweet_media.rbi +130 -0
  223. data/rbi/x_twitter_scraper/models/user_profile.rbi +346 -0
  224. data/rbi/x_twitter_scraper/models/webhook.rbi +57 -0
  225. data/rbi/x_twitter_scraper/models/webhook_create_response.rbi +2 -0
  226. data/rbi/x_twitter_scraper/models/{api_key_revoke_params.rbi → webhook_resume_params.rbi} +2 -2
  227. data/rbi/x_twitter_scraper/models/webhook_resume_response.rbi +55 -0
  228. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbi +54 -0
  229. data/rbi/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbi +131 -0
  230. data/rbi/x_twitter_scraper/models/x/account_create_params.rbi +0 -11
  231. data/rbi/x_twitter_scraper/models/x/account_create_response.rbi +79 -1
  232. data/rbi/x_twitter_scraper/models/x/account_reauth_params.rbi +11 -0
  233. data/rbi/x_twitter_scraper/models/x/account_reauth_response.rbi +96 -5
  234. data/rbi/x_twitter_scraper/models/x/bookmark_retrieve_folders_response.rbi +9 -1
  235. data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +30 -0
  236. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +30 -0
  237. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbi +19 -0
  238. data/rbi/x_twitter_scraper/models/x/communities/tweet_list_params.rbi +85 -10
  239. data/rbi/x_twitter_scraper/models/x/community_retrieve_info_response.rbi +115 -0
  240. data/rbi/x_twitter_scraper/models/x/community_retrieve_members_params.rbi +15 -0
  241. data/rbi/x_twitter_scraper/models/x/community_retrieve_search_params.rbi +79 -4
  242. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_params.rbi +10 -0
  243. data/rbi/x_twitter_scraper/models/x/dm_retrieve_history_response.rbi +20 -13
  244. data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +2 -9
  245. data/rbi/x_twitter_scraper/models/x/follower_check_params.rbi +4 -4
  246. data/rbi/x_twitter_scraper/models/x/list_retrieve_followers_params.rbi +17 -0
  247. data/rbi/x_twitter_scraper/models/x/list_retrieve_members_params.rbi +11 -0
  248. data/rbi/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbi +19 -0
  249. data/rbi/x_twitter_scraper/models/x/media_download_params.rbi +24 -2
  250. data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +9 -18
  251. data/rbi/x_twitter_scraper/models/x/media_upload_response.rbi +20 -5
  252. data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +9 -9
  253. data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +9 -9
  254. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +8 -39
  255. data/rbi/x_twitter_scraper/models/x/tweet_create_params.rbi +23 -12
  256. data/rbi/x_twitter_scraper/models/x/tweet_create_response.rbi +41 -5
  257. data/rbi/x_twitter_scraper/models/x/tweet_detail.rbi +156 -115
  258. data/rbi/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbi +17 -0
  259. data/rbi/x_twitter_scraper/models/x/tweet_get_quotes_params.rbi +508 -0
  260. data/rbi/x_twitter_scraper/models/x/tweet_get_replies_params.rbi +512 -0
  261. data/rbi/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbi +17 -0
  262. data/rbi/x_twitter_scraper/models/x/tweet_get_thread_params.rbi +19 -0
  263. data/rbi/x_twitter_scraper/models/x/tweet_retrieve_response.rbi +8 -4
  264. data/rbi/x_twitter_scraper/models/x/tweet_search_params.rbi +557 -7
  265. data/rbi/x_twitter_scraper/models/x/user_remove_follower_params.rbi +54 -0
  266. data/rbi/x_twitter_scraper/models/x/user_remove_follower_response.rbi +28 -0
  267. data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_params.rbi +4 -2
  268. data/rbi/x_twitter_scraper/models/x/user_retrieve_batch_response.rbi +102 -0
  269. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_params.rbi +30 -2
  270. data/rbi/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbi +17 -0
  271. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +30 -2
  272. data/rbi/x_twitter_scraper/models/x/user_retrieve_likes_params.rbi +520 -0
  273. data/rbi/x_twitter_scraper/models/x/user_retrieve_media_params.rbi +520 -0
  274. data/rbi/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbi +523 -0
  275. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +591 -0
  276. data/rbi/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbi +523 -0
  277. data/rbi/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbi +17 -0
  278. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_params.rbi +40 -0
  279. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_response.rbi +313 -0
  280. data/rbi/x_twitter_scraper/models/x/x_account.rbi +87 -4
  281. data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +58 -10
  282. data/rbi/x_twitter_scraper/models/x_get_article_response.rbi +308 -12
  283. data/rbi/x_twitter_scraper/models/x_get_home_timeline_params.rbi +2 -2
  284. data/rbi/x_twitter_scraper/models/x_get_notifications_params.rbi +3 -3
  285. data/rbi/x_twitter_scraper/models/x_get_trends_params.rbi +30 -2
  286. data/rbi/x_twitter_scraper/models.rbi +24 -22
  287. data/rbi/x_twitter_scraper/resources/account.rbi +1 -1
  288. data/rbi/x_twitter_scraper/resources/compose.rbi +1 -1
  289. data/rbi/x_twitter_scraper/resources/credits.rbi +37 -5
  290. data/rbi/x_twitter_scraper/resources/drafts.rbi +7 -4
  291. data/rbi/x_twitter_scraper/resources/draws.rbi +14 -8
  292. data/rbi/x_twitter_scraper/resources/events.rbi +8 -5
  293. data/rbi/x_twitter_scraper/resources/extractions.rbi +210 -11
  294. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +76 -0
  295. data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +95 -0
  296. data/rbi/x_twitter_scraper/resources/monitors.rbi +12 -5
  297. data/rbi/x_twitter_scraper/resources/radar.rbi +12 -8
  298. data/rbi/x_twitter_scraper/resources/styles.rbi +1 -1
  299. data/rbi/x_twitter_scraper/resources/subscribe.rbi +9 -3
  300. data/rbi/x_twitter_scraper/resources/support/tickets.rbi +3 -3
  301. data/rbi/x_twitter_scraper/resources/trends.rbi +4 -4
  302. data/rbi/x_twitter_scraper/resources/webhooks.rbi +19 -5
  303. data/rbi/x_twitter_scraper/resources/x/account_connection_challenges.rbi +36 -0
  304. data/rbi/x_twitter_scraper/resources/x/accounts.rbi +6 -6
  305. data/rbi/x_twitter_scraper/resources/x/bookmarks.rbi +1 -1
  306. data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +8 -4
  307. data/rbi/x_twitter_scraper/resources/x/communities/tweets.rbi +25 -7
  308. data/rbi/x_twitter_scraper/resources/x/communities.rbi +23 -7
  309. data/rbi/x_twitter_scraper/resources/x/dm.rbi +5 -2
  310. data/rbi/x_twitter_scraper/resources/x/followers.rbi +4 -4
  311. data/rbi/x_twitter_scraper/resources/x/lists.rbi +20 -4
  312. data/rbi/x_twitter_scraper/resources/x/media.rbi +13 -9
  313. data/rbi/x_twitter_scraper/resources/x/profile.rbi +8 -8
  314. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +309 -16
  315. data/rbi/x_twitter_scraper/resources/x/users.rbi +520 -18
  316. data/rbi/x_twitter_scraper/resources/x/write_actions.rbi +31 -0
  317. data/rbi/x_twitter_scraper/resources/x.rbi +30 -12
  318. data/sig/x_twitter_scraper/client.rbs +2 -6
  319. data/sig/x_twitter_scraper/models/account_retrieve_response.rbs +106 -19
  320. data/sig/x_twitter_scraper/models/content_disclosure.rbs +78 -0
  321. data/sig/x_twitter_scraper/models/{api_key_create_params.rbs → credit_redirect_topup_checkout_params.rbs} +7 -8
  322. data/sig/x_twitter_scraper/models/credit_retrieve_balance_response.rbs +22 -12
  323. data/sig/x_twitter_scraper/models/{integration_list_deliveries_params.rbs → credit_retrieve_topup_status_params.rbs} +6 -12
  324. data/sig/x_twitter_scraper/models/credit_retrieve_topup_status_response.rbs +45 -0
  325. data/sig/x_twitter_scraper/models/credit_topup_balance_params.rbs +11 -4
  326. data/sig/x_twitter_scraper/models/credit_topup_balance_response.rbs +6 -4
  327. data/sig/x_twitter_scraper/models/draw_export_params.rbs +2 -6
  328. data/sig/x_twitter_scraper/models/draw_list_params.rbs +5 -5
  329. data/sig/x_twitter_scraper/models/embedded_tweet.rbs +187 -0
  330. data/sig/x_twitter_scraper/models/error.rbs +341 -54
  331. data/sig/x_twitter_scraper/models/event.rbs +34 -2
  332. data/sig/x_twitter_scraper/models/event_detail.rbs +34 -2
  333. data/sig/x_twitter_scraper/models/event_list_params.rbs +5 -5
  334. data/sig/x_twitter_scraper/models/event_type.rbs +34 -4
  335. data/sig/x_twitter_scraper/models/extraction_estimate_cost_params.rbs +269 -1
  336. data/sig/x_twitter_scraper/models/extraction_estimate_cost_response.rbs +46 -12
  337. data/sig/x_twitter_scraper/models/extraction_export_results_params.rbs +2 -6
  338. data/sig/x_twitter_scraper/models/extraction_job.rbs +6 -0
  339. data/sig/x_twitter_scraper/models/extraction_list_params.rbs +11 -5
  340. data/sig/x_twitter_scraper/models/extraction_retrieve_params.rbs +5 -5
  341. data/sig/x_twitter_scraper/models/extraction_run_params.rbs +269 -1
  342. data/sig/x_twitter_scraper/models/extraction_run_response.rbs +6 -0
  343. data/sig/x_twitter_scraper/models/guest_wallet_amount.rbs +15 -0
  344. data/sig/x_twitter_scraper/models/guest_wallet_create_params.rbs +32 -0
  345. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +125 -0
  346. data/sig/x_twitter_scraper/models/{api_key_list_params.rbs → guest_wallet_retrieve_status_params.rbs} +2 -2
  347. data/sig/x_twitter_scraper/models/guest_wallet_retrieve_status_response.rbs +163 -0
  348. data/sig/x_twitter_scraper/models/guest_wallet_topup_params.rbs +32 -0
  349. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +146 -0
  350. data/sig/x_twitter_scraper/models/monitor.rbs +5 -0
  351. data/sig/x_twitter_scraper/models/monitor_create_response.rbs +10 -0
  352. data/sig/x_twitter_scraper/models/monitors/keyword_create_params.rbs +33 -0
  353. data/sig/x_twitter_scraper/models/monitors/keyword_create_response.rbs +47 -0
  354. data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_params.rbs +25 -0
  355. data/sig/x_twitter_scraper/models/monitors/keyword_deactivate_response.rbs +15 -0
  356. data/sig/x_twitter_scraper/models/monitors/keyword_list_params.rbs +19 -0
  357. data/sig/x_twitter_scraper/models/monitors/keyword_list_response.rbs +69 -0
  358. data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_params.rbs +25 -0
  359. data/sig/x_twitter_scraper/models/monitors/keyword_retrieve_response.rbs +47 -0
  360. data/sig/x_twitter_scraper/models/monitors/keyword_update_params.rbs +44 -0
  361. data/sig/x_twitter_scraper/models/monitors/keyword_update_response.rbs +47 -0
  362. data/sig/x_twitter_scraper/models/paginated_tweets.rbs +4 -4
  363. data/sig/x_twitter_scraper/models/paginated_users.rbs +4 -4
  364. data/sig/x_twitter_scraper/models/radar_item.rbs +81 -8
  365. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_params.rbs +44 -10
  366. data/sig/x_twitter_scraper/models/radar_retrieve_trending_topics_response.rbs +14 -4
  367. data/sig/x_twitter_scraper/models/search_tweet.rbs +205 -0
  368. data/sig/x_twitter_scraper/models/subscribe_create_params.rbs +28 -3
  369. data/sig/x_twitter_scraper/models/subscribe_create_response.rbs +10 -16
  370. data/sig/x_twitter_scraper/models/tweet_media.rbs +72 -0
  371. data/sig/x_twitter_scraper/models/user_profile.rbs +247 -0
  372. data/sig/x_twitter_scraper/models/webhook.rbs +27 -0
  373. data/sig/x_twitter_scraper/models/{api_key_revoke_params.rbs → webhook_resume_params.rbs} +2 -2
  374. data/sig/x_twitter_scraper/models/webhook_resume_response.rbs +26 -0
  375. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_params.rbs +30 -0
  376. data/sig/x_twitter_scraper/models/x/account_connection_challenge_submit_response.rbs +68 -0
  377. data/sig/x_twitter_scraper/models/x/account_create_params.rbs +0 -7
  378. data/sig/x_twitter_scraper/models/x/account_create_response.rbs +37 -1
  379. data/sig/x_twitter_scraper/models/x/account_reauth_params.rbs +7 -1
  380. data/sig/x_twitter_scraper/models/x/account_reauth_response.rbs +51 -3
  381. data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +17 -0
  382. data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +17 -0
  383. data/sig/x_twitter_scraper/models/x/communities/tweet_list_by_community_params.rbs +7 -1
  384. data/sig/x_twitter_scraper/models/x/communities/tweet_list_params.rbs +34 -5
  385. data/sig/x_twitter_scraper/models/x/community_retrieve_info_response.rbs +66 -0
  386. data/sig/x_twitter_scraper/models/x/community_retrieve_members_params.rbs +7 -1
  387. data/sig/x_twitter_scraper/models/x/community_retrieve_search_params.rbs +34 -5
  388. data/sig/x_twitter_scraper/models/x/dm_retrieve_history_params.rbs +5 -1
  389. data/sig/x_twitter_scraper/models/x/dm_retrieve_history_response.rbs +13 -10
  390. data/sig/x_twitter_scraper/models/x/dm_send_params.rbs +1 -8
  391. data/sig/x_twitter_scraper/models/x/list_retrieve_followers_params.rbs +7 -1
  392. data/sig/x_twitter_scraper/models/x/list_retrieve_members_params.rbs +7 -1
  393. data/sig/x_twitter_scraper/models/x/list_retrieve_tweets_params.rbs +7 -0
  394. data/sig/x_twitter_scraper/models/x/media_download_params.rbs +18 -1
  395. data/sig/x_twitter_scraper/models/x/media_upload_params.rbs +4 -14
  396. data/sig/x_twitter_scraper/models/x/media_upload_response.rbs +10 -3
  397. data/sig/x_twitter_scraper/models/x/profile_update_avatar_params.rbs +4 -4
  398. data/sig/x_twitter_scraper/models/x/profile_update_banner_params.rbs +4 -4
  399. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +8 -31
  400. data/sig/x_twitter_scraper/models/x/tweet_create_params.rbs +13 -11
  401. data/sig/x_twitter_scraper/models/x/tweet_create_response.rbs +30 -3
  402. data/sig/x_twitter_scraper/models/x/tweet_detail.rbs +99 -61
  403. data/sig/x_twitter_scraper/models/x/tweet_get_favoriters_params.rbs +7 -1
  404. data/sig/x_twitter_scraper/models/x/tweet_get_quotes_params.rbs +242 -1
  405. data/sig/x_twitter_scraper/models/x/tweet_get_replies_params.rbs +247 -1
  406. data/sig/x_twitter_scraper/models/x/tweet_get_retweeters_params.rbs +7 -1
  407. data/sig/x_twitter_scraper/models/x/tweet_get_thread_params.rbs +7 -1
  408. data/sig/x_twitter_scraper/models/x/tweet_search_params.rbs +277 -1
  409. data/sig/x_twitter_scraper/models/x/user_remove_follower_params.rbs +30 -0
  410. data/sig/x_twitter_scraper/models/x/user_remove_follower_response.rbs +15 -0
  411. data/sig/x_twitter_scraper/models/x/user_retrieve_batch_response.rbs +57 -0
  412. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_params.rbs +19 -1
  413. data/sig/x_twitter_scraper/models/x/user_retrieve_followers_you_know_params.rbs +7 -1
  414. data/sig/x_twitter_scraper/models/x/user_retrieve_following_params.rbs +19 -1
  415. data/sig/x_twitter_scraper/models/x/user_retrieve_likes_params.rbs +245 -1
  416. data/sig/x_twitter_scraper/models/x/user_retrieve_media_params.rbs +245 -1
  417. data/sig/x_twitter_scraper/models/x/user_retrieve_mentions_params.rbs +247 -1
  418. data/sig/x_twitter_scraper/models/x/user_retrieve_replies_params.rbs +283 -0
  419. data/sig/x_twitter_scraper/models/x/user_retrieve_tweets_params.rbs +242 -1
  420. data/sig/x_twitter_scraper/models/x/user_retrieve_verified_followers_params.rbs +7 -1
  421. data/sig/x_twitter_scraper/models/x/write_action_retrieve_params.rbs +25 -0
  422. data/sig/x_twitter_scraper/models/x/write_action_retrieve_response.rbs +177 -0
  423. data/sig/x_twitter_scraper/models/x/x_account.rbs +41 -3
  424. data/sig/x_twitter_scraper/models/x/x_account_detail.rbs +26 -7
  425. data/sig/x_twitter_scraper/models/x_get_article_response.rbs +193 -6
  426. data/sig/x_twitter_scraper/models/x_get_trends_params.rbs +20 -3
  427. data/sig/x_twitter_scraper/models.rbs +21 -21
  428. data/sig/x_twitter_scraper/resources/credits.rbs +12 -1
  429. data/sig/x_twitter_scraper/resources/draws.rbs +2 -2
  430. data/sig/x_twitter_scraper/resources/events.rbs +1 -1
  431. data/sig/x_twitter_scraper/resources/extractions.rbs +61 -3
  432. data/sig/x_twitter_scraper/resources/guest_wallets.rbs +25 -0
  433. data/sig/x_twitter_scraper/resources/monitors/keywords.rbs +36 -0
  434. data/sig/x_twitter_scraper/resources/monitors.rbs +2 -0
  435. data/sig/x_twitter_scraper/resources/radar.rbs +3 -2
  436. data/sig/x_twitter_scraper/resources/subscribe.rbs +1 -0
  437. data/sig/x_twitter_scraper/resources/webhooks.rbs +5 -0
  438. data/sig/x_twitter_scraper/resources/x/account_connection_challenges.rbs +15 -0
  439. data/sig/x_twitter_scraper/resources/x/accounts.rbs +1 -1
  440. data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -2
  441. data/sig/x_twitter_scraper/resources/x/communities/tweets.rbs +4 -1
  442. data/sig/x_twitter_scraper/resources/x/communities.rbs +4 -1
  443. data/sig/x_twitter_scraper/resources/x/dm.rbs +1 -1
  444. data/sig/x_twitter_scraper/resources/x/lists.rbs +3 -0
  445. data/sig/x_twitter_scraper/resources/x/media.rbs +3 -2
  446. data/sig/x_twitter_scraper/resources/x/profile.rbs +2 -2
  447. data/sig/x_twitter_scraper/resources/x/tweets.rbs +88 -2
  448. data/sig/x_twitter_scraper/resources/x/users.rbs +151 -2
  449. data/sig/x_twitter_scraper/resources/x/write_actions.rbs +14 -0
  450. data/sig/x_twitter_scraper/resources/x.rbs +6 -0
  451. metadata +125 -82
  452. data/lib/x_twitter_scraper/models/api_key.rb +0 -47
  453. data/lib/x_twitter_scraper/models/api_key_create_params.rb +0 -20
  454. data/lib/x_twitter_scraper/models/api_key_create_response.rb +0 -40
  455. data/lib/x_twitter_scraper/models/api_key_list_params.rb +0 -14
  456. data/lib/x_twitter_scraper/models/api_key_list_response.rb +0 -16
  457. data/lib/x_twitter_scraper/models/api_key_revoke_response.rb +0 -16
  458. data/lib/x_twitter_scraper/models/integration.rb +0 -93
  459. data/lib/x_twitter_scraper/models/integration_create_params.rb +0 -58
  460. data/lib/x_twitter_scraper/models/integration_delete_params.rb +0 -20
  461. data/lib/x_twitter_scraper/models/integration_delete_response.rb +0 -16
  462. data/lib/x_twitter_scraper/models/integration_delivery.rb +0 -71
  463. data/lib/x_twitter_scraper/models/integration_list_deliveries_params.rb +0 -29
  464. data/lib/x_twitter_scraper/models/integration_list_deliveries_response.rb +0 -17
  465. data/lib/x_twitter_scraper/models/integration_list_response.rb +0 -16
  466. data/lib/x_twitter_scraper/models/integration_retrieve_params.rb +0 -20
  467. data/lib/x_twitter_scraper/models/integration_send_test_params.rb +0 -20
  468. data/lib/x_twitter_scraper/models/integration_send_test_response.rb +0 -16
  469. data/lib/x_twitter_scraper/models/integration_update_params.rb +0 -77
  470. data/lib/x_twitter_scraper/models/x/community_action_result.rb +0 -31
  471. data/lib/x_twitter_scraper/models/x/search_tweet.rb +0 -119
  472. data/lib/x_twitter_scraper/models/x/user_profile.rb +0 -80
  473. data/lib/x_twitter_scraper/resources/api_keys.rb +0 -77
  474. data/lib/x_twitter_scraper/resources/bot/platform_links.rb +0 -16
  475. data/lib/x_twitter_scraper/resources/bot.rb +0 -18
  476. data/lib/x_twitter_scraper/resources/integrations.rb +0 -182
  477. data/rbi/x_twitter_scraper/models/api_key.rbi +0 -69
  478. data/rbi/x_twitter_scraper/models/api_key_create_params.rbi +0 -41
  479. data/rbi/x_twitter_scraper/models/api_key_create_response.rbi +0 -56
  480. data/rbi/x_twitter_scraper/models/api_key_list_params.rbi +0 -32
  481. data/rbi/x_twitter_scraper/models/api_key_list_response.rbi +0 -30
  482. data/rbi/x_twitter_scraper/models/api_key_revoke_response.rbi +0 -26
  483. data/rbi/x_twitter_scraper/models/integration.rbi +0 -117
  484. data/rbi/x_twitter_scraper/models/integration_create_params.rbi +0 -95
  485. data/rbi/x_twitter_scraper/models/integration_delete_params.rbi +0 -38
  486. data/rbi/x_twitter_scraper/models/integration_delete_response.rbi +0 -26
  487. data/rbi/x_twitter_scraper/models/integration_delivery.rbi +0 -108
  488. data/rbi/x_twitter_scraper/models/integration_list_deliveries_response.rbi +0 -34
  489. data/rbi/x_twitter_scraper/models/integration_list_response.rbi +0 -34
  490. data/rbi/x_twitter_scraper/models/integration_send_test_params.rbi +0 -38
  491. data/rbi/x_twitter_scraper/models/integration_send_test_response.rbi +0 -26
  492. data/rbi/x_twitter_scraper/models/integration_update_params.rbi +0 -115
  493. data/rbi/x_twitter_scraper/models/x/community_action_result.rbi +0 -49
  494. data/rbi/x_twitter_scraper/models/x/search_tweet.rbi +0 -181
  495. data/rbi/x_twitter_scraper/models/x/user_profile.rbi +0 -125
  496. data/rbi/x_twitter_scraper/resources/api_keys.rbi +0 -46
  497. data/rbi/x_twitter_scraper/resources/bot/platform_links.rbi +0 -16
  498. data/rbi/x_twitter_scraper/resources/bot.rbi +0 -15
  499. data/rbi/x_twitter_scraper/resources/integrations.rbi +0 -133
  500. data/sig/x_twitter_scraper/models/api_key.rbs +0 -47
  501. data/sig/x_twitter_scraper/models/api_key_create_response.rbs +0 -40
  502. data/sig/x_twitter_scraper/models/api_key_list_response.rbs +0 -13
  503. data/sig/x_twitter_scraper/models/api_key_revoke_response.rbs +0 -13
  504. data/sig/x_twitter_scraper/models/integration.rbs +0 -78
  505. data/sig/x_twitter_scraper/models/integration_create_params.rbs +0 -51
  506. data/sig/x_twitter_scraper/models/integration_delete_params.rbs +0 -23
  507. data/sig/x_twitter_scraper/models/integration_delete_response.rbs +0 -13
  508. data/sig/x_twitter_scraper/models/integration_delivery.rbs +0 -75
  509. data/sig/x_twitter_scraper/models/integration_list_deliveries_response.rbs +0 -18
  510. data/sig/x_twitter_scraper/models/integration_list_params.rbs +0 -15
  511. data/sig/x_twitter_scraper/models/integration_list_response.rbs +0 -16
  512. data/sig/x_twitter_scraper/models/integration_retrieve_params.rbs +0 -23
  513. data/sig/x_twitter_scraper/models/integration_send_test_params.rbs +0 -23
  514. data/sig/x_twitter_scraper/models/integration_send_test_response.rbs +0 -13
  515. data/sig/x_twitter_scraper/models/integration_update_params.rbs +0 -77
  516. data/sig/x_twitter_scraper/models/x/community_action_result.rbs +0 -28
  517. data/sig/x_twitter_scraper/models/x/search_tweet.rbs +0 -121
  518. data/sig/x_twitter_scraper/models/x/user_profile.rbs +0 -88
  519. data/sig/x_twitter_scraper/resources/api_keys.rbs +0 -21
  520. data/sig/x_twitter_scraper/resources/bot/platform_links.rbs +0 -9
  521. data/sig/x_twitter_scraper/resources/bot.rbs +0 -9
  522. data/sig/x_twitter_scraper/resources/integrations.rbs +0 -52
@@ -10,6 +10,8 @@ module XTwitterScraper
10
10
  required :id, String
11
11
 
12
12
  # @!attribute total_entries
13
+ # Candidate entries inspected for this draw after the credit-derived cap. This may
14
+ # be lower than the source tweet's full reply count.
13
15
  #
14
16
  # @return [Integer]
15
17
  required :total_entries, Integer, api_name: :totalEntries
@@ -20,6 +22,8 @@ module XTwitterScraper
20
22
  required :tweet_id, String, api_name: :tweetId
21
23
 
22
24
  # @!attribute valid_entries
25
+ # Entries from the inspected candidate set that passed all filters. This is not
26
+ # necessarily every valid reply on the source tweet when credits cap inspection.
23
27
  #
24
28
  # @return [Integer]
25
29
  required :valid_entries, Integer, api_name: :validEntries
@@ -30,10 +34,17 @@ module XTwitterScraper
30
34
  required :winners, -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::Winner] }
31
35
 
32
36
  # @!method initialize(id:, total_entries:, tweet_id:, valid_entries:, winners:)
37
+ # Some parameter documentations has been truncated, see
38
+ # {XTwitterScraper::Models::DrawRunResponse} for more details.
39
+ #
33
40
  # @param id [String]
34
- # @param total_entries [Integer]
41
+ #
42
+ # @param total_entries [Integer] Candidate entries inspected for this draw after the credit-derived cap. This may
43
+ #
35
44
  # @param tweet_id [String]
36
- # @param valid_entries [Integer]
45
+ #
46
+ # @param valid_entries [Integer] Entries from the inspected candidate set that passed all filters. This is not ne
47
+ #
37
48
  # @param winners [Array<XTwitterScraper::Models::Winner>]
38
49
  end
39
50
  end
@@ -0,0 +1,202 @@
1
+ # frozen_string_literal: true
2
+
3
+ module XTwitterScraper
4
+ module Models
5
+ class EmbeddedTweet < XTwitterScraper::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ #
8
+ # @return [String]
9
+ required :id, String
10
+
11
+ # @!attribute bookmark_count
12
+ #
13
+ # @return [Integer]
14
+ required :bookmark_count, Integer, api_name: :bookmarkCount
15
+
16
+ # @!attribute like_count
17
+ #
18
+ # @return [Integer]
19
+ required :like_count, Integer, api_name: :likeCount
20
+
21
+ # @!attribute quote_count
22
+ #
23
+ # @return [Integer]
24
+ required :quote_count, Integer, api_name: :quoteCount
25
+
26
+ # @!attribute reply_count
27
+ #
28
+ # @return [Integer]
29
+ required :reply_count, Integer, api_name: :replyCount
30
+
31
+ # @!attribute retweet_count
32
+ #
33
+ # @return [Integer]
34
+ required :retweet_count, Integer, api_name: :retweetCount
35
+
36
+ # @!attribute text
37
+ #
38
+ # @return [String]
39
+ required :text, String
40
+
41
+ # @!attribute view_count
42
+ #
43
+ # @return [Integer]
44
+ required :view_count, Integer, api_name: :viewCount
45
+
46
+ # @!attribute author
47
+ # X user profile with bio, follower counts, and verification status.
48
+ #
49
+ # @return [XTwitterScraper::Models::UserProfile, nil]
50
+ optional :author, -> { XTwitterScraper::UserProfile }
51
+
52
+ # @!attribute content_disclosure
53
+ # Content disclosure metadata shown by X when a tweet is labeled as paid
54
+ # partnership content or AI-generated media.
55
+ #
56
+ # @return [XTwitterScraper::Models::ContentDisclosure, nil]
57
+ optional :content_disclosure, -> { XTwitterScraper::ContentDisclosure }, api_name: :contentDisclosure
58
+
59
+ # @!attribute conversation_id
60
+ #
61
+ # @return [String, nil]
62
+ optional :conversation_id, String, api_name: :conversationId
63
+
64
+ # @!attribute created_at
65
+ #
66
+ # @return [String, nil]
67
+ optional :created_at, String, api_name: :createdAt
68
+
69
+ # @!attribute display_text_range
70
+ #
71
+ # @return [Array<Integer>, nil]
72
+ optional :display_text_range,
73
+ XTwitterScraper::Internal::Type::ArrayOf[Integer],
74
+ api_name: :displayTextRange
75
+
76
+ # @!attribute entities
77
+ #
78
+ # @return [Hash{Symbol=>Object}, nil]
79
+ optional :entities, XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::Unknown]
80
+
81
+ # @!attribute in_reply_to_id
82
+ #
83
+ # @return [String, nil]
84
+ optional :in_reply_to_id, String, api_name: :inReplyToId
85
+
86
+ # @!attribute in_reply_to_user_id
87
+ #
88
+ # @return [String, nil]
89
+ optional :in_reply_to_user_id, String, api_name: :inReplyToUserId
90
+
91
+ # @!attribute in_reply_to_username
92
+ #
93
+ # @return [String, nil]
94
+ optional :in_reply_to_username, String, api_name: :inReplyToUsername
95
+
96
+ # @!attribute is_limited_reply
97
+ #
98
+ # @return [Boolean, nil]
99
+ optional :is_limited_reply, XTwitterScraper::Internal::Type::Boolean, api_name: :isLimitedReply
100
+
101
+ # @!attribute is_note_tweet
102
+ #
103
+ # @return [Boolean, nil]
104
+ optional :is_note_tweet, XTwitterScraper::Internal::Type::Boolean, api_name: :isNoteTweet
105
+
106
+ # @!attribute is_quote_status
107
+ #
108
+ # @return [Boolean, nil]
109
+ optional :is_quote_status, XTwitterScraper::Internal::Type::Boolean, api_name: :isQuoteStatus
110
+
111
+ # @!attribute is_reply
112
+ #
113
+ # @return [Boolean, nil]
114
+ optional :is_reply, XTwitterScraper::Internal::Type::Boolean, api_name: :isReply
115
+
116
+ # @!attribute lang
117
+ #
118
+ # @return [String, nil]
119
+ optional :lang, String
120
+
121
+ # @!attribute media
122
+ #
123
+ # @return [Array<XTwitterScraper::Models::TweetMedia>, nil]
124
+ optional :media, -> { XTwitterScraper::Internal::Type::ArrayOf[XTwitterScraper::TweetMedia] }
125
+
126
+ # @!attribute source
127
+ #
128
+ # @return [String, nil]
129
+ optional :source, String
130
+
131
+ # @!attribute type
132
+ #
133
+ # @return [String, nil]
134
+ optional :type, String
135
+
136
+ # @!attribute url
137
+ #
138
+ # @return [String, nil]
139
+ optional :url, String
140
+
141
+ # @!method initialize(id:, bookmark_count:, like_count:, quote_count:, reply_count:, retweet_count:, text:, view_count:, author: nil, content_disclosure: nil, conversation_id: nil, created_at: nil, display_text_range: nil, entities: nil, in_reply_to_id: nil, in_reply_to_user_id: nil, in_reply_to_username: nil, is_limited_reply: nil, is_note_tweet: nil, is_quote_status: nil, is_reply: nil, lang: nil, media: nil, source: nil, type: nil, url: nil)
142
+ # Some parameter documentations has been truncated, see
143
+ # {XTwitterScraper::Models::EmbeddedTweet} for more details.
144
+ #
145
+ # Quoted or retweeted tweet context. Every object includes id, text, and
146
+ # engagement metrics. A zero metric can mean X did not report the count. Author,
147
+ # media, and conversation fields appear when available.
148
+ #
149
+ # @param id [String]
150
+ #
151
+ # @param bookmark_count [Integer]
152
+ #
153
+ # @param like_count [Integer]
154
+ #
155
+ # @param quote_count [Integer]
156
+ #
157
+ # @param reply_count [Integer]
158
+ #
159
+ # @param retweet_count [Integer]
160
+ #
161
+ # @param text [String]
162
+ #
163
+ # @param view_count [Integer]
164
+ #
165
+ # @param author [XTwitterScraper::Models::UserProfile] X user profile with bio, follower counts, and verification status.
166
+ #
167
+ # @param content_disclosure [XTwitterScraper::Models::ContentDisclosure] Content disclosure metadata shown by X when a tweet is labeled as paid partnersh
168
+ #
169
+ # @param conversation_id [String]
170
+ #
171
+ # @param created_at [String]
172
+ #
173
+ # @param display_text_range [Array<Integer>]
174
+ #
175
+ # @param entities [Hash{Symbol=>Object}]
176
+ #
177
+ # @param in_reply_to_id [String]
178
+ #
179
+ # @param in_reply_to_user_id [String]
180
+ #
181
+ # @param in_reply_to_username [String]
182
+ #
183
+ # @param is_limited_reply [Boolean]
184
+ #
185
+ # @param is_note_tweet [Boolean]
186
+ #
187
+ # @param is_quote_status [Boolean]
188
+ #
189
+ # @param is_reply [Boolean]
190
+ #
191
+ # @param lang [String]
192
+ #
193
+ # @param media [Array<XTwitterScraper::Models::TweetMedia>]
194
+ #
195
+ # @param source [String]
196
+ #
197
+ # @param type [String]
198
+ #
199
+ # @param url [String]
200
+ end
201
+ end
202
+ end
@@ -5,46 +5,215 @@ module XTwitterScraper
5
5
  class Error < XTwitterScraper::Internal::Type::BaseModel
6
6
  # @!attribute error
7
7
  #
8
- # @return [Symbol, XTwitterScraper::Models::Error::Error]
9
- required :error, enum: -> { XTwitterScraper::Error::Error }
8
+ # @return [Symbol, XTwitterScraper::Models::Error::Error::LegacyErrorCode, XTwitterScraper::Models::Error::Error::StructuredError]
9
+ required :error, union: -> { XTwitterScraper::Error::Error }
10
10
 
11
11
  # @!method initialize(error:)
12
- # Error response containing a machine-readable error code.
12
+ # Error response. Default v1 returns a legacy string error code. Send
13
+ # `xquik-api-contract: 2026-04-29` to receive the structured best-practice error
14
+ # object.
13
15
  #
14
- # @param error [Symbol, XTwitterScraper::Models::Error::Error]
16
+ # @param error [Symbol, XTwitterScraper::Models::Error::Error::LegacyErrorCode, XTwitterScraper::Models::Error::Error::StructuredError]
15
17
 
16
18
  # @see XTwitterScraper::Models::Error#error
17
19
  module Error
18
- extend XTwitterScraper::Internal::Type::Enum
19
-
20
- INTERNAL_ERROR = :internal_error
21
- INVALID_FORMAT = :invalid_format
22
- INVALID_ID = :invalid_id
23
- INVALID_INPUT = :invalid_input
24
- INVALID_PARAMS = :invalid_params
25
- INVALID_TOOL_TYPE = :invalid_tool_type
26
- INVALID_TWEET_ID = :invalid_tweet_id
27
- INVALID_TWEET_URL = :invalid_tweet_url
28
- INVALID_USERNAME = :invalid_username
29
- MISSING_PARAMS = :missing_params
30
- MISSING_QUERY = :missing_query
31
- MONITOR_ALREADY_EXISTS = :monitor_already_exists
32
- MONITOR_LIMIT_REACHED = :monitor_limit_reached
33
- NO_SUBSCRIPTION = :no_subscription
34
- NOT_FOUND = :not_found
35
- STREAM_REGISTRATION_FAILED = :stream_registration_failed
36
- SUBSCRIPTION_INACTIVE = :subscription_inactive
37
- TWEET_NOT_FOUND = :tweet_not_found
38
- UNAUTHENTICATED = :unauthenticated
39
- USAGE_LIMIT_REACHED = :usage_limit_reached
40
- USER_NOT_FOUND = :user_not_found
41
- WEBHOOK_INACTIVE = :webhook_inactive
42
- X_API_RATE_LIMITED = :x_api_rate_limited
43
- X_API_UNAVAILABLE = :x_api_unavailable
44
- X_API_UNAUTHORIZED = :x_api_unauthorized
45
-
46
- # @!method self.values
47
- # @return [Array<Symbol>]
20
+ extend XTwitterScraper::Internal::Type::Union
21
+
22
+ variant enum: -> { XTwitterScraper::Error::Error::LegacyErrorCode }
23
+
24
+ variant -> { XTwitterScraper::Error::Error::StructuredError }
25
+
26
+ module LegacyErrorCode
27
+ extend XTwitterScraper::Internal::Type::Enum
28
+
29
+ INTERNAL_ERROR = :internal_error
30
+ ACCOUNT_ALREADY_CONNECTED = :account_already_connected
31
+ ACCOUNT_NEEDS_REAUTH = :account_needs_reauth
32
+ ACCOUNT_NOT_FOUND = :account_not_found
33
+ ACCOUNT_REQUIRED = :account_required
34
+ ACCOUNT_RESTRICTED = :account_restricted
35
+ API_KEY_LIMIT_REACHED = :api_key_limit_reached
36
+ ARTICLE_NOT_FOUND = :article_not_found
37
+ DM_NOT_PERMITTED = :dm_not_permitted
38
+ INVALID_FORMAT = :invalid_format
39
+ INVALID_ID = :invalid_id
40
+ INVALID_INPUT = :invalid_input
41
+ INVALID_PARAMS = :invalid_params
42
+ INVALID_TOOL_TYPE = :invalid_tool_type
43
+ INVALID_TWEET_ID = :invalid_tweet_id
44
+ INVALID_TWEET_URL = :invalid_tweet_url
45
+ INVALID_USER_ID = :invalid_user_id
46
+ INVALID_USER_IDS = :invalid_user_ids
47
+ INVALID_USERNAME = :invalid_username
48
+ INVALID_JSON = :invalid_json
49
+ INSUFFICIENT_CREDITS = :insufficient_credits
50
+ LOGIN_COOLDOWN = :login_cooldown
51
+ LOGIN_FAILED = :login_failed
52
+ MEDIA_DOWNLOAD_FAILED = :media_download_failed
53
+ MISSING_PARAMS = :missing_params
54
+ MISSING_QUERY = :missing_query
55
+ MONITOR_ALREADY_EXISTS = :monitor_already_exists
56
+ NO_MEDIA = :no_media
57
+ NO_CREDITS = :no_credits
58
+ NO_SUBSCRIPTION = :no_subscription
59
+ NOT_FOUND = :not_found
60
+ PAYMENT_FAILED = :payment_failed
61
+ RATE_LIMIT_EXCEEDED = :rate_limit_exceeded
62
+ SERVICE_UNAVAILABLE = :service_unavailable
63
+ STYLE_NOT_FOUND = :style_not_found
64
+ SUBSCRIPTION_INACTIVE = :subscription_inactive
65
+ TWEET_NOT_FOUND = :tweet_not_found
66
+ UNAUTHENTICATED = :unauthenticated
67
+ UNSUPPORTED_FIELD = :unsupported_field
68
+ USER_NOT_FOUND = :user_not_found
69
+ X_ACCOUNT_FEATURE_REQUIRED = :x_account_feature_required
70
+ X_ACCOUNT_PROTECTED = :x_account_protected
71
+ X_ACCOUNT_SUSPENDED = :x_account_suspended
72
+ X_API_RATE_LIMITED = :x_api_rate_limited
73
+ X_API_UNAVAILABLE = :x_api_unavailable
74
+ X_API_UNAUTHORIZED = :x_api_unauthorized
75
+ X_AUTH_FAILURE = :x_auth_failure
76
+ X_CONTENT_TOO_LONG = :x_content_too_long
77
+ X_DAILY_LIMIT = :x_daily_limit
78
+ X_DM_NOT_ALLOWED = :x_dm_not_allowed
79
+ X_DUPLICATE_ACTION = :x_duplicate_action
80
+ X_LOGIN_AUTH_FAILED = :x_login_auth_failed
81
+ X_LOGIN_CHALLENGE = :x_login_challenge
82
+ X_LOGIN_DENIED = :x_login_denied
83
+ X_LOGIN_FAILED = :x_login_failed
84
+ X_LOGIN_PROXY_ERROR = :x_login_proxy_error
85
+ X_LOGIN_RATE_LIMITED = :x_login_rate_limited
86
+ X_LOGIN_SERVICE_UNAVAILABLE = :x_login_service_unavailable
87
+ X_LOGIN_SUSPENDED = :x_login_suspended
88
+ X_RATE_LIMITED = :x_rate_limited
89
+ X_REJECTED = :x_rejected
90
+ X_TARGET_NOT_FOUND = :x_target_not_found
91
+ X_TRANSIENT_ERROR = :x_transient_error
92
+ X_USER_LOOKUP_FAILED = :x_user_lookup_failed
93
+ X_WRITE_AMBIGUOUS = :x_write_ambiguous
94
+ X_WRITE_FAILED = :x_write_failed
95
+ X_WRITE_UNCONFIRMED = :x_write_unconfirmed
96
+
97
+ # @!method self.values
98
+ # @return [Array<Symbol>]
99
+ end
100
+
101
+ class StructuredError < XTwitterScraper::Internal::Type::BaseModel
102
+ # @!attribute code
103
+ #
104
+ # @return [Symbol, XTwitterScraper::Models::Error::Error::StructuredError::Code]
105
+ required :code, enum: -> { XTwitterScraper::Error::Error::StructuredError::Code }
106
+
107
+ # @!attribute message
108
+ #
109
+ # @return [String]
110
+ required :message, String
111
+
112
+ # @!attribute type
113
+ #
114
+ # @return [Symbol, XTwitterScraper::Models::Error::Error::StructuredError::Type]
115
+ required :type, enum: -> { XTwitterScraper::Error::Error::StructuredError::Type }
116
+
117
+ # @!method initialize(code:, message:, type:)
118
+ # @param code [Symbol, XTwitterScraper::Models::Error::Error::StructuredError::Code]
119
+ # @param message [String]
120
+ # @param type [Symbol, XTwitterScraper::Models::Error::Error::StructuredError::Type]
121
+
122
+ # @see XTwitterScraper::Models::Error::Error::StructuredError#code
123
+ module Code
124
+ extend XTwitterScraper::Internal::Type::Enum
125
+
126
+ INTERNAL_ERROR = :internal_error
127
+ ACCOUNT_ALREADY_CONNECTED = :account_already_connected
128
+ ACCOUNT_NEEDS_REAUTH = :account_needs_reauth
129
+ ACCOUNT_NOT_FOUND = :account_not_found
130
+ ACCOUNT_REQUIRED = :account_required
131
+ ACCOUNT_RESTRICTED = :account_restricted
132
+ API_KEY_LIMIT_REACHED = :api_key_limit_reached
133
+ ARTICLE_NOT_FOUND = :article_not_found
134
+ DM_NOT_PERMITTED = :dm_not_permitted
135
+ INVALID_FORMAT = :invalid_format
136
+ INVALID_ID = :invalid_id
137
+ INVALID_INPUT = :invalid_input
138
+ INVALID_PARAMS = :invalid_params
139
+ INVALID_TOOL_TYPE = :invalid_tool_type
140
+ INVALID_TWEET_ID = :invalid_tweet_id
141
+ INVALID_TWEET_URL = :invalid_tweet_url
142
+ INVALID_USER_ID = :invalid_user_id
143
+ INVALID_USER_IDS = :invalid_user_ids
144
+ INVALID_USERNAME = :invalid_username
145
+ INVALID_JSON = :invalid_json
146
+ INSUFFICIENT_CREDITS = :insufficient_credits
147
+ LOGIN_COOLDOWN = :login_cooldown
148
+ LOGIN_FAILED = :login_failed
149
+ MEDIA_DOWNLOAD_FAILED = :media_download_failed
150
+ MISSING_PARAMS = :missing_params
151
+ MISSING_QUERY = :missing_query
152
+ MONITOR_ALREADY_EXISTS = :monitor_already_exists
153
+ NO_MEDIA = :no_media
154
+ NO_CREDITS = :no_credits
155
+ NO_SUBSCRIPTION = :no_subscription
156
+ NOT_FOUND = :not_found
157
+ PAYMENT_FAILED = :payment_failed
158
+ RATE_LIMIT_EXCEEDED = :rate_limit_exceeded
159
+ SERVICE_UNAVAILABLE = :service_unavailable
160
+ STYLE_NOT_FOUND = :style_not_found
161
+ SUBSCRIPTION_INACTIVE = :subscription_inactive
162
+ TWEET_NOT_FOUND = :tweet_not_found
163
+ UNAUTHENTICATED = :unauthenticated
164
+ UNSUPPORTED_FIELD = :unsupported_field
165
+ USER_NOT_FOUND = :user_not_found
166
+ X_ACCOUNT_FEATURE_REQUIRED = :x_account_feature_required
167
+ X_ACCOUNT_PROTECTED = :x_account_protected
168
+ X_ACCOUNT_SUSPENDED = :x_account_suspended
169
+ X_API_RATE_LIMITED = :x_api_rate_limited
170
+ X_API_UNAVAILABLE = :x_api_unavailable
171
+ X_API_UNAUTHORIZED = :x_api_unauthorized
172
+ X_AUTH_FAILURE = :x_auth_failure
173
+ X_CONTENT_TOO_LONG = :x_content_too_long
174
+ X_DAILY_LIMIT = :x_daily_limit
175
+ X_DM_NOT_ALLOWED = :x_dm_not_allowed
176
+ X_DUPLICATE_ACTION = :x_duplicate_action
177
+ X_LOGIN_AUTH_FAILED = :x_login_auth_failed
178
+ X_LOGIN_CHALLENGE = :x_login_challenge
179
+ X_LOGIN_DENIED = :x_login_denied
180
+ X_LOGIN_FAILED = :x_login_failed
181
+ X_LOGIN_PROXY_ERROR = :x_login_proxy_error
182
+ X_LOGIN_RATE_LIMITED = :x_login_rate_limited
183
+ X_LOGIN_SERVICE_UNAVAILABLE = :x_login_service_unavailable
184
+ X_LOGIN_SUSPENDED = :x_login_suspended
185
+ X_RATE_LIMITED = :x_rate_limited
186
+ X_REJECTED = :x_rejected
187
+ X_TARGET_NOT_FOUND = :x_target_not_found
188
+ X_TRANSIENT_ERROR = :x_transient_error
189
+ X_USER_LOOKUP_FAILED = :x_user_lookup_failed
190
+ X_WRITE_AMBIGUOUS = :x_write_ambiguous
191
+ X_WRITE_FAILED = :x_write_failed
192
+ X_WRITE_UNCONFIRMED = :x_write_unconfirmed
193
+
194
+ # @!method self.values
195
+ # @return [Array<Symbol>]
196
+ end
197
+
198
+ # @see XTwitterScraper::Models::Error::Error::StructuredError#type
199
+ module Type
200
+ extend XTwitterScraper::Internal::Type::Enum
201
+
202
+ API_ERROR = :api_error
203
+ AUTHENTICATION_ERROR = :authentication_error
204
+ BILLING_ERROR = :billing_error
205
+ DEPENDENCY_ERROR = :dependency_error
206
+ INVALID_REQUEST_ERROR = :invalid_request_error
207
+ PERMISSION_ERROR = :permission_error
208
+ RATE_LIMIT_ERROR = :rate_limit_error
209
+
210
+ # @!method self.values
211
+ # @return [Array<Symbol>]
212
+ end
213
+ end
214
+
215
+ # @!method self.variants
216
+ # @return [Array(Symbol, XTwitterScraper::Models::Error::Error::LegacyErrorCode, XTwitterScraper::Models::Error::Error::StructuredError)]
48
217
  end
49
218
  end
50
219
  end
@@ -14,10 +14,17 @@ module XTwitterScraper
14
14
  required :data, XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::Unknown]
15
15
 
16
16
  # @!attribute monitor_id
17
+ # Account monitor ID for account events, or keyword monitor ID for keyword events.
17
18
  #
18
19
  # @return [String]
19
20
  required :monitor_id, String, api_name: :monitorId
20
21
 
22
+ # @!attribute monitor_type
23
+ # Source monitor type.
24
+ #
25
+ # @return [Symbol, XTwitterScraper::Models::Event::MonitorType]
26
+ required :monitor_type, enum: -> { XTwitterScraper::Event::MonitorType }, api_name: :monitorType
27
+
21
28
  # @!attribute occurred_at
22
29
  #
23
30
  # @return [Time]
@@ -29,25 +36,60 @@ module XTwitterScraper
29
36
  # @return [Symbol, XTwitterScraper::Models::EventType]
30
37
  required :type, enum: -> { XTwitterScraper::EventType }
31
38
 
39
+ # @!attribute keyword_monitor_id
40
+ # Keyword monitor ID, present for keyword monitor events.
41
+ #
42
+ # @return [String, nil]
43
+ optional :keyword_monitor_id, String, api_name: :keywordMonitorId
44
+
45
+ # @!attribute query
46
+ # Keyword query, present for keyword monitor events.
47
+ #
48
+ # @return [String, nil]
49
+ optional :query, String
50
+
32
51
  # @!attribute username
52
+ # Account username, present for account monitor events.
33
53
  #
34
- # @return [String]
35
- required :username, String
54
+ # @return [String, nil]
55
+ optional :username, String
36
56
 
37
- # @!method initialize(id:, data:, monitor_id:, occurred_at:, type:, username:)
38
- # Monitor event summary with type, username, and occurrence time.
57
+ # @!method initialize(id:, data:, monitor_id:, monitor_type:, occurred_at:, type:, keyword_monitor_id: nil, query: nil, username: nil)
58
+ # Some parameter documentations has been truncated, see
59
+ # {XTwitterScraper::Models::Event} for more details.
60
+ #
61
+ # Monitor event summary with source metadata and occurrence time.
39
62
  #
40
63
  # @param id [String]
41
64
  #
42
65
  # @param data [Hash{Symbol=>Object}]
43
66
  #
44
- # @param monitor_id [String]
67
+ # @param monitor_id [String] Account monitor ID for account events, or keyword monitor ID for keyword events.
68
+ #
69
+ # @param monitor_type [Symbol, XTwitterScraper::Models::Event::MonitorType] Source monitor type.
45
70
  #
46
71
  # @param occurred_at [Time]
47
72
  #
48
73
  # @param type [Symbol, XTwitterScraper::Models::EventType] Type of monitor event fired when account activity occurs.
49
74
  #
50
- # @param username [String]
75
+ # @param keyword_monitor_id [String] Keyword monitor ID, present for keyword monitor events.
76
+ #
77
+ # @param query [String] Keyword query, present for keyword monitor events.
78
+ #
79
+ # @param username [String] Account username, present for account monitor events.
80
+
81
+ # Source monitor type.
82
+ #
83
+ # @see XTwitterScraper::Models::Event#monitor_type
84
+ module MonitorType
85
+ extend XTwitterScraper::Internal::Type::Enum
86
+
87
+ ACCOUNT = :account
88
+ KEYWORD = :keyword
89
+
90
+ # @!method self.values
91
+ # @return [Array<Symbol>]
92
+ end
51
93
  end
52
94
  end
53
95
  end
@@ -10,16 +10,23 @@ module XTwitterScraper
10
10
  required :id, String
11
11
 
12
12
  # @!attribute data
13
- # Event payload shape varies by event type (JSON)
13
+ # Event payload - shape varies by event type (JSON)
14
14
  #
15
15
  # @return [Hash{Symbol=>Object}]
16
16
  required :data, XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::Unknown]
17
17
 
18
18
  # @!attribute monitor_id
19
+ # Monitor ID associated with this detailed event payload.
19
20
  #
20
21
  # @return [String]
21
22
  required :monitor_id, String, api_name: :monitorId
22
23
 
24
+ # @!attribute monitor_type
25
+ # Source monitor type for this detailed event.
26
+ #
27
+ # @return [Symbol, XTwitterScraper::Models::EventDetail::MonitorType]
28
+ required :monitor_type, enum: -> { XTwitterScraper::EventDetail::MonitorType }, api_name: :monitorType
29
+
23
30
  # @!attribute occurred_at
24
31
  #
25
32
  # @return [Time]
@@ -31,32 +38,64 @@ module XTwitterScraper
31
38
  # @return [Symbol, XTwitterScraper::Models::EventType]
32
39
  required :type, enum: -> { XTwitterScraper::EventType }
33
40
 
41
+ # @!attribute keyword_monitor_id
42
+ # Keyword monitor ID included on detailed keyword events.
43
+ #
44
+ # @return [String, nil]
45
+ optional :keyword_monitor_id, String, api_name: :keywordMonitorId
46
+
47
+ # @!attribute query
48
+ # Keyword query for this detailed monitor event.
49
+ #
50
+ # @return [String, nil]
51
+ optional :query, String
52
+
34
53
  # @!attribute username
54
+ # Account username for this detailed monitor event.
35
55
  #
36
- # @return [String]
37
- required :username, String
56
+ # @return [String, nil]
57
+ optional :username, String
38
58
 
39
59
  # @!attribute x_event_id
40
60
  #
41
61
  # @return [String, nil]
42
62
  optional :x_event_id, String, api_name: :xEventId
43
63
 
44
- # @!method initialize(id:, data:, monitor_id:, occurred_at:, type:, username:, x_event_id: nil)
64
+ # @!method initialize(id:, data:, monitor_id:, monitor_type:, occurred_at:, type:, keyword_monitor_id: nil, query: nil, username: nil, x_event_id: nil)
45
65
  # Full monitor event including payload data and optional X event ID.
46
66
  #
47
67
  # @param id [String]
48
68
  #
49
- # @param data [Hash{Symbol=>Object}] Event payload shape varies by event type (JSON)
69
+ # @param data [Hash{Symbol=>Object}] Event payload - shape varies by event type (JSON)
70
+ #
71
+ # @param monitor_id [String] Monitor ID associated with this detailed event payload.
50
72
  #
51
- # @param monitor_id [String]
73
+ # @param monitor_type [Symbol, XTwitterScraper::Models::EventDetail::MonitorType] Source monitor type for this detailed event.
52
74
  #
53
75
  # @param occurred_at [Time]
54
76
  #
55
77
  # @param type [Symbol, XTwitterScraper::Models::EventType] Type of monitor event fired when account activity occurs.
56
78
  #
57
- # @param username [String]
79
+ # @param keyword_monitor_id [String] Keyword monitor ID included on detailed keyword events.
80
+ #
81
+ # @param query [String] Keyword query for this detailed monitor event.
82
+ #
83
+ # @param username [String] Account username for this detailed monitor event.
58
84
  #
59
85
  # @param x_event_id [String]
86
+
87
+ # Source monitor type for this detailed event.
88
+ #
89
+ # @see XTwitterScraper::Models::EventDetail#monitor_type
90
+ module MonitorType
91
+ extend XTwitterScraper::Internal::Type::Enum
92
+
93
+ ACCOUNT = :account
94
+ KEYWORD = :keyword
95
+
96
+ # @!method self.values
97
+ # @return [Array<Symbol>]
98
+ end
60
99
  end
61
100
  end
62
101
  end