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
@@ -0,0 +1,668 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class AdCampaignPauseResponse < WhopSDK::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ WhopSDK::Models::AdCampaignPauseResponse,
10
+ WhopSDK::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The unique identifier for this ad campaign.
15
+ sig { returns(String) }
16
+ attr_accessor :id
17
+
18
+ # Total budget in dollars.
19
+ sig { returns(T.nilable(Float)) }
20
+ attr_accessor :budget
21
+
22
+ # The budget type for an ad campaign or ad group.
23
+ sig do
24
+ returns(
25
+ T.nilable(
26
+ WhopSDK::Models::AdCampaignPauseResponse::BudgetType::TaggedSymbol
27
+ )
28
+ )
29
+ end
30
+ attr_accessor :budget_type
31
+
32
+ # When the ad campaign was created.
33
+ sig { returns(Time) }
34
+ attr_accessor :created_at
35
+
36
+ # The user who created this ad campaign.
37
+ sig { returns(WhopSDK::Models::AdCampaignPauseResponse::CreatedByUser) }
38
+ attr_reader :created_by_user
39
+
40
+ sig do
41
+ params(
42
+ created_by_user:
43
+ WhopSDK::Models::AdCampaignPauseResponse::CreatedByUser::OrHash
44
+ ).void
45
+ end
46
+ attr_writer :created_by_user
47
+
48
+ # Meta-specific campaign configuration (objective, budget mode, etc.). Null for
49
+ # non-Meta campaigns.
50
+ sig do
51
+ returns(T.nilable(WhopSDK::Models::AdCampaignPauseResponse::MetaConfig))
52
+ end
53
+ attr_reader :meta_config
54
+
55
+ sig do
56
+ params(
57
+ meta_config:
58
+ T.nilable(
59
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::OrHash
60
+ )
61
+ ).void
62
+ end
63
+ attr_writer :meta_config
64
+
65
+ # The external ad platform this campaign is running on (e.g., meta, tiktok).
66
+ sig do
67
+ returns(
68
+ WhopSDK::Models::AdCampaignPauseResponse::Platform::TaggedSymbol
69
+ )
70
+ end
71
+ attr_accessor :platform
72
+
73
+ # Current status of the campaign (active, paused, or inactive).
74
+ sig do
75
+ returns(WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol)
76
+ end
77
+ attr_accessor :status
78
+
79
+ # The campaign name shown in the Whop dashboard.
80
+ sig { returns(String) }
81
+ attr_accessor :title
82
+
83
+ # Total amount spent in dollars.
84
+ sig { returns(Float) }
85
+ attr_accessor :total_spend
86
+
87
+ # When the ad campaign was last updated.
88
+ sig { returns(Time) }
89
+ attr_accessor :updated_at
90
+
91
+ # An advertising campaign running on an external platform or within Whop.
92
+ sig do
93
+ params(
94
+ id: String,
95
+ budget: T.nilable(Float),
96
+ budget_type:
97
+ T.nilable(
98
+ WhopSDK::Models::AdCampaignPauseResponse::BudgetType::OrSymbol
99
+ ),
100
+ created_at: Time,
101
+ created_by_user:
102
+ WhopSDK::Models::AdCampaignPauseResponse::CreatedByUser::OrHash,
103
+ meta_config:
104
+ T.nilable(
105
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::OrHash
106
+ ),
107
+ platform:
108
+ WhopSDK::Models::AdCampaignPauseResponse::Platform::OrSymbol,
109
+ status: WhopSDK::Models::AdCampaignPauseResponse::Status::OrSymbol,
110
+ title: String,
111
+ total_spend: Float,
112
+ updated_at: Time
113
+ ).returns(T.attached_class)
114
+ end
115
+ def self.new(
116
+ # The unique identifier for this ad campaign.
117
+ id:,
118
+ # Total budget in dollars.
119
+ budget:,
120
+ # The budget type for an ad campaign or ad group.
121
+ budget_type:,
122
+ # When the ad campaign was created.
123
+ created_at:,
124
+ # The user who created this ad campaign.
125
+ created_by_user:,
126
+ # Meta-specific campaign configuration (objective, budget mode, etc.). Null for
127
+ # non-Meta campaigns.
128
+ meta_config:,
129
+ # The external ad platform this campaign is running on (e.g., meta, tiktok).
130
+ platform:,
131
+ # Current status of the campaign (active, paused, or inactive).
132
+ status:,
133
+ # The campaign name shown in the Whop dashboard.
134
+ title:,
135
+ # Total amount spent in dollars.
136
+ total_spend:,
137
+ # When the ad campaign was last updated.
138
+ updated_at:
139
+ )
140
+ end
141
+
142
+ sig do
143
+ override.returns(
144
+ {
145
+ id: String,
146
+ budget: T.nilable(Float),
147
+ budget_type:
148
+ T.nilable(
149
+ WhopSDK::Models::AdCampaignPauseResponse::BudgetType::TaggedSymbol
150
+ ),
151
+ created_at: Time,
152
+ created_by_user:
153
+ WhopSDK::Models::AdCampaignPauseResponse::CreatedByUser,
154
+ meta_config:
155
+ T.nilable(WhopSDK::Models::AdCampaignPauseResponse::MetaConfig),
156
+ platform:
157
+ WhopSDK::Models::AdCampaignPauseResponse::Platform::TaggedSymbol,
158
+ status:
159
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol,
160
+ title: String,
161
+ total_spend: Float,
162
+ updated_at: Time
163
+ }
164
+ )
165
+ end
166
+ def to_hash
167
+ end
168
+
169
+ # The budget type for an ad campaign or ad group.
170
+ module BudgetType
171
+ extend WhopSDK::Internal::Type::Enum
172
+
173
+ TaggedSymbol =
174
+ T.type_alias do
175
+ T.all(Symbol, WhopSDK::Models::AdCampaignPauseResponse::BudgetType)
176
+ end
177
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
178
+
179
+ DAILY =
180
+ T.let(
181
+ :daily,
182
+ WhopSDK::Models::AdCampaignPauseResponse::BudgetType::TaggedSymbol
183
+ )
184
+ LIFETIME =
185
+ T.let(
186
+ :lifetime,
187
+ WhopSDK::Models::AdCampaignPauseResponse::BudgetType::TaggedSymbol
188
+ )
189
+
190
+ sig do
191
+ override.returns(
192
+ T::Array[
193
+ WhopSDK::Models::AdCampaignPauseResponse::BudgetType::TaggedSymbol
194
+ ]
195
+ )
196
+ end
197
+ def self.values
198
+ end
199
+ end
200
+
201
+ class CreatedByUser < WhopSDK::Internal::Type::BaseModel
202
+ OrHash =
203
+ T.type_alias do
204
+ T.any(
205
+ WhopSDK::Models::AdCampaignPauseResponse::CreatedByUser,
206
+ WhopSDK::Internal::AnyHash
207
+ )
208
+ end
209
+
210
+ # The unique identifier for the user.
211
+ sig { returns(String) }
212
+ attr_accessor :id
213
+
214
+ # The user's display name shown on their public profile.
215
+ sig { returns(T.nilable(String)) }
216
+ attr_accessor :name
217
+
218
+ # The user's unique username shown on their public profile.
219
+ sig { returns(String) }
220
+ attr_accessor :username
221
+
222
+ # The user who created this ad campaign.
223
+ sig do
224
+ params(id: String, name: T.nilable(String), username: String).returns(
225
+ T.attached_class
226
+ )
227
+ end
228
+ def self.new(
229
+ # The unique identifier for the user.
230
+ id:,
231
+ # The user's display name shown on their public profile.
232
+ name:,
233
+ # The user's unique username shown on their public profile.
234
+ username:
235
+ )
236
+ end
237
+
238
+ sig do
239
+ override.returns(
240
+ { id: String, name: T.nilable(String), username: String }
241
+ )
242
+ end
243
+ def to_hash
244
+ end
245
+ end
246
+
247
+ class MetaConfig < WhopSDK::Internal::Type::BaseModel
248
+ OrHash =
249
+ T.type_alias do
250
+ T.any(
251
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig,
252
+ WhopSDK::Internal::AnyHash
253
+ )
254
+ end
255
+
256
+ # Bid cap amount in cents. Only used when bid_strategy is bid_cap.
257
+ sig { returns(T.nilable(Integer)) }
258
+ attr_accessor :bid_amount
259
+
260
+ # The bidding strategy used to optimize spend for this campaign.
261
+ sig do
262
+ returns(
263
+ T.nilable(
264
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::TaggedSymbol
265
+ )
266
+ )
267
+ end
268
+ attr_accessor :bid_strategy
269
+
270
+ # Whether campaign budget optimization (CBO) is enabled, allowing the platform to
271
+ # distribute budget across ad groups.
272
+ sig { returns(T.nilable(T::Boolean)) }
273
+ attr_accessor :budget_optimization
274
+
275
+ # The actual delivery status, accounting for platform overrides (e.g., in_review,
276
+ # rejected).
277
+ sig do
278
+ returns(
279
+ T.nilable(
280
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
281
+ )
282
+ )
283
+ end
284
+ attr_accessor :effective_status
285
+
286
+ # The scheduled end time of the campaign (ISO8601).
287
+ sig { returns(T.nilable(String)) }
288
+ attr_accessor :end_time
289
+
290
+ # The campaign objective that determines how Meta optimizes delivery.
291
+ sig do
292
+ returns(
293
+ T.nilable(
294
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
295
+ )
296
+ )
297
+ end
298
+ attr_accessor :objective
299
+
300
+ # Special ad categories required by the platform (e.g., housing, employment,
301
+ # credit).
302
+ sig { returns(T.nilable(T::Array[String])) }
303
+ attr_accessor :special_categories
304
+
305
+ # The scheduled start time of the campaign (ISO8601).
306
+ sig { returns(T.nilable(String)) }
307
+ attr_accessor :start_time
308
+
309
+ # The campaign status as set by the advertiser (active or paused).
310
+ sig do
311
+ returns(
312
+ T.nilable(
313
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status::TaggedSymbol
314
+ )
315
+ )
316
+ end
317
+ attr_accessor :status
318
+
319
+ # Meta-specific campaign configuration (objective, budget mode, etc.). Null for
320
+ # non-Meta campaigns.
321
+ sig do
322
+ params(
323
+ bid_amount: T.nilable(Integer),
324
+ bid_strategy:
325
+ T.nilable(
326
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::OrSymbol
327
+ ),
328
+ budget_optimization: T.nilable(T::Boolean),
329
+ effective_status:
330
+ T.nilable(
331
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::OrSymbol
332
+ ),
333
+ end_time: T.nilable(String),
334
+ objective:
335
+ T.nilable(
336
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::OrSymbol
337
+ ),
338
+ special_categories: T.nilable(T::Array[String]),
339
+ start_time: T.nilable(String),
340
+ status:
341
+ T.nilable(
342
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status::OrSymbol
343
+ )
344
+ ).returns(T.attached_class)
345
+ end
346
+ def self.new(
347
+ # Bid cap amount in cents. Only used when bid_strategy is bid_cap.
348
+ bid_amount:,
349
+ # The bidding strategy used to optimize spend for this campaign.
350
+ bid_strategy:,
351
+ # Whether campaign budget optimization (CBO) is enabled, allowing the platform to
352
+ # distribute budget across ad groups.
353
+ budget_optimization:,
354
+ # The actual delivery status, accounting for platform overrides (e.g., in_review,
355
+ # rejected).
356
+ effective_status:,
357
+ # The scheduled end time of the campaign (ISO8601).
358
+ end_time:,
359
+ # The campaign objective that determines how Meta optimizes delivery.
360
+ objective:,
361
+ # Special ad categories required by the platform (e.g., housing, employment,
362
+ # credit).
363
+ special_categories:,
364
+ # The scheduled start time of the campaign (ISO8601).
365
+ start_time:,
366
+ # The campaign status as set by the advertiser (active or paused).
367
+ status:
368
+ )
369
+ end
370
+
371
+ sig do
372
+ override.returns(
373
+ {
374
+ bid_amount: T.nilable(Integer),
375
+ bid_strategy:
376
+ T.nilable(
377
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::TaggedSymbol
378
+ ),
379
+ budget_optimization: T.nilable(T::Boolean),
380
+ effective_status:
381
+ T.nilable(
382
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
383
+ ),
384
+ end_time: T.nilable(String),
385
+ objective:
386
+ T.nilable(
387
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
388
+ ),
389
+ special_categories: T.nilable(T::Array[String]),
390
+ start_time: T.nilable(String),
391
+ status:
392
+ T.nilable(
393
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status::TaggedSymbol
394
+ )
395
+ }
396
+ )
397
+ end
398
+ def to_hash
399
+ end
400
+
401
+ # The bidding strategy used to optimize spend for this campaign.
402
+ module BidStrategy
403
+ extend WhopSDK::Internal::Type::Enum
404
+
405
+ TaggedSymbol =
406
+ T.type_alias do
407
+ T.all(
408
+ Symbol,
409
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy
410
+ )
411
+ end
412
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
413
+
414
+ LOWEST_COST =
415
+ T.let(
416
+ :lowest_cost,
417
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::TaggedSymbol
418
+ )
419
+ BID_CAP =
420
+ T.let(
421
+ :bid_cap,
422
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::TaggedSymbol
423
+ )
424
+ COST_CAP =
425
+ T.let(
426
+ :cost_cap,
427
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::TaggedSymbol
428
+ )
429
+
430
+ sig do
431
+ override.returns(
432
+ T::Array[
433
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::BidStrategy::TaggedSymbol
434
+ ]
435
+ )
436
+ end
437
+ def self.values
438
+ end
439
+ end
440
+
441
+ # The actual delivery status, accounting for platform overrides (e.g., in_review,
442
+ # rejected).
443
+ module EffectiveStatus
444
+ extend WhopSDK::Internal::Type::Enum
445
+
446
+ TaggedSymbol =
447
+ T.type_alias do
448
+ T.all(
449
+ Symbol,
450
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus
451
+ )
452
+ end
453
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
454
+
455
+ ACTIVE =
456
+ T.let(
457
+ :active,
458
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
459
+ )
460
+ PAUSED =
461
+ T.let(
462
+ :paused,
463
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
464
+ )
465
+ DELETED =
466
+ T.let(
467
+ :deleted,
468
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
469
+ )
470
+ IN_REVIEW =
471
+ T.let(
472
+ :in_review,
473
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
474
+ )
475
+ REJECTED =
476
+ T.let(
477
+ :rejected,
478
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
479
+ )
480
+ WITH_ISSUES =
481
+ T.let(
482
+ :with_issues,
483
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
484
+ )
485
+
486
+ sig do
487
+ override.returns(
488
+ T::Array[
489
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::EffectiveStatus::TaggedSymbol
490
+ ]
491
+ )
492
+ end
493
+ def self.values
494
+ end
495
+ end
496
+
497
+ # The campaign objective that determines how Meta optimizes delivery.
498
+ module Objective
499
+ extend WhopSDK::Internal::Type::Enum
500
+
501
+ TaggedSymbol =
502
+ T.type_alias do
503
+ T.all(
504
+ Symbol,
505
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective
506
+ )
507
+ end
508
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
509
+
510
+ AWARENESS =
511
+ T.let(
512
+ :awareness,
513
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
514
+ )
515
+ TRAFFIC =
516
+ T.let(
517
+ :traffic,
518
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
519
+ )
520
+ ENGAGEMENT =
521
+ T.let(
522
+ :engagement,
523
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
524
+ )
525
+ LEADS =
526
+ T.let(
527
+ :leads,
528
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
529
+ )
530
+ SALES =
531
+ T.let(
532
+ :sales,
533
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
534
+ )
535
+
536
+ sig do
537
+ override.returns(
538
+ T::Array[
539
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Objective::TaggedSymbol
540
+ ]
541
+ )
542
+ end
543
+ def self.values
544
+ end
545
+ end
546
+
547
+ # The campaign status as set by the advertiser (active or paused).
548
+ module Status
549
+ extend WhopSDK::Internal::Type::Enum
550
+
551
+ TaggedSymbol =
552
+ T.type_alias do
553
+ T.all(
554
+ Symbol,
555
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status
556
+ )
557
+ end
558
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
559
+
560
+ ACTIVE =
561
+ T.let(
562
+ :active,
563
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status::TaggedSymbol
564
+ )
565
+ PAUSED =
566
+ T.let(
567
+ :paused,
568
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status::TaggedSymbol
569
+ )
570
+
571
+ sig do
572
+ override.returns(
573
+ T::Array[
574
+ WhopSDK::Models::AdCampaignPauseResponse::MetaConfig::Status::TaggedSymbol
575
+ ]
576
+ )
577
+ end
578
+ def self.values
579
+ end
580
+ end
581
+ end
582
+
583
+ # The external ad platform this campaign is running on (e.g., meta, tiktok).
584
+ module Platform
585
+ extend WhopSDK::Internal::Type::Enum
586
+
587
+ TaggedSymbol =
588
+ T.type_alias do
589
+ T.all(Symbol, WhopSDK::Models::AdCampaignPauseResponse::Platform)
590
+ end
591
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
592
+
593
+ META =
594
+ T.let(
595
+ :meta,
596
+ WhopSDK::Models::AdCampaignPauseResponse::Platform::TaggedSymbol
597
+ )
598
+ TIKTOK =
599
+ T.let(
600
+ :tiktok,
601
+ WhopSDK::Models::AdCampaignPauseResponse::Platform::TaggedSymbol
602
+ )
603
+
604
+ sig do
605
+ override.returns(
606
+ T::Array[
607
+ WhopSDK::Models::AdCampaignPauseResponse::Platform::TaggedSymbol
608
+ ]
609
+ )
610
+ end
611
+ def self.values
612
+ end
613
+ end
614
+
615
+ # Current status of the campaign (active, paused, or inactive).
616
+ module Status
617
+ extend WhopSDK::Internal::Type::Enum
618
+
619
+ TaggedSymbol =
620
+ T.type_alias do
621
+ T.all(Symbol, WhopSDK::Models::AdCampaignPauseResponse::Status)
622
+ end
623
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
624
+
625
+ ACTIVE =
626
+ T.let(
627
+ :active,
628
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
629
+ )
630
+ PAUSED =
631
+ T.let(
632
+ :paused,
633
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
634
+ )
635
+ PAYMENT_FAILED =
636
+ T.let(
637
+ :payment_failed,
638
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
639
+ )
640
+ DRAFT =
641
+ T.let(
642
+ :draft,
643
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
644
+ )
645
+ IN_REVIEW =
646
+ T.let(
647
+ :in_review,
648
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
649
+ )
650
+ FLAGGED =
651
+ T.let(
652
+ :flagged,
653
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
654
+ )
655
+
656
+ sig do
657
+ override.returns(
658
+ T::Array[
659
+ WhopSDK::Models::AdCampaignPauseResponse::Status::TaggedSymbol
660
+ ]
661
+ )
662
+ end
663
+ def self.values
664
+ end
665
+ end
666
+ end
667
+ end
668
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module WhopSDK
4
+ module Models
5
+ class AdCampaignRetrieveParams < WhopSDK::Internal::Type::BaseModel
6
+ extend WhopSDK::Internal::Type::RequestParameters::Converter
7
+ include WhopSDK::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(WhopSDK::AdCampaignRetrieveParams, WhopSDK::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
17
+ sig do
18
+ params(
19
+ id: String,
20
+ request_options: WhopSDK::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { id: String, request_options: WhopSDK::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end