whop_sdk 0.0.37 → 0.0.39

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 (248) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +61 -0
  3. data/README.md +1 -1
  4. data/lib/whop_sdk/client.rb +76 -10
  5. data/lib/whop_sdk/helpers/verify_user_token.rb +166 -34
  6. data/lib/whop_sdk/models/ad_campaign_list_params.rb +101 -0
  7. data/lib/whop_sdk/models/ad_campaign_list_response.rb +126 -0
  8. data/lib/whop_sdk/models/ad_campaign_pause_params.rb +20 -0
  9. data/lib/whop_sdk/models/ad_campaign_pause_response.rb +328 -0
  10. data/lib/whop_sdk/models/ad_campaign_retrieve_params.rb +20 -0
  11. data/lib/whop_sdk/models/ad_campaign_retrieve_response.rb +328 -0
  12. data/lib/whop_sdk/models/ad_campaign_unpause_params.rb +20 -0
  13. data/lib/whop_sdk/models/ad_campaign_unpause_response.rb +328 -0
  14. data/lib/whop_sdk/models/ad_campaign_update_params.rb +33 -0
  15. data/lib/whop_sdk/models/ad_campaign_update_response.rb +328 -0
  16. data/lib/whop_sdk/models/ad_group_delete_params.rb +20 -0
  17. data/lib/whop_sdk/models/ad_group_delete_response.rb +8 -0
  18. data/lib/whop_sdk/models/ad_group_list_params.rb +109 -0
  19. data/lib/whop_sdk/models/ad_group_list_response.rb +118 -0
  20. data/lib/whop_sdk/models/ad_group_retrieve_params.rb +20 -0
  21. data/lib/whop_sdk/models/ad_group_retrieve_response.rb +140 -0
  22. data/lib/whop_sdk/models/ad_group_update_params.rb +3207 -0
  23. data/lib/whop_sdk/models/ad_group_update_response.rb +140 -0
  24. data/lib/whop_sdk/models/ad_list_params.rb +115 -0
  25. data/lib/whop_sdk/models/ad_list_response.rb +89 -0
  26. data/lib/whop_sdk/models/ad_report_retrieve_params.rb +77 -0
  27. data/lib/whop_sdk/models/ad_report_retrieve_response.rb +312 -0
  28. data/lib/whop_sdk/models/ad_retrieve_params.rb +20 -0
  29. data/lib/whop_sdk/models/ad_retrieve_response.rb +133 -0
  30. data/lib/whop_sdk/models/authorized_user_roles.rb +1 -0
  31. data/lib/whop_sdk/models/bounty_create_params.rb +105 -0
  32. data/lib/whop_sdk/models/bounty_create_response.rb +126 -0
  33. data/lib/whop_sdk/models/bounty_list_params.rb +85 -0
  34. data/lib/whop_sdk/models/bounty_list_response.rb +126 -0
  35. data/lib/whop_sdk/models/bounty_retrieve_params.rb +20 -0
  36. data/lib/whop_sdk/models/bounty_retrieve_response.rb +126 -0
  37. data/lib/whop_sdk/models/checkout_configuration.rb +20 -2
  38. data/lib/whop_sdk/models/checkout_configuration_create_params.rb +97 -23
  39. data/lib/whop_sdk/models/checkout_configuration_list_response.rb +20 -2
  40. data/lib/whop_sdk/models/company_create_api_key_params.rb +109 -0
  41. data/lib/whop_sdk/models/company_create_api_key_response.rb +35 -0
  42. data/lib/whop_sdk/models/conversion_create_params.rb +462 -0
  43. data/lib/whop_sdk/models/conversion_create_response.rb +19 -0
  44. data/lib/whop_sdk/models/currency.rb +1 -0
  45. data/lib/whop_sdk/models/file_create_params.rb +22 -1
  46. data/lib/whop_sdk/models/file_create_response.rb +26 -3
  47. data/lib/whop_sdk/models/file_retrieve_response.rb +26 -3
  48. data/lib/whop_sdk/models/forum_post_list_params.rb +9 -1
  49. data/lib/whop_sdk/models/forum_update_params.rb +10 -1
  50. data/lib/whop_sdk/models/invoice_create_params.rb +36 -18
  51. data/lib/whop_sdk/models/invoice_update_params.rb +29 -7
  52. data/lib/whop_sdk/models/ledger_account_retrieve_response.rb +2 -2
  53. data/lib/whop_sdk/models/membership.rb +11 -1
  54. data/lib/whop_sdk/models/membership_list_response.rb +11 -1
  55. data/lib/whop_sdk/models/payment.rb +47 -2
  56. data/lib/whop_sdk/models/payment_list_response.rb +29 -2
  57. data/lib/whop_sdk/models/payment_method_types.rb +16 -0
  58. data/lib/whop_sdk/models/payment_refund_params.rb +4 -3
  59. data/lib/whop_sdk/models/payout_account_retrieve_response.rb +2 -2
  60. data/lib/whop_sdk/models/payout_account_status_updated_webhook_event.rb +2 -2
  61. data/lib/whop_sdk/models/plan.rb +12 -3
  62. data/lib/whop_sdk/models/plan_create_params.rb +26 -6
  63. data/lib/whop_sdk/models/plan_list_response.rb +12 -3
  64. data/lib/whop_sdk/models/plan_update_params.rb +26 -6
  65. data/lib/whop_sdk/models/support_channel_list_params.rb +31 -9
  66. data/lib/whop_sdk/models/user_retrieve_params.rb +14 -1
  67. data/lib/whop_sdk/models/{user_update_profile_params.rb → user_update_params.rb} +24 -7
  68. data/lib/whop_sdk/models/verification_list_response.rb +2 -2
  69. data/lib/whop_sdk/models/verification_retrieve_response.rb +2 -2
  70. data/lib/whop_sdk/models/verification_status.rb +1 -0
  71. data/lib/whop_sdk/models/verification_succeeded_webhook_event.rb +2 -2
  72. data/lib/whop_sdk/models.rb +35 -1
  73. data/lib/whop_sdk/resources/ad_campaigns.rb +163 -0
  74. data/lib/whop_sdk/resources/ad_groups.rb +151 -0
  75. data/lib/whop_sdk/resources/ad_reports.rb +59 -0
  76. data/lib/whop_sdk/resources/ads.rb +88 -0
  77. data/lib/whop_sdk/resources/bounties.rb +124 -0
  78. data/lib/whop_sdk/resources/companies.rb +34 -0
  79. data/lib/whop_sdk/resources/conversions.rb +67 -0
  80. data/lib/whop_sdk/resources/files.rb +3 -1
  81. data/lib/whop_sdk/resources/forum_posts.rb +3 -1
  82. data/lib/whop_sdk/resources/forums.rb +3 -1
  83. data/lib/whop_sdk/resources/invoices.rb +9 -2
  84. data/lib/whop_sdk/resources/payments.rb +1 -1
  85. data/lib/whop_sdk/resources/plans.rb +6 -2
  86. data/lib/whop_sdk/resources/support_channels.rb +6 -4
  87. data/lib/whop_sdk/resources/users.rb +49 -37
  88. data/lib/whop_sdk/version.rb +1 -1
  89. data/lib/whop_sdk.rb +41 -1
  90. data/rbi/whop_sdk/client.rbi +24 -0
  91. data/rbi/whop_sdk/models/ad_campaign_list_params.rbi +142 -0
  92. data/rbi/whop_sdk/models/ad_campaign_list_response.rbi +239 -0
  93. data/rbi/whop_sdk/models/ad_campaign_pause_params.rbi +35 -0
  94. data/rbi/whop_sdk/models/ad_campaign_pause_response.rbi +668 -0
  95. data/rbi/whop_sdk/models/ad_campaign_retrieve_params.rbi +35 -0
  96. data/rbi/whop_sdk/models/ad_campaign_retrieve_response.rbi +679 -0
  97. data/rbi/whop_sdk/models/ad_campaign_unpause_params.rbi +35 -0
  98. data/rbi/whop_sdk/models/ad_campaign_unpause_response.rbi +675 -0
  99. data/rbi/whop_sdk/models/ad_campaign_update_params.rbi +51 -0
  100. data/rbi/whop_sdk/models/ad_campaign_update_response.rbi +670 -0
  101. data/rbi/whop_sdk/models/ad_group_delete_params.rbi +35 -0
  102. data/rbi/whop_sdk/models/ad_group_delete_response.rbi +8 -0
  103. data/rbi/whop_sdk/models/ad_group_list_params.rbi +145 -0
  104. data/rbi/whop_sdk/models/ad_group_list_response.rbi +228 -0
  105. data/rbi/whop_sdk/models/ad_group_retrieve_params.rbi +35 -0
  106. data/rbi/whop_sdk/models/ad_group_retrieve_response.rbi +277 -0
  107. data/rbi/whop_sdk/models/ad_group_update_params.rbi +6133 -0
  108. data/rbi/whop_sdk/models/ad_group_update_response.rbi +274 -0
  109. data/rbi/whop_sdk/models/ad_list_params.rbi +146 -0
  110. data/rbi/whop_sdk/models/ad_list_response.rbi +146 -0
  111. data/rbi/whop_sdk/models/ad_report_retrieve_params.rbi +99 -0
  112. data/rbi/whop_sdk/models/ad_report_retrieve_response.rbi +629 -0
  113. data/rbi/whop_sdk/models/ad_retrieve_params.rbi +35 -0
  114. data/rbi/whop_sdk/models/ad_retrieve_response.rbi +245 -0
  115. data/rbi/whop_sdk/models/authorized_user_roles.rbi +2 -0
  116. data/rbi/whop_sdk/models/bounty_create_params.rbi +129 -0
  117. data/rbi/whop_sdk/models/bounty_create_response.rbi +196 -0
  118. data/rbi/whop_sdk/models/bounty_list_params.rbi +115 -0
  119. data/rbi/whop_sdk/models/bounty_list_response.rbi +189 -0
  120. data/rbi/whop_sdk/models/bounty_retrieve_params.rbi +35 -0
  121. data/rbi/whop_sdk/models/bounty_retrieve_response.rbi +199 -0
  122. data/rbi/whop_sdk/models/checkout_configuration.rbi +20 -0
  123. data/rbi/whop_sdk/models/checkout_configuration_create_params.rbi +84 -16
  124. data/rbi/whop_sdk/models/checkout_configuration_list_response.rbi +20 -0
  125. data/rbi/whop_sdk/models/company_create_api_key_params.rbi +184 -0
  126. data/rbi/whop_sdk/models/company_create_api_key_response.rbi +51 -0
  127. data/rbi/whop_sdk/models/conversion_create_params.rbi +661 -0
  128. data/rbi/whop_sdk/models/conversion_create_response.rbi +31 -0
  129. data/rbi/whop_sdk/models/currency.rbi +1 -0
  130. data/rbi/whop_sdk/models/file_create_params.rbi +41 -1
  131. data/rbi/whop_sdk/models/file_create_response.rbi +52 -5
  132. data/rbi/whop_sdk/models/file_retrieve_response.rbi +53 -5
  133. data/rbi/whop_sdk/models/forum_post_list_params.rbi +8 -0
  134. data/rbi/whop_sdk/models/forum_update_params.rbi +10 -0
  135. data/rbi/whop_sdk/models/invoice_create_params.rbi +46 -26
  136. data/rbi/whop_sdk/models/invoice_update_params.rbi +28 -6
  137. data/rbi/whop_sdk/models/ledger_account_retrieve_response.rbi +2 -2
  138. data/rbi/whop_sdk/models/membership.rbi +12 -0
  139. data/rbi/whop_sdk/models/membership_list_response.rbi +12 -0
  140. data/rbi/whop_sdk/models/payment.rbi +57 -3
  141. data/rbi/whop_sdk/models/payment_list_response.rbi +37 -3
  142. data/rbi/whop_sdk/models/payment_method_types.rbi +31 -0
  143. data/rbi/whop_sdk/models/payment_refund_params.rbi +6 -4
  144. data/rbi/whop_sdk/models/payout_account_retrieve_response.rbi +2 -2
  145. data/rbi/whop_sdk/models/payout_account_status_updated_webhook_event.rbi +2 -2
  146. data/rbi/whop_sdk/models/plan.rbi +12 -2
  147. data/rbi/whop_sdk/models/plan_create_params.rbi +22 -4
  148. data/rbi/whop_sdk/models/plan_list_response.rbi +12 -2
  149. data/rbi/whop_sdk/models/plan_update_params.rbi +22 -4
  150. data/rbi/whop_sdk/models/support_channel_list_params.rbi +50 -8
  151. data/rbi/whop_sdk/models/user_retrieve_params.rbi +18 -2
  152. data/rbi/whop_sdk/models/{user_update_profile_params.rbi → user_update_params.rbi} +25 -9
  153. data/rbi/whop_sdk/models/verification_list_response.rbi +2 -2
  154. data/rbi/whop_sdk/models/verification_retrieve_response.rbi +2 -2
  155. data/rbi/whop_sdk/models/verification_status.rbi +2 -0
  156. data/rbi/whop_sdk/models/verification_succeeded_webhook_event.rbi +2 -2
  157. data/rbi/whop_sdk/models.rbi +35 -1
  158. data/rbi/whop_sdk/resources/ad_campaigns.rbi +134 -0
  159. data/rbi/whop_sdk/resources/ad_groups.rbi +139 -0
  160. data/rbi/whop_sdk/resources/ad_reports.rbi +55 -0
  161. data/rbi/whop_sdk/resources/ads.rbi +81 -0
  162. data/rbi/whop_sdk/resources/bounties.rbi +116 -0
  163. data/rbi/whop_sdk/resources/companies.rbi +32 -0
  164. data/rbi/whop_sdk/resources/conversions.rbi +71 -0
  165. data/rbi/whop_sdk/resources/files.rbi +5 -0
  166. data/rbi/whop_sdk/resources/forum_posts.rbi +3 -0
  167. data/rbi/whop_sdk/resources/forums.rbi +4 -0
  168. data/rbi/whop_sdk/resources/invoices.rbi +10 -1
  169. data/rbi/whop_sdk/resources/payments.rbi +3 -2
  170. data/rbi/whop_sdk/resources/plans.rbi +6 -0
  171. data/rbi/whop_sdk/resources/support_channels.rbi +8 -3
  172. data/rbi/whop_sdk/resources/users.rbi +42 -29
  173. data/sig/whop_sdk/client.rbs +12 -0
  174. data/sig/whop_sdk/models/ad_campaign_list_params.rbs +82 -0
  175. data/sig/whop_sdk/models/ad_campaign_list_response.rbs +98 -0
  176. data/sig/whop_sdk/models/ad_campaign_pause_params.rbs +20 -0
  177. data/sig/whop_sdk/models/ad_campaign_pause_response.rbs +232 -0
  178. data/sig/whop_sdk/models/ad_campaign_retrieve_params.rbs +20 -0
  179. data/sig/whop_sdk/models/ad_campaign_retrieve_response.rbs +232 -0
  180. data/sig/whop_sdk/models/ad_campaign_unpause_params.rbs +20 -0
  181. data/sig/whop_sdk/models/ad_campaign_unpause_response.rbs +232 -0
  182. data/sig/whop_sdk/models/ad_campaign_update_params.rbs +28 -0
  183. data/sig/whop_sdk/models/ad_campaign_update_response.rbs +232 -0
  184. data/sig/whop_sdk/models/ad_group_delete_params.rbs +20 -0
  185. data/sig/whop_sdk/models/ad_group_delete_response.rbs +5 -0
  186. data/sig/whop_sdk/models/ad_group_list_params.rbs +87 -0
  187. data/sig/whop_sdk/models/ad_group_list_response.rbs +93 -0
  188. data/sig/whop_sdk/models/ad_group_retrieve_params.rbs +20 -0
  189. data/sig/whop_sdk/models/ad_group_retrieve_response.rbs +108 -0
  190. data/sig/whop_sdk/models/ad_group_update_params.rbs +2439 -0
  191. data/sig/whop_sdk/models/ad_group_update_response.rbs +108 -0
  192. data/sig/whop_sdk/models/ad_list_params.rbs +87 -0
  193. data/sig/whop_sdk/models/ad_list_response.rbs +72 -0
  194. data/sig/whop_sdk/models/ad_report_retrieve_params.rbs +56 -0
  195. data/sig/whop_sdk/models/ad_report_retrieve_response.rbs +278 -0
  196. data/sig/whop_sdk/models/ad_retrieve_params.rbs +20 -0
  197. data/sig/whop_sdk/models/ad_retrieve_response.rbs +102 -0
  198. data/sig/whop_sdk/models/authorized_user_roles.rbs +2 -0
  199. data/sig/whop_sdk/models/bounty_create_params.rbs +71 -0
  200. data/sig/whop_sdk/models/bounty_create_response.rbs +93 -0
  201. data/sig/whop_sdk/models/bounty_list_params.rbs +67 -0
  202. data/sig/whop_sdk/models/bounty_list_response.rbs +93 -0
  203. data/sig/whop_sdk/models/bounty_retrieve_params.rbs +20 -0
  204. data/sig/whop_sdk/models/bounty_retrieve_response.rbs +93 -0
  205. data/sig/whop_sdk/models/checkout_configuration.rbs +10 -0
  206. data/sig/whop_sdk/models/checkout_configuration_create_params.rbs +51 -16
  207. data/sig/whop_sdk/models/checkout_configuration_list_response.rbs +10 -0
  208. data/sig/whop_sdk/models/company_create_api_key_params.rbs +83 -0
  209. data/sig/whop_sdk/models/company_create_api_key_response.rbs +18 -0
  210. data/sig/whop_sdk/models/conversion_create_params.rbs +349 -0
  211. data/sig/whop_sdk/models/conversion_create_response.rbs +13 -0
  212. data/sig/whop_sdk/models/currency.rbs +2 -0
  213. data/sig/whop_sdk/models/file_create_params.rbs +20 -1
  214. data/sig/whop_sdk/models/file_create_response.rbs +19 -3
  215. data/sig/whop_sdk/models/file_retrieve_response.rbs +19 -3
  216. data/sig/whop_sdk/models/forum_post_list_params.rbs +5 -0
  217. data/sig/whop_sdk/models/forum_update_params.rbs +5 -0
  218. data/sig/whop_sdk/models/invoice_create_params.rbs +24 -14
  219. data/sig/whop_sdk/models/invoice_update_params.rbs +15 -5
  220. data/sig/whop_sdk/models/membership.rbs +5 -0
  221. data/sig/whop_sdk/models/membership_list_response.rbs +5 -0
  222. data/sig/whop_sdk/models/payment.rbs +25 -3
  223. data/sig/whop_sdk/models/payment_list_response.rbs +15 -3
  224. data/sig/whop_sdk/models/payment_method_types.rbs +32 -0
  225. data/sig/whop_sdk/models/plan.rbs +5 -0
  226. data/sig/whop_sdk/models/plan_create_params.rbs +14 -4
  227. data/sig/whop_sdk/models/plan_list_response.rbs +5 -0
  228. data/sig/whop_sdk/models/plan_update_params.rbs +14 -4
  229. data/sig/whop_sdk/models/support_channel_list_params.rbs +23 -6
  230. data/sig/whop_sdk/models/user_retrieve_params.rbs +10 -2
  231. data/sig/whop_sdk/models/{user_update_profile_params.rbs → user_update_params.rbs} +16 -6
  232. data/sig/whop_sdk/models/verification_status.rbs +2 -0
  233. data/sig/whop_sdk/models.rbs +35 -1
  234. data/sig/whop_sdk/resources/ad_campaigns.rbs +41 -0
  235. data/sig/whop_sdk/resources/ad_groups.rbs +40 -0
  236. data/sig/whop_sdk/resources/ad_reports.rbs +18 -0
  237. data/sig/whop_sdk/resources/ads.rbs +26 -0
  238. data/sig/whop_sdk/resources/bounties.rbs +37 -0
  239. data/sig/whop_sdk/resources/companies.rbs +9 -0
  240. data/sig/whop_sdk/resources/conversions.rbs +25 -0
  241. data/sig/whop_sdk/resources/files.rbs +1 -0
  242. data/sig/whop_sdk/resources/forum_posts.rbs +1 -0
  243. data/sig/whop_sdk/resources/forums.rbs +1 -0
  244. data/sig/whop_sdk/resources/invoices.rbs +2 -0
  245. data/sig/whop_sdk/resources/plans.rbs +2 -0
  246. data/sig/whop_sdk/resources/support_channels.rbs +2 -1
  247. data/sig/whop_sdk/resources/users.rbs +11 -8
  248. metadata +125 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8465f5ce3b0ffbb280bc7f25f778a6500a7534d05aab113245b2778ecdacb995
4
- data.tar.gz: badc992950cbd83b175a35381af4e2818d4717e868e85606347d31456392502c
3
+ metadata.gz: 0d7509c8207433b48cc7855f1b113a5d61a9d435de8cd0007bc849a42791dec4
4
+ data.tar.gz: 3553946316f1e57d6a6e6b1a0cd33dd67098b2c8e5161002e0f194756d5c16fe
5
5
  SHA512:
6
- metadata.gz: 462b1ddf6796bed0127bceb52fb663fb80a192add71f329d0ec4af4a64a5560a97e595c27958030e338405c4e5ba286b2151d7b2c278cca168f3620f282731dc
7
- data.tar.gz: 7f3e8318bd93c9ffd0d4ff36860b6ae80075a100936e55e01d48b3750dfbffed48f0f36d18599eae0bb9c0ace339cff2320e711f95d6e9d53ac04442534033a1
6
+ metadata.gz: acf6bcf13b6391ead5b5a24009508ae0c39422ea56635a472d900767e6c9df7d30c0ce6880de442461974c94d5d791030fd1f899679b851b83d7e11b1cfa9904
7
+ data.tar.gz: f4f7d52cf615dae4d4566d4e9efa4b02abfcb52a97044bdc189833b3a778951aa956ca39eb994765ae28877741160a580a95c7e3f9927a9313996e57c8e9d439
data/CHANGELOG.md CHANGED
@@ -1,5 +1,66 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.0.39 (2026-05-12)
4
+
5
+ Full Changelog: [v0.0.38...v0.0.39](https://github.com/whopio/whopsdk-ruby/compare/v0.0.38...v0.0.39)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([41f1c48](https://github.com/whopio/whopsdk-ruby/commit/41f1c489c4c3939c5ead8959796206b3f646be0a))
10
+ * **api:** api update ([0a030fb](https://github.com/whopio/whopsdk-ruby/commit/0a030fbcfb624ddae25835b9f4ce9b22914ce965))
11
+ * **api:** api update ([6dee63d](https://github.com/whopio/whopsdk-ruby/commit/6dee63d737eade9121eaa08cc9ba903ff0f0c12e))
12
+ * **api:** api update ([a86b37e](https://github.com/whopio/whopsdk-ruby/commit/a86b37e20f9802ffc244826e26b85e88da193ca7))
13
+ * **api:** api update ([4c48f94](https://github.com/whopio/whopsdk-ruby/commit/4c48f94afcfecede20ff4f68bcab257a52907d05))
14
+ * **api:** api update ([8c8346f](https://github.com/whopio/whopsdk-ruby/commit/8c8346fb790c3e00f6989a2ccfea03bba38e405e))
15
+ * **api:** api update ([cc9da37](https://github.com/whopio/whopsdk-ruby/commit/cc9da3700393b67a2b2a039aafeeba23159f1b2b))
16
+ * **api:** api update ([9a51f78](https://github.com/whopio/whopsdk-ruby/commit/9a51f786894aac2d495c1602cd823292862d094f))
17
+ * **api:** api update ([642732f](https://github.com/whopio/whopsdk-ruby/commit/642732f64a708d22a4bb8f1bfc8a7133e05a1f08))
18
+ * **api:** api update ([e53cc0d](https://github.com/whopio/whopsdk-ruby/commit/e53cc0dc256c0ab781725fef547dad3716eabad5))
19
+ * **api:** api update ([b4aa0af](https://github.com/whopio/whopsdk-ruby/commit/b4aa0af8ac8f678ee722fe23d9c4c2df35426316))
20
+ * **api:** api update ([e923086](https://github.com/whopio/whopsdk-ruby/commit/e9230869b6d1eec823473fb67309ab2ad302ba7b))
21
+ * **api:** api update ([1391fb1](https://github.com/whopio/whopsdk-ruby/commit/1391fb13a1063b8ac483a69795533b7e6bec89f1))
22
+ * **api:** api update ([bca6667](https://github.com/whopio/whopsdk-ruby/commit/bca6667862f9dee69950b47c065787c26236aadb))
23
+ * **api:** api update ([4129022](https://github.com/whopio/whopsdk-ruby/commit/4129022fceee5287f11a5e3858863433effc7ab1))
24
+ * **api:** api update ([b687cb9](https://github.com/whopio/whopsdk-ruby/commit/b687cb9249eb826e3a4d933b292f12ce02d94af0))
25
+ * **api:** api update ([79aae44](https://github.com/whopio/whopsdk-ruby/commit/79aae4416d123e1afa7e27d95749e1fd23ae055f))
26
+ * **api:** api update ([c30e8d4](https://github.com/whopio/whopsdk-ruby/commit/c30e8d4b93c2ea4ece5241af0d122ca30c59bac3))
27
+ * **api:** api update ([327691b](https://github.com/whopio/whopsdk-ruby/commit/327691b54ccbeb7d10a046b4a3938b126aa49500))
28
+ * **api:** api update ([35ba170](https://github.com/whopio/whopsdk-ruby/commit/35ba170f38fabb58908842c2ba39a6a9044812e9))
29
+ * **api:** api update ([7e8b054](https://github.com/whopio/whopsdk-ruby/commit/7e8b054992f97166ef28c10c116a7024c4af6eec))
30
+ * **api:** api update ([d8e52f4](https://github.com/whopio/whopsdk-ruby/commit/d8e52f48055361f0857513f0caac229959506c23))
31
+ * **api:** api update ([f095b42](https://github.com/whopio/whopsdk-ruby/commit/f095b4234574686ed157acf45f3627209ca548f7))
32
+ * **api:** manual updates ([caecf6f](https://github.com/whopio/whopsdk-ruby/commit/caecf6fa4278cf509f247297ab3a0ad5be835a04))
33
+ * **api:** manual updates ([2dbd70c](https://github.com/whopio/whopsdk-ruby/commit/2dbd70cee7fee0252936e15bb8547a4fa0d27501))
34
+ * **api:** manual updates ([02c0e75](https://github.com/whopio/whopsdk-ruby/commit/02c0e7583a78fbc3416f915bd5d80d0a97056323))
35
+ * **api:** manual updates ([9f433de](https://github.com/whopio/whopsdk-ruby/commit/9f433defa7e1a3f56316deff2862a89be69e6c27))
36
+ * **api:** manual updates ([b399216](https://github.com/whopio/whopsdk-ruby/commit/b399216595e3e85b7ec64802017dee810fc268c3))
37
+ * support setting headers via env ([41a50f8](https://github.com/whopio/whopsdk-ruby/commit/41a50f8e339ce87259211c13b135b081ad1141f9))
38
+
39
+
40
+ ### Chores
41
+
42
+ * **internal:** codegen related update ([747437e](https://github.com/whopio/whopsdk-ruby/commit/747437e579049c007cc35ddebc1866268b9e9b38))
43
+ * **internal:** more robust bootstrap script ([19ee1dc](https://github.com/whopio/whopsdk-ruby/commit/19ee1dc702fc3a96d2c0c33b25f1dfc9d57eb5cc))
44
+
45
+ ## 0.0.38 (2026-04-21)
46
+
47
+ Full Changelog: [v0.0.37...v0.0.38](https://github.com/whopio/whopsdk-ruby/compare/v0.0.37...v0.0.38)
48
+
49
+ ### Features
50
+
51
+ * **api:** api update ([fa1a45f](https://github.com/whopio/whopsdk-ruby/commit/fa1a45f492c238b6ff849440c3c910bc4ea72754))
52
+ * **api:** api update ([f9181a4](https://github.com/whopio/whopsdk-ruby/commit/f9181a4a772ce4828d8332928508109089656648))
53
+ * **api:** api update ([a8e3560](https://github.com/whopio/whopsdk-ruby/commit/a8e35601fcf0ee79bcc2333e5c323682471f3b91))
54
+ * **api:** api update ([516c14b](https://github.com/whopio/whopsdk-ruby/commit/516c14bc5edc25bf46049ea42ae1968f9bf0d782))
55
+ * **api:** api update ([a58e4b0](https://github.com/whopio/whopsdk-ruby/commit/a58e4b0fb68546c017cfa027a6645b906c0acca6))
56
+ * **api:** api update ([2ae4543](https://github.com/whopio/whopsdk-ruby/commit/2ae45431715186177b61e5089136242652cf54a1))
57
+ * **api:** manual updates ([943f900](https://github.com/whopio/whopsdk-ruby/commit/943f9009a1a288e0ac8a139fb090c1dcd7a6440e))
58
+
59
+
60
+ ### Bug Fixes
61
+
62
+ * **helpers:** verify_user_token uses remote JWKS with module-level caching ([#44](https://github.com/whopio/whopsdk-ruby/issues/44)) ([107a289](https://github.com/whopio/whopsdk-ruby/commit/107a2898be09866f50e59f402ed08748662c4185))
63
+
3
64
  ## 0.0.37 (2026-04-10)
4
65
 
5
66
  Full Changelog: [v0.0.36...v0.0.37](https://github.com/whopio/whopsdk-ruby/compare/v0.0.36...v0.0.37)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "whop_sdk", "~> 0.0.37"
29
+ gem "whop_sdk", "~> 0.0.39"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -29,6 +29,18 @@ module WhopSDK
29
29
  # @return [String, nil]
30
30
  attr_reader :app_id
31
31
 
32
+ # Static public key (PEM or JWK JSON) used by {#verify_user_token} to
33
+ # verify user tokens. When set, the SDK skips remote JWKS fetching.
34
+ # Prefer {#user_token_jwks_url} (or the default) so key rotation is
35
+ # handled automatically.
36
+ # @return [String, nil]
37
+ attr_reader :user_token_public_key
38
+
39
+ # Override for the JWKS endpoint used by {#verify_user_token}. Defaults
40
+ # to the canonical Whop endpoint when unset.
41
+ # @return [String, nil]
42
+ attr_reader :user_token_jwks_url
43
+
32
44
  # Apps
33
45
  # @return [WhopSDK::Resources::Apps]
34
46
  attr_reader :apps
@@ -241,6 +253,30 @@ module WhopSDK
241
253
  # @return [WhopSDK::Resources::Affiliates]
242
254
  attr_reader :affiliates
243
255
 
256
+ # Bounties
257
+ # @return [WhopSDK::Resources::Bounties]
258
+ attr_reader :bounties
259
+
260
+ # Ad campaigns
261
+ # @return [WhopSDK::Resources::AdCampaigns]
262
+ attr_reader :ad_campaigns
263
+
264
+ # Ad groups
265
+ # @return [WhopSDK::Resources::AdGroups]
266
+ attr_reader :ad_groups
267
+
268
+ # Ads
269
+ # @return [WhopSDK::Resources::Ads]
270
+ attr_reader :ads
271
+
272
+ # Conversions
273
+ # @return [WhopSDK::Resources::Conversions]
274
+ attr_reader :conversions
275
+
276
+ # Ad reports
277
+ # @return [WhopSDK::Resources::AdReports]
278
+ attr_reader :ad_reports
279
+
244
280
  # @api private
245
281
  #
246
282
  # @return [Hash{String=>String}]
@@ -261,6 +297,13 @@ module WhopSDK
261
297
  # @param app_id [String, nil] When using the SDK in app mode pass this parameter to allow verifying user
262
298
  # tokens Defaults to `ENV["WHOP_APP_ID"]`
263
299
  #
300
+ # @param user_token_public_key [String, nil] Static public key (PEM or JWK JSON) used to verify
301
+ # user tokens. When set, {#verify_user_token} skips remote JWKS fetching.
302
+ # Defaults to `ENV["WHOP_USER_TOKEN_PUBLIC_KEY"]`
303
+ #
304
+ # @param user_token_jwks_url [String, nil] Override the JWKS URL used by {#verify_user_token}.
305
+ # Defaults to `ENV["WHOP_USER_TOKEN_JWKS_URL"]`, then to the canonical Whop endpoint.
306
+ #
264
307
  # @param base_url [String, nil] Override the default base URL for the API, e.g.,
265
308
  # `"https://api.example.com/v2/"`. Defaults to `ENV["WHOP_BASE_URL"]`
266
309
  #
@@ -275,6 +318,8 @@ module WhopSDK
275
318
  api_key: ENV["WHOP_API_KEY"],
276
319
  webhook_key: ENV["WHOP_WEBHOOK_SECRET"],
277
320
  app_id: ENV["WHOP_APP_ID"],
321
+ user_token_public_key: ENV["WHOP_USER_TOKEN_PUBLIC_KEY"],
322
+ user_token_jwks_url: ENV["WHOP_USER_TOKEN_JWKS_URL"],
278
323
  base_url: ENV["WHOP_BASE_URL"],
279
324
  max_retries: self.class::DEFAULT_MAX_RETRIES,
280
325
  timeout: self.class::DEFAULT_TIMEOUT_IN_SECONDS,
@@ -290,9 +335,22 @@ module WhopSDK
290
335
  headers = {
291
336
  "x-whop-app-id" => (@app_id = app_id&.to_s)
292
337
  }
338
+ custom_headers_env = ENV["WHOP_CUSTOM_HEADERS"]
339
+ unless custom_headers_env.nil?
340
+ parsed = {}
341
+ custom_headers_env.split("\n").each do |line|
342
+ colon = line.index(":")
343
+ unless colon.nil?
344
+ parsed[line[0...colon].strip] = line[(colon + 1)..].strip
345
+ end
346
+ end
347
+ headers = parsed.merge(headers)
348
+ end
293
349
 
294
350
  @api_key = api_key.to_s
295
351
  @webhook_key = webhook_key&.to_s
352
+ @user_token_public_key = user_token_public_key&.to_s
353
+ @user_token_jwks_url = user_token_jwks_url&.to_s
296
354
 
297
355
  super(
298
356
  base_url: base_url,
@@ -356,31 +414,39 @@ module WhopSDK
356
414
  @resolution_center_cases = WhopSDK::Resources::ResolutionCenterCases.new(client: self)
357
415
  @payout_accounts = WhopSDK::Resources::PayoutAccounts.new(client: self)
358
416
  @affiliates = WhopSDK::Resources::Affiliates.new(client: self)
417
+ @bounties = WhopSDK::Resources::Bounties.new(client: self)
418
+ @ad_campaigns = WhopSDK::Resources::AdCampaigns.new(client: self)
419
+ @ad_groups = WhopSDK::Resources::AdGroups.new(client: self)
420
+ @ads = WhopSDK::Resources::Ads.new(client: self)
421
+ @conversions = WhopSDK::Resources::Conversions.new(client: self)
422
+ @ad_reports = WhopSDK::Resources::AdReports.new(client: self)
359
423
  end
360
424
 
361
- # Verifies a Whop user token
425
+ # Verifies a Whop user token.
362
426
  #
363
427
  # @param token_or_headers [String, Hash, nil] The token string or headers hash
364
428
  # @param app_id [String, nil] The app id to verify against
365
- # @param public_key [String, nil] Optional custom public key (PEM format)
366
- # @param header_name [String, nil] The header name to use (defaults to x-whop-user-token)
367
- # @return [UserTokenPayload] The verified token payload
429
+ # @param public_key [String, nil] Static public key (PEM or JWK JSON). When set, the
430
+ # SDK skips remote JWKS fetching. Defaults to the client's `user_token_public_key`.
431
+ # @param jwks_url [String, nil] Override the JWKS URL. Defaults to the client's
432
+ # `user_token_jwks_url`, then to the canonical Whop endpoint.
433
+ # @param header_name [String, nil] The header name to read the token from
434
+ # @return [Helpers::VerifyUserToken::UserTokenPayload]
368
435
  # @raise [StandardError] If verification fails
369
436
  def verify_user_token!(token_or_headers, **opts)
370
437
  opts[:app_id] ||= app_id
438
+ opts[:public_key] = user_token_public_key if opts[:public_key].nil? && user_token_public_key && !user_token_public_key.empty?
439
+ opts[:jwks_url] = user_token_jwks_url if opts[:jwks_url].nil? && user_token_jwks_url && !user_token_jwks_url.empty?
371
440
  unless opts[:app_id]
372
441
  raise StandardError, "You must set app_id in the Whop client if you want to verify user tokens"
373
442
  end
374
443
  Helpers::VerifyUserToken.verify_user_token!(token_or_headers, **opts)
375
444
  end
376
445
 
377
- # Verifies a Whop user token
446
+ # Verifies a Whop user token. Same signature as {#verify_user_token!}
447
+ # but returns `nil` on any validation failure instead of raising.
378
448
  #
379
- # @param token_or_headers [String, Hash, nil] The token string or headers hash
380
- # @param app_id [String, nil] The app id to verify against
381
- # @param public_key [String, nil] Optional custom public key (PEM format)
382
- # @param header_name [String, nil] The header name to use (defaults to x-whop-user-token)
383
- # @return [UserTokenPayload, nil] The verified token payload or nil if the verification failed
449
+ # @return [Helpers::VerifyUserToken::UserTokenPayload, nil]
384
450
  def verify_user_token(token_or_headers, **opts)
385
451
  verify_user_token!(token_or_headers, **opts)
386
452
  rescue StandardError
@@ -1,18 +1,29 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "jwt"
4
+ require "json"
5
+ require "net/http"
4
6
  require "openssl"
7
+ require "uri"
5
8
 
6
9
  module WhopSDK
7
10
  module Helpers
11
+ # Verifies Whop-issued x-whop-user-token JWTs. By default, fetches the
12
+ # public signing keys from Whop's canonical JWKS endpoint and caches
13
+ # them at module scope (TTL-bounded with a cooldown on refetch). The
14
+ # behavior mirrors the TypeScript SDK's `createRemoteJWKSet` path so
15
+ # that upgrading to a key rotation doesn't require a gem release.
8
16
  module VerifyUserToken
9
17
  USER_TOKEN_HEADER_NAME = "x-whop-user-token"
10
- USER_TOKEN_VERIFICATION_KEY = <<~PEM
11
- -----BEGIN PUBLIC KEY-----
12
- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAErz8a8vxvexHC0TLT91g7llOdDOsN
13
- uYiGEfic4Qhni+HMfRBuUphOh7F3k8QgwZc9UlL0AHmyYqtbhL9NuJes6w==
14
- -----END PUBLIC KEY-----
15
- PEM
18
+ DEFAULT_JWKS_URL = "https://api.whop.com/.well-known/jwks.json"
19
+ TOKEN_ISSUER = "urn:whopcom:exp-proxy"
20
+ TOKEN_ALGORITHM = "ES256"
21
+
22
+ # 12h freshness window before a proactive refresh; 30s cooldown
23
+ # between refetches when a kid lookup misses. Matches the TS SDK
24
+ # (`cacheMaxAge: 12 * 60 * 60 * 1000, cooldownDuration: 30_000`).
25
+ JWKS_CACHE_MAX_AGE_SECONDS = 12 * 60 * 60
26
+ JWKS_COOLDOWN_SECONDS = 30
16
27
 
17
28
  # User token payload structure
18
29
  class UserTokenPayload
@@ -28,11 +39,84 @@ module WhopSDK
28
39
  end
29
40
  end
30
41
 
31
- # Extracts the user token from various input types
42
+ # Thread-safe, TTL-bounded remote JWKS cache with cooldown-gated
43
+ # refresh on kid miss.
44
+ class RemoteJwks
45
+ def initialize(url, cache_max_age_seconds:, cooldown_seconds:)
46
+ @url = url
47
+ @cache_max_age_seconds = cache_max_age_seconds
48
+ @cooldown_seconds = cooldown_seconds
49
+ @mutex = Mutex.new
50
+ @jwk_set = nil
51
+ @fetched_at = nil
52
+ @last_refresh_attempt_at = nil
53
+ end
54
+
55
+ # Returns the current JWK::Set, fetching or refreshing as needed.
56
+ # When `force_refresh` is true, bypass the freshness window but
57
+ # still honor the refetch cooldown.
58
+ def jwk_set(force_refresh: false)
59
+ @mutex.synchronize do
60
+ now = monotonic_now
61
+ cache_stale = @jwk_set.nil? || @fetched_at.nil? ||
62
+ (now - @fetched_at) > @cache_max_age_seconds
63
+ cooldown_elapsed = @last_refresh_attempt_at.nil? ||
64
+ (now - @last_refresh_attempt_at) > @cooldown_seconds
65
+
66
+ refresh_now = @jwk_set.nil? || cache_stale ||
67
+ (force_refresh && cooldown_elapsed)
68
+
69
+ fetch! if refresh_now
70
+ @jwk_set
71
+ end
72
+ end
73
+
74
+ private
75
+
76
+ def fetch!
77
+ @last_refresh_attempt_at = monotonic_now
78
+ response = Net::HTTP.get_response(URI(@url))
79
+
80
+ unless response.is_a?(Net::HTTPSuccess)
81
+ raise StandardError, "Failed to fetch JWKS from #{@url} (HTTP #{response.code})"
82
+ end
83
+
84
+ parsed = JSON.parse(response.body)
85
+ @jwk_set = JWT::JWK::Set.new(parsed)
86
+ @fetched_at = monotonic_now
87
+ end
88
+
89
+ def monotonic_now
90
+ Process.clock_gettime(Process::CLOCK_MONOTONIC)
91
+ end
92
+ end
93
+
94
+ # Module-level cache keyed by JWKS URL. One RemoteJwks instance per
95
+ # distinct URL survives for the process lifetime.
96
+ @jwks_cache = {}
97
+ @jwks_cache_mutex = Mutex.new
98
+
99
+ # @api private
100
+ def self.remote_jwks_for(url)
101
+ @jwks_cache_mutex.synchronize do
102
+ @jwks_cache[url] ||= RemoteJwks.new(
103
+ url,
104
+ cache_max_age_seconds: JWKS_CACHE_MAX_AGE_SECONDS,
105
+ cooldown_seconds: JWKS_COOLDOWN_SECONDS
106
+ )
107
+ end
108
+ end
109
+
110
+ # @api private — test-only hook to clear the module-level cache.
111
+ def self.reset_jwks_cache!
112
+ @jwks_cache_mutex.synchronize { @jwks_cache.clear }
113
+ end
114
+
115
+ # Extracts the user token from various input types.
32
116
  #
33
- # @param token_or_headers [String, Hash, nil] The token string or headers hash
34
- # @param header_name [String, nil] The header name to use (defaults to x-whop-user-token)
35
- # @return [String, nil] The extracted token or nil
117
+ # @param token_or_headers [String, Hash, nil] token string or headers hash
118
+ # @param header_name [String, nil] header name (defaults to x-whop-user-token)
119
+ # @return [String, nil]
36
120
  def self.get_user_token(token_or_headers, header_name: nil)
37
121
  header_name ||= USER_TOKEN_HEADER_NAME
38
122
 
@@ -46,18 +130,27 @@ module WhopSDK
46
130
  end
47
131
  end
48
132
 
49
- # Verifies a Whop user token
133
+ # Verifies a Whop user token.
50
134
  #
51
- # @param token_or_headers [String, Hash, nil] The token string or headers hash
52
- # @param app_id [String, nil] The app id to verify against
53
- # @param public_key [String, nil] Optional custom public key (PEM format)
54
- # @param header_name [String, nil] The header name to use (defaults to x-whop-user-token)
55
- # @return [UserTokenPayload] The verified token payload
56
- # @raise [StandardError] If verification fails
135
+ # By default fetches the public signing keys from `jwks_url` (or the
136
+ # canonical Whop endpoint) and caches them at module scope. Pass
137
+ # `public_key` to verify against a static key instead — useful for
138
+ # self-hosted / test setups where you know the exact key.
139
+ #
140
+ # @param token_or_headers [String, Hash, nil]
141
+ # @param app_id [String, nil] Required; when set, the aud claim must match.
142
+ # @param public_key [String, nil] PEM-encoded EC public key or JWK JSON.
143
+ # When set, skips remote JWKS fetching entirely.
144
+ # @param jwks_url [String, nil] Override the JWKS endpoint URL. Defaults
145
+ # to {DEFAULT_JWKS_URL}.
146
+ # @param header_name [String, nil] Header to read the token from.
147
+ # @return [UserTokenPayload]
148
+ # @raise [StandardError] on validation failure.
57
149
  def self.verify_user_token!(
58
150
  token_or_headers,
59
151
  app_id: nil,
60
152
  public_key: nil,
153
+ jwks_url: nil,
61
154
  header_name: nil
62
155
  )
63
156
  token_string = get_user_token(token_or_headers, header_name: header_name)
@@ -69,33 +162,72 @@ module WhopSDK
69
162
  ERROR
70
163
  end
71
164
 
72
- pem_string = public_key || USER_TOKEN_VERIFICATION_KEY
73
- key = OpenSSL::PKey::EC.new(pem_string)
74
-
75
- # Verify the JWT
76
- payload, _header = JWT.decode(
77
- token_string,
78
- key,
79
- true,
80
- algorithm: "ES256",
81
- iss: "urn:whopcom:exp-proxy",
82
- verify_iss: true
83
- )
165
+ payload = if public_key
166
+ verify_with_static_key(token_string, public_key: public_key)
167
+ else
168
+ verify_with_remote_jwks(token_string, jwks_url: jwks_url || DEFAULT_JWKS_URL)
169
+ end
84
170
 
85
- # Validate required fields
86
171
  unless payload["sub"] && payload["aud"] && !payload["aud"].is_a?(Array)
87
172
  raise StandardError, "Invalid user token provided to verifyUserToken"
88
173
  end
89
174
 
90
- # Validate app_id if provided
91
175
  if app_id && payload["aud"] != app_id
92
176
  raise StandardError, "Invalid app id provided to verifyUserToken"
93
177
  end
94
178
 
95
- UserTokenPayload.new(
96
- user_id: payload["sub"],
97
- app_id: payload["aud"]
179
+ UserTokenPayload.new(user_id: payload["sub"], app_id: payload["aud"])
180
+ end
181
+
182
+ # @api private
183
+ def self.verify_with_static_key(token_string, public_key:)
184
+ key = import_static_key(public_key)
185
+ decoded_payload, = JWT.decode(
186
+ token_string,
187
+ key,
188
+ true,
189
+ algorithm: TOKEN_ALGORITHM,
190
+ iss: TOKEN_ISSUER,
191
+ verify_iss: true
192
+ )
193
+ decoded_payload
194
+ end
195
+
196
+ # @api private
197
+ def self.verify_with_remote_jwks(token_string, jwks_url:)
198
+ remote = remote_jwks_for(jwks_url)
199
+
200
+ # ruby-jwt calls the loader twice when the token's kid isn't found
201
+ # in the current set — once normally, then again with
202
+ # invalidate: true. The loader uses that signal to force a
203
+ # cooldown-guarded refresh, mirroring jose's remote JWKS behavior.
204
+ jwks_loader = ->(opts) { remote.jwk_set(force_refresh: opts[:invalidate]) }
205
+
206
+ decoded_payload, = JWT.decode(
207
+ token_string,
208
+ nil,
209
+ true,
210
+ algorithms: [TOKEN_ALGORITHM],
211
+ iss: TOKEN_ISSUER,
212
+ verify_iss: true,
213
+ jwks: jwks_loader,
214
+ # Legacy tokens (pre-kid rollout) have no kid header. Let
215
+ # ruby-jwt fall back to the first key in the set for those.
216
+ allow_nil_kid: true
98
217
  )
218
+ decoded_payload
219
+ end
220
+
221
+ # @api private
222
+ def self.import_static_key(public_key)
223
+ stripped = public_key.to_s.strip
224
+ if stripped.start_with?("-----BEGIN")
225
+ OpenSSL::PKey::EC.new(stripped)
226
+ else
227
+ JWT::JWK.new(JSON.parse(stripped)).verify_key
228
+ end
229
+ rescue JSON::ParserError, OpenSSL::PKey::ECError => e
230
+ raise StandardError, "Invalid public key provided to verifyUserToken: #{e.message}"
99
231
  end
100
232
  end
101
233
  end
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WhopSDK
4
+ module Models
5
+ # @see WhopSDK::Resources::AdCampaigns#list
6
+ class AdCampaignListParams < WhopSDK::Internal::Type::BaseModel
7
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
8
+ include WhopSDK::Internal::Type::RequestParameters
9
+
10
+ # @!attribute company_id
11
+ # The unique identifier of the company to list ad campaigns for.
12
+ #
13
+ # @return [String]
14
+ required :company_id, String
15
+
16
+ # @!attribute after
17
+ # Returns the elements in the list that come after the specified cursor.
18
+ #
19
+ # @return [String, nil]
20
+ optional :after, String, nil?: true
21
+
22
+ # @!attribute before
23
+ # Returns the elements in the list that come before the specified cursor.
24
+ #
25
+ # @return [String, nil]
26
+ optional :before, String, nil?: true
27
+
28
+ # @!attribute created_after
29
+ # Only return ad campaigns created after this timestamp.
30
+ #
31
+ # @return [Time, nil]
32
+ optional :created_after, Time, nil?: true
33
+
34
+ # @!attribute created_before
35
+ # Only return ad campaigns created before this timestamp.
36
+ #
37
+ # @return [Time, nil]
38
+ optional :created_before, Time, nil?: true
39
+
40
+ # @!attribute first
41
+ # Returns the first _n_ elements from the list.
42
+ #
43
+ # @return [Integer, nil]
44
+ optional :first, Integer, nil?: true
45
+
46
+ # @!attribute last
47
+ # Returns the last _n_ elements from the list.
48
+ #
49
+ # @return [Integer, nil]
50
+ optional :last, Integer, nil?: true
51
+
52
+ # @!attribute query
53
+ # Case-insensitive substring match against the campaign title.
54
+ #
55
+ # @return [String, nil]
56
+ optional :query, String, nil?: true
57
+
58
+ # @!attribute status
59
+ # The status of an ad campaign.
60
+ #
61
+ # @return [Symbol, WhopSDK::Models::AdCampaignListParams::Status, nil]
62
+ optional :status, enum: -> { WhopSDK::AdCampaignListParams::Status }, nil?: true
63
+
64
+ # @!method initialize(company_id:, after: nil, before: nil, created_after: nil, created_before: nil, first: nil, last: nil, query: nil, status: nil, request_options: {})
65
+ # @param company_id [String] The unique identifier of the company to list ad campaigns for.
66
+ #
67
+ # @param after [String, nil] Returns the elements in the list that come after the specified cursor.
68
+ #
69
+ # @param before [String, nil] Returns the elements in the list that come before the specified cursor.
70
+ #
71
+ # @param created_after [Time, nil] Only return ad campaigns created after this timestamp.
72
+ #
73
+ # @param created_before [Time, nil] Only return ad campaigns created before this timestamp.
74
+ #
75
+ # @param first [Integer, nil] Returns the first _n_ elements from the list.
76
+ #
77
+ # @param last [Integer, nil] Returns the last _n_ elements from the list.
78
+ #
79
+ # @param query [String, nil] Case-insensitive substring match against the campaign title.
80
+ #
81
+ # @param status [Symbol, WhopSDK::Models::AdCampaignListParams::Status, nil] The status of an ad campaign.
82
+ #
83
+ # @param request_options [WhopSDK::RequestOptions, Hash{Symbol=>Object}]
84
+
85
+ # The status of an ad campaign.
86
+ module Status
87
+ extend WhopSDK::Internal::Type::Enum
88
+
89
+ ACTIVE = :active
90
+ PAUSED = :paused
91
+ PAYMENT_FAILED = :payment_failed
92
+ DRAFT = :draft
93
+ IN_REVIEW = :in_review
94
+ FLAGGED = :flagged
95
+
96
+ # @!method self.values
97
+ # @return [Array<Symbol>]
98
+ end
99
+ end
100
+ end
101
+ end