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