x-twitter-scraper 0.4.5 → 0.5.2

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 (222) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +8 -41
  4. data/lib/x_twitter_scraper/client.rb +1 -1
  5. data/lib/x_twitter_scraper/internal/type/union.rb +13 -0
  6. data/lib/x_twitter_scraper/models/account_retrieve_response.rb +4 -4
  7. data/lib/x_twitter_scraper/models/compose_create_params.rb +194 -122
  8. data/lib/x_twitter_scraper/models/compose_create_response.rb +326 -33
  9. data/lib/x_twitter_scraper/models/credit_retrieve_topup_status_params.rb +2 -2
  10. data/lib/x_twitter_scraper/models/error.rb +99 -3
  11. data/lib/x_twitter_scraper/models/extraction_estimate_cost_params.rb +8 -8
  12. data/lib/x_twitter_scraper/models/guest_wallet_create_params.rb +2 -2
  13. data/lib/x_twitter_scraper/models/guest_wallet_create_response.rb +27 -7
  14. data/lib/x_twitter_scraper/models/guest_wallet_topup_params.rb +2 -2
  15. data/lib/x_twitter_scraper/models/guest_wallet_topup_response.rb +27 -7
  16. data/lib/x_twitter_scraper/models/search_tweet.rb +12 -12
  17. data/lib/x_twitter_scraper/models/support/ticket_create_params.rb +7 -1
  18. data/lib/x_twitter_scraper/models/support/ticket_create_response.rb +40 -3
  19. data/lib/x_twitter_scraper/models/support/ticket_reply_params.rb +7 -1
  20. data/lib/x_twitter_scraper/models/support/ticket_reply_response.rb +40 -3
  21. data/lib/x_twitter_scraper/models/support/ticket_retrieve_response.rb +114 -1
  22. data/lib/x_twitter_scraper/models/x/communities/join_create_params.rb +8 -1
  23. data/lib/x_twitter_scraper/models/x/communities/join_create_response.rb +577 -4
  24. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_params.rb +8 -1
  25. data/lib/x_twitter_scraper/models/x/communities/join_delete_all_response.rb +585 -4
  26. data/lib/x_twitter_scraper/models/x/community_create_params.rb +8 -1
  27. data/lib/x_twitter_scraper/models/x/community_create_response.rb +568 -8
  28. data/lib/x_twitter_scraper/models/x/community_delete_params.rb +8 -1
  29. data/lib/x_twitter_scraper/models/x/community_delete_response.rb +576 -4
  30. data/lib/x_twitter_scraper/models/x/dm_send_params.rb +8 -1
  31. data/lib/x_twitter_scraper/models/x/dm_send_response.rb +573 -7
  32. data/lib/x_twitter_scraper/models/x/media_upload_params.rb +8 -1
  33. data/lib/x_twitter_scraper/models/x/media_upload_response.rb +568 -11
  34. data/lib/x_twitter_scraper/models/x/profile_update_avatar_params.rb +8 -1
  35. data/lib/x_twitter_scraper/models/x/profile_update_avatar_response.rb +576 -4
  36. data/lib/x_twitter_scraper/models/x/profile_update_banner_params.rb +8 -1
  37. data/lib/x_twitter_scraper/models/x/profile_update_banner_response.rb +576 -4
  38. data/lib/x_twitter_scraper/models/x/profile_update_params.rb +8 -1
  39. data/lib/x_twitter_scraper/models/x/profile_update_response.rb +576 -4
  40. data/lib/x_twitter_scraper/models/x/tweet_author.rb +1 -14
  41. data/lib/x_twitter_scraper/models/x/tweet_create_params.rb +5 -5
  42. data/lib/x_twitter_scraper/models/x/tweet_create_response.rb +551 -12
  43. data/lib/x_twitter_scraper/models/x/tweet_delete_params.rb +8 -1
  44. data/lib/x_twitter_scraper/models/x/tweet_delete_response.rb +576 -4
  45. data/lib/x_twitter_scraper/models/x/tweets/like_create_params.rb +8 -1
  46. data/lib/x_twitter_scraper/models/x/tweets/like_create_response.rb +576 -4
  47. data/lib/x_twitter_scraper/models/x/tweets/like_delete_params.rb +8 -1
  48. data/lib/x_twitter_scraper/models/x/tweets/like_delete_response.rb +576 -4
  49. data/lib/x_twitter_scraper/models/x/tweets/retweet_create_params.rb +8 -1
  50. data/lib/x_twitter_scraper/models/x/tweets/retweet_create_response.rb +576 -4
  51. data/lib/x_twitter_scraper/models/x/tweets/retweet_delete_params.rb +8 -1
  52. data/lib/x_twitter_scraper/models/x/tweets/retweet_delete_response.rb +576 -4
  53. data/lib/x_twitter_scraper/models/x/user_remove_follower_params.rb +8 -1
  54. data/lib/x_twitter_scraper/models/x/user_remove_follower_response.rb +576 -4
  55. data/lib/x_twitter_scraper/models/x/user_retrieve_following_params.rb +2 -2
  56. data/lib/x_twitter_scraper/models/x/user_retrieve_replies_params.rb +2 -2
  57. data/lib/x_twitter_scraper/models/x/users/follow_create_params.rb +8 -1
  58. data/lib/x_twitter_scraper/models/x/users/follow_create_response.rb +576 -4
  59. data/lib/x_twitter_scraper/models/x/users/follow_delete_all_params.rb +8 -1
  60. data/lib/x_twitter_scraper/models/x/users/follow_delete_all_response.rb +576 -4
  61. data/lib/x_twitter_scraper/models/x/write_action_retrieve_response.rb +469 -52
  62. data/lib/x_twitter_scraper/models/x/x_account.rb +7 -7
  63. data/lib/x_twitter_scraper/models/x/x_account_detail.rb +1 -1
  64. data/lib/x_twitter_scraper/resources/compose.rb +8 -26
  65. data/lib/x_twitter_scraper/resources/credits.rb +1 -1
  66. data/lib/x_twitter_scraper/resources/extractions.rb +4 -4
  67. data/lib/x_twitter_scraper/resources/guest_wallets.rb +2 -2
  68. data/lib/x_twitter_scraper/resources/monitors/keywords.rb +4 -5
  69. data/lib/x_twitter_scraper/resources/monitors.rb +3 -3
  70. data/lib/x_twitter_scraper/resources/support/tickets.rb +24 -8
  71. data/lib/x_twitter_scraper/resources/trends.rb +1 -1
  72. data/lib/x_twitter_scraper/resources/x/communities/join.rb +22 -8
  73. data/lib/x_twitter_scraper/resources/x/communities.rb +25 -11
  74. data/lib/x_twitter_scraper/resources/x/dm.rb +13 -6
  75. data/lib/x_twitter_scraper/resources/x/media.rb +17 -7
  76. data/lib/x_twitter_scraper/resources/x/profile.rb +46 -17
  77. data/lib/x_twitter_scraper/resources/x/tweets/like.rb +22 -8
  78. data/lib/x_twitter_scraper/resources/x/tweets/retweet.rb +22 -8
  79. data/lib/x_twitter_scraper/resources/x/tweets.rb +31 -16
  80. data/lib/x_twitter_scraper/resources/x/users/follow.rb +22 -8
  81. data/lib/x_twitter_scraper/resources/x/users.rb +16 -9
  82. data/lib/x_twitter_scraper/resources/x.rb +1 -2
  83. data/lib/x_twitter_scraper/version.rb +1 -1
  84. data/rbi/x_twitter_scraper/client.rbi +1 -1
  85. data/rbi/x_twitter_scraper/models/account_retrieve_response.rbi +4 -4
  86. data/rbi/x_twitter_scraper/models/compose_create_params.rbi +392 -215
  87. data/rbi/x_twitter_scraper/models/compose_create_response.rbi +537 -48
  88. data/rbi/x_twitter_scraper/models/credit_retrieve_topup_status_params.rbi +2 -2
  89. data/rbi/x_twitter_scraper/models/error.rbi +379 -13
  90. data/rbi/x_twitter_scraper/models/extraction_estimate_cost_params.rbi +8 -8
  91. data/rbi/x_twitter_scraper/models/guest_wallet_create_params.rbi +2 -2
  92. data/rbi/x_twitter_scraper/models/guest_wallet_create_response.rbi +87 -5
  93. data/rbi/x_twitter_scraper/models/guest_wallet_topup_params.rbi +2 -2
  94. data/rbi/x_twitter_scraper/models/guest_wallet_topup_response.rbi +87 -5
  95. data/rbi/x_twitter_scraper/models/search_tweet.rbi +12 -12
  96. data/rbi/x_twitter_scraper/models/support/ticket_create_params.rbi +9 -1
  97. data/rbi/x_twitter_scraper/models/support/ticket_create_response.rbi +113 -7
  98. data/rbi/x_twitter_scraper/models/support/ticket_reply_params.rbi +9 -1
  99. data/rbi/x_twitter_scraper/models/support/ticket_reply_response.rbi +113 -7
  100. data/rbi/x_twitter_scraper/models/support/ticket_retrieve_response.rbi +276 -5
  101. data/rbi/x_twitter_scraper/models/x/communities/join_create_params.rbi +6 -0
  102. data/rbi/x_twitter_scraper/models/x/communities/join_create_response.rbi +1154 -3
  103. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_params.rbi +6 -0
  104. data/rbi/x_twitter_scraper/models/x/communities/join_delete_all_response.rbi +1154 -3
  105. data/rbi/x_twitter_scraper/models/x/community_create_params.rbi +6 -0
  106. data/rbi/x_twitter_scraper/models/x/community_create_response.rbi +1127 -5
  107. data/rbi/x_twitter_scraper/models/x/community_delete_params.rbi +6 -0
  108. data/rbi/x_twitter_scraper/models/x/community_delete_response.rbi +1148 -3
  109. data/rbi/x_twitter_scraper/models/x/dm_send_params.rbi +6 -0
  110. data/rbi/x_twitter_scraper/models/x/dm_send_response.rbi +1112 -6
  111. data/rbi/x_twitter_scraper/models/x/media_upload_params.rbi +6 -0
  112. data/rbi/x_twitter_scraper/models/x/media_upload_response.rbi +1124 -9
  113. data/rbi/x_twitter_scraper/models/x/profile_update_avatar_params.rbi +6 -0
  114. data/rbi/x_twitter_scraper/models/x/profile_update_avatar_response.rbi +1152 -3
  115. data/rbi/x_twitter_scraper/models/x/profile_update_banner_params.rbi +6 -0
  116. data/rbi/x_twitter_scraper/models/x/profile_update_banner_response.rbi +1152 -3
  117. data/rbi/x_twitter_scraper/models/x/profile_update_params.rbi +6 -0
  118. data/rbi/x_twitter_scraper/models/x/profile_update_response.rbi +1144 -3
  119. data/rbi/x_twitter_scraper/models/x/tweet_author.rbi +3 -13
  120. data/rbi/x_twitter_scraper/models/x/tweet_create_params.rbi +5 -8
  121. data/rbi/x_twitter_scraper/models/x/tweet_create_response.rbi +1108 -14
  122. data/rbi/x_twitter_scraper/models/x/tweet_delete_params.rbi +6 -0
  123. data/rbi/x_twitter_scraper/models/x/tweet_delete_response.rbi +1140 -3
  124. data/rbi/x_twitter_scraper/models/x/tweets/like_create_params.rbi +6 -0
  125. data/rbi/x_twitter_scraper/models/x/tweets/like_create_response.rbi +1154 -3
  126. data/rbi/x_twitter_scraper/models/x/tweets/like_delete_params.rbi +6 -0
  127. data/rbi/x_twitter_scraper/models/x/tweets/like_delete_response.rbi +1154 -3
  128. data/rbi/x_twitter_scraper/models/x/tweets/retweet_create_params.rbi +6 -0
  129. data/rbi/x_twitter_scraper/models/x/tweets/retweet_create_response.rbi +1154 -3
  130. data/rbi/x_twitter_scraper/models/x/tweets/retweet_delete_params.rbi +6 -0
  131. data/rbi/x_twitter_scraper/models/x/tweets/retweet_delete_response.rbi +1154 -3
  132. data/rbi/x_twitter_scraper/models/x/user_remove_follower_params.rbi +6 -0
  133. data/rbi/x_twitter_scraper/models/x/user_remove_follower_response.rbi +1152 -3
  134. data/rbi/x_twitter_scraper/models/x/user_retrieve_following_params.rbi +2 -2
  135. data/rbi/x_twitter_scraper/models/x/user_retrieve_replies_params.rbi +2 -2
  136. data/rbi/x_twitter_scraper/models/x/users/follow_create_params.rbi +6 -0
  137. data/rbi/x_twitter_scraper/models/x/users/follow_create_response.rbi +1154 -3
  138. data/rbi/x_twitter_scraper/models/x/users/follow_delete_all_params.rbi +6 -0
  139. data/rbi/x_twitter_scraper/models/x/users/follow_delete_all_response.rbi +1154 -3
  140. data/rbi/x_twitter_scraper/models/x/write_action_retrieve_response.rbi +930 -66
  141. data/rbi/x_twitter_scraper/models/x/x_account.rbi +9 -9
  142. data/rbi/x_twitter_scraper/models/x/x_account_detail.rbi +1 -1
  143. data/rbi/x_twitter_scraper/resources/compose.rbi +12 -38
  144. data/rbi/x_twitter_scraper/resources/credits.rbi +1 -1
  145. data/rbi/x_twitter_scraper/resources/extractions.rbi +4 -4
  146. data/rbi/x_twitter_scraper/resources/guest_wallets.rbi +2 -2
  147. data/rbi/x_twitter_scraper/resources/monitors/keywords.rbi +4 -5
  148. data/rbi/x_twitter_scraper/resources/monitors.rbi +3 -3
  149. data/rbi/x_twitter_scraper/resources/support/tickets.rbi +17 -2
  150. data/rbi/x_twitter_scraper/resources/trends.rbi +1 -1
  151. data/rbi/x_twitter_scraper/resources/x/communities/join.rbi +16 -4
  152. data/rbi/x_twitter_scraper/resources/x/communities.rbi +19 -7
  153. data/rbi/x_twitter_scraper/resources/x/dm.rbi +10 -3
  154. data/rbi/x_twitter_scraper/resources/x/media.rbi +9 -4
  155. data/rbi/x_twitter_scraper/resources/x/profile.rbi +27 -8
  156. data/rbi/x_twitter_scraper/resources/x/tweets/like.rbi +16 -4
  157. data/rbi/x_twitter_scraper/resources/x/tweets/retweet.rbi +16 -4
  158. data/rbi/x_twitter_scraper/resources/x/tweets.rbi +31 -12
  159. data/rbi/x_twitter_scraper/resources/x/users/follow.rbi +16 -4
  160. data/rbi/x_twitter_scraper/resources/x/users.rbi +13 -7
  161. data/rbi/x_twitter_scraper/resources/x.rbi +1 -2
  162. data/sig/x_twitter_scraper/models/compose_create_params.rbs +150 -90
  163. data/sig/x_twitter_scraper/models/compose_create_response.rbs +249 -27
  164. data/sig/x_twitter_scraper/models/error.rbs +170 -7
  165. data/sig/x_twitter_scraper/models/guest_wallet_create_response.rbs +35 -5
  166. data/sig/x_twitter_scraper/models/guest_wallet_topup_response.rbs +35 -5
  167. data/sig/x_twitter_scraper/models/support/ticket_create_params.rbs +7 -1
  168. data/sig/x_twitter_scraper/models/support/ticket_create_response.rbs +49 -5
  169. data/sig/x_twitter_scraper/models/support/ticket_reply_params.rbs +7 -1
  170. data/sig/x_twitter_scraper/models/support/ticket_reply_response.rbs +49 -5
  171. data/sig/x_twitter_scraper/models/support/ticket_retrieve_response.rbs +113 -2
  172. data/sig/x_twitter_scraper/models/x/communities/join_create_params.rbs +5 -1
  173. data/sig/x_twitter_scraper/models/x/communities/join_create_response.rbs +540 -4
  174. data/sig/x_twitter_scraper/models/x/communities/join_delete_all_params.rbs +5 -1
  175. data/sig/x_twitter_scraper/models/x/communities/join_delete_all_response.rbs +540 -4
  176. data/sig/x_twitter_scraper/models/x/community_create_params.rbs +10 -1
  177. data/sig/x_twitter_scraper/models/x/community_create_response.rbs +528 -7
  178. data/sig/x_twitter_scraper/models/x/community_delete_params.rbs +10 -1
  179. data/sig/x_twitter_scraper/models/x/community_delete_response.rbs +540 -4
  180. data/sig/x_twitter_scraper/models/x/dm_send_params.rbs +5 -0
  181. data/sig/x_twitter_scraper/models/x/dm_send_response.rbs +539 -5
  182. data/sig/x_twitter_scraper/models/x/media_upload_params.rbs +5 -1
  183. data/sig/x_twitter_scraper/models/x/media_upload_response.rbs +534 -7
  184. data/sig/x_twitter_scraper/models/x/profile_update_avatar_params.rbs +5 -1
  185. data/sig/x_twitter_scraper/models/x/profile_update_avatar_response.rbs +540 -4
  186. data/sig/x_twitter_scraper/models/x/profile_update_banner_params.rbs +5 -1
  187. data/sig/x_twitter_scraper/models/x/profile_update_banner_response.rbs +540 -4
  188. data/sig/x_twitter_scraper/models/x/profile_update_params.rbs +5 -0
  189. data/sig/x_twitter_scraper/models/x/profile_update_response.rbs +540 -4
  190. data/sig/x_twitter_scraper/models/x/tweet_author.rbs +3 -11
  191. data/sig/x_twitter_scraper/models/x/tweet_create_params.rbs +4 -6
  192. data/sig/x_twitter_scraper/models/x/tweet_create_response.rbs +518 -11
  193. data/sig/x_twitter_scraper/models/x/tweet_delete_params.rbs +5 -1
  194. data/sig/x_twitter_scraper/models/x/tweet_delete_response.rbs +540 -4
  195. data/sig/x_twitter_scraper/models/x/tweets/like_create_params.rbs +5 -1
  196. data/sig/x_twitter_scraper/models/x/tweets/like_create_response.rbs +540 -4
  197. data/sig/x_twitter_scraper/models/x/tweets/like_delete_params.rbs +5 -1
  198. data/sig/x_twitter_scraper/models/x/tweets/like_delete_response.rbs +540 -4
  199. data/sig/x_twitter_scraper/models/x/tweets/retweet_create_params.rbs +5 -1
  200. data/sig/x_twitter_scraper/models/x/tweets/retweet_create_response.rbs +540 -4
  201. data/sig/x_twitter_scraper/models/x/tweets/retweet_delete_params.rbs +5 -1
  202. data/sig/x_twitter_scraper/models/x/tweets/retweet_delete_response.rbs +540 -4
  203. data/sig/x_twitter_scraper/models/x/user_remove_follower_params.rbs +5 -1
  204. data/sig/x_twitter_scraper/models/x/user_remove_follower_response.rbs +540 -4
  205. data/sig/x_twitter_scraper/models/x/users/follow_create_params.rbs +5 -1
  206. data/sig/x_twitter_scraper/models/x/users/follow_create_response.rbs +540 -4
  207. data/sig/x_twitter_scraper/models/x/users/follow_delete_all_params.rbs +5 -1
  208. data/sig/x_twitter_scraper/models/x/users/follow_delete_all_response.rbs +540 -4
  209. data/sig/x_twitter_scraper/models/x/write_action_retrieve_response.rbs +428 -54
  210. data/sig/x_twitter_scraper/resources/compose.rbs +2 -12
  211. data/sig/x_twitter_scraper/resources/support/tickets.rbs +2 -0
  212. data/sig/x_twitter_scraper/resources/x/communities/join.rbs +2 -0
  213. data/sig/x_twitter_scraper/resources/x/communities.rbs +2 -0
  214. data/sig/x_twitter_scraper/resources/x/dm.rbs +1 -0
  215. data/sig/x_twitter_scraper/resources/x/media.rbs +1 -0
  216. data/sig/x_twitter_scraper/resources/x/profile.rbs +3 -0
  217. data/sig/x_twitter_scraper/resources/x/tweets/like.rbs +2 -0
  218. data/sig/x_twitter_scraper/resources/x/tweets/retweet.rbs +2 -0
  219. data/sig/x_twitter_scraper/resources/x/tweets.rbs +2 -1
  220. data/sig/x_twitter_scraper/resources/x/users/follow.rbs +2 -0
  221. data/sig/x_twitter_scraper/resources/x/users.rbs +1 -0
  222. metadata +17 -26
@@ -12,16 +12,1153 @@ module XTwitterScraper
12
12
  )
13
13
  end
14
14
 
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # Connected account selected for the write.
19
+ sig do
20
+ returns(
21
+ T.nilable(XTwitterScraper::Models::X::TweetDeleteResponse::Account)
22
+ )
23
+ end
24
+ attr_reader :account
25
+
26
+ sig do
27
+ params(
28
+ account:
29
+ T.nilable(
30
+ XTwitterScraper::Models::X::TweetDeleteResponse::Account::OrHash
31
+ )
32
+ ).void
33
+ end
34
+ attr_writer :account
35
+
36
+ sig do
37
+ returns(
38
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
39
+ )
40
+ end
41
+ attr_accessor :action
42
+
43
+ # plannedCredits is the approved maximum. chargedCredits comes from the settled
44
+ # credit ledger. Pending or failed writes are not charged.
45
+ sig do
46
+ returns(XTwitterScraper::Models::X::TweetDeleteResponse::Billing)
47
+ end
48
+ attr_reader :billing
49
+
50
+ sig do
51
+ params(
52
+ billing:
53
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::OrHash
54
+ ).void
55
+ end
56
+ attr_writer :billing
57
+
58
+ sig { returns(T::Boolean) }
59
+ attr_accessor :charged
60
+
61
+ sig { returns(String) }
62
+ attr_accessor :charged_credits
63
+
64
+ # Exact follow-up an API client or agent should perform.
65
+ sig do
66
+ returns(
67
+ T.nilable(
68
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction
69
+ )
70
+ )
71
+ end
72
+ attr_reader :next_action
73
+
74
+ sig do
75
+ params(
76
+ next_action:
77
+ T.nilable(
78
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::OrHash
79
+ )
80
+ ).void
81
+ end
82
+ attr_writer :next_action
83
+
84
+ sig { returns(Symbol) }
85
+ attr_accessor :object
86
+
87
+ sig { returns(T.nilable(Integer)) }
88
+ attr_accessor :poll_after_ms
89
+
90
+ # Stable fingerprint and sanitized payload for replay checks.
91
+ sig do
92
+ returns(XTwitterScraper::Models::X::TweetDeleteResponse::Request)
93
+ end
94
+ attr_reader :request
95
+
96
+ sig do
97
+ params(
98
+ request:
99
+ XTwitterScraper::Models::X::TweetDeleteResponse::Request::OrHash
100
+ ).void
101
+ end
102
+ attr_writer :request
103
+
104
+ # Confirmed result produced by the write, when available.
105
+ sig do
106
+ returns(
107
+ T.nilable(XTwitterScraper::Models::X::TweetDeleteResponse::Result)
108
+ )
109
+ end
110
+ attr_reader :result
111
+
112
+ sig do
113
+ params(
114
+ result:
115
+ T.nilable(
116
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::OrHash
117
+ )
118
+ ).void
119
+ end
120
+ attr_writer :result
121
+
122
+ # True only when a new attempt can reasonably succeed.
123
+ sig { returns(T::Boolean) }
124
+ attr_accessor :retryable
125
+
126
+ # True only when no write was dispatched and a new idempotency key may be used.
127
+ sig { returns(T::Boolean) }
128
+ attr_accessor :safe_to_retry
129
+
130
+ sig { returns(T::Boolean) }
131
+ attr_accessor :send_dispatched
132
+
133
+ sig do
134
+ returns(
135
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
136
+ )
137
+ end
138
+ attr_accessor :status
139
+
140
+ sig { returns(String) }
141
+ attr_accessor :status_url
142
+
15
143
  sig { returns(T::Boolean) }
16
144
  attr_accessor :success
17
145
 
18
- sig { params(success: T::Boolean).returns(T.attached_class) }
19
- def self.new(success: true)
146
+ # Existing X resource targeted by the write, when applicable.
147
+ sig do
148
+ returns(
149
+ T.nilable(XTwitterScraper::Models::X::TweetDeleteResponse::Target)
150
+ )
151
+ end
152
+ attr_reader :target
153
+
154
+ sig do
155
+ params(
156
+ target:
157
+ T.nilable(
158
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::OrHash
159
+ )
160
+ ).void
161
+ end
162
+ attr_writer :target
163
+
164
+ sig { returns(T.nilable(String)) }
165
+ attr_accessor :target_id
166
+
167
+ sig { returns(T::Boolean) }
168
+ attr_accessor :terminal
169
+
170
+ sig { returns(String) }
171
+ attr_accessor :write_action_id
172
+
173
+ # Compatibility field for a confirmed community ID.
174
+ sig { returns(T.nilable(String)) }
175
+ attr_reader :community_id
176
+
177
+ sig { params(community_id: String).void }
178
+ attr_writer :community_id
179
+
180
+ # Confirmed community name when available.
181
+ sig { returns(T.nilable(String)) }
182
+ attr_reader :community_name
183
+
184
+ sig { params(community_name: String).void }
185
+ attr_writer :community_name
186
+
187
+ sig { returns(T.nilable(Time)) }
188
+ attr_reader :completed_at
189
+
190
+ sig { params(completed_at: Time).void }
191
+ attr_writer :completed_at
192
+
193
+ sig { returns(T.nilable(Integer)) }
194
+ attr_reader :confirmation_attempts
195
+
196
+ sig { params(confirmation_attempts: Integer).void }
197
+ attr_writer :confirmation_attempts
198
+
199
+ sig { returns(T.nilable(Time)) }
200
+ attr_reader :confirmation_checked_at
201
+
202
+ sig { params(confirmation_checked_at: Time).void }
203
+ attr_writer :confirmation_checked_at
204
+
205
+ sig { returns(T.nilable(Time)) }
206
+ attr_reader :confirmed_at
207
+
208
+ sig { params(confirmed_at: Time).void }
209
+ attr_writer :confirmed_at
210
+
211
+ sig { returns(T.nilable(Time)) }
212
+ attr_reader :created_at
213
+
214
+ sig { params(created_at: Time).void }
215
+ attr_writer :created_at
216
+
217
+ # Structured recovery context for a failed write.
218
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
219
+ attr_reader :details
220
+
221
+ sig { params(details: T::Hash[Symbol, T.anything]).void }
222
+ attr_writer :details
223
+
224
+ sig { returns(T.nilable(String)) }
225
+ attr_reader :error
226
+
227
+ sig { params(error: String).void }
228
+ attr_writer :error
229
+
230
+ # Deadline for resolving a non-terminal write. This is not the Idempotency-Key
231
+ # retention deadline.
232
+ sig { returns(T.nilable(Time)) }
233
+ attr_reader :expires_at
234
+
235
+ sig { params(expires_at: Time).void }
236
+ attr_writer :expires_at
237
+
238
+ sig { returns(T.nilable(T::Boolean)) }
239
+ attr_reader :idempotent
240
+
241
+ sig { params(idempotent: T::Boolean).void }
242
+ attr_writer :idempotent
243
+
244
+ # Media count, kind, size, and billing details when used.
245
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
246
+ attr_reader :media
247
+
248
+ sig { params(media: T::Hash[Symbol, T.anything]).void }
249
+ attr_writer :media
250
+
251
+ # Compatibility field for a confirmed media upload ID.
252
+ sig { returns(T.nilable(String)) }
253
+ attr_reader :media_id
254
+
255
+ sig { params(media_id: String).void }
256
+ attr_writer :media_id
257
+
258
+ # Public media URL when the upload creates one.
259
+ sig { returns(T.nilable(String)) }
260
+ attr_reader :media_url
261
+
262
+ sig { params(media_url: String).void }
263
+ attr_writer :media_url
264
+
265
+ sig { returns(T.nilable(String)) }
266
+ attr_reader :message
267
+
268
+ sig { params(message: String).void }
269
+ attr_writer :message
270
+
271
+ # Compatibility field for a confirmed direct message ID.
272
+ sig { returns(T.nilable(String)) }
273
+ attr_reader :message_id
274
+
275
+ sig { params(message_id: String).void }
276
+ attr_writer :message_id
277
+
278
+ sig { returns(T.nilable(String)) }
279
+ attr_reader :request_hash
280
+
281
+ sig { params(request_hash: String).void }
282
+ attr_writer :request_hash
283
+
284
+ sig { returns(T.nilable(String)) }
285
+ attr_reader :request_id
286
+
287
+ sig { params(request_id: String).void }
288
+ attr_writer :request_id
289
+
290
+ # Compatibility result ID for other write actions.
291
+ sig { returns(T.nilable(String)) }
292
+ attr_reader :result_id
293
+
294
+ sig { params(result_id: String).void }
295
+ attr_writer :result_id
296
+
297
+ # Dispatch timestamp when the write reached execution.
298
+ sig { returns(T.nilable(Time)) }
299
+ attr_reader :send_dispatched_at
300
+
301
+ sig { params(send_dispatched_at: Time).void }
302
+ attr_writer :send_dispatched_at
303
+
304
+ # Compatibility field for a confirmed tweet result ID.
305
+ sig { returns(T.nilable(String)) }
306
+ attr_reader :tweet_id
307
+
308
+ sig { params(tweet_id: String).void }
309
+ attr_writer :tweet_id
310
+
311
+ sig { returns(T.nilable(Time)) }
312
+ attr_reader :updated_at
313
+
314
+ sig { params(updated_at: Time).void }
315
+ attr_writer :updated_at
316
+
317
+ # Durable write lifecycle record. Poll statusUrl until terminal is true. Reusing
318
+ # the original Idempotency-Key returns this same record. Submit a new write only
319
+ # when safeToRetry is true, using a new key.
320
+ sig do
321
+ params(
322
+ id: String,
323
+ account:
324
+ T.nilable(
325
+ XTwitterScraper::Models::X::TweetDeleteResponse::Account::OrHash
326
+ ),
327
+ action:
328
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::OrSymbol,
329
+ billing:
330
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::OrHash,
331
+ charged: T::Boolean,
332
+ charged_credits: String,
333
+ next_action:
334
+ T.nilable(
335
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::OrHash
336
+ ),
337
+ poll_after_ms: T.nilable(Integer),
338
+ request:
339
+ XTwitterScraper::Models::X::TweetDeleteResponse::Request::OrHash,
340
+ result:
341
+ T.nilable(
342
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::OrHash
343
+ ),
344
+ retryable: T::Boolean,
345
+ safe_to_retry: T::Boolean,
346
+ send_dispatched: T::Boolean,
347
+ status:
348
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::OrSymbol,
349
+ status_url: String,
350
+ success: T::Boolean,
351
+ target:
352
+ T.nilable(
353
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::OrHash
354
+ ),
355
+ target_id: T.nilable(String),
356
+ terminal: T::Boolean,
357
+ write_action_id: String,
358
+ community_id: String,
359
+ community_name: String,
360
+ completed_at: Time,
361
+ confirmation_attempts: Integer,
362
+ confirmation_checked_at: Time,
363
+ confirmed_at: Time,
364
+ created_at: Time,
365
+ details: T::Hash[Symbol, T.anything],
366
+ error: String,
367
+ expires_at: Time,
368
+ idempotent: T::Boolean,
369
+ media: T::Hash[Symbol, T.anything],
370
+ media_id: String,
371
+ media_url: String,
372
+ message: String,
373
+ message_id: String,
374
+ request_hash: String,
375
+ request_id: String,
376
+ result_id: String,
377
+ send_dispatched_at: Time,
378
+ tweet_id: String,
379
+ updated_at: Time,
380
+ object: Symbol
381
+ ).returns(T.attached_class)
382
+ end
383
+ def self.new(
384
+ id:,
385
+ # Connected account selected for the write.
386
+ account:,
387
+ action:,
388
+ # plannedCredits is the approved maximum. chargedCredits comes from the settled
389
+ # credit ledger. Pending or failed writes are not charged.
390
+ billing:,
391
+ charged:,
392
+ charged_credits:,
393
+ # Exact follow-up an API client or agent should perform.
394
+ next_action:,
395
+ poll_after_ms:,
396
+ # Stable fingerprint and sanitized payload for replay checks.
397
+ request:,
398
+ # Confirmed result produced by the write, when available.
399
+ result:,
400
+ # True only when a new attempt can reasonably succeed.
401
+ retryable:,
402
+ # True only when no write was dispatched and a new idempotency key may be used.
403
+ safe_to_retry:,
404
+ send_dispatched:,
405
+ status:,
406
+ status_url:,
407
+ success:,
408
+ # Existing X resource targeted by the write, when applicable.
409
+ target:,
410
+ target_id:,
411
+ terminal:,
412
+ write_action_id:,
413
+ # Compatibility field for a confirmed community ID.
414
+ community_id: nil,
415
+ # Confirmed community name when available.
416
+ community_name: nil,
417
+ completed_at: nil,
418
+ confirmation_attempts: nil,
419
+ confirmation_checked_at: nil,
420
+ confirmed_at: nil,
421
+ created_at: nil,
422
+ # Structured recovery context for a failed write.
423
+ details: nil,
424
+ error: nil,
425
+ # Deadline for resolving a non-terminal write. This is not the Idempotency-Key
426
+ # retention deadline.
427
+ expires_at: nil,
428
+ idempotent: nil,
429
+ # Media count, kind, size, and billing details when used.
430
+ media: nil,
431
+ # Compatibility field for a confirmed media upload ID.
432
+ media_id: nil,
433
+ # Public media URL when the upload creates one.
434
+ media_url: nil,
435
+ message: nil,
436
+ # Compatibility field for a confirmed direct message ID.
437
+ message_id: nil,
438
+ request_hash: nil,
439
+ request_id: nil,
440
+ # Compatibility result ID for other write actions.
441
+ result_id: nil,
442
+ # Dispatch timestamp when the write reached execution.
443
+ send_dispatched_at: nil,
444
+ # Compatibility field for a confirmed tweet result ID.
445
+ tweet_id: nil,
446
+ updated_at: nil,
447
+ object: :x_write_action
448
+ )
20
449
  end
21
450
 
22
- sig { override.returns({ success: T::Boolean }) }
451
+ sig do
452
+ override.returns(
453
+ {
454
+ id: String,
455
+ account:
456
+ T.nilable(
457
+ XTwitterScraper::Models::X::TweetDeleteResponse::Account
458
+ ),
459
+ action:
460
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol,
461
+ billing: XTwitterScraper::Models::X::TweetDeleteResponse::Billing,
462
+ charged: T::Boolean,
463
+ charged_credits: String,
464
+ next_action:
465
+ T.nilable(
466
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction
467
+ ),
468
+ object: Symbol,
469
+ poll_after_ms: T.nilable(Integer),
470
+ request: XTwitterScraper::Models::X::TweetDeleteResponse::Request,
471
+ result:
472
+ T.nilable(
473
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result
474
+ ),
475
+ retryable: T::Boolean,
476
+ safe_to_retry: T::Boolean,
477
+ send_dispatched: T::Boolean,
478
+ status:
479
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol,
480
+ status_url: String,
481
+ success: T::Boolean,
482
+ target:
483
+ T.nilable(
484
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target
485
+ ),
486
+ target_id: T.nilable(String),
487
+ terminal: T::Boolean,
488
+ write_action_id: String,
489
+ community_id: String,
490
+ community_name: String,
491
+ completed_at: Time,
492
+ confirmation_attempts: Integer,
493
+ confirmation_checked_at: Time,
494
+ confirmed_at: Time,
495
+ created_at: Time,
496
+ details: T::Hash[Symbol, T.anything],
497
+ error: String,
498
+ expires_at: Time,
499
+ idempotent: T::Boolean,
500
+ media: T::Hash[Symbol, T.anything],
501
+ media_id: String,
502
+ media_url: String,
503
+ message: String,
504
+ message_id: String,
505
+ request_hash: String,
506
+ request_id: String,
507
+ result_id: String,
508
+ send_dispatched_at: Time,
509
+ tweet_id: String,
510
+ updated_at: Time
511
+ }
512
+ )
513
+ end
23
514
  def to_hash
24
515
  end
516
+
517
+ class Account < XTwitterScraper::Internal::Type::BaseModel
518
+ OrHash =
519
+ T.type_alias do
520
+ T.any(
521
+ XTwitterScraper::Models::X::TweetDeleteResponse::Account,
522
+ XTwitterScraper::Internal::AnyHash
523
+ )
524
+ end
525
+
526
+ sig { returns(String) }
527
+ attr_accessor :id
528
+
529
+ sig { returns(String) }
530
+ attr_accessor :username
531
+
532
+ # Connected account selected for the write.
533
+ sig { params(id: String, username: String).returns(T.attached_class) }
534
+ def self.new(id:, username:)
535
+ end
536
+
537
+ sig { override.returns({ id: String, username: String }) }
538
+ def to_hash
539
+ end
540
+ end
541
+
542
+ module Action
543
+ extend XTwitterScraper::Internal::Type::Enum
544
+
545
+ TaggedSymbol =
546
+ T.type_alias do
547
+ T.all(
548
+ Symbol,
549
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action
550
+ )
551
+ end
552
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
553
+
554
+ CREATE_TWEET =
555
+ T.let(
556
+ :create_tweet,
557
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
558
+ )
559
+ DELETE_TWEET =
560
+ T.let(
561
+ :delete_tweet,
562
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
563
+ )
564
+ LIKE =
565
+ T.let(
566
+ :like,
567
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
568
+ )
569
+ UNLIKE =
570
+ T.let(
571
+ :unlike,
572
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
573
+ )
574
+ RETWEET =
575
+ T.let(
576
+ :retweet,
577
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
578
+ )
579
+ UNRETWEET =
580
+ T.let(
581
+ :unretweet,
582
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
583
+ )
584
+ FOLLOW =
585
+ T.let(
586
+ :follow,
587
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
588
+ )
589
+ UNFOLLOW =
590
+ T.let(
591
+ :unfollow,
592
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
593
+ )
594
+ REMOVE_FOLLOWER =
595
+ T.let(
596
+ :remove_follower,
597
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
598
+ )
599
+ SEND_DM =
600
+ T.let(
601
+ :send_dm,
602
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
603
+ )
604
+ UPLOAD_MEDIA =
605
+ T.let(
606
+ :upload_media,
607
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
608
+ )
609
+ UPDATE_PROFILE =
610
+ T.let(
611
+ :update_profile,
612
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
613
+ )
614
+ UPDATE_AVATAR =
615
+ T.let(
616
+ :update_avatar,
617
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
618
+ )
619
+ UPDATE_BANNER =
620
+ T.let(
621
+ :update_banner,
622
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
623
+ )
624
+ CREATE_COMMUNITY =
625
+ T.let(
626
+ :create_community,
627
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
628
+ )
629
+ DELETE_COMMUNITY =
630
+ T.let(
631
+ :delete_community,
632
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
633
+ )
634
+ JOIN_COMMUNITY =
635
+ T.let(
636
+ :join_community,
637
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
638
+ )
639
+ LEAVE_COMMUNITY =
640
+ T.let(
641
+ :leave_community,
642
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
643
+ )
644
+
645
+ sig do
646
+ override.returns(
647
+ T::Array[
648
+ XTwitterScraper::Models::X::TweetDeleteResponse::Action::TaggedSymbol
649
+ ]
650
+ )
651
+ end
652
+ def self.values
653
+ end
654
+ end
655
+
656
+ class Billing < XTwitterScraper::Internal::Type::BaseModel
657
+ OrHash =
658
+ T.type_alias do
659
+ T.any(
660
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing,
661
+ XTwitterScraper::Internal::AnyHash
662
+ )
663
+ end
664
+
665
+ sig { returns(T::Boolean) }
666
+ attr_accessor :charged
667
+
668
+ sig { returns(String) }
669
+ attr_accessor :charged_credits
670
+
671
+ sig { returns(String) }
672
+ attr_accessor :planned_credits
673
+
674
+ sig do
675
+ returns(
676
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
677
+ )
678
+ end
679
+ attr_accessor :status
680
+
681
+ # plannedCredits is the approved maximum. chargedCredits comes from the settled
682
+ # credit ledger. Pending or failed writes are not charged.
683
+ sig do
684
+ params(
685
+ charged: T::Boolean,
686
+ charged_credits: String,
687
+ planned_credits: String,
688
+ status:
689
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::OrSymbol
690
+ ).returns(T.attached_class)
691
+ end
692
+ def self.new(charged:, charged_credits:, planned_credits:, status:)
693
+ end
694
+
695
+ sig do
696
+ override.returns(
697
+ {
698
+ charged: T::Boolean,
699
+ charged_credits: String,
700
+ planned_credits: String,
701
+ status:
702
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
703
+ }
704
+ )
705
+ end
706
+ def to_hash
707
+ end
708
+
709
+ module Status
710
+ extend XTwitterScraper::Internal::Type::Enum
711
+
712
+ TaggedSymbol =
713
+ T.type_alias do
714
+ T.all(
715
+ Symbol,
716
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status
717
+ )
718
+ end
719
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
720
+
721
+ NOT_CHARGED =
722
+ T.let(
723
+ :not_charged,
724
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
725
+ )
726
+ PENDING =
727
+ T.let(
728
+ :pending,
729
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
730
+ )
731
+ CHARGED =
732
+ T.let(
733
+ :charged,
734
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
735
+ )
736
+ CHARGE_FAILED =
737
+ T.let(
738
+ :charge_failed,
739
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
740
+ )
741
+ REFUNDED =
742
+ T.let(
743
+ :refunded,
744
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
745
+ )
746
+
747
+ sig do
748
+ override.returns(
749
+ T::Array[
750
+ XTwitterScraper::Models::X::TweetDeleteResponse::Billing::Status::TaggedSymbol
751
+ ]
752
+ )
753
+ end
754
+ def self.values
755
+ end
756
+ end
757
+ end
758
+
759
+ class NextAction < XTwitterScraper::Internal::Type::BaseModel
760
+ OrHash =
761
+ T.type_alias do
762
+ T.any(
763
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction,
764
+ XTwitterScraper::Internal::AnyHash
765
+ )
766
+ end
767
+
768
+ sig do
769
+ returns(
770
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol
771
+ )
772
+ end
773
+ attr_accessor :type
774
+
775
+ sig { returns(T.nilable(Integer)) }
776
+ attr_reader :after_ms
777
+
778
+ sig { params(after_ms: Integer).void }
779
+ attr_writer :after_ms
780
+
781
+ sig { returns(T.nilable(T::Boolean)) }
782
+ attr_reader :requires_new_idempotency_key
783
+
784
+ sig { params(requires_new_idempotency_key: T::Boolean).void }
785
+ attr_writer :requires_new_idempotency_key
786
+
787
+ sig { returns(T.nilable(String)) }
788
+ attr_reader :url
789
+
790
+ sig { params(url: String).void }
791
+ attr_writer :url
792
+
793
+ # Exact follow-up an API client or agent should perform.
794
+ sig do
795
+ params(
796
+ type:
797
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::OrSymbol,
798
+ after_ms: Integer,
799
+ requires_new_idempotency_key: T::Boolean,
800
+ url: String
801
+ ).returns(T.attached_class)
802
+ end
803
+ def self.new(
804
+ type:,
805
+ after_ms: nil,
806
+ requires_new_idempotency_key: nil,
807
+ url: nil
808
+ )
809
+ end
810
+
811
+ sig do
812
+ override.returns(
813
+ {
814
+ type:
815
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol,
816
+ after_ms: Integer,
817
+ requires_new_idempotency_key: T::Boolean,
818
+ url: String
819
+ }
820
+ )
821
+ end
822
+ def to_hash
823
+ end
824
+
825
+ module Type
826
+ extend XTwitterScraper::Internal::Type::Enum
827
+
828
+ TaggedSymbol =
829
+ T.type_alias do
830
+ T.all(
831
+ Symbol,
832
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type
833
+ )
834
+ end
835
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
836
+
837
+ POLL =
838
+ T.let(
839
+ :poll,
840
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol
841
+ )
842
+ RETRY =
843
+ T.let(
844
+ :retry,
845
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol
846
+ )
847
+ VERIFY_RESULT =
848
+ T.let(
849
+ :verify_result,
850
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol
851
+ )
852
+ FIX_REQUEST =
853
+ T.let(
854
+ :fix_request,
855
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol
856
+ )
857
+
858
+ sig do
859
+ override.returns(
860
+ T::Array[
861
+ XTwitterScraper::Models::X::TweetDeleteResponse::NextAction::Type::TaggedSymbol
862
+ ]
863
+ )
864
+ end
865
+ def self.values
866
+ end
867
+ end
868
+ end
869
+
870
+ class Request < XTwitterScraper::Internal::Type::BaseModel
871
+ OrHash =
872
+ T.type_alias do
873
+ T.any(
874
+ XTwitterScraper::Models::X::TweetDeleteResponse::Request,
875
+ XTwitterScraper::Internal::AnyHash
876
+ )
877
+ end
878
+
879
+ # Stable hash of account, action, target, and payload.
880
+ sig { returns(T.nilable(String)) }
881
+ attr_accessor :hash_
882
+
883
+ # Exact sanitized payload dispatched for this action.
884
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
885
+ attr_accessor :payload
886
+
887
+ # Stable fingerprint and sanitized payload for replay checks.
888
+ sig do
889
+ params(
890
+ hash_: T.nilable(String),
891
+ payload: T.nilable(T::Hash[Symbol, T.anything])
892
+ ).returns(T.attached_class)
893
+ end
894
+ def self.new(
895
+ # Stable hash of account, action, target, and payload.
896
+ hash_:,
897
+ # Exact sanitized payload dispatched for this action.
898
+ payload:
899
+ )
900
+ end
901
+
902
+ sig do
903
+ override.returns(
904
+ {
905
+ hash_: T.nilable(String),
906
+ payload: T.nilable(T::Hash[Symbol, T.anything])
907
+ }
908
+ )
909
+ end
910
+ def to_hash
911
+ end
912
+ end
913
+
914
+ class Result < XTwitterScraper::Internal::Type::BaseModel
915
+ OrHash =
916
+ T.type_alias do
917
+ T.any(
918
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result,
919
+ XTwitterScraper::Internal::AnyHash
920
+ )
921
+ end
922
+
923
+ sig { returns(T.nilable(String)) }
924
+ attr_reader :id
925
+
926
+ sig { params(id: String).void }
927
+ attr_writer :id
928
+
929
+ sig { returns(T.nilable(String)) }
930
+ attr_reader :state
931
+
932
+ sig { params(state: String).void }
933
+ attr_writer :state
934
+
935
+ sig do
936
+ returns(
937
+ T.nilable(
938
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
939
+ )
940
+ )
941
+ end
942
+ attr_reader :type
943
+
944
+ sig do
945
+ params(
946
+ type:
947
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::OrSymbol
948
+ ).void
949
+ end
950
+ attr_writer :type
951
+
952
+ # Confirmed result produced by the write, when available.
953
+ sig do
954
+ params(
955
+ id: String,
956
+ state: String,
957
+ type:
958
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::OrSymbol
959
+ ).returns(T.attached_class)
960
+ end
961
+ def self.new(id: nil, state: nil, type: nil)
962
+ end
963
+
964
+ sig do
965
+ override.returns(
966
+ {
967
+ id: String,
968
+ state: String,
969
+ type:
970
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
971
+ }
972
+ )
973
+ end
974
+ def to_hash
975
+ end
976
+
977
+ module Type
978
+ extend XTwitterScraper::Internal::Type::Enum
979
+
980
+ TaggedSymbol =
981
+ T.type_alias do
982
+ T.all(
983
+ Symbol,
984
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type
985
+ )
986
+ end
987
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
988
+
989
+ TWEET =
990
+ T.let(
991
+ :tweet,
992
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
993
+ )
994
+ DIRECT_MESSAGE =
995
+ T.let(
996
+ :direct_message,
997
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
998
+ )
999
+ MEDIA =
1000
+ T.let(
1001
+ :media,
1002
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
1003
+ )
1004
+ COMMUNITY =
1005
+ T.let(
1006
+ :community,
1007
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
1008
+ )
1009
+ STATE_CHANGE =
1010
+ T.let(
1011
+ :state_change,
1012
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
1013
+ )
1014
+
1015
+ sig do
1016
+ override.returns(
1017
+ T::Array[
1018
+ XTwitterScraper::Models::X::TweetDeleteResponse::Result::Type::TaggedSymbol
1019
+ ]
1020
+ )
1021
+ end
1022
+ def self.values
1023
+ end
1024
+ end
1025
+ end
1026
+
1027
+ module Status
1028
+ extend XTwitterScraper::Internal::Type::Enum
1029
+
1030
+ TaggedSymbol =
1031
+ T.type_alias do
1032
+ T.all(
1033
+ Symbol,
1034
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status
1035
+ )
1036
+ end
1037
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1038
+
1039
+ ACCEPTED =
1040
+ T.let(
1041
+ :accepted,
1042
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1043
+ )
1044
+ DISPATCHING =
1045
+ T.let(
1046
+ :dispatching,
1047
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1048
+ )
1049
+ PENDING_CONFIRMATION =
1050
+ T.let(
1051
+ :pending_confirmation,
1052
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1053
+ )
1054
+ SUCCESS =
1055
+ T.let(
1056
+ :success,
1057
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1058
+ )
1059
+ FAILED =
1060
+ T.let(
1061
+ :failed,
1062
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1063
+ )
1064
+ EXPIRED =
1065
+ T.let(
1066
+ :expired,
1067
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1068
+ )
1069
+
1070
+ sig do
1071
+ override.returns(
1072
+ T::Array[
1073
+ XTwitterScraper::Models::X::TweetDeleteResponse::Status::TaggedSymbol
1074
+ ]
1075
+ )
1076
+ end
1077
+ def self.values
1078
+ end
1079
+ end
1080
+
1081
+ class Target < XTwitterScraper::Internal::Type::BaseModel
1082
+ OrHash =
1083
+ T.type_alias do
1084
+ T.any(
1085
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target,
1086
+ XTwitterScraper::Internal::AnyHash
1087
+ )
1088
+ end
1089
+
1090
+ sig { returns(String) }
1091
+ attr_accessor :id
1092
+
1093
+ sig do
1094
+ returns(
1095
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::TaggedSymbol
1096
+ )
1097
+ end
1098
+ attr_accessor :type
1099
+
1100
+ # Existing X resource targeted by the write, when applicable.
1101
+ sig do
1102
+ params(
1103
+ id: String,
1104
+ type:
1105
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::OrSymbol
1106
+ ).returns(T.attached_class)
1107
+ end
1108
+ def self.new(id:, type:)
1109
+ end
1110
+
1111
+ sig do
1112
+ override.returns(
1113
+ {
1114
+ id: String,
1115
+ type:
1116
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::TaggedSymbol
1117
+ }
1118
+ )
1119
+ end
1120
+ def to_hash
1121
+ end
1122
+
1123
+ module Type
1124
+ extend XTwitterScraper::Internal::Type::Enum
1125
+
1126
+ TaggedSymbol =
1127
+ T.type_alias do
1128
+ T.all(
1129
+ Symbol,
1130
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type
1131
+ )
1132
+ end
1133
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1134
+
1135
+ TWEET =
1136
+ T.let(
1137
+ :tweet,
1138
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::TaggedSymbol
1139
+ )
1140
+ USER =
1141
+ T.let(
1142
+ :user,
1143
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::TaggedSymbol
1144
+ )
1145
+ COMMUNITY =
1146
+ T.let(
1147
+ :community,
1148
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::TaggedSymbol
1149
+ )
1150
+
1151
+ sig do
1152
+ override.returns(
1153
+ T::Array[
1154
+ XTwitterScraper::Models::X::TweetDeleteResponse::Target::Type::TaggedSymbol
1155
+ ]
1156
+ )
1157
+ end
1158
+ def self.values
1159
+ end
1160
+ end
1161
+ end
25
1162
  end
26
1163
  end
27
1164
  end