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
@@ -6,13 +6,585 @@ module XTwitterScraper
6
6
  module Tweets
7
7
  # @see XTwitterScraper::Resources::X::Tweets::Like#delete
8
8
  class LikeDeleteResponse < XTwitterScraper::Internal::Type::BaseModel
9
+ # @!attribute id
10
+ #
11
+ # @return [String]
12
+ required :id, String
13
+
14
+ # @!attribute account
15
+ # Connected account selected for the write.
16
+ #
17
+ # @return [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Account, nil]
18
+ required :account, -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Account }, nil?: true
19
+
20
+ # @!attribute action
21
+ #
22
+ # @return [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Action]
23
+ required :action, enum: -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Action }
24
+
25
+ # @!attribute billing
26
+ # plannedCredits is the approved maximum. chargedCredits comes from the settled
27
+ # credit ledger. Pending or failed writes are not charged.
28
+ #
29
+ # @return [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing]
30
+ required :billing, -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing }
31
+
32
+ # @!attribute charged
33
+ #
34
+ # @return [Boolean]
35
+ required :charged, XTwitterScraper::Internal::Type::Boolean
36
+
37
+ # @!attribute charged_credits
38
+ #
39
+ # @return [String]
40
+ required :charged_credits, String, api_name: :chargedCredits
41
+
42
+ # @!attribute next_action
43
+ # Exact follow-up an API client or agent should perform.
44
+ #
45
+ # @return [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction, nil]
46
+ required :next_action,
47
+ -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction },
48
+ api_name: :nextAction,
49
+ nil?: true
50
+
51
+ # @!attribute object
52
+ #
53
+ # @return [Symbol, :x_write_action]
54
+ required :object, const: :x_write_action
55
+
56
+ # @!attribute poll_after_ms
57
+ #
58
+ # @return [Integer, nil]
59
+ required :poll_after_ms, Integer, api_name: :pollAfterMs, nil?: true
60
+
61
+ # @!attribute request
62
+ # Stable fingerprint and sanitized payload for replay checks.
63
+ #
64
+ # @return [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Request]
65
+ required :request, -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Request }
66
+
67
+ # @!attribute result
68
+ # Confirmed result produced by the write, when available.
69
+ #
70
+ # @return [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result, nil]
71
+ required :result, -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result }, nil?: true
72
+
73
+ # @!attribute retryable
74
+ # True only when a new attempt can reasonably succeed.
75
+ #
76
+ # @return [Boolean]
77
+ required :retryable, XTwitterScraper::Internal::Type::Boolean
78
+
79
+ # @!attribute safe_to_retry
80
+ # True only when no write was dispatched and a new idempotency key may be used.
81
+ #
82
+ # @return [Boolean]
83
+ required :safe_to_retry, XTwitterScraper::Internal::Type::Boolean, api_name: :safeToRetry
84
+
85
+ # @!attribute send_dispatched
86
+ #
87
+ # @return [Boolean]
88
+ required :send_dispatched, XTwitterScraper::Internal::Type::Boolean, api_name: :sendDispatched
89
+
90
+ # @!attribute status
91
+ #
92
+ # @return [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Status]
93
+ required :status, enum: -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Status }
94
+
95
+ # @!attribute status_url
96
+ #
97
+ # @return [String]
98
+ required :status_url, String, api_name: :statusUrl
99
+
9
100
  # @!attribute success
10
101
  #
11
- # @return [Boolean, true]
12
- required :success, const: true
102
+ # @return [Boolean]
103
+ required :success, XTwitterScraper::Internal::Type::Boolean
104
+
105
+ # @!attribute target
106
+ # Existing X resource targeted by the write, when applicable.
107
+ #
108
+ # @return [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target, nil]
109
+ required :target, -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target }, nil?: true
110
+
111
+ # @!attribute target_id
112
+ #
113
+ # @return [String, nil]
114
+ required :target_id, String, api_name: :targetId, nil?: true
115
+
116
+ # @!attribute terminal
117
+ #
118
+ # @return [Boolean]
119
+ required :terminal, XTwitterScraper::Internal::Type::Boolean
120
+
121
+ # @!attribute write_action_id
122
+ #
123
+ # @return [String]
124
+ required :write_action_id, String, api_name: :writeActionId
125
+
126
+ # @!attribute community_id
127
+ # Compatibility field for a confirmed community ID.
128
+ #
129
+ # @return [String, nil]
130
+ optional :community_id, String, api_name: :communityId
131
+
132
+ # @!attribute community_name
133
+ # Confirmed community name when available.
134
+ #
135
+ # @return [String, nil]
136
+ optional :community_name, String, api_name: :communityName
137
+
138
+ # @!attribute completed_at
139
+ #
140
+ # @return [Time, nil]
141
+ optional :completed_at, Time, api_name: :completedAt
142
+
143
+ # @!attribute confirmation_attempts
144
+ #
145
+ # @return [Integer, nil]
146
+ optional :confirmation_attempts, Integer, api_name: :confirmationAttempts
147
+
148
+ # @!attribute confirmation_checked_at
149
+ #
150
+ # @return [Time, nil]
151
+ optional :confirmation_checked_at, Time, api_name: :confirmationCheckedAt
152
+
153
+ # @!attribute confirmed_at
154
+ #
155
+ # @return [Time, nil]
156
+ optional :confirmed_at, Time, api_name: :confirmedAt
157
+
158
+ # @!attribute created_at
159
+ #
160
+ # @return [Time, nil]
161
+ optional :created_at, Time, api_name: :createdAt
162
+
163
+ # @!attribute details
164
+ # Structured recovery context for a failed write.
165
+ #
166
+ # @return [Hash{Symbol=>Object}, nil]
167
+ optional :details, XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::Unknown]
168
+
169
+ # @!attribute error
170
+ #
171
+ # @return [String, nil]
172
+ optional :error, String
173
+
174
+ # @!attribute expires_at
175
+ # Deadline for resolving a non-terminal write. This is not the Idempotency-Key
176
+ # retention deadline.
177
+ #
178
+ # @return [Time, nil]
179
+ optional :expires_at, Time, api_name: :expiresAt
180
+
181
+ # @!attribute idempotent
182
+ #
183
+ # @return [Boolean, nil]
184
+ optional :idempotent, XTwitterScraper::Internal::Type::Boolean
185
+
186
+ # @!attribute media
187
+ # Media count, kind, size, and billing details when used.
188
+ #
189
+ # @return [Hash{Symbol=>Object}, nil]
190
+ optional :media, XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::Unknown]
191
+
192
+ # @!attribute media_id
193
+ # Compatibility field for a confirmed media upload ID.
194
+ #
195
+ # @return [String, nil]
196
+ optional :media_id, String, api_name: :mediaId
197
+
198
+ # @!attribute media_url
199
+ # Public media URL when the upload creates one.
200
+ #
201
+ # @return [String, nil]
202
+ optional :media_url, String, api_name: :mediaUrl
203
+
204
+ # @!attribute message
205
+ #
206
+ # @return [String, nil]
207
+ optional :message, String
208
+
209
+ # @!attribute message_id
210
+ # Compatibility field for a confirmed direct message ID.
211
+ #
212
+ # @return [String, nil]
213
+ optional :message_id, String, api_name: :messageId
214
+
215
+ # @!attribute request_hash
216
+ #
217
+ # @return [String, nil]
218
+ optional :request_hash, String, api_name: :requestHash
219
+
220
+ # @!attribute request_id
221
+ #
222
+ # @return [String, nil]
223
+ optional :request_id, String, api_name: :requestId
224
+
225
+ # @!attribute result_id
226
+ # Compatibility result ID for other write actions.
227
+ #
228
+ # @return [String, nil]
229
+ optional :result_id, String, api_name: :resultId
230
+
231
+ # @!attribute send_dispatched_at
232
+ # Dispatch timestamp when the write reached execution.
233
+ #
234
+ # @return [Time, nil]
235
+ optional :send_dispatched_at, Time, api_name: :sendDispatchedAt
236
+
237
+ # @!attribute tweet_id
238
+ # Compatibility field for a confirmed tweet result ID.
239
+ #
240
+ # @return [String, nil]
241
+ optional :tweet_id, String, api_name: :tweetId
242
+
243
+ # @!attribute updated_at
244
+ #
245
+ # @return [Time, nil]
246
+ optional :updated_at, Time, api_name: :updatedAt
247
+
248
+ # @!method initialize(id:, account:, action:, billing:, charged:, charged_credits:, next_action:, poll_after_ms:, request:, result:, retryable:, safe_to_retry:, send_dispatched:, status:, status_url:, success:, target:, target_id:, terminal:, write_action_id:, community_id: nil, community_name: nil, completed_at: nil, confirmation_attempts: nil, confirmation_checked_at: nil, confirmed_at: nil, created_at: nil, details: nil, error: nil, expires_at: nil, idempotent: nil, media: nil, media_id: nil, media_url: nil, message: nil, message_id: nil, request_hash: nil, request_id: nil, result_id: nil, send_dispatched_at: nil, tweet_id: nil, updated_at: nil, object: :x_write_action)
249
+ # Some parameter documentations has been truncated, see
250
+ # {XTwitterScraper::Models::X::Tweets::LikeDeleteResponse} for more details.
251
+ #
252
+ # Durable write lifecycle record. Poll statusUrl until terminal is true. Reusing
253
+ # the original Idempotency-Key returns this same record. Submit a new write only
254
+ # when safeToRetry is true, using a new key.
255
+ #
256
+ # @param id [String]
257
+ #
258
+ # @param account [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Account, nil] Connected account selected for the write.
259
+ #
260
+ # @param action [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Action]
261
+ #
262
+ # @param billing [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing] plannedCredits is the approved maximum. chargedCredits comes from the settled cr
263
+ #
264
+ # @param charged [Boolean]
265
+ #
266
+ # @param charged_credits [String]
267
+ #
268
+ # @param next_action [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction, nil] Exact follow-up an API client or agent should perform.
269
+ #
270
+ # @param poll_after_ms [Integer, nil]
271
+ #
272
+ # @param request [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Request] Stable fingerprint and sanitized payload for replay checks.
273
+ #
274
+ # @param result [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result, nil] Confirmed result produced by the write, when available.
275
+ #
276
+ # @param retryable [Boolean] True only when a new attempt can reasonably succeed.
277
+ #
278
+ # @param safe_to_retry [Boolean] True only when no write was dispatched and a new idempotency key may be used.
279
+ #
280
+ # @param send_dispatched [Boolean]
281
+ #
282
+ # @param status [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Status]
283
+ #
284
+ # @param status_url [String]
285
+ #
286
+ # @param success [Boolean]
287
+ #
288
+ # @param target [XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target, nil] Existing X resource targeted by the write, when applicable.
289
+ #
290
+ # @param target_id [String, nil]
291
+ #
292
+ # @param terminal [Boolean]
293
+ #
294
+ # @param write_action_id [String]
295
+ #
296
+ # @param community_id [String] Compatibility field for a confirmed community ID.
297
+ #
298
+ # @param community_name [String] Confirmed community name when available.
299
+ #
300
+ # @param completed_at [Time]
301
+ #
302
+ # @param confirmation_attempts [Integer]
303
+ #
304
+ # @param confirmation_checked_at [Time]
305
+ #
306
+ # @param confirmed_at [Time]
307
+ #
308
+ # @param created_at [Time]
309
+ #
310
+ # @param details [Hash{Symbol=>Object}] Structured recovery context for a failed write.
311
+ #
312
+ # @param error [String]
313
+ #
314
+ # @param expires_at [Time] Deadline for resolving a non-terminal write. This is not the Idempotency-Key ret
315
+ #
316
+ # @param idempotent [Boolean]
317
+ #
318
+ # @param media [Hash{Symbol=>Object}] Media count, kind, size, and billing details when used.
319
+ #
320
+ # @param media_id [String] Compatibility field for a confirmed media upload ID.
321
+ #
322
+ # @param media_url [String] Public media URL when the upload creates one.
323
+ #
324
+ # @param message [String]
325
+ #
326
+ # @param message_id [String] Compatibility field for a confirmed direct message ID.
327
+ #
328
+ # @param request_hash [String]
329
+ #
330
+ # @param request_id [String]
331
+ #
332
+ # @param result_id [String] Compatibility result ID for other write actions.
333
+ #
334
+ # @param send_dispatched_at [Time] Dispatch timestamp when the write reached execution.
335
+ #
336
+ # @param tweet_id [String] Compatibility field for a confirmed tweet result ID.
337
+ #
338
+ # @param updated_at [Time]
339
+ #
340
+ # @param object [Symbol, :x_write_action]
341
+
342
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#account
343
+ class Account < XTwitterScraper::Internal::Type::BaseModel
344
+ # @!attribute id
345
+ #
346
+ # @return [String]
347
+ required :id, String
348
+
349
+ # @!attribute username
350
+ #
351
+ # @return [String]
352
+ required :username, String
353
+
354
+ # @!method initialize(id:, username:)
355
+ # Connected account selected for the write.
356
+ #
357
+ # @param id [String]
358
+ # @param username [String]
359
+ end
360
+
361
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#action
362
+ module Action
363
+ extend XTwitterScraper::Internal::Type::Enum
364
+
365
+ CREATE_TWEET = :create_tweet
366
+ DELETE_TWEET = :delete_tweet
367
+ LIKE = :like
368
+ UNLIKE = :unlike
369
+ RETWEET = :retweet
370
+ UNRETWEET = :unretweet
371
+ FOLLOW = :follow
372
+ UNFOLLOW = :unfollow
373
+ REMOVE_FOLLOWER = :remove_follower
374
+ SEND_DM = :send_dm
375
+ UPLOAD_MEDIA = :upload_media
376
+ UPDATE_PROFILE = :update_profile
377
+ UPDATE_AVATAR = :update_avatar
378
+ UPDATE_BANNER = :update_banner
379
+ CREATE_COMMUNITY = :create_community
380
+ DELETE_COMMUNITY = :delete_community
381
+ JOIN_COMMUNITY = :join_community
382
+ LEAVE_COMMUNITY = :leave_community
383
+
384
+ # @!method self.values
385
+ # @return [Array<Symbol>]
386
+ end
387
+
388
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#billing
389
+ class Billing < XTwitterScraper::Internal::Type::BaseModel
390
+ # @!attribute charged
391
+ #
392
+ # @return [Boolean]
393
+ required :charged, XTwitterScraper::Internal::Type::Boolean
394
+
395
+ # @!attribute charged_credits
396
+ #
397
+ # @return [String]
398
+ required :charged_credits, String, api_name: :chargedCredits
399
+
400
+ # @!attribute planned_credits
401
+ #
402
+ # @return [String]
403
+ required :planned_credits, String, api_name: :plannedCredits
404
+
405
+ # @!attribute status
406
+ #
407
+ # @return [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing::Status]
408
+ required :status, enum: -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing::Status }
409
+
410
+ # @!method initialize(charged:, charged_credits:, planned_credits:, status:)
411
+ # plannedCredits is the approved maximum. chargedCredits comes from the settled
412
+ # credit ledger. Pending or failed writes are not charged.
413
+ #
414
+ # @param charged [Boolean]
415
+ # @param charged_credits [String]
416
+ # @param planned_credits [String]
417
+ # @param status [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing::Status]
418
+
419
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Billing#status
420
+ module Status
421
+ extend XTwitterScraper::Internal::Type::Enum
422
+
423
+ NOT_CHARGED = :not_charged
424
+ PENDING = :pending
425
+ CHARGED = :charged
426
+ CHARGE_FAILED = :charge_failed
427
+ REFUNDED = :refunded
428
+
429
+ # @!method self.values
430
+ # @return [Array<Symbol>]
431
+ end
432
+ end
433
+
434
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#next_action
435
+ class NextAction < XTwitterScraper::Internal::Type::BaseModel
436
+ # @!attribute type
437
+ #
438
+ # @return [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction::Type]
439
+ required :type, enum: -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction::Type }
440
+
441
+ # @!attribute after_ms
442
+ #
443
+ # @return [Integer, nil]
444
+ optional :after_ms, Integer, api_name: :afterMs
445
+
446
+ # @!attribute requires_new_idempotency_key
447
+ #
448
+ # @return [Boolean, nil]
449
+ optional :requires_new_idempotency_key,
450
+ XTwitterScraper::Internal::Type::Boolean,
451
+ api_name: :requiresNewIdempotencyKey
452
+
453
+ # @!attribute url
454
+ #
455
+ # @return [String, nil]
456
+ optional :url, String
457
+
458
+ # @!method initialize(type:, after_ms: nil, requires_new_idempotency_key: nil, url: nil)
459
+ # Exact follow-up an API client or agent should perform.
460
+ #
461
+ # @param type [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction::Type]
462
+ # @param after_ms [Integer]
463
+ # @param requires_new_idempotency_key [Boolean]
464
+ # @param url [String]
465
+
466
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::NextAction#type
467
+ module Type
468
+ extend XTwitterScraper::Internal::Type::Enum
469
+
470
+ POLL = :poll
471
+ RETRY = :retry
472
+ VERIFY_RESULT = :verify_result
473
+ FIX_REQUEST = :fix_request
474
+
475
+ # @!method self.values
476
+ # @return [Array<Symbol>]
477
+ end
478
+ end
479
+
480
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#request
481
+ class Request < XTwitterScraper::Internal::Type::BaseModel
482
+ # @!attribute hash_
483
+ # Stable hash of account, action, target, and payload.
484
+ #
485
+ # @return [String, nil]
486
+ required :hash_, String, api_name: :hash, nil?: true
487
+
488
+ # @!attribute payload
489
+ # Exact sanitized payload dispatched for this action.
490
+ #
491
+ # @return [Hash{Symbol=>Object}, nil]
492
+ required :payload,
493
+ XTwitterScraper::Internal::Type::HashOf[XTwitterScraper::Internal::Type::Unknown],
494
+ nil?: true
495
+
496
+ # @!method initialize(hash_:, payload:)
497
+ # Stable fingerprint and sanitized payload for replay checks.
498
+ #
499
+ # @param hash_ [String, nil] Stable hash of account, action, target, and payload.
500
+ #
501
+ # @param payload [Hash{Symbol=>Object}, nil] Exact sanitized payload dispatched for this action.
502
+ end
503
+
504
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#result
505
+ class Result < XTwitterScraper::Internal::Type::BaseModel
506
+ # @!attribute id
507
+ #
508
+ # @return [String, nil]
509
+ optional :id, String
510
+
511
+ # @!attribute state
512
+ #
513
+ # @return [String, nil]
514
+ optional :state, String
515
+
516
+ # @!attribute type
517
+ #
518
+ # @return [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result::Type, nil]
519
+ optional :type, enum: -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result::Type }
520
+
521
+ # @!method initialize(id: nil, state: nil, type: nil)
522
+ # Confirmed result produced by the write, when available.
523
+ #
524
+ # @param id [String]
525
+ # @param state [String]
526
+ # @param type [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result::Type]
527
+
528
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Result#type
529
+ module Type
530
+ extend XTwitterScraper::Internal::Type::Enum
531
+
532
+ TWEET = :tweet
533
+ DIRECT_MESSAGE = :direct_message
534
+ MEDIA = :media
535
+ COMMUNITY = :community
536
+ STATE_CHANGE = :state_change
537
+
538
+ # @!method self.values
539
+ # @return [Array<Symbol>]
540
+ end
541
+ end
542
+
543
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#status
544
+ module Status
545
+ extend XTwitterScraper::Internal::Type::Enum
546
+
547
+ ACCEPTED = :accepted
548
+ DISPATCHING = :dispatching
549
+ PENDING_CONFIRMATION = :pending_confirmation
550
+ SUCCESS = :success
551
+ FAILED = :failed
552
+ EXPIRED = :expired
553
+
554
+ # @!method self.values
555
+ # @return [Array<Symbol>]
556
+ end
557
+
558
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse#target
559
+ class Target < XTwitterScraper::Internal::Type::BaseModel
560
+ # @!attribute id
561
+ #
562
+ # @return [String]
563
+ required :id, String
564
+
565
+ # @!attribute type
566
+ #
567
+ # @return [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target::Type]
568
+ required :type, enum: -> { XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target::Type }
569
+
570
+ # @!method initialize(id:, type:)
571
+ # Existing X resource targeted by the write, when applicable.
572
+ #
573
+ # @param id [String]
574
+ # @param type [Symbol, XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target::Type]
575
+
576
+ # @see XTwitterScraper::Models::X::Tweets::LikeDeleteResponse::Target#type
577
+ module Type
578
+ extend XTwitterScraper::Internal::Type::Enum
579
+
580
+ TWEET = :tweet
581
+ USER = :user
582
+ COMMUNITY = :community
13
583
 
14
- # @!method initialize(success: true)
15
- # @param success [Boolean, true]
584
+ # @!method self.values
585
+ # @return [Array<Symbol>]
586
+ end
587
+ end
16
588
  end
17
589
  end
18
590
  end
@@ -20,11 +20,18 @@ module XTwitterScraper
20
20
  # @return [String]
21
21
  required :account, String
22
22
 
23
- # @!method initialize(id:, account:, request_options: {})
23
+ # @!attribute idempotency_key
24
+ #
25
+ # @return [String]
26
+ required :idempotency_key, String
27
+
28
+ # @!method initialize(id:, account:, idempotency_key:, request_options: {})
24
29
  # @param id [String]
25
30
  #
26
31
  # @param account [String] X account identifier (@username or account ID)
27
32
  #
33
+ # @param idempotency_key [String]
34
+ #
28
35
  # @param request_options [XTwitterScraper::RequestOptions, Hash{Symbol=>Object}]
29
36
  end
30
37
  end