wefunder 0.1.0.beta1

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 (361) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +263 -0
  4. data/lib/wefunder/client.rb +283 -0
  5. data/lib/wefunder/errors.rb +87 -0
  6. data/lib/wefunder/oauth.rb +135 -0
  7. data/lib/wefunder/pagination.rb +52 -0
  8. data/lib/wefunder/token_manager.rb +80 -0
  9. data/lib/wefunder/transport.rb +93 -0
  10. data/lib/wefunder/version.rb +5 -0
  11. data/lib/wefunder/webhooks.rb +238 -0
  12. data/lib/wefunder.rb +26 -0
  13. data/lib/wefunder_generated/api/activity_api.rb +234 -0
  14. data/lib/wefunder_generated/api/attribution_api.rb +182 -0
  15. data/lib/wefunder_generated/api/attribution_partners_api.rb +392 -0
  16. data/lib/wefunder_generated/api/attribution_webhooks_api.rb +504 -0
  17. data/lib/wefunder_generated/api/campaigns_api.rb +82 -0
  18. data/lib/wefunder_generated/api/companies_api.rb +101 -0
  19. data/lib/wefunder_generated/api/explore_api.rb +633 -0
  20. data/lib/wefunder_generated/api/installations_api.rb +405 -0
  21. data/lib/wefunder_generated/api/intents_api.rb +301 -0
  22. data/lib/wefunder_generated/api/investment_delta_api.rb +99 -0
  23. data/lib/wefunder_generated/api/investments_api.rb +238 -0
  24. data/lib/wefunder_generated/api/portfolio_api.rb +166 -0
  25. data/lib/wefunder_generated/api/syndicate_deals_api.rb +381 -0
  26. data/lib/wefunder_generated/api/syndicate_members_api.rb +976 -0
  27. data/lib/wefunder_generated/api/syndicate_portfolio_api.rb +178 -0
  28. data/lib/wefunder_generated/api/syndicate_statistics_api.rb +85 -0
  29. data/lib/wefunder_generated/api/syndicates_api.rb +226 -0
  30. data/lib/wefunder_generated/api/users_api.rb +329 -0
  31. data/lib/wefunder_generated/api/webhook_endpoints_api.rb +539 -0
  32. data/lib/wefunder_generated/api_client.rb +437 -0
  33. data/lib/wefunder_generated/api_error.rb +58 -0
  34. data/lib/wefunder_generated/configuration.rb +392 -0
  35. data/lib/wefunder_generated/models/anonymized_attribution.rb +298 -0
  36. data/lib/wefunder_generated/models/anonymized_attribution_attribution.rb +330 -0
  37. data/lib/wefunder_generated/models/anonymized_attribution_status.rb +260 -0
  38. data/lib/wefunder_generated/models/attributed_investment_list_envelope.rb +226 -0
  39. data/lib/wefunder_generated/models/attributed_investment_list_envelope_data_inner.rb +105 -0
  40. data/lib/wefunder_generated/models/attributed_investment_list_envelope_meta.rb +295 -0
  41. data/lib/wefunder_generated/models/attribution_campaign_access.rb +241 -0
  42. data/lib/wefunder_generated/models/attribution_campaign_summary.rb +251 -0
  43. data/lib/wefunder_generated/models/attribution_campaign_summary_list_envelope.rb +216 -0
  44. data/lib/wefunder_generated/models/attribution_me.rb +235 -0
  45. data/lib/wefunder_generated/models/attribution_me_envelope.rb +214 -0
  46. data/lib/wefunder_generated/models/attribution_partner.rb +275 -0
  47. data/lib/wefunder_generated/models/attribution_stats.rb +266 -0
  48. data/lib/wefunder_generated/models/attribution_stats_by_campaign_inner.rb +232 -0
  49. data/lib/wefunder_generated/models/attribution_stats_by_source_inner.rb +232 -0
  50. data/lib/wefunder_generated/models/attribution_stats_envelope.rb +214 -0
  51. data/lib/wefunder_generated/models/attribution_stats_period.rb +223 -0
  52. data/lib/wefunder_generated/models/attribution_stats_quality_breakdown.rb +236 -0
  53. data/lib/wefunder_generated/models/attribution_stats_totals.rb +245 -0
  54. data/lib/wefunder_generated/models/attribution_user.rb +232 -0
  55. data/lib/wefunder_generated/models/audit_event.rb +234 -0
  56. data/lib/wefunder_generated/models/audit_event_attributes.rb +391 -0
  57. data/lib/wefunder_generated/models/audit_event_list_envelope.rb +225 -0
  58. data/lib/wefunder_generated/models/bulk_invite_link_create_input.rb +243 -0
  59. data/lib/wefunder_generated/models/bulk_invite_link_envelope.rb +237 -0
  60. data/lib/wefunder_generated/models/bulk_invite_link_envelope_errors_inner.rb +233 -0
  61. data/lib/wefunder_generated/models/bulk_invite_link_envelope_meta.rb +232 -0
  62. data/lib/wefunder_generated/models/campaign.rb +232 -0
  63. data/lib/wefunder_generated/models/campaign_attributes.rb +301 -0
  64. data/lib/wefunder_generated/models/campaign_list_envelope.rb +225 -0
  65. data/lib/wefunder_generated/models/comment_proposal_envelope.rb +274 -0
  66. data/lib/wefunder_generated/models/comment_proposal_envelope_draft.rb +260 -0
  67. data/lib/wefunder_generated/models/comment_proposal_envelope_proposal.rb +286 -0
  68. data/lib/wefunder_generated/models/comment_proposal_envelope_related_questions_inner.rb +264 -0
  69. data/lib/wefunder_generated/models/company.rb +234 -0
  70. data/lib/wefunder_generated/models/company_attributes.rb +318 -0
  71. data/lib/wefunder_generated/models/company_attributes_location.rb +235 -0
  72. data/lib/wefunder_generated/models/company_disclosures.rb +268 -0
  73. data/lib/wefunder_generated/models/company_disclosures_attributes.rb +434 -0
  74. data/lib/wefunder_generated/models/company_disclosures_attributes_business.rb +255 -0
  75. data/lib/wefunder_generated/models/company_disclosures_attributes_capital_structure_inner.rb +255 -0
  76. data/lib/wefunder_generated/models/company_disclosures_attributes_current_position.rb +281 -0
  77. data/lib/wefunder_generated/models/company_disclosures_attributes_filing.rb +256 -0
  78. data/lib/wefunder_generated/models/company_disclosures_attributes_financial_statements.rb +233 -0
  79. data/lib/wefunder_generated/models/company_disclosures_attributes_outstanding_debts.rb +227 -0
  80. data/lib/wefunder_generated/models/company_disclosures_attributes_outstanding_debts_items_inner.rb +255 -0
  81. data/lib/wefunder_generated/models/company_disclosures_attributes_outstanding_notes_inner.rb +284 -0
  82. data/lib/wefunder_generated/models/company_disclosures_attributes_prior_offerings_inner.rb +266 -0
  83. data/lib/wefunder_generated/models/company_disclosures_attributes_ratios.rb +272 -0
  84. data/lib/wefunder_generated/models/company_disclosures_attributes_related_parties.rb +226 -0
  85. data/lib/wefunder_generated/models/company_disclosures_attributes_related_parties_parties_inner.rb +265 -0
  86. data/lib/wefunder_generated/models/company_disclosures_attributes_use_of_funds_inner.rb +226 -0
  87. data/lib/wefunder_generated/models/company_disclosures_attributes_voting_power_inner.rb +236 -0
  88. data/lib/wefunder_generated/models/company_disclosures_envelope.rb +214 -0
  89. data/lib/wefunder_generated/models/company_envelope.rb +214 -0
  90. data/lib/wefunder_generated/models/company_pitch.rb +268 -0
  91. data/lib/wefunder_generated/models/company_pitch_attributes.rb +311 -0
  92. data/lib/wefunder_generated/models/company_pitch_attributes_perks.rb +248 -0
  93. data/lib/wefunder_generated/models/company_pitch_attributes_story.rb +255 -0
  94. data/lib/wefunder_generated/models/company_pitch_envelope.rb +214 -0
  95. data/lib/wefunder_generated/models/company_question.rb +268 -0
  96. data/lib/wefunder_generated/models/company_question_attributes.rb +329 -0
  97. data/lib/wefunder_generated/models/company_question_attributes_answers_inner.rb +253 -0
  98. data/lib/wefunder_generated/models/company_question_list_envelope.rb +225 -0
  99. data/lib/wefunder_generated/models/company_question_list_envelope_meta.rb +301 -0
  100. data/lib/wefunder_generated/models/company_question_person.rb +247 -0
  101. data/lib/wefunder_generated/models/company_search_result.rb +268 -0
  102. data/lib/wefunder_generated/models/company_search_result_attributes.rb +266 -0
  103. data/lib/wefunder_generated/models/company_search_result_list_envelope.rb +225 -0
  104. data/lib/wefunder_generated/models/company_search_result_list_envelope_meta.rb +223 -0
  105. data/lib/wefunder_generated/models/company_totals.rb +249 -0
  106. data/lib/wefunder_generated/models/company_update.rb +269 -0
  107. data/lib/wefunder_generated/models/company_update_attributes.rb +350 -0
  108. data/lib/wefunder_generated/models/company_update_attributes_author.rb +215 -0
  109. data/lib/wefunder_generated/models/company_update_envelope.rb +214 -0
  110. data/lib/wefunder_generated/models/company_update_list_envelope.rb +225 -0
  111. data/lib/wefunder_generated/models/company_update_list_envelope_meta.rb +243 -0
  112. data/lib/wefunder_generated/models/connected_app.rb +233 -0
  113. data/lib/wefunder_generated/models/connected_app_attributes.rb +258 -0
  114. data/lib/wefunder_generated/models/connected_app_list_envelope.rb +216 -0
  115. data/lib/wefunder_generated/models/connected_app_revocation.rb +223 -0
  116. data/lib/wefunder_generated/models/connected_app_revocation_envelope.rb +214 -0
  117. data/lib/wefunder_generated/models/convertible_note_security.rb +266 -0
  118. data/lib/wefunder_generated/models/convertible_note_security_terms.rb +266 -0
  119. data/lib/wefunder_generated/models/create_installation_request.rb +294 -0
  120. data/lib/wefunder_generated/models/create_installation_token_request.rb +216 -0
  121. data/lib/wefunder_generated/models/create_intent_request.rb +320 -0
  122. data/lib/wefunder_generated/models/create_partner_invite_request.rb +287 -0
  123. data/lib/wefunder_generated/models/create_webhook_endpoint_request.rb +291 -0
  124. data/lib/wefunder_generated/models/create_webhook_subscription_request.rb +263 -0
  125. data/lib/wefunder_generated/models/current_raise.rb +288 -0
  126. data/lib/wefunder_generated/models/deal_investor.rb +234 -0
  127. data/lib/wefunder_generated/models/deal_investor_attributes.rb +321 -0
  128. data/lib/wefunder_generated/models/deal_investor_list_envelope.rb +225 -0
  129. data/lib/wefunder_generated/models/deal_investor_list_envelope_meta.rb +252 -0
  130. data/lib/wefunder_generated/models/debt_security.rb +266 -0
  131. data/lib/wefunder_generated/models/debt_security_terms.rb +235 -0
  132. data/lib/wefunder_generated/models/delete_webhook_endpoint200_response.rb +214 -0
  133. data/lib/wefunder_generated/models/delete_webhook_endpoint200_response_data.rb +232 -0
  134. data/lib/wefunder_generated/models/disclosure_document.rb +224 -0
  135. data/lib/wefunder_generated/models/disclosure_person.rb +254 -0
  136. data/lib/wefunder_generated/models/eligible_target_list_envelope.rb +225 -0
  137. data/lib/wefunder_generated/models/eligible_target_list_envelope_data_inner.rb +295 -0
  138. data/lib/wefunder_generated/models/equity_security.rb +266 -0
  139. data/lib/wefunder_generated/models/equity_security_terms.rb +271 -0
  140. data/lib/wefunder_generated/models/error.rb +214 -0
  141. data/lib/wefunder_generated/models/error_error.rb +254 -0
  142. data/lib/wefunder_generated/models/exemption.rb +271 -0
  143. data/lib/wefunder_generated/models/fiscal_year_financials.rb +296 -0
  144. data/lib/wefunder_generated/models/follow_state_envelope.rb +214 -0
  145. data/lib/wefunder_generated/models/follow_state_envelope_data.rb +268 -0
  146. data/lib/wefunder_generated/models/follow_state_envelope_data_attributes.rb +225 -0
  147. data/lib/wefunder_generated/models/followed_company.rb +268 -0
  148. data/lib/wefunder_generated/models/followed_company_attributes.rb +275 -0
  149. data/lib/wefunder_generated/models/followed_company_list_envelope.rb +225 -0
  150. data/lib/wefunder_generated/models/full_attribution.rb +272 -0
  151. data/lib/wefunder_generated/models/full_attribution_attribution.rb +326 -0
  152. data/lib/wefunder_generated/models/full_attribution_investor.rb +242 -0
  153. data/lib/wefunder_generated/models/full_attribution_status.rb +257 -0
  154. data/lib/wefunder_generated/models/fund_security.rb +267 -0
  155. data/lib/wefunder_generated/models/installation.rb +233 -0
  156. data/lib/wefunder_generated/models/installation_attributes.rb +307 -0
  157. data/lib/wefunder_generated/models/installation_attributes_target.rb +267 -0
  158. data/lib/wefunder_generated/models/installation_envelope.rb +223 -0
  159. data/lib/wefunder_generated/models/installation_list_envelope.rb +225 -0
  160. data/lib/wefunder_generated/models/installation_list_envelope_meta.rb +214 -0
  161. data/lib/wefunder_generated/models/installation_token_envelope.rb +232 -0
  162. data/lib/wefunder_generated/models/installation_token_envelope_token.rb +252 -0
  163. data/lib/wefunder_generated/models/intent.rb +234 -0
  164. data/lib/wefunder_generated/models/intent_attributes.rb +375 -0
  165. data/lib/wefunder_generated/models/intent_attributes_resource_id.rb +106 -0
  166. data/lib/wefunder_generated/models/intent_envelope.rb +214 -0
  167. data/lib/wefunder_generated/models/intent_list_envelope.rb +225 -0
  168. data/lib/wefunder_generated/models/intent_preview_envelope.rb +214 -0
  169. data/lib/wefunder_generated/models/intent_preview_envelope_data.rb +257 -0
  170. data/lib/wefunder_generated/models/intent_preview_envelope_data_attributes.rb +262 -0
  171. data/lib/wefunder_generated/models/intent_review.rb +234 -0
  172. data/lib/wefunder_generated/models/investment_change_list_envelope.rb +225 -0
  173. data/lib/wefunder_generated/models/investment_change_list_envelope_meta.rb +285 -0
  174. data/lib/wefunder_generated/models/investment_delta_record.rb +504 -0
  175. data/lib/wefunder_generated/models/investment_delta_record_amounts.rb +251 -0
  176. data/lib/wefunder_generated/models/investment_delta_record_blockers_inner.rb +224 -0
  177. data/lib/wefunder_generated/models/investment_delta_record_contracts_inner.rb +234 -0
  178. data/lib/wefunder_generated/models/investment_delta_record_investor.rb +286 -0
  179. data/lib/wefunder_generated/models/investment_envelope.rb +223 -0
  180. data/lib/wefunder_generated/models/investment_envelope_meta.rb +270 -0
  181. data/lib/wefunder_generated/models/investment_list_envelope.rb +225 -0
  182. data/lib/wefunder_generated/models/investment_list_envelope_meta.rb +288 -0
  183. data/lib/wefunder_generated/models/investment_session.rb +232 -0
  184. data/lib/wefunder_generated/models/investment_session_attributes.rb +384 -0
  185. data/lib/wefunder_generated/models/investment_session_attributes_events_inner.rb +232 -0
  186. data/lib/wefunder_generated/models/investment_session_create_input.rb +331 -0
  187. data/lib/wefunder_generated/models/investment_session_envelope.rb +223 -0
  188. data/lib/wefunder_generated/models/investment_session_list_envelope.rb +225 -0
  189. data/lib/wefunder_generated/models/investment_session_list_envelope_meta.rb +242 -0
  190. data/lib/wefunder_generated/models/investor.rb +233 -0
  191. data/lib/wefunder_generated/models/investor_attributes.rb +262 -0
  192. data/lib/wefunder_generated/models/investor_envelope.rb +214 -0
  193. data/lib/wefunder_generated/models/investor_list_envelope.rb +225 -0
  194. data/lib/wefunder_generated/models/invite_link.rb +233 -0
  195. data/lib/wefunder_generated/models/invite_link_attributes.rb +375 -0
  196. data/lib/wefunder_generated/models/invite_link_attributes_events_inner.rb +243 -0
  197. data/lib/wefunder_generated/models/invite_link_create_input.rb +295 -0
  198. data/lib/wefunder_generated/models/invite_link_envelope.rb +223 -0
  199. data/lib/wefunder_generated/models/invite_link_list_envelope.rb +225 -0
  200. data/lib/wefunder_generated/models/invite_link_update_input.rb +227 -0
  201. data/lib/wefunder_generated/models/invite_syndicate_member_request.rb +277 -0
  202. data/lib/wefunder_generated/models/marketing_partner.rb +295 -0
  203. data/lib/wefunder_generated/models/marketing_partner_envelope.rb +214 -0
  204. data/lib/wefunder_generated/models/member_investment.rb +234 -0
  205. data/lib/wefunder_generated/models/member_investment_attributes.rb +301 -0
  206. data/lib/wefunder_generated/models/member_investment_list_envelope.rb +225 -0
  207. data/lib/wefunder_generated/models/member_investment_list_envelope_meta.rb +225 -0
  208. data/lib/wefunder_generated/models/my_company.rb +268 -0
  209. data/lib/wefunder_generated/models/my_company_attributes.rb +257 -0
  210. data/lib/wefunder_generated/models/my_company_list_envelope.rb +225 -0
  211. data/lib/wefunder_generated/models/offering.rb +267 -0
  212. data/lib/wefunder_generated/models/offering_attributes.rb +469 -0
  213. data/lib/wefunder_generated/models/offering_attributes_intended_security.rb +258 -0
  214. data/lib/wefunder_generated/models/offering_attributes_security.rb +105 -0
  215. data/lib/wefunder_generated/models/offering_envelope.rb +214 -0
  216. data/lib/wefunder_generated/models/offering_list_envelope.rb +225 -0
  217. data/lib/wefunder_generated/models/offering_list_envelope_meta.rb +265 -0
  218. data/lib/wefunder_generated/models/offering_stats_envelope.rb +223 -0
  219. data/lib/wefunder_generated/models/offering_stats_envelope_data.rb +253 -0
  220. data/lib/wefunder_generated/models/offering_stats_envelope_data_by_status_value.rb +232 -0
  221. data/lib/wefunder_generated/models/offering_stats_envelope_data_total.rb +233 -0
  222. data/lib/wefunder_generated/models/offering_stats_envelope_meta.rb +258 -0
  223. data/lib/wefunder_generated/models/offering_warnings_inner.rb +257 -0
  224. data/lib/wefunder_generated/models/other_security.rb +267 -0
  225. data/lib/wefunder_generated/models/other_security_terms.rb +235 -0
  226. data/lib/wefunder_generated/models/pagination_meta.rb +234 -0
  227. data/lib/wefunder_generated/models/pagination_meta_next_cursor.rb +106 -0
  228. data/lib/wefunder_generated/models/partner_investment.rb +232 -0
  229. data/lib/wefunder_generated/models/partner_investment_attributes.rb +305 -0
  230. data/lib/wefunder_generated/models/partner_investment_attributes_accreditation.rb +289 -0
  231. data/lib/wefunder_generated/models/partner_investment_envelope.rb +214 -0
  232. data/lib/wefunder_generated/models/partner_investment_list_envelope.rb +225 -0
  233. data/lib/wefunder_generated/models/partner_investor.rb +233 -0
  234. data/lib/wefunder_generated/models/partner_investor_attributes.rb +264 -0
  235. data/lib/wefunder_generated/models/partner_investor_list_envelope.rb +225 -0
  236. data/lib/wefunder_generated/models/partner_invite.rb +360 -0
  237. data/lib/wefunder_generated/models/partner_invite_envelope.rb +214 -0
  238. data/lib/wefunder_generated/models/partner_invite_list_envelope.rb +216 -0
  239. data/lib/wefunder_generated/models/partner_webhook_event.rb +257 -0
  240. data/lib/wefunder_generated/models/partner_webhook_event_envelope.rb +214 -0
  241. data/lib/wefunder_generated/models/partner_webhook_subscription.rb +232 -0
  242. data/lib/wefunder_generated/models/partner_webhook_subscription_attributes.rb +243 -0
  243. data/lib/wefunder_generated/models/partner_webhook_subscription_create_input.rb +239 -0
  244. data/lib/wefunder_generated/models/partner_webhook_subscription_envelope.rb +214 -0
  245. data/lib/wefunder_generated/models/partner_webhook_subscription_list_envelope.rb +216 -0
  246. data/lib/wefunder_generated/models/partner_webhook_subscription_with_secret.rb +239 -0
  247. data/lib/wefunder_generated/models/partner_webhook_subscription_with_secret_all_of_attributes.rb +215 -0
  248. data/lib/wefunder_generated/models/partner_webhook_subscription_with_secret_envelope.rb +214 -0
  249. data/lib/wefunder_generated/models/past_round.rb +309 -0
  250. data/lib/wefunder_generated/models/perk_tier.rb +226 -0
  251. data/lib/wefunder_generated/models/pitch_block.rb +375 -0
  252. data/lib/wefunder_generated/models/pitch_block_links_inner.rb +226 -0
  253. data/lib/wefunder_generated/models/portfolio_company_ref.rb +235 -0
  254. data/lib/wefunder_generated/models/portfolio_holding.rb +258 -0
  255. data/lib/wefunder_generated/models/portfolio_position.rb +268 -0
  256. data/lib/wefunder_generated/models/portfolio_position_attributes.rb +456 -0
  257. data/lib/wefunder_generated/models/portfolio_position_list_envelope.rb +225 -0
  258. data/lib/wefunder_generated/models/portfolio_position_list_envelope_meta.rb +234 -0
  259. data/lib/wefunder_generated/models/portfolio_security.rb +323 -0
  260. data/lib/wefunder_generated/models/portfolio_security_owner.rb +258 -0
  261. data/lib/wefunder_generated/models/portfolio_security_terms.rb +257 -0
  262. data/lib/wefunder_generated/models/portfolio_summary_envelope.rb +214 -0
  263. data/lib/wefunder_generated/models/portfolio_summary_envelope_data.rb +223 -0
  264. data/lib/wefunder_generated/models/portfolio_summary_envelope_data_attributes.rb +292 -0
  265. data/lib/wefunder_generated/models/portfolio_summary_envelope_data_attributes_position_counts.rb +242 -0
  266. data/lib/wefunder_generated/models/preview_intent_request.rb +262 -0
  267. data/lib/wefunder_generated/models/register_as_partner_request.rb +232 -0
  268. data/lib/wefunder_generated/models/reorder_syndicate_members_request.rb +224 -0
  269. data/lib/wefunder_generated/models/revenue_share_security.rb +266 -0
  270. data/lib/wefunder_generated/models/revenue_share_security_terms.rb +300 -0
  271. data/lib/wefunder_generated/models/safe_security.rb +266 -0
  272. data/lib/wefunder_generated/models/safe_security_terms.rb +257 -0
  273. data/lib/wefunder_generated/models/security.rb +66 -0
  274. data/lib/wefunder_generated/models/security_summary.rb +272 -0
  275. data/lib/wefunder_generated/models/spv.rb +232 -0
  276. data/lib/wefunder_generated/models/spv_attributes.rb +353 -0
  277. data/lib/wefunder_generated/models/spv_attributes_target_company.rb +223 -0
  278. data/lib/wefunder_generated/models/spv_cancel_intent_envelope.rb +224 -0
  279. data/lib/wefunder_generated/models/spv_cancel_intent_envelope_meta.rb +214 -0
  280. data/lib/wefunder_generated/models/spv_close_intent_envelope.rb +224 -0
  281. data/lib/wefunder_generated/models/spv_close_intent_envelope_meta.rb +214 -0
  282. data/lib/wefunder_generated/models/spv_create_input.rb +274 -0
  283. data/lib/wefunder_generated/models/spv_envelope.rb +214 -0
  284. data/lib/wefunder_generated/models/spv_list_envelope.rb +225 -0
  285. data/lib/wefunder_generated/models/spv_metrics.rb +261 -0
  286. data/lib/wefunder_generated/models/spv_settings.rb +275 -0
  287. data/lib/wefunder_generated/models/spv_status.rb +232 -0
  288. data/lib/wefunder_generated/models/spv_status_attributes.rb +289 -0
  289. data/lib/wefunder_generated/models/spv_status_envelope.rb +223 -0
  290. data/lib/wefunder_generated/models/spv_terms.rb +348 -0
  291. data/lib/wefunder_generated/models/spv_with_meta_envelope.rb +223 -0
  292. data/lib/wefunder_generated/models/spv_with_meta_envelope_meta.rb +214 -0
  293. data/lib/wefunder_generated/models/syndicate.rb +234 -0
  294. data/lib/wefunder_generated/models/syndicate_attributes.rb +412 -0
  295. data/lib/wefunder_generated/models/syndicate_attributes_annual_subscription.rb +236 -0
  296. data/lib/wefunder_generated/models/syndicate_attributes_traditional_fund.rb +225 -0
  297. data/lib/wefunder_generated/models/syndicate_deal.rb +234 -0
  298. data/lib/wefunder_generated/models/syndicate_deal_attributes.rb +435 -0
  299. data/lib/wefunder_generated/models/syndicate_deal_attributes_exemption.rb +105 -0
  300. data/lib/wefunder_generated/models/syndicate_deal_attributes_security.rb +105 -0
  301. data/lib/wefunder_generated/models/syndicate_deal_close_intent_envelope.rb +224 -0
  302. data/lib/wefunder_generated/models/syndicate_deal_close_intent_envelope_meta.rb +214 -0
  303. data/lib/wefunder_generated/models/syndicate_deal_detail_envelope.rb +214 -0
  304. data/lib/wefunder_generated/models/syndicate_deal_envelope.rb +214 -0
  305. data/lib/wefunder_generated/models/syndicate_deal_finalize_intent_envelope.rb +224 -0
  306. data/lib/wefunder_generated/models/syndicate_deal_finalize_intent_envelope_meta.rb +214 -0
  307. data/lib/wefunder_generated/models/syndicate_deal_list_envelope.rb +225 -0
  308. data/lib/wefunder_generated/models/syndicate_detail_envelope.rb +214 -0
  309. data/lib/wefunder_generated/models/syndicate_list_envelope.rb +225 -0
  310. data/lib/wefunder_generated/models/syndicate_member.rb +234 -0
  311. data/lib/wefunder_generated/models/syndicate_member_attributes.rb +650 -0
  312. data/lib/wefunder_generated/models/syndicate_member_envelope.rb +214 -0
  313. data/lib/wefunder_generated/models/syndicate_member_list_envelope.rb +225 -0
  314. data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope.rb +214 -0
  315. data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope_data.rb +223 -0
  316. data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope_data_attributes.rb +302 -0
  317. data/lib/wefunder_generated/models/syndicate_portfolio_summary_envelope_data_attributes_deal_counts.rb +242 -0
  318. data/lib/wefunder_generated/models/syndicate_statistics.rb +224 -0
  319. data/lib/wefunder_generated/models/syndicate_statistics_attributes.rb +277 -0
  320. data/lib/wefunder_generated/models/syndicate_statistics_envelope.rb +214 -0
  321. data/lib/wefunder_generated/models/tag_ref.rb +238 -0
  322. data/lib/wefunder_generated/models/target_company_input.rb +258 -0
  323. data/lib/wefunder_generated/models/test_webhook_endpoint_request.rb +249 -0
  324. data/lib/wefunder_generated/models/update_syndicate_member_request.rb +221 -0
  325. data/lib/wefunder_generated/models/update_syndicate_member_request_member.rb +251 -0
  326. data/lib/wefunder_generated/models/update_syndicate_request.rb +221 -0
  327. data/lib/wefunder_generated/models/update_syndicate_request_syndicate.rb +232 -0
  328. data/lib/wefunder_generated/models/update_webhook_endpoint_request.rb +252 -0
  329. data/lib/wefunder_generated/models/user.rb +233 -0
  330. data/lib/wefunder_generated/models/user_attributes.rb +300 -0
  331. data/lib/wefunder_generated/models/user_envelope.rb +214 -0
  332. data/lib/wefunder_generated/models/validation_error.rb +215 -0
  333. data/lib/wefunder_generated/models/validation_error_error.rb +234 -0
  334. data/lib/wefunder_generated/models/validation_error_error_details_inner.rb +232 -0
  335. data/lib/wefunder_generated/models/webhook_delivery.rb +318 -0
  336. data/lib/wefunder_generated/models/webhook_endpoint.rb +232 -0
  337. data/lib/wefunder_generated/models/webhook_endpoint_attributes.rb +327 -0
  338. data/lib/wefunder_generated/models/webhook_endpoint_envelope.rb +223 -0
  339. data/lib/wefunder_generated/models/webhook_endpoint_envelope_meta.rb +214 -0
  340. data/lib/wefunder_generated/models/webhook_endpoint_list_envelope.rb +225 -0
  341. data/lib/wefunder_generated/models/webhook_endpoint_list_envelope_meta.rb +233 -0
  342. data/lib/wefunder_generated/models/webhook_endpoint_test_result_envelope.rb +223 -0
  343. data/lib/wefunder_generated/models/webhook_endpoint_test_result_envelope_data.rb +306 -0
  344. data/lib/wefunder_generated/models/webhook_subscription.rb +304 -0
  345. data/lib/wefunder_generated/models/webhook_subscription_envelope.rb +214 -0
  346. data/lib/wefunder_generated/models/webhook_subscription_list_envelope.rb +225 -0
  347. data/lib/wefunder_generated/models/webhook_subscription_list_envelope_meta.rb +225 -0
  348. data/lib/wefunder_generated/models/webhook_subscription_with_recent_deliveries_envelope.rb +214 -0
  349. data/lib/wefunder_generated/models/webhook_subscription_with_recent_deliveries_envelope_data.rb +322 -0
  350. data/lib/wefunder_generated/models/webhook_subscription_with_secret2_envelope.rb +214 -0
  351. data/lib/wefunder_generated/models/webhook_subscription_with_secret2_envelope_data.rb +320 -0
  352. data/lib/wefunder_generated/models/webhook_subscription_with_secret_envelope.rb +214 -0
  353. data/lib/wefunder_generated/models/webhook_subscription_with_secret_envelope_data.rb +320 -0
  354. data/lib/wefunder_generated/models/webhook_test_result.rb +233 -0
  355. data/lib/wefunder_generated/models/webhook_test_result_envelope.rb +214 -0
  356. data/lib/wefunder_generated/models/wefunder_round.rb +330 -0
  357. data/lib/wefunder_generated/models/wefunder_round_exemption.rb +104 -0
  358. data/lib/wefunder_generated/models/wefunder_round_security.rb +104 -0
  359. data/lib/wefunder_generated/version.rb +15 -0
  360. data/lib/wefunder_generated.rb +382 -0
  361. metadata +456 -0
@@ -0,0 +1,650 @@
1
+ =begin
2
+ #Wefunder API v2
3
+
4
+ #OAuth 2.0 API for accessing Wefunder data programmatically. ## Authentication This API uses OAuth 2.0 for authentication. To get started: 1. Create an OAuth application at `/oauth/applications` 2. Get your Client ID and Client Secret 3. Implement the OAuth 2.0 Authorization Code flow 4. Use the access token to make API requests ## Versioning The API is versioned by the dated `Wefunder-Version` request header (`YYYY-MM-DD`), never by the URL. Resolution is header → your application's pinned version → latest; every response carries `Wefunder-Version` (the version that handled it) and `Wefunder-Version-Latest`. An unknown value returns `400 invalid_request` naming the valid versions. Current: `2026-10-01`. ## Rate Limits - Standard API: 1,000 requests/hour per token - Admin API: 10,000 requests/hour per token ## Base URL All API requests should be made to: `https://api.wefunder.com` (no version in the path).
5
+
6
+ The version of the OpenAPI document: 2.0
7
+ Contact: api@wefunder.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module WefunderGenerated
17
+ class SyndicateMemberAttributes
18
+ # Internal integer id. Deprecated — use `user` (`usr_...`) instead.
19
+ attr_accessor :user_id
20
+
21
+ # The member's user id (`usr_...`); null for invitees who haven't signed up.
22
+ attr_accessor :user
23
+
24
+ attr_accessor :user_name
25
+
26
+ # **Moderator-only.** User email (or invite_email for pending invitees). Requires the requesting user to be a manager/operator of the syndicate.
27
+ attr_accessor :user_email
28
+
29
+ # Current role (creator, manager, member, invitee, applicant, exiled, resigned, etc.)
30
+ attr_accessor :role
31
+
32
+ # The role the member was invited as
33
+ attr_accessor :invite_role
34
+
35
+ # Permission level within the syndicate
36
+ attr_accessor :syndicate_permission
37
+
38
+ # Custom title for the member
39
+ attr_accessor :title
40
+
41
+ # Display order position
42
+ attr_accessor :sort_order
43
+
44
+ # Override carry percentage for this member
45
+ attr_accessor :carry_percentage_override
46
+
47
+ # Carry discount granted to this member, in percent.
48
+ attr_accessor :carry_discount_percentage
49
+
50
+ # Management fee discount granted to this member, in percent.
51
+ attr_accessor :management_fee_discount_percentage
52
+
53
+ # Whether the member is listed on the public syndicate page.
54
+ attr_accessor :public_on_syndicate_profile
55
+
56
+ # Investor interest tags from the user's profile. Empty for invitees.
57
+ attr_accessor :interests
58
+
59
+ # Investment stage preference tags. Empty for invitees.
60
+ attr_accessor :stage_preferences
61
+
62
+ # 'Looking for' tags from the user's profile. Empty for invitees.
63
+ attr_accessor :looking_for
64
+
65
+ attr_accessor :linkedin_url
66
+
67
+ attr_accessor :twitter_url
68
+
69
+ attr_accessor :website
70
+
71
+ # User's state or region. Omitted, with city and country, when the user hides their location.
72
+ attr_accessor :state
73
+
74
+ # User profile photo URL (null for invitees without a user account)
75
+ attr_accessor :avatar_url
76
+
77
+ # User bio with fallback chain (bio -> thesis -> about). Null for invitees without a user account.
78
+ attr_accessor :bio
79
+
80
+ # User's city
81
+ attr_accessor :city
82
+
83
+ # User's country
84
+ attr_accessor :country
85
+
86
+ # ISO 8601 timestamp of user's last login. Null for invitees without a user account.
87
+ attr_accessor :last_activity_at
88
+
89
+ # Relative path to user's profile (e.g. '/janedoe'). Null for invitees without a user account.
90
+ attr_accessor :profile_url
91
+
92
+ # 'Can help with' tags from the user's investor profile. Empty array for invitees.
93
+ attr_accessor :tags
94
+
95
+ # ISO 8601 join date (alias for created_at)
96
+ attr_accessor :joined_at
97
+
98
+ # **Moderator-only.** Total invested in syndicate deals, in whole dollars, as a string.
99
+ attr_accessor :investment_total
100
+
101
+ # Number of syndicate deals the member has invested in
102
+ attr_accessor :deal_count
103
+
104
+ # **Moderator-only.** Whether the user is an accredited investor. Only included when the requesting user is a manager/operator.
105
+ attr_accessor :accredited
106
+
107
+ # **Moderator-only.** Full legal name of the user. Only included when the requesting user is a manager/operator.
108
+ attr_accessor :legal_name
109
+
110
+ # **Moderator-only.** Whether the current moderator has starred this member. Only included when the requesting user is a manager/operator.
111
+ attr_accessor :starred
112
+
113
+ # **Moderator-only.** Labels assigned by moderators via ClubMemberLabel. Only included when the requesting user is a manager/operator.
114
+ attr_accessor :private_tags
115
+
116
+ attr_accessor :created_at
117
+
118
+ attr_accessor :updated_at
119
+
120
+ class EnumAttributeValidator
121
+ attr_reader :datatype
122
+ attr_reader :allowable_values
123
+
124
+ def initialize(datatype, allowable_values)
125
+ @allowable_values = allowable_values.map do |value|
126
+ case datatype.to_s
127
+ when /Integer/i
128
+ value.to_i
129
+ when /Float/i
130
+ value.to_f
131
+ else
132
+ value
133
+ end
134
+ end
135
+ end
136
+
137
+ def valid?(value)
138
+ !value || allowable_values.include?(value)
139
+ end
140
+ end
141
+
142
+ # Attribute mapping from ruby-style variable name to JSON key.
143
+ def self.attribute_map
144
+ {
145
+ :'user_id' => :'user_id',
146
+ :'user' => :'user',
147
+ :'user_name' => :'user_name',
148
+ :'user_email' => :'user_email',
149
+ :'role' => :'role',
150
+ :'invite_role' => :'invite_role',
151
+ :'syndicate_permission' => :'syndicate_permission',
152
+ :'title' => :'title',
153
+ :'sort_order' => :'sort_order',
154
+ :'carry_percentage_override' => :'carry_percentage_override',
155
+ :'carry_discount_percentage' => :'carry_discount_percentage',
156
+ :'management_fee_discount_percentage' => :'management_fee_discount_percentage',
157
+ :'public_on_syndicate_profile' => :'public_on_syndicate_profile',
158
+ :'interests' => :'interests',
159
+ :'stage_preferences' => :'stage_preferences',
160
+ :'looking_for' => :'looking_for',
161
+ :'linkedin_url' => :'linkedin_url',
162
+ :'twitter_url' => :'twitter_url',
163
+ :'website' => :'website',
164
+ :'state' => :'state',
165
+ :'avatar_url' => :'avatar_url',
166
+ :'bio' => :'bio',
167
+ :'city' => :'city',
168
+ :'country' => :'country',
169
+ :'last_activity_at' => :'last_activity_at',
170
+ :'profile_url' => :'profile_url',
171
+ :'tags' => :'tags',
172
+ :'joined_at' => :'joined_at',
173
+ :'investment_total' => :'investment_total',
174
+ :'deal_count' => :'deal_count',
175
+ :'accredited' => :'accredited',
176
+ :'legal_name' => :'legal_name',
177
+ :'starred' => :'starred',
178
+ :'private_tags' => :'private_tags',
179
+ :'created_at' => :'created_at',
180
+ :'updated_at' => :'updated_at'
181
+ }
182
+ end
183
+
184
+ # Returns all the JSON keys this model knows about
185
+ def self.acceptable_attributes
186
+ attribute_map.values
187
+ end
188
+
189
+ # Attribute type mapping.
190
+ def self.openapi_types
191
+ {
192
+ :'user_id' => :'Integer',
193
+ :'user' => :'String',
194
+ :'user_name' => :'String',
195
+ :'user_email' => :'String',
196
+ :'role' => :'String',
197
+ :'invite_role' => :'String',
198
+ :'syndicate_permission' => :'String',
199
+ :'title' => :'String',
200
+ :'sort_order' => :'Integer',
201
+ :'carry_percentage_override' => :'Integer',
202
+ :'carry_discount_percentage' => :'Float',
203
+ :'management_fee_discount_percentage' => :'Float',
204
+ :'public_on_syndicate_profile' => :'Boolean',
205
+ :'interests' => :'Array<String>',
206
+ :'stage_preferences' => :'Array<String>',
207
+ :'looking_for' => :'Array<String>',
208
+ :'linkedin_url' => :'String',
209
+ :'twitter_url' => :'String',
210
+ :'website' => :'String',
211
+ :'state' => :'String',
212
+ :'avatar_url' => :'String',
213
+ :'bio' => :'String',
214
+ :'city' => :'String',
215
+ :'country' => :'String',
216
+ :'last_activity_at' => :'Time',
217
+ :'profile_url' => :'String',
218
+ :'tags' => :'Array<String>',
219
+ :'joined_at' => :'Time',
220
+ :'investment_total' => :'String',
221
+ :'deal_count' => :'Integer',
222
+ :'accredited' => :'Boolean',
223
+ :'legal_name' => :'String',
224
+ :'starred' => :'Boolean',
225
+ :'private_tags' => :'Array<String>',
226
+ :'created_at' => :'Time',
227
+ :'updated_at' => :'Time'
228
+ }
229
+ end
230
+
231
+ # List of attributes with nullable: true
232
+ def self.openapi_nullable
233
+ Set.new([
234
+ :'user_id',
235
+ :'user',
236
+ :'user_name',
237
+ :'user_email',
238
+ :'invite_role',
239
+ :'title',
240
+ :'sort_order',
241
+ :'carry_percentage_override',
242
+ :'carry_discount_percentage',
243
+ :'management_fee_discount_percentage',
244
+ :'linkedin_url',
245
+ :'twitter_url',
246
+ :'website',
247
+ :'state',
248
+ :'avatar_url',
249
+ :'bio',
250
+ :'city',
251
+ :'country',
252
+ :'last_activity_at',
253
+ :'profile_url',
254
+ :'investment_total',
255
+ :'deal_count',
256
+ :'legal_name',
257
+ ])
258
+ end
259
+
260
+ # Initializes the object
261
+ # @param [Hash] attributes Model attributes in the form of hash
262
+ def initialize(attributes = {})
263
+ if (!attributes.is_a?(Hash))
264
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::SyndicateMemberAttributes` initialize method"
265
+ end
266
+
267
+ # check to see if the attribute exists and convert string to symbol for hash key
268
+ attributes = attributes.each_with_object({}) { |(k, v), h|
269
+ if (!self.class.attribute_map.key?(k.to_sym))
270
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::SyndicateMemberAttributes`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
271
+ end
272
+ h[k.to_sym] = v
273
+ }
274
+
275
+ if attributes.key?(:'user_id')
276
+ self.user_id = attributes[:'user_id']
277
+ end
278
+
279
+ if attributes.key?(:'user')
280
+ self.user = attributes[:'user']
281
+ end
282
+
283
+ if attributes.key?(:'user_name')
284
+ self.user_name = attributes[:'user_name']
285
+ end
286
+
287
+ if attributes.key?(:'user_email')
288
+ self.user_email = attributes[:'user_email']
289
+ end
290
+
291
+ if attributes.key?(:'role')
292
+ self.role = attributes[:'role']
293
+ end
294
+
295
+ if attributes.key?(:'invite_role')
296
+ self.invite_role = attributes[:'invite_role']
297
+ end
298
+
299
+ if attributes.key?(:'syndicate_permission')
300
+ self.syndicate_permission = attributes[:'syndicate_permission']
301
+ end
302
+
303
+ if attributes.key?(:'title')
304
+ self.title = attributes[:'title']
305
+ end
306
+
307
+ if attributes.key?(:'sort_order')
308
+ self.sort_order = attributes[:'sort_order']
309
+ end
310
+
311
+ if attributes.key?(:'carry_percentage_override')
312
+ self.carry_percentage_override = attributes[:'carry_percentage_override']
313
+ end
314
+
315
+ if attributes.key?(:'carry_discount_percentage')
316
+ self.carry_discount_percentage = attributes[:'carry_discount_percentage']
317
+ end
318
+
319
+ if attributes.key?(:'management_fee_discount_percentage')
320
+ self.management_fee_discount_percentage = attributes[:'management_fee_discount_percentage']
321
+ end
322
+
323
+ if attributes.key?(:'public_on_syndicate_profile')
324
+ self.public_on_syndicate_profile = attributes[:'public_on_syndicate_profile']
325
+ end
326
+
327
+ if attributes.key?(:'interests')
328
+ if (value = attributes[:'interests']).is_a?(Array)
329
+ self.interests = value
330
+ end
331
+ end
332
+
333
+ if attributes.key?(:'stage_preferences')
334
+ if (value = attributes[:'stage_preferences']).is_a?(Array)
335
+ self.stage_preferences = value
336
+ end
337
+ end
338
+
339
+ if attributes.key?(:'looking_for')
340
+ if (value = attributes[:'looking_for']).is_a?(Array)
341
+ self.looking_for = value
342
+ end
343
+ end
344
+
345
+ if attributes.key?(:'linkedin_url')
346
+ self.linkedin_url = attributes[:'linkedin_url']
347
+ end
348
+
349
+ if attributes.key?(:'twitter_url')
350
+ self.twitter_url = attributes[:'twitter_url']
351
+ end
352
+
353
+ if attributes.key?(:'website')
354
+ self.website = attributes[:'website']
355
+ end
356
+
357
+ if attributes.key?(:'state')
358
+ self.state = attributes[:'state']
359
+ end
360
+
361
+ if attributes.key?(:'avatar_url')
362
+ self.avatar_url = attributes[:'avatar_url']
363
+ end
364
+
365
+ if attributes.key?(:'bio')
366
+ self.bio = attributes[:'bio']
367
+ end
368
+
369
+ if attributes.key?(:'city')
370
+ self.city = attributes[:'city']
371
+ end
372
+
373
+ if attributes.key?(:'country')
374
+ self.country = attributes[:'country']
375
+ end
376
+
377
+ if attributes.key?(:'last_activity_at')
378
+ self.last_activity_at = attributes[:'last_activity_at']
379
+ end
380
+
381
+ if attributes.key?(:'profile_url')
382
+ self.profile_url = attributes[:'profile_url']
383
+ end
384
+
385
+ if attributes.key?(:'tags')
386
+ if (value = attributes[:'tags']).is_a?(Array)
387
+ self.tags = value
388
+ end
389
+ end
390
+
391
+ if attributes.key?(:'joined_at')
392
+ self.joined_at = attributes[:'joined_at']
393
+ end
394
+
395
+ if attributes.key?(:'investment_total')
396
+ self.investment_total = attributes[:'investment_total']
397
+ end
398
+
399
+ if attributes.key?(:'deal_count')
400
+ self.deal_count = attributes[:'deal_count']
401
+ end
402
+
403
+ if attributes.key?(:'accredited')
404
+ self.accredited = attributes[:'accredited']
405
+ end
406
+
407
+ if attributes.key?(:'legal_name')
408
+ self.legal_name = attributes[:'legal_name']
409
+ end
410
+
411
+ if attributes.key?(:'starred')
412
+ self.starred = attributes[:'starred']
413
+ end
414
+
415
+ if attributes.key?(:'private_tags')
416
+ if (value = attributes[:'private_tags']).is_a?(Array)
417
+ self.private_tags = value
418
+ end
419
+ end
420
+
421
+ if attributes.key?(:'created_at')
422
+ self.created_at = attributes[:'created_at']
423
+ end
424
+
425
+ if attributes.key?(:'updated_at')
426
+ self.updated_at = attributes[:'updated_at']
427
+ end
428
+ end
429
+
430
+ # Show invalid properties with the reasons. Usually used together with valid?
431
+ # @return Array for valid properties with the reasons
432
+ def list_invalid_properties
433
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
434
+ invalid_properties = Array.new
435
+ if !@carry_percentage_override.nil? && @carry_percentage_override > 100
436
+ invalid_properties.push('invalid value for "carry_percentage_override", must be smaller than or equal to 100.')
437
+ end
438
+
439
+ if !@carry_percentage_override.nil? && @carry_percentage_override < 1
440
+ invalid_properties.push('invalid value for "carry_percentage_override", must be greater than or equal to 1.')
441
+ end
442
+
443
+ invalid_properties
444
+ end
445
+
446
+ # Check to see if the all the properties in the model are valid
447
+ # @return true if the model is valid
448
+ def valid?
449
+ warn '[DEPRECATED] the `valid?` method is obsolete'
450
+ syndicate_permission_validator = EnumAttributeValidator.new('String', ["full_access", "operator"])
451
+ return false unless syndicate_permission_validator.valid?(@syndicate_permission)
452
+ return false if !@carry_percentage_override.nil? && @carry_percentage_override > 100
453
+ return false if !@carry_percentage_override.nil? && @carry_percentage_override < 1
454
+ true
455
+ end
456
+
457
+ # Custom attribute writer method checking allowed values (enum).
458
+ # @param [Object] syndicate_permission Object to be assigned
459
+ def syndicate_permission=(syndicate_permission)
460
+ validator = EnumAttributeValidator.new('String', ["full_access", "operator"])
461
+ unless validator.valid?(syndicate_permission)
462
+ fail ArgumentError, "invalid value for \"syndicate_permission\", must be one of #{validator.allowable_values}."
463
+ end
464
+ @syndicate_permission = syndicate_permission
465
+ end
466
+
467
+ # Custom attribute writer method with validation
468
+ # @param [Object] carry_percentage_override Value to be assigned
469
+ def carry_percentage_override=(carry_percentage_override)
470
+ if !carry_percentage_override.nil? && carry_percentage_override > 100
471
+ fail ArgumentError, 'invalid value for "carry_percentage_override", must be smaller than or equal to 100.'
472
+ end
473
+
474
+ if !carry_percentage_override.nil? && carry_percentage_override < 1
475
+ fail ArgumentError, 'invalid value for "carry_percentage_override", must be greater than or equal to 1.'
476
+ end
477
+
478
+ @carry_percentage_override = carry_percentage_override
479
+ end
480
+
481
+ # Checks equality by comparing each attribute.
482
+ # @param [Object] Object to be compared
483
+ def ==(o)
484
+ return true if self.equal?(o)
485
+ self.class == o.class &&
486
+ user_id == o.user_id &&
487
+ user == o.user &&
488
+ user_name == o.user_name &&
489
+ user_email == o.user_email &&
490
+ role == o.role &&
491
+ invite_role == o.invite_role &&
492
+ syndicate_permission == o.syndicate_permission &&
493
+ title == o.title &&
494
+ sort_order == o.sort_order &&
495
+ carry_percentage_override == o.carry_percentage_override &&
496
+ carry_discount_percentage == o.carry_discount_percentage &&
497
+ management_fee_discount_percentage == o.management_fee_discount_percentage &&
498
+ public_on_syndicate_profile == o.public_on_syndicate_profile &&
499
+ interests == o.interests &&
500
+ stage_preferences == o.stage_preferences &&
501
+ looking_for == o.looking_for &&
502
+ linkedin_url == o.linkedin_url &&
503
+ twitter_url == o.twitter_url &&
504
+ website == o.website &&
505
+ state == o.state &&
506
+ avatar_url == o.avatar_url &&
507
+ bio == o.bio &&
508
+ city == o.city &&
509
+ country == o.country &&
510
+ last_activity_at == o.last_activity_at &&
511
+ profile_url == o.profile_url &&
512
+ tags == o.tags &&
513
+ joined_at == o.joined_at &&
514
+ investment_total == o.investment_total &&
515
+ deal_count == o.deal_count &&
516
+ accredited == o.accredited &&
517
+ legal_name == o.legal_name &&
518
+ starred == o.starred &&
519
+ private_tags == o.private_tags &&
520
+ created_at == o.created_at &&
521
+ updated_at == o.updated_at
522
+ end
523
+
524
+ # @see the `==` method
525
+ # @param [Object] Object to be compared
526
+ def eql?(o)
527
+ self == o
528
+ end
529
+
530
+ # Calculates hash code according to all attributes.
531
+ # @return [Integer] Hash code
532
+ def hash
533
+ [user_id, user, user_name, user_email, role, invite_role, syndicate_permission, title, sort_order, carry_percentage_override, carry_discount_percentage, management_fee_discount_percentage, public_on_syndicate_profile, interests, stage_preferences, looking_for, linkedin_url, twitter_url, website, state, avatar_url, bio, city, country, last_activity_at, profile_url, tags, joined_at, investment_total, deal_count, accredited, legal_name, starred, private_tags, created_at, updated_at].hash
534
+ end
535
+
536
+ # Builds the object from hash
537
+ # @param [Hash] attributes Model attributes in the form of hash
538
+ # @return [Object] Returns the model itself
539
+ def self.build_from_hash(attributes)
540
+ return nil unless attributes.is_a?(Hash)
541
+ attributes = attributes.transform_keys(&:to_sym)
542
+ transformed_hash = {}
543
+ openapi_types.each_pair do |key, type|
544
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
545
+ transformed_hash["#{key}"] = nil
546
+ elsif type =~ /\AArray<(.*)>/i
547
+ # check to ensure the input is an array given that the attribute
548
+ # is documented as an array but the input is not
549
+ if attributes[attribute_map[key]].is_a?(Array)
550
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
551
+ end
552
+ elsif !attributes[attribute_map[key]].nil?
553
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
554
+ end
555
+ end
556
+ new(transformed_hash)
557
+ end
558
+
559
+ # Deserializes the data based on type
560
+ # @param string type Data type
561
+ # @param string value Value to be deserialized
562
+ # @return [Object] Deserialized data
563
+ def self._deserialize(type, value)
564
+ case type.to_sym
565
+ when :Time
566
+ Time.parse(value)
567
+ when :Date
568
+ Date.parse(value)
569
+ when :String
570
+ value.to_s
571
+ when :Integer
572
+ value.to_i
573
+ when :Float
574
+ value.to_f
575
+ when :Boolean
576
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
577
+ true
578
+ else
579
+ false
580
+ end
581
+ when :Object
582
+ # generic object (usually a Hash), return directly
583
+ value
584
+ when /\AArray<(?<inner_type>.+)>\z/
585
+ inner_type = Regexp.last_match[:inner_type]
586
+ value.map { |v| _deserialize(inner_type, v) }
587
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
588
+ k_type = Regexp.last_match[:k_type]
589
+ v_type = Regexp.last_match[:v_type]
590
+ {}.tap do |hash|
591
+ value.each do |k, v|
592
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
593
+ end
594
+ end
595
+ else # model
596
+ # models (e.g. Pet) or oneOf
597
+ klass = WefunderGenerated.const_get(type)
598
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
599
+ end
600
+ end
601
+
602
+ # Returns the string representation of the object
603
+ # @return [String] String presentation of the object
604
+ def to_s
605
+ to_hash.to_s
606
+ end
607
+
608
+ # to_body is an alias to to_hash (backward compatibility)
609
+ # @return [Hash] Returns the object in the form of hash
610
+ def to_body
611
+ to_hash
612
+ end
613
+
614
+ # Returns the object in the form of hash
615
+ # @return [Hash] Returns the object in the form of hash
616
+ def to_hash
617
+ hash = {}
618
+ self.class.attribute_map.each_pair do |attr, param|
619
+ value = self.send(attr)
620
+ if value.nil?
621
+ is_nullable = self.class.openapi_nullable.include?(attr)
622
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
623
+ end
624
+
625
+ hash[param] = _to_hash(value)
626
+ end
627
+ hash
628
+ end
629
+
630
+ # Outputs non-array value in the form of hash
631
+ # For object, use to_hash. Otherwise, just return the value
632
+ # @param [Object] value Any valid value
633
+ # @return [Hash] Returns the value in the form of hash
634
+ def _to_hash(value)
635
+ if value.is_a?(Array)
636
+ value.compact.map { |v| _to_hash(v) }
637
+ elsif value.is_a?(Hash)
638
+ {}.tap do |hash|
639
+ value.each { |k, v| hash[k] = _to_hash(v) }
640
+ end
641
+ elsif value.respond_to? :to_hash
642
+ value.to_hash
643
+ else
644
+ value
645
+ end
646
+ end
647
+
648
+ end
649
+
650
+ end