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,232 @@
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 Spv
18
+ attr_accessor :id
19
+
20
+ attr_accessor :type
21
+
22
+ attr_accessor :attributes
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'id' => :'id',
28
+ :'type' => :'type',
29
+ :'attributes' => :'attributes'
30
+ }
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'id' => :'String',
42
+ :'type' => :'String',
43
+ :'attributes' => :'SpvAttributes'
44
+ }
45
+ end
46
+
47
+ # List of attributes with nullable: true
48
+ def self.openapi_nullable
49
+ Set.new([
50
+ ])
51
+ end
52
+
53
+ # Initializes the object
54
+ # @param [Hash] attributes Model attributes in the form of hash
55
+ def initialize(attributes = {})
56
+ if (!attributes.is_a?(Hash))
57
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::Spv` initialize method"
58
+ end
59
+
60
+ # check to see if the attribute exists and convert string to symbol for hash key
61
+ attributes = attributes.each_with_object({}) { |(k, v), h|
62
+ if (!self.class.attribute_map.key?(k.to_sym))
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::Spv`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
64
+ end
65
+ h[k.to_sym] = v
66
+ }
67
+
68
+ if attributes.key?(:'id')
69
+ self.id = attributes[:'id']
70
+ end
71
+
72
+ if attributes.key?(:'type')
73
+ self.type = attributes[:'type']
74
+ end
75
+
76
+ if attributes.key?(:'attributes')
77
+ self.attributes = attributes[:'attributes']
78
+ end
79
+ end
80
+
81
+ # Show invalid properties with the reasons. Usually used together with valid?
82
+ # @return Array for valid properties with the reasons
83
+ def list_invalid_properties
84
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
85
+ invalid_properties = Array.new
86
+ invalid_properties
87
+ end
88
+
89
+ # Check to see if the all the properties in the model are valid
90
+ # @return true if the model is valid
91
+ def valid?
92
+ warn '[DEPRECATED] the `valid?` method is obsolete'
93
+ true
94
+ end
95
+
96
+ # Checks equality by comparing each attribute.
97
+ # @param [Object] Object to be compared
98
+ def ==(o)
99
+ return true if self.equal?(o)
100
+ self.class == o.class &&
101
+ id == o.id &&
102
+ type == o.type &&
103
+ attributes == o.attributes
104
+ end
105
+
106
+ # @see the `==` method
107
+ # @param [Object] Object to be compared
108
+ def eql?(o)
109
+ self == o
110
+ end
111
+
112
+ # Calculates hash code according to all attributes.
113
+ # @return [Integer] Hash code
114
+ def hash
115
+ [id, type, attributes].hash
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def self.build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ attributes = attributes.transform_keys(&:to_sym)
124
+ transformed_hash = {}
125
+ openapi_types.each_pair do |key, type|
126
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
127
+ transformed_hash["#{key}"] = nil
128
+ elsif type =~ /\AArray<(.*)>/i
129
+ # check to ensure the input is an array given that the attribute
130
+ # is documented as an array but the input is not
131
+ if attributes[attribute_map[key]].is_a?(Array)
132
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
133
+ end
134
+ elsif !attributes[attribute_map[key]].nil?
135
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
136
+ end
137
+ end
138
+ new(transformed_hash)
139
+ end
140
+
141
+ # Deserializes the data based on type
142
+ # @param string type Data type
143
+ # @param string value Value to be deserialized
144
+ # @return [Object] Deserialized data
145
+ def self._deserialize(type, value)
146
+ case type.to_sym
147
+ when :Time
148
+ Time.parse(value)
149
+ when :Date
150
+ Date.parse(value)
151
+ when :String
152
+ value.to_s
153
+ when :Integer
154
+ value.to_i
155
+ when :Float
156
+ value.to_f
157
+ when :Boolean
158
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
159
+ true
160
+ else
161
+ false
162
+ end
163
+ when :Object
164
+ # generic object (usually a Hash), return directly
165
+ value
166
+ when /\AArray<(?<inner_type>.+)>\z/
167
+ inner_type = Regexp.last_match[:inner_type]
168
+ value.map { |v| _deserialize(inner_type, v) }
169
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
170
+ k_type = Regexp.last_match[:k_type]
171
+ v_type = Regexp.last_match[:v_type]
172
+ {}.tap do |hash|
173
+ value.each do |k, v|
174
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
175
+ end
176
+ end
177
+ else # model
178
+ # models (e.g. Pet) or oneOf
179
+ klass = WefunderGenerated.const_get(type)
180
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
181
+ end
182
+ end
183
+
184
+ # Returns the string representation of the object
185
+ # @return [String] String presentation of the object
186
+ def to_s
187
+ to_hash.to_s
188
+ end
189
+
190
+ # to_body is an alias to to_hash (backward compatibility)
191
+ # @return [Hash] Returns the object in the form of hash
192
+ def to_body
193
+ to_hash
194
+ end
195
+
196
+ # Returns the object in the form of hash
197
+ # @return [Hash] Returns the object in the form of hash
198
+ def to_hash
199
+ hash = {}
200
+ self.class.attribute_map.each_pair do |attr, param|
201
+ value = self.send(attr)
202
+ if value.nil?
203
+ is_nullable = self.class.openapi_nullable.include?(attr)
204
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
205
+ end
206
+
207
+ hash[param] = _to_hash(value)
208
+ end
209
+ hash
210
+ end
211
+
212
+ # Outputs non-array value in the form of hash
213
+ # For object, use to_hash. Otherwise, just return the value
214
+ # @param [Object] value Any valid value
215
+ # @return [Hash] Returns the value in the form of hash
216
+ def _to_hash(value)
217
+ if value.is_a?(Array)
218
+ value.compact.map { |v| _to_hash(v) }
219
+ elsif value.is_a?(Hash)
220
+ {}.tap do |hash|
221
+ value.each { |k, v| hash[k] = _to_hash(v) }
222
+ end
223
+ elsif value.respond_to? :to_hash
224
+ value.to_hash
225
+ else
226
+ value
227
+ end
228
+ end
229
+
230
+ end
231
+
232
+ end
@@ -0,0 +1,353 @@
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 SpvAttributes
18
+ attr_accessor :name
19
+
20
+ attr_accessor :status
21
+
22
+ attr_accessor :series_name
23
+
24
+ attr_accessor :invest_url
25
+
26
+ attr_accessor :target_company
27
+
28
+ attr_accessor :terms
29
+
30
+ attr_accessor :metrics
31
+
32
+ attr_accessor :metadata
33
+
34
+ attr_accessor :created_at
35
+
36
+ attr_accessor :opened_at
37
+
38
+ attr_accessor :closing_at
39
+
40
+ attr_accessor :closed_at
41
+
42
+ class EnumAttributeValidator
43
+ attr_reader :datatype
44
+ attr_reader :allowable_values
45
+
46
+ def initialize(datatype, allowable_values)
47
+ @allowable_values = allowable_values.map do |value|
48
+ case datatype.to_s
49
+ when /Integer/i
50
+ value.to_i
51
+ when /Float/i
52
+ value.to_f
53
+ else
54
+ value
55
+ end
56
+ end
57
+ end
58
+
59
+ def valid?(value)
60
+ !value || allowable_values.include?(value)
61
+ end
62
+ end
63
+
64
+ # Attribute mapping from ruby-style variable name to JSON key.
65
+ def self.attribute_map
66
+ {
67
+ :'name' => :'name',
68
+ :'status' => :'status',
69
+ :'series_name' => :'series_name',
70
+ :'invest_url' => :'invest_url',
71
+ :'target_company' => :'target_company',
72
+ :'terms' => :'terms',
73
+ :'metrics' => :'metrics',
74
+ :'metadata' => :'metadata',
75
+ :'created_at' => :'created_at',
76
+ :'opened_at' => :'opened_at',
77
+ :'closing_at' => :'closing_at',
78
+ :'closed_at' => :'closed_at'
79
+ }
80
+ end
81
+
82
+ # Returns all the JSON keys this model knows about
83
+ def self.acceptable_attributes
84
+ attribute_map.values
85
+ end
86
+
87
+ # Attribute type mapping.
88
+ def self.openapi_types
89
+ {
90
+ :'name' => :'String',
91
+ :'status' => :'String',
92
+ :'series_name' => :'String',
93
+ :'invest_url' => :'String',
94
+ :'target_company' => :'SpvAttributesTargetCompany',
95
+ :'terms' => :'SpvTerms',
96
+ :'metrics' => :'SpvMetrics',
97
+ :'metadata' => :'Hash<String, Object>',
98
+ :'created_at' => :'Time',
99
+ :'opened_at' => :'Time',
100
+ :'closing_at' => :'Time',
101
+ :'closed_at' => :'Time'
102
+ }
103
+ end
104
+
105
+ # List of attributes with nullable: true
106
+ def self.openapi_nullable
107
+ Set.new([
108
+ :'invest_url',
109
+ :'opened_at',
110
+ :'closing_at',
111
+ :'closed_at'
112
+ ])
113
+ end
114
+
115
+ # Initializes the object
116
+ # @param [Hash] attributes Model attributes in the form of hash
117
+ def initialize(attributes = {})
118
+ if (!attributes.is_a?(Hash))
119
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::SpvAttributes` initialize method"
120
+ end
121
+
122
+ # check to see if the attribute exists and convert string to symbol for hash key
123
+ attributes = attributes.each_with_object({}) { |(k, v), h|
124
+ if (!self.class.attribute_map.key?(k.to_sym))
125
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::SpvAttributes`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
126
+ end
127
+ h[k.to_sym] = v
128
+ }
129
+
130
+ if attributes.key?(:'name')
131
+ self.name = attributes[:'name']
132
+ end
133
+
134
+ if attributes.key?(:'status')
135
+ self.status = attributes[:'status']
136
+ end
137
+
138
+ if attributes.key?(:'series_name')
139
+ self.series_name = attributes[:'series_name']
140
+ end
141
+
142
+ if attributes.key?(:'invest_url')
143
+ self.invest_url = attributes[:'invest_url']
144
+ end
145
+
146
+ if attributes.key?(:'target_company')
147
+ self.target_company = attributes[:'target_company']
148
+ end
149
+
150
+ if attributes.key?(:'terms')
151
+ self.terms = attributes[:'terms']
152
+ end
153
+
154
+ if attributes.key?(:'metrics')
155
+ self.metrics = attributes[:'metrics']
156
+ end
157
+
158
+ if attributes.key?(:'metadata')
159
+ if (value = attributes[:'metadata']).is_a?(Hash)
160
+ self.metadata = value
161
+ end
162
+ end
163
+
164
+ if attributes.key?(:'created_at')
165
+ self.created_at = attributes[:'created_at']
166
+ end
167
+
168
+ if attributes.key?(:'opened_at')
169
+ self.opened_at = attributes[:'opened_at']
170
+ end
171
+
172
+ if attributes.key?(:'closing_at')
173
+ self.closing_at = attributes[:'closing_at']
174
+ end
175
+
176
+ if attributes.key?(:'closed_at')
177
+ self.closed_at = attributes[:'closed_at']
178
+ end
179
+ end
180
+
181
+ # Show invalid properties with the reasons. Usually used together with valid?
182
+ # @return Array for valid properties with the reasons
183
+ def list_invalid_properties
184
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
185
+ invalid_properties = Array.new
186
+ invalid_properties
187
+ end
188
+
189
+ # Check to see if the all the properties in the model are valid
190
+ # @return true if the model is valid
191
+ def valid?
192
+ warn '[DEPRECATED] the `valid?` method is obsolete'
193
+ status_validator = EnumAttributeValidator.new('String', ["draft", "open", "closing", "closed", "canceled", "dissolved"])
194
+ return false unless status_validator.valid?(@status)
195
+ true
196
+ end
197
+
198
+ # Custom attribute writer method checking allowed values (enum).
199
+ # @param [Object] status Object to be assigned
200
+ def status=(status)
201
+ validator = EnumAttributeValidator.new('String', ["draft", "open", "closing", "closed", "canceled", "dissolved"])
202
+ unless validator.valid?(status)
203
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
204
+ end
205
+ @status = status
206
+ end
207
+
208
+ # Checks equality by comparing each attribute.
209
+ # @param [Object] Object to be compared
210
+ def ==(o)
211
+ return true if self.equal?(o)
212
+ self.class == o.class &&
213
+ name == o.name &&
214
+ status == o.status &&
215
+ series_name == o.series_name &&
216
+ invest_url == o.invest_url &&
217
+ target_company == o.target_company &&
218
+ terms == o.terms &&
219
+ metrics == o.metrics &&
220
+ metadata == o.metadata &&
221
+ created_at == o.created_at &&
222
+ opened_at == o.opened_at &&
223
+ closing_at == o.closing_at &&
224
+ closed_at == o.closed_at
225
+ end
226
+
227
+ # @see the `==` method
228
+ # @param [Object] Object to be compared
229
+ def eql?(o)
230
+ self == o
231
+ end
232
+
233
+ # Calculates hash code according to all attributes.
234
+ # @return [Integer] Hash code
235
+ def hash
236
+ [name, status, series_name, invest_url, target_company, terms, metrics, metadata, created_at, opened_at, closing_at, closed_at].hash
237
+ end
238
+
239
+ # Builds the object from hash
240
+ # @param [Hash] attributes Model attributes in the form of hash
241
+ # @return [Object] Returns the model itself
242
+ def self.build_from_hash(attributes)
243
+ return nil unless attributes.is_a?(Hash)
244
+ attributes = attributes.transform_keys(&:to_sym)
245
+ transformed_hash = {}
246
+ openapi_types.each_pair do |key, type|
247
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
248
+ transformed_hash["#{key}"] = nil
249
+ elsif type =~ /\AArray<(.*)>/i
250
+ # check to ensure the input is an array given that the attribute
251
+ # is documented as an array but the input is not
252
+ if attributes[attribute_map[key]].is_a?(Array)
253
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
254
+ end
255
+ elsif !attributes[attribute_map[key]].nil?
256
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
257
+ end
258
+ end
259
+ new(transformed_hash)
260
+ end
261
+
262
+ # Deserializes the data based on type
263
+ # @param string type Data type
264
+ # @param string value Value to be deserialized
265
+ # @return [Object] Deserialized data
266
+ def self._deserialize(type, value)
267
+ case type.to_sym
268
+ when :Time
269
+ Time.parse(value)
270
+ when :Date
271
+ Date.parse(value)
272
+ when :String
273
+ value.to_s
274
+ when :Integer
275
+ value.to_i
276
+ when :Float
277
+ value.to_f
278
+ when :Boolean
279
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
280
+ true
281
+ else
282
+ false
283
+ end
284
+ when :Object
285
+ # generic object (usually a Hash), return directly
286
+ value
287
+ when /\AArray<(?<inner_type>.+)>\z/
288
+ inner_type = Regexp.last_match[:inner_type]
289
+ value.map { |v| _deserialize(inner_type, v) }
290
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
291
+ k_type = Regexp.last_match[:k_type]
292
+ v_type = Regexp.last_match[:v_type]
293
+ {}.tap do |hash|
294
+ value.each do |k, v|
295
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
296
+ end
297
+ end
298
+ else # model
299
+ # models (e.g. Pet) or oneOf
300
+ klass = WefunderGenerated.const_get(type)
301
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
302
+ end
303
+ end
304
+
305
+ # Returns the string representation of the object
306
+ # @return [String] String presentation of the object
307
+ def to_s
308
+ to_hash.to_s
309
+ end
310
+
311
+ # to_body is an alias to to_hash (backward compatibility)
312
+ # @return [Hash] Returns the object in the form of hash
313
+ def to_body
314
+ to_hash
315
+ end
316
+
317
+ # Returns the object in the form of hash
318
+ # @return [Hash] Returns the object in the form of hash
319
+ def to_hash
320
+ hash = {}
321
+ self.class.attribute_map.each_pair do |attr, param|
322
+ value = self.send(attr)
323
+ if value.nil?
324
+ is_nullable = self.class.openapi_nullable.include?(attr)
325
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
326
+ end
327
+
328
+ hash[param] = _to_hash(value)
329
+ end
330
+ hash
331
+ end
332
+
333
+ # Outputs non-array value in the form of hash
334
+ # For object, use to_hash. Otherwise, just return the value
335
+ # @param [Object] value Any valid value
336
+ # @return [Hash] Returns the value in the form of hash
337
+ def _to_hash(value)
338
+ if value.is_a?(Array)
339
+ value.compact.map { |v| _to_hash(v) }
340
+ elsif value.is_a?(Hash)
341
+ {}.tap do |hash|
342
+ value.each { |k, v| hash[k] = _to_hash(v) }
343
+ end
344
+ elsif value.respond_to? :to_hash
345
+ value.to_hash
346
+ else
347
+ value
348
+ end
349
+ end
350
+
351
+ end
352
+
353
+ end