wefunder 1.0.1 → 1.1.0

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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +33 -11
  3. data/lib/wefunder/client.rb +127 -12
  4. data/lib/wefunder/version.rb +1 -1
  5. data/lib/wefunder/webhooks.rb +5 -2
  6. data/lib/wefunder_generated/api/activity_api.rb +0 -92
  7. data/lib/wefunder_generated/api/explore_api.rb +24 -6
  8. data/lib/wefunder_generated/api/intents_api.rb +2 -2
  9. data/lib/wefunder_generated/api/investment_delta_api.rb +4 -4
  10. data/lib/wefunder_generated/api/investments_api.rb +2 -2
  11. data/lib/wefunder_generated/api/member_links_api.rb +287 -0
  12. data/lib/wefunder_generated/api/partner_invites_sessions_api.rb +374 -0
  13. data/lib/wefunder_generated/api/portfolio_api.rb +2 -2
  14. data/lib/wefunder_generated/api/referral_codes_api.rb +374 -0
  15. data/lib/wefunder_generated/api/syndicate_deals_api.rb +2 -140
  16. data/lib/wefunder_generated/api/syndicate_members_api.rb +216 -0
  17. data/lib/wefunder_generated/api/syndicate_statistics_api.rb +2 -2
  18. data/lib/wefunder_generated/api/users_api.rb +4 -4
  19. data/lib/wefunder_generated/models/audit_event_attributes.rb +1 -0
  20. data/lib/wefunder_generated/models/campaign.rb +1 -1
  21. data/lib/wefunder_generated/models/company_attributes.rb +88 -1
  22. data/lib/wefunder_generated/models/company_disclosures_attributes_ratios.rb +13 -2
  23. data/lib/wefunder_generated/models/create_intent_request.rb +2 -2
  24. data/lib/wefunder_generated/models/{webhook_subscription_with_secret2_envelope.rb → create_offering_investment_session_request.rb} +17 -10
  25. data/lib/wefunder_generated/models/{attribution_stats_envelope.rb → create_offering_member_link_request.rb} +10 -10
  26. data/lib/wefunder_generated/models/{create_partner_invite_request.rb → create_referral_code_request.rb} +58 -63
  27. data/lib/wefunder_generated/models/{attribution_stats_period.rb → create_syndicate_join_session_request.rb} +17 -19
  28. data/lib/wefunder_generated/models/{anonymized_attribution.rb → create_syndicate_join_session_request_join_session.rb} +81 -53
  29. data/lib/wefunder_generated/models/create_webhook_endpoint_request.rb +11 -1
  30. data/lib/wefunder_generated/models/fiscal_year_financials.rb +25 -1
  31. data/lib/wefunder_generated/models/intent_attributes.rb +1 -0
  32. data/lib/wefunder_generated/models/investment_delta_record.rb +4 -4
  33. data/lib/wefunder_generated/models/investment_session_attributes.rb +1 -0
  34. data/lib/wefunder_generated/models/investment_session_create_input.rb +13 -2
  35. data/lib/wefunder_generated/models/investment_session_envelope.rb +1 -1
  36. data/lib/wefunder_generated/models/invite_link_attributes.rb +47 -4
  37. data/lib/wefunder_generated/models/invite_link_attributes_events_inner.rb +12 -1
  38. data/lib/wefunder_generated/models/invite_link_envelope.rb +1 -1
  39. data/lib/wefunder_generated/models/{full_attribution_status.rb → member_link.rb} +34 -24
  40. data/lib/wefunder_generated/models/{marketing_partner.rb → member_link_attributes.rb} +60 -44
  41. data/lib/wefunder_generated/models/{attribution_me_envelope.rb → member_link_create_input.rb} +40 -10
  42. data/lib/wefunder_generated/models/{spv_with_meta_envelope.rb → member_link_envelope.rb} +5 -5
  43. data/lib/wefunder_generated/models/{spv_list_envelope.rb → member_link_list_envelope.rb} +5 -5
  44. data/lib/wefunder_generated/models/{full_attribution_investor.rb → member_link_list_envelope_meta.rb} +28 -29
  45. data/lib/wefunder_generated/models/offering_attributes.rb +34 -1
  46. data/lib/wefunder_generated/models/offering_list_envelope_meta.rb +57 -3
  47. data/lib/wefunder_generated/models/portfolio_company_ref.rb +16 -5
  48. data/lib/wefunder_generated/models/portfolio_position_attributes.rb +13 -2
  49. data/lib/wefunder_generated/models/portfolio_security_terms.rb +15 -2
  50. data/lib/wefunder_generated/models/{spv_status.rb → referral_code.rb} +4 -4
  51. data/lib/wefunder_generated/models/{webhook_subscription.rb → referral_code_attributes.rb} +51 -63
  52. data/lib/wefunder_generated/models/{anonymized_attribution_status.rb → referral_code_attributes_target.rb} +36 -27
  53. data/lib/wefunder_generated/models/{spv_status_envelope.rb → referral_code_envelope.rb} +5 -5
  54. data/lib/wefunder_generated/models/{spv_with_meta_envelope_meta.rb → referral_code_envelope_meta.rb} +3 -3
  55. data/lib/wefunder_generated/models/{partner_investor_list_envelope.rb → referral_code_list_envelope.rb} +5 -5
  56. data/lib/wefunder_generated/models/{attribution_campaign_summary.rb → referral_code_list_envelope_meta.rb} +36 -35
  57. data/lib/wefunder_generated/models/{spv_status_attributes.rb → referral_code_stats_company.rb} +70 -47
  58. data/lib/wefunder_generated/models/referral_code_stats_envelope.rb +223 -0
  59. data/lib/wefunder_generated/models/{partner_investor.rb → referral_code_stats_envelope_data.rb} +4 -5
  60. data/lib/wefunder_generated/models/{syndicate_deal_finalize_intent_envelope_meta.rb → referral_code_stats_envelope_data_attributes.rb} +56 -10
  61. data/lib/wefunder_generated/models/{webhook_endpoint_envelope_meta.rb → referral_code_stats_envelope_meta.rb} +32 -4
  62. data/lib/wefunder_generated/models/{full_attribution.rb → referral_code_utm.rb} +130 -56
  63. data/lib/wefunder_generated/models/{attribution_me.rb → referral_code_visits.rb} +23 -25
  64. data/lib/wefunder_generated/models/{attribution_campaign_access.rb → referral_cohort.rb} +29 -28
  65. data/lib/wefunder_generated/models/referral_cohort_investors.rb +224 -0
  66. data/lib/wefunder_generated/models/syndicate_attributes.rb +11 -1
  67. data/lib/wefunder_generated/models/{syndicate_deal_close_intent_envelope.rb → syndicate_deal_created_envelope.rb} +5 -5
  68. data/lib/wefunder_generated/models/{attribution_campaign_summary_list_envelope.rb → syndicate_deal_created_envelope_meta.rb} +11 -12
  69. data/lib/wefunder_generated/models/{attribution_user.rb → syndicate_deal_created_envelope_meta_target_company.rb} +5 -14
  70. data/lib/wefunder_generated/models/{marketing_partner_envelope.rb → syndicate_deal_readiness_envelope.rb} +4 -4
  71. data/lib/wefunder_generated/models/syndicate_deal_readiness_envelope_data.rb +267 -0
  72. data/lib/wefunder_generated/models/{attribution_partner.rb → syndicate_deal_readiness_envelope_data_attributes.rb} +27 -33
  73. data/lib/wefunder_generated/models/{webhook_delivery.rb → syndicate_deal_readiness_item.rb} +55 -61
  74. data/lib/wefunder_generated/models/syndicate_statistics_attributes.rb +2 -2
  75. data/lib/wefunder_generated/models/test_webhook_endpoint_request.rb +2 -2
  76. data/lib/wefunder_generated/models/{webhook_test_result_envelope.rb → update_referral_code_request.rb} +47 -10
  77. data/lib/wefunder_generated/models/user_attributes.rb +1 -0
  78. data/lib/wefunder_generated/models/webhook_endpoint_attributes.rb +23 -1
  79. data/lib/wefunder_generated/models/webhook_endpoint_envelope.rb +1 -1
  80. data/lib/wefunder_generated/models/webhook_endpoint_test_result_envelope.rb +1 -1
  81. data/lib/wefunder_generated.rb +38 -63
  82. metadata +40 -65
  83. data/lib/wefunder_generated/api/attribution_api.rb +0 -182
  84. data/lib/wefunder_generated/api/attribution_partners_api.rb +0 -392
  85. data/lib/wefunder_generated/api/attribution_webhooks_api.rb +0 -504
  86. data/lib/wefunder_generated/models/anonymized_attribution_attribution.rb +0 -330
  87. data/lib/wefunder_generated/models/attributed_investment_list_envelope.rb +0 -226
  88. data/lib/wefunder_generated/models/attributed_investment_list_envelope_data_inner.rb +0 -105
  89. data/lib/wefunder_generated/models/attributed_investment_list_envelope_meta.rb +0 -295
  90. data/lib/wefunder_generated/models/attribution_stats.rb +0 -266
  91. data/lib/wefunder_generated/models/attribution_stats_by_campaign_inner.rb +0 -232
  92. data/lib/wefunder_generated/models/attribution_stats_by_source_inner.rb +0 -232
  93. data/lib/wefunder_generated/models/attribution_stats_quality_breakdown.rb +0 -236
  94. data/lib/wefunder_generated/models/attribution_stats_totals.rb +0 -245
  95. data/lib/wefunder_generated/models/create_webhook_subscription_request.rb +0 -263
  96. data/lib/wefunder_generated/models/full_attribution_attribution.rb +0 -326
  97. data/lib/wefunder_generated/models/partner_investment_list_envelope.rb +0 -225
  98. data/lib/wefunder_generated/models/partner_investor_attributes.rb +0 -264
  99. data/lib/wefunder_generated/models/partner_invite.rb +0 -360
  100. data/lib/wefunder_generated/models/partner_invite_envelope.rb +0 -214
  101. data/lib/wefunder_generated/models/partner_invite_list_envelope.rb +0 -216
  102. data/lib/wefunder_generated/models/register_as_partner_request.rb +0 -232
  103. data/lib/wefunder_generated/models/syndicate_deal_close_intent_envelope_meta.rb +0 -214
  104. data/lib/wefunder_generated/models/syndicate_deal_finalize_intent_envelope.rb +0 -224
  105. data/lib/wefunder_generated/models/webhook_subscription_envelope.rb +0 -214
  106. data/lib/wefunder_generated/models/webhook_subscription_list_envelope.rb +0 -225
  107. data/lib/wefunder_generated/models/webhook_subscription_list_envelope_meta.rb +0 -225
  108. data/lib/wefunder_generated/models/webhook_subscription_with_recent_deliveries_envelope.rb +0 -214
  109. data/lib/wefunder_generated/models/webhook_subscription_with_recent_deliveries_envelope_data.rb +0 -322
  110. data/lib/wefunder_generated/models/webhook_subscription_with_secret2_envelope_data.rb +0 -320
  111. data/lib/wefunder_generated/models/webhook_subscription_with_secret_envelope.rb +0 -214
  112. data/lib/wefunder_generated/models/webhook_subscription_with_secret_envelope_data.rb +0 -320
  113. data/lib/wefunder_generated/models/webhook_test_result.rb +0 -233
@@ -88,6 +88,80 @@ module WefunderGenerated
88
88
  return data, status_code, headers
89
89
  end
90
90
 
91
+ # Create a join session
92
+ # Mint a hosted join session that turns an invitee into a member of a syndicate you manage. The session is bound to one email; the recipient completes the join on `wefunder.com/join/session/{id}`, and you learn the outcome by polling this session or via `join_session.*` webhooks. Requires `write:syndicate_members` (included in `write:syndicates`), operator permission, and an active installation of your app on the syndicate. Phase 1 supports `mode: hosted` only.
93
+ # @param syndicate_id [String] The syndicate's id (`syn_...`).
94
+ # @param create_syndicate_join_session_request [CreateSyndicateJoinSessionRequest]
95
+ # @param [Hash] opts the optional parameters
96
+ # @return [Object]
97
+ def create_syndicate_join_session(syndicate_id, create_syndicate_join_session_request, opts = {})
98
+ data, _status_code, _headers = create_syndicate_join_session_with_http_info(syndicate_id, create_syndicate_join_session_request, opts)
99
+ data
100
+ end
101
+
102
+ # Create a join session
103
+ # Mint a hosted join session that turns an invitee into a member of a syndicate you manage. The session is bound to one email; the recipient completes the join on `wefunder.com/join/session/{id}`, and you learn the outcome by polling this session or via `join_session.*` webhooks. Requires `write:syndicate_members` (included in `write:syndicates`), operator permission, and an active installation of your app on the syndicate. Phase 1 supports `mode: hosted` only.
104
+ # @param syndicate_id [String] The syndicate's id (`syn_...`).
105
+ # @param create_syndicate_join_session_request [CreateSyndicateJoinSessionRequest]
106
+ # @param [Hash] opts the optional parameters
107
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
108
+ def create_syndicate_join_session_with_http_info(syndicate_id, create_syndicate_join_session_request, opts = {})
109
+ if @api_client.config.debugging
110
+ @api_client.config.logger.debug 'Calling API: SyndicateMembersApi.create_syndicate_join_session ...'
111
+ end
112
+ # verify the required parameter 'syndicate_id' is set
113
+ if @api_client.config.client_side_validation && syndicate_id.nil?
114
+ fail ArgumentError, "Missing the required parameter 'syndicate_id' when calling SyndicateMembersApi.create_syndicate_join_session"
115
+ end
116
+ # verify the required parameter 'create_syndicate_join_session_request' is set
117
+ if @api_client.config.client_side_validation && create_syndicate_join_session_request.nil?
118
+ fail ArgumentError, "Missing the required parameter 'create_syndicate_join_session_request' when calling SyndicateMembersApi.create_syndicate_join_session"
119
+ end
120
+ # resource path
121
+ local_var_path = '/syndicates/{syndicate_id}/join_sessions'.sub('{' + 'syndicate_id' + '}', CGI.escape(syndicate_id.to_s))
122
+
123
+ # query parameters
124
+ query_params = opts[:query_params] || {}
125
+
126
+ # header parameters
127
+ header_params = opts[:header_params] || {}
128
+ # HTTP header 'Accept' (if needed)
129
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
130
+ # HTTP header 'Content-Type'
131
+ content_type = @api_client.select_header_content_type(['application/json'])
132
+ if !content_type.nil?
133
+ header_params['Content-Type'] = content_type
134
+ end
135
+
136
+ # form parameters
137
+ form_params = opts[:form_params] || {}
138
+
139
+ # http body (model)
140
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_syndicate_join_session_request)
141
+
142
+ # return_type
143
+ return_type = opts[:debug_return_type] || 'Object'
144
+
145
+ # auth_names
146
+ auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
147
+
148
+ new_options = opts.merge(
149
+ :operation => :"SyndicateMembersApi.create_syndicate_join_session",
150
+ :header_params => header_params,
151
+ :query_params => query_params,
152
+ :form_params => form_params,
153
+ :body => post_body,
154
+ :auth_names => auth_names,
155
+ :return_type => return_type
156
+ )
157
+
158
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
159
+ if @api_client.config.debugging
160
+ @api_client.config.logger.debug "API called: SyndicateMembersApi#create_syndicate_join_session\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
161
+ end
162
+ return data, status_code, headers
163
+ end
164
+
91
165
  # Demote member to operator
92
166
  # Demote a member from full_access (admin) to operator permission.
93
167
  # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
@@ -220,6 +294,75 @@ module WefunderGenerated
220
294
  return data, status_code, headers
221
295
  end
222
296
 
297
+ # Get a join session
298
+ # Fetch one join session your app's installation minted on this syndicate, by its `js_` id. Poll this to learn the session's current status.
299
+ # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
300
+ # @param id [String] The join session&#39;s &#x60;js_&#x60; id.
301
+ # @param [Hash] opts the optional parameters
302
+ # @return [Object]
303
+ def get_syndicate_join_session(syndicate_id, id, opts = {})
304
+ data, _status_code, _headers = get_syndicate_join_session_with_http_info(syndicate_id, id, opts)
305
+ data
306
+ end
307
+
308
+ # Get a join session
309
+ # Fetch one join session your app&#39;s installation minted on this syndicate, by its &#x60;js_&#x60; id. Poll this to learn the session&#39;s current status.
310
+ # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
311
+ # @param id [String] The join session&#39;s &#x60;js_&#x60; id.
312
+ # @param [Hash] opts the optional parameters
313
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
314
+ def get_syndicate_join_session_with_http_info(syndicate_id, id, opts = {})
315
+ if @api_client.config.debugging
316
+ @api_client.config.logger.debug 'Calling API: SyndicateMembersApi.get_syndicate_join_session ...'
317
+ end
318
+ # verify the required parameter 'syndicate_id' is set
319
+ if @api_client.config.client_side_validation && syndicate_id.nil?
320
+ fail ArgumentError, "Missing the required parameter 'syndicate_id' when calling SyndicateMembersApi.get_syndicate_join_session"
321
+ end
322
+ # verify the required parameter 'id' is set
323
+ if @api_client.config.client_side_validation && id.nil?
324
+ fail ArgumentError, "Missing the required parameter 'id' when calling SyndicateMembersApi.get_syndicate_join_session"
325
+ end
326
+ # resource path
327
+ local_var_path = '/syndicates/{syndicate_id}/join_sessions/{id}'.sub('{' + 'syndicate_id' + '}', CGI.escape(syndicate_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
328
+
329
+ # query parameters
330
+ query_params = opts[:query_params] || {}
331
+
332
+ # header parameters
333
+ header_params = opts[:header_params] || {}
334
+ # HTTP header 'Accept' (if needed)
335
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
336
+
337
+ # form parameters
338
+ form_params = opts[:form_params] || {}
339
+
340
+ # http body (model)
341
+ post_body = opts[:debug_body]
342
+
343
+ # return_type
344
+ return_type = opts[:debug_return_type] || 'Object'
345
+
346
+ # auth_names
347
+ auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
348
+
349
+ new_options = opts.merge(
350
+ :operation => :"SyndicateMembersApi.get_syndicate_join_session",
351
+ :header_params => header_params,
352
+ :query_params => query_params,
353
+ :form_params => form_params,
354
+ :body => post_body,
355
+ :auth_names => auth_names,
356
+ :return_type => return_type
357
+ )
358
+
359
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
360
+ if @api_client.config.debugging
361
+ @api_client.config.logger.debug "API called: SyndicateMembersApi#get_syndicate_join_session\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
362
+ end
363
+ return data, status_code, headers
364
+ end
365
+
223
366
  # Exile member
224
367
  # Exile (hide) a member from the syndicate. Sets their role to exiled.
225
368
  # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
@@ -363,6 +506,79 @@ module WefunderGenerated
363
506
  return data, status_code, headers
364
507
  end
365
508
 
509
+ # List join sessions
510
+ # List the join sessions your app's installation minted on this syndicate. Sessions are install-scoped: you only see the ones your own install created.
511
+ # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
512
+ # @param [Hash] opts the optional parameters
513
+ # @option opts [String] :cursor Opaque cursor from the previous response&#39;s &#x60;meta.next_cursor&#x60;.
514
+ # @option opts [Integer] :per_page Results per page, 1-100. Defaults to 25. (default to 25)
515
+ # @return [Object]
516
+ def list_syndicate_join_sessions(syndicate_id, opts = {})
517
+ data, _status_code, _headers = list_syndicate_join_sessions_with_http_info(syndicate_id, opts)
518
+ data
519
+ end
520
+
521
+ # List join sessions
522
+ # List the join sessions your app&#39;s installation minted on this syndicate. Sessions are install-scoped: you only see the ones your own install created.
523
+ # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
524
+ # @param [Hash] opts the optional parameters
525
+ # @option opts [String] :cursor Opaque cursor from the previous response&#39;s &#x60;meta.next_cursor&#x60;.
526
+ # @option opts [Integer] :per_page Results per page, 1-100. Defaults to 25. (default to 25)
527
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
528
+ def list_syndicate_join_sessions_with_http_info(syndicate_id, opts = {})
529
+ if @api_client.config.debugging
530
+ @api_client.config.logger.debug 'Calling API: SyndicateMembersApi.list_syndicate_join_sessions ...'
531
+ end
532
+ # verify the required parameter 'syndicate_id' is set
533
+ if @api_client.config.client_side_validation && syndicate_id.nil?
534
+ fail ArgumentError, "Missing the required parameter 'syndicate_id' when calling SyndicateMembersApi.list_syndicate_join_sessions"
535
+ end
536
+ if @api_client.config.client_side_validation && !opts[:'per_page'].nil? && opts[:'per_page'] > 100
537
+ fail ArgumentError, 'invalid value for "opts[:"per_page"]" when calling SyndicateMembersApi.list_syndicate_join_sessions, must be smaller than or equal to 100.'
538
+ end
539
+
540
+ # resource path
541
+ local_var_path = '/syndicates/{syndicate_id}/join_sessions'.sub('{' + 'syndicate_id' + '}', CGI.escape(syndicate_id.to_s))
542
+
543
+ # query parameters
544
+ query_params = opts[:query_params] || {}
545
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
546
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
547
+
548
+ # header parameters
549
+ header_params = opts[:header_params] || {}
550
+ # HTTP header 'Accept' (if needed)
551
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
552
+
553
+ # form parameters
554
+ form_params = opts[:form_params] || {}
555
+
556
+ # http body (model)
557
+ post_body = opts[:debug_body]
558
+
559
+ # return_type
560
+ return_type = opts[:debug_return_type] || 'Object'
561
+
562
+ # auth_names
563
+ auth_names = opts[:debug_auth_names] || ['bearerAuth', 'bearerAuth']
564
+
565
+ new_options = opts.merge(
566
+ :operation => :"SyndicateMembersApi.list_syndicate_join_sessions",
567
+ :header_params => header_params,
568
+ :query_params => query_params,
569
+ :form_params => form_params,
570
+ :body => post_body,
571
+ :auth_names => auth_names,
572
+ :return_type => return_type
573
+ )
574
+
575
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
576
+ if @api_client.config.debugging
577
+ @api_client.config.logger.debug "API called: SyndicateMembersApi#list_syndicate_join_sessions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
578
+ end
579
+ return data, status_code, headers
580
+ end
581
+
366
582
  # List member investments
367
583
  # Returns this member's investments in syndicate deals. Scoped to the syndicate's selected deals (one per company, matching directory semantics). **Moderator-only.** `amount` and `meta.total_amount` are whole dollars as strings.
368
584
  # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
@@ -20,7 +20,7 @@ module WefunderGenerated
20
20
  @api_client = api_client
21
21
  end
22
22
  # Get syndicate statistics
23
- # Returns aggregate metrics for a syndicate including member counts, deal counts, total raised, and recent activity. `total_raised` and `total_investors` are computed from directory-selected deals (one per company). `total_deals` and `live_deals` use all linked deals. `total_raised` is whole dollars as a string.
23
+ # Returns aggregate metrics for a syndicate including member counts, deal counts, total raised, and recent activity. `total_raised` and `total_investors` are computed from directory-selected deals (one per directory company: its live round, else its most recent successful round). `total_deals` counts the syndicate's visible deal set in every state (the rounds `GET /syndicates/{syndicate_id}/deals` draws from, which excludes invite-only companies' rounds and testing-the-waters rounds of directory companies); `live_deals` is the live subset of it, the rows that endpoint lists. `total_raised` is whole dollars as a string.
24
24
  # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @return [SyndicateStatisticsEnvelope]
@@ -30,7 +30,7 @@ module WefunderGenerated
30
30
  end
31
31
 
32
32
  # Get syndicate statistics
33
- # Returns aggregate metrics for a syndicate including member counts, deal counts, total raised, and recent activity. &#x60;total_raised&#x60; and &#x60;total_investors&#x60; are computed from directory-selected deals (one per company). &#x60;total_deals&#x60; and &#x60;live_deals&#x60; use all linked deals. &#x60;total_raised&#x60; is whole dollars as a string.
33
+ # Returns aggregate metrics for a syndicate including member counts, deal counts, total raised, and recent activity. &#x60;total_raised&#x60; and &#x60;total_investors&#x60; are computed from directory-selected deals (one per directory company: its live round, else its most recent successful round). &#x60;total_deals&#x60; counts the syndicate&#39;s visible deal set in every state (the rounds &#x60;GET /syndicates/{syndicate_id}/deals&#x60; draws from, which excludes invite-only companies&#39; rounds and testing-the-waters rounds of directory companies); &#x60;live_deals&#x60; is the live subset of it, the rows that endpoint lists. &#x60;total_raised&#x60; is whole dollars as a string.
34
34
  # @param syndicate_id [String] The syndicate&#39;s id (&#x60;syn_...&#x60;).
35
35
  # @param [Hash] opts the optional parameters
36
36
  # @return [Array<(SyndicateStatisticsEnvelope, Integer, Hash)>] SyndicateStatisticsEnvelope data, response status code and response headers
@@ -83,7 +83,7 @@ module WefunderGenerated
83
83
  end
84
84
 
85
85
  # Get current user profile
86
- # Retrieves the profile information for the currently authenticated user. This endpoint returns basic user details including name, email, and account status. Use this endpoint to: - Display user information in your application - Verify the identity of the authenticated user - Check user account status and permissions The response includes the user's unique ID which can be used to reference the user in other API calls.
86
+ # Retrieves the profile information for the currently authenticated user. This endpoint returns basic user details including name, email, and account status. Use this endpoint to: - Display user information in your application - Verify the identity of the authenticated user - Check user account status and permissions The response includes the user's unique ID which can be used to reference the user in other API calls. Two shapes, depending on the token: - **With `read:profile`** (or `write:profile`): the full profile shown in the example. - **Any other user token**: only the user's id and type, `{\"data\": {\"id\": \"usr_...\", \"type\": \"user\"}}`, with no `attributes`. Use it to learn whose token you hold; it never includes the email, name, username or city. A token with no user (a server-side `client_credentials` key, or an installation acting as a company or syndicate) gets `403`. Before this change a user token without `read:profile` got `403` here too; code that read `attributes` unconditionally should now check for it.
87
87
  # @param [Hash] opts the optional parameters
88
88
  # @return [UserEnvelope]
89
89
  def get_current_user(opts = {})
@@ -92,7 +92,7 @@ module WefunderGenerated
92
92
  end
93
93
 
94
94
  # Get current user profile
95
- # Retrieves the profile information for the currently authenticated user. This endpoint returns basic user details including name, email, and account status. Use this endpoint to: - Display user information in your application - Verify the identity of the authenticated user - Check user account status and permissions The response includes the user&#39;s unique ID which can be used to reference the user in other API calls.
95
+ # Retrieves the profile information for the currently authenticated user. This endpoint returns basic user details including name, email, and account status. Use this endpoint to: - Display user information in your application - Verify the identity of the authenticated user - Check user account status and permissions The response includes the user&#39;s unique ID which can be used to reference the user in other API calls. Two shapes, depending on the token: - **With &#x60;read:profile&#x60;** (or &#x60;write:profile&#x60;): the full profile shown in the example. - **Any other user token**: only the user&#39;s id and type, &#x60;{\&quot;data\&quot;: {\&quot;id\&quot;: \&quot;usr_...\&quot;, \&quot;type\&quot;: \&quot;user\&quot;}}&#x60;, with no &#x60;attributes&#x60;. Use it to learn whose token you hold; it never includes the email, name, username or city. A token with no user (a server-side &#x60;client_credentials&#x60; key, or an installation acting as a company or syndicate) gets &#x60;403&#x60;. Before this change a user token without &#x60;read:profile&#x60; got &#x60;403&#x60; here too; code that read &#x60;attributes&#x60; unconditionally should now check for it.
96
96
  # @param [Hash] opts the optional parameters
97
97
  # @return [Array<(UserEnvelope, Integer, Hash)>] UserEnvelope data, response status code and response headers
98
98
  def get_current_user_with_http_info(opts = {})
@@ -140,7 +140,7 @@ module WefunderGenerated
140
140
  end
141
141
 
142
142
  # List the companies you follow
143
- # The authenticated user's watchlist — the companies they follow on wefunder.com (the same rows the site's Follow button writes), newest first. Each entry is in the search-result shape (`co_` id, name, tagline, URL, logo, `raising`, `profile_available`) plus `followed_at`. The list owner sees every company they follow.
143
+ # The authenticated user's watchlist — the companies they follow on wefunder.com (the same rows the site's Follow button writes), newest first. Each entry is in the search-result shape (`co_` id, name, tagline, URL, logo, `raising`, `profile_available`) plus `followed_at`. Accepts `read:profile` or `write:follows`. Both include `read:profile:follows`, the follows list on its own, which is what this endpoint checks. A token holding only `write:follows` can list its follows here but cannot read the profile (`GET /users/me`). Which companies are listed depends on the grant, the same way the follow list on a user's public Wefunder profile does: - **`write:follows`, `read:mcp`** (or the retired `read:follows`): the full list, every company the user follows. An app that follows and unfollows for the user, or the user's own AI assistant acting as them, sees what the user sees. - **`read:profile` or `write:profile` without one of those**: the public list. A company that has asked not to be promoted (`promotion_opt_in` false on `GET /companies/{id}`) is left out, exactly as it is left out of the profile's follow list for every visitor but the user. This holds for every user, admins included. The filter is applied before paging, so it never shortens a page, and `page_count` counts the rows returned.
144
144
  # @param [Hash] opts the optional parameters
145
145
  # @option opts [String] :cursor
146
146
  # @option opts [Integer] :per_page (default to 25)
@@ -151,7 +151,7 @@ module WefunderGenerated
151
151
  end
152
152
 
153
153
  # List the companies you follow
154
- # The authenticated user&#39;s watchlist — the companies they follow on wefunder.com (the same rows the site&#39;s Follow button writes), newest first. Each entry is in the search-result shape (&#x60;co_&#x60; id, name, tagline, URL, logo, &#x60;raising&#x60;, &#x60;profile_available&#x60;) plus &#x60;followed_at&#x60;. The list owner sees every company they follow.
154
+ # The authenticated user&#39;s watchlist — the companies they follow on wefunder.com (the same rows the site&#39;s Follow button writes), newest first. Each entry is in the search-result shape (&#x60;co_&#x60; id, name, tagline, URL, logo, &#x60;raising&#x60;, &#x60;profile_available&#x60;) plus &#x60;followed_at&#x60;. Accepts &#x60;read:profile&#x60; or &#x60;write:follows&#x60;. Both include &#x60;read:profile:follows&#x60;, the follows list on its own, which is what this endpoint checks. A token holding only &#x60;write:follows&#x60; can list its follows here but cannot read the profile (&#x60;GET /users/me&#x60;). Which companies are listed depends on the grant, the same way the follow list on a user&#39;s public Wefunder profile does: - **&#x60;write:follows&#x60;, &#x60;read:mcp&#x60;** (or the retired &#x60;read:follows&#x60;): the full list, every company the user follows. An app that follows and unfollows for the user, or the user&#39;s own AI assistant acting as them, sees what the user sees. - **&#x60;read:profile&#x60; or &#x60;write:profile&#x60; without one of those**: the public list. A company that has asked not to be promoted (&#x60;promotion_opt_in&#x60; false on &#x60;GET /companies/{id}&#x60;) is left out, exactly as it is left out of the profile&#39;s follow list for every visitor but the user. This holds for every user, admins included. The filter is applied before paging, so it never shortens a page, and &#x60;page_count&#x60; counts the rows returned.
155
155
  # @param [Hash] opts the optional parameters
156
156
  # @option opts [String] :cursor
157
157
  # @option opts [Integer] :per_page (default to 25)
@@ -124,6 +124,7 @@ module WefunderGenerated
124
124
  def self.openapi_nullable
125
125
  Set.new([
126
126
  :'actor_name',
127
+ :'resource_type',
127
128
  :'resource_id',
128
129
  :'resource_label',
129
130
  :'old_values',
@@ -38,7 +38,7 @@ module WefunderGenerated
38
38
  # Attribute type mapping.
39
39
  def self.openapi_types
40
40
  {
41
- :'id' => :'Integer',
41
+ :'id' => :'String',
42
42
  :'type' => :'String',
43
43
  :'attributes' => :'CampaignAttributes'
44
44
  }
@@ -28,6 +28,30 @@ module WefunderGenerated
28
28
 
29
29
  attr_accessor :location
30
30
 
31
+ # The company's legal name, as the company entered it. The name on a filed Form C is `business.legal_name` in `/disclosures`.
32
+ attr_accessor :legal_name
33
+
34
+ # The company's legal form as the company entered it, free text and not normalized (e.g. \"Corporation\", \"Limited Liability Company\", \"llc\"). The form on a filed Form C is `business.legal_form` in `/disclosures`. The EIN is deliberately not served.
35
+ attr_accessor :legal_form
36
+
37
+ # The company's website, as an absolute URL. Null when none is set or the stored value is not a usable link.
38
+ attr_accessor :website_url
39
+
40
+ # The company's X (Twitter) profile, as an absolute URL (a stored handle is expanded). Null when none is set.
41
+ attr_accessor :twitter_url
42
+
43
+ # The company's LinkedIn page, as an absolute URL. Null when none is set.
44
+ attr_accessor :linkedin_url
45
+
46
+ # The company's Facebook page, as an absolute URL. Null when none is set.
47
+ attr_accessor :facebook_url
48
+
49
+ # The company's Instagram profile, as an absolute URL. Null when none is set.
50
+ attr_accessor :instagram_url
51
+
52
+ # The company's answer to \"Who should be able to see your campaign?\" on wefunder.com: true for \"as public as possible\" (eligible for the Explore page and Wefunder's marketing), false for \"as private as possible\". False does not hide the company or its rounds — anything this API returns is visible to the caller — but the company has asked not to be promoted, so an app that redistributes listings should respect it.
53
+ attr_accessor :promotion_opt_in
54
+
31
55
  # True when the round the page shows this viewer is live (accepting investments or reservations). False for a funded company, or one with no round the viewer may see.
32
56
  attr_accessor :raising
33
57
 
@@ -51,6 +75,14 @@ module WefunderGenerated
51
75
  :'logo_url' => :'logo_url',
52
76
  :'card_image_url' => :'card_image_url',
53
77
  :'location' => :'location',
78
+ :'legal_name' => :'legal_name',
79
+ :'legal_form' => :'legal_form',
80
+ :'website_url' => :'website_url',
81
+ :'twitter_url' => :'twitter_url',
82
+ :'linkedin_url' => :'linkedin_url',
83
+ :'facebook_url' => :'facebook_url',
84
+ :'instagram_url' => :'instagram_url',
85
+ :'promotion_opt_in' => :'promotion_opt_in',
54
86
  :'raising' => :'raising',
55
87
  :'current_raise' => :'current_raise',
56
88
  :'past_rounds' => :'past_rounds',
@@ -73,6 +105,14 @@ module WefunderGenerated
73
105
  :'logo_url' => :'String',
74
106
  :'card_image_url' => :'String',
75
107
  :'location' => :'CompanyAttributesLocation',
108
+ :'legal_name' => :'String',
109
+ :'legal_form' => :'String',
110
+ :'website_url' => :'String',
111
+ :'twitter_url' => :'String',
112
+ :'linkedin_url' => :'String',
113
+ :'facebook_url' => :'String',
114
+ :'instagram_url' => :'String',
115
+ :'promotion_opt_in' => :'Boolean',
76
116
  :'raising' => :'Boolean',
77
117
  :'current_raise' => :'CurrentRaise',
78
118
  :'past_rounds' => :'Array<PastRound>',
@@ -88,6 +128,13 @@ module WefunderGenerated
88
128
  :'url',
89
129
  :'logo_url',
90
130
  :'card_image_url',
131
+ :'legal_name',
132
+ :'legal_form',
133
+ :'website_url',
134
+ :'twitter_url',
135
+ :'linkedin_url',
136
+ :'facebook_url',
137
+ :'instagram_url',
91
138
  :'current_raise',
92
139
  ])
93
140
  end
@@ -131,6 +178,38 @@ module WefunderGenerated
131
178
  self.location = attributes[:'location']
132
179
  end
133
180
 
181
+ if attributes.key?(:'legal_name')
182
+ self.legal_name = attributes[:'legal_name']
183
+ end
184
+
185
+ if attributes.key?(:'legal_form')
186
+ self.legal_form = attributes[:'legal_form']
187
+ end
188
+
189
+ if attributes.key?(:'website_url')
190
+ self.website_url = attributes[:'website_url']
191
+ end
192
+
193
+ if attributes.key?(:'twitter_url')
194
+ self.twitter_url = attributes[:'twitter_url']
195
+ end
196
+
197
+ if attributes.key?(:'linkedin_url')
198
+ self.linkedin_url = attributes[:'linkedin_url']
199
+ end
200
+
201
+ if attributes.key?(:'facebook_url')
202
+ self.facebook_url = attributes[:'facebook_url']
203
+ end
204
+
205
+ if attributes.key?(:'instagram_url')
206
+ self.instagram_url = attributes[:'instagram_url']
207
+ end
208
+
209
+ if attributes.key?(:'promotion_opt_in')
210
+ self.promotion_opt_in = attributes[:'promotion_opt_in']
211
+ end
212
+
134
213
  if attributes.key?(:'raising')
135
214
  self.raising = attributes[:'raising']
136
215
  end
@@ -182,6 +261,14 @@ module WefunderGenerated
182
261
  logo_url == o.logo_url &&
183
262
  card_image_url == o.card_image_url &&
184
263
  location == o.location &&
264
+ legal_name == o.legal_name &&
265
+ legal_form == o.legal_form &&
266
+ website_url == o.website_url &&
267
+ twitter_url == o.twitter_url &&
268
+ linkedin_url == o.linkedin_url &&
269
+ facebook_url == o.facebook_url &&
270
+ instagram_url == o.instagram_url &&
271
+ promotion_opt_in == o.promotion_opt_in &&
185
272
  raising == o.raising &&
186
273
  current_raise == o.current_raise &&
187
274
  past_rounds == o.past_rounds &&
@@ -198,7 +285,7 @@ module WefunderGenerated
198
285
  # Calculates hash code according to all attributes.
199
286
  # @return [Integer] Hash code
200
287
  def hash
201
- [name, tagline, url, logo_url, card_image_url, location, raising, current_raise, past_rounds, wefunder_rounds, totals].hash
288
+ [name, tagline, url, logo_url, card_image_url, location, legal_name, legal_form, website_url, twitter_url, linkedin_url, facebook_url, instagram_url, promotion_opt_in, raising, current_raise, past_rounds, wefunder_rounds, totals].hash
202
289
  end
203
290
 
204
291
  # Builds the object from hash
@@ -25,7 +25,10 @@ module WefunderGenerated
25
25
  # Net income / total assets × 100.
26
26
  attr_accessor :return_on_assets_percent
27
27
 
28
- # (Short-term + long-term debt) / total assets × 100.
28
+ # (Current + non-current liabilities) / total assets × 100. Liabilities, not debt — see `current_liabilities`.
29
+ attr_accessor :liabilities_to_assets_percent
30
+
31
+ # Deprecated alias of `liabilities_to_assets_percent` (same value). Will be removed in a future dated version.
29
32
  attr_accessor :debt_to_assets_percent
30
33
 
31
34
  # Cash / total assets × 100.
@@ -40,6 +43,7 @@ module WefunderGenerated
40
43
  :'net_margin_percent' => :'net_margin_percent',
41
44
  :'gross_margin_percent' => :'gross_margin_percent',
42
45
  :'return_on_assets_percent' => :'return_on_assets_percent',
46
+ :'liabilities_to_assets_percent' => :'liabilities_to_assets_percent',
43
47
  :'debt_to_assets_percent' => :'debt_to_assets_percent',
44
48
  :'cash_to_assets_percent' => :'cash_to_assets_percent',
45
49
  :'revenue_per_employee' => :'revenue_per_employee'
@@ -57,6 +61,7 @@ module WefunderGenerated
57
61
  :'net_margin_percent' => :'String',
58
62
  :'gross_margin_percent' => :'String',
59
63
  :'return_on_assets_percent' => :'String',
64
+ :'liabilities_to_assets_percent' => :'String',
60
65
  :'debt_to_assets_percent' => :'String',
61
66
  :'cash_to_assets_percent' => :'String',
62
67
  :'revenue_per_employee' => :'String'
@@ -69,6 +74,7 @@ module WefunderGenerated
69
74
  :'net_margin_percent',
70
75
  :'gross_margin_percent',
71
76
  :'return_on_assets_percent',
77
+ :'liabilities_to_assets_percent',
72
78
  :'debt_to_assets_percent',
73
79
  :'cash_to_assets_percent',
74
80
  :'revenue_per_employee'
@@ -102,6 +108,10 @@ module WefunderGenerated
102
108
  self.return_on_assets_percent = attributes[:'return_on_assets_percent']
103
109
  end
104
110
 
111
+ if attributes.key?(:'liabilities_to_assets_percent')
112
+ self.liabilities_to_assets_percent = attributes[:'liabilities_to_assets_percent']
113
+ end
114
+
105
115
  if attributes.key?(:'debt_to_assets_percent')
106
116
  self.debt_to_assets_percent = attributes[:'debt_to_assets_percent']
107
117
  end
@@ -138,6 +148,7 @@ module WefunderGenerated
138
148
  net_margin_percent == o.net_margin_percent &&
139
149
  gross_margin_percent == o.gross_margin_percent &&
140
150
  return_on_assets_percent == o.return_on_assets_percent &&
151
+ liabilities_to_assets_percent == o.liabilities_to_assets_percent &&
141
152
  debt_to_assets_percent == o.debt_to_assets_percent &&
142
153
  cash_to_assets_percent == o.cash_to_assets_percent &&
143
154
  revenue_per_employee == o.revenue_per_employee
@@ -152,7 +163,7 @@ module WefunderGenerated
152
163
  # Calculates hash code according to all attributes.
153
164
  # @return [Integer] Hash code
154
165
  def hash
155
- [net_margin_percent, gross_margin_percent, return_on_assets_percent, debt_to_assets_percent, cash_to_assets_percent, revenue_per_employee].hash
166
+ [net_margin_percent, gross_margin_percent, return_on_assets_percent, liabilities_to_assets_percent, debt_to_assets_percent, cash_to_assets_percent, revenue_per_employee].hash
156
167
  end
157
168
 
158
169
  # Builds the object from hash
@@ -161,7 +161,7 @@ module WefunderGenerated
161
161
  def valid?
162
162
  warn '[DEPRECATED] the `valid?` method is obsolete'
163
163
  return false if @action_name.nil?
164
- action_name_validator = EnumAttributeValidator.new('String', ["syndicates.close_deal", "syndicates.finalize_deal", "syndicates.publish", "syndicates.remove_member", "syndicates.delete_draft", "comments.create"])
164
+ action_name_validator = EnumAttributeValidator.new('String', ["syndicates.publish", "syndicates.remove_member", "syndicates.delete_draft", "comments.create"])
165
165
  return false unless action_name_validator.valid?(@action_name)
166
166
  return false if @resource_type.nil?
167
167
  return false if @resource_id.nil?
@@ -171,7 +171,7 @@ module WefunderGenerated
171
171
  # Custom attribute writer method checking allowed values (enum).
172
172
  # @param [Object] action_name Object to be assigned
173
173
  def action_name=(action_name)
174
- validator = EnumAttributeValidator.new('String', ["syndicates.close_deal", "syndicates.finalize_deal", "syndicates.publish", "syndicates.remove_member", "syndicates.delete_draft", "comments.create"])
174
+ validator = EnumAttributeValidator.new('String', ["syndicates.publish", "syndicates.remove_member", "syndicates.delete_draft", "comments.create"])
175
175
  unless validator.valid?(action_name)
176
176
  fail ArgumentError, "invalid value for \"action_name\", must be one of #{validator.allowable_values}."
177
177
  end
@@ -14,13 +14,13 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module WefunderGenerated
17
- class WebhookSubscriptionWithSecret2Envelope
18
- attr_accessor :data
17
+ class CreateOfferingInvestmentSessionRequest
18
+ attr_accessor :investment_session
19
19
 
20
20
  # Attribute mapping from ruby-style variable name to JSON key.
21
21
  def self.attribute_map
22
22
  {
23
- :'data' => :'data'
23
+ :'investment_session' => :'investment_session'
24
24
  }
25
25
  end
26
26
 
@@ -32,7 +32,7 @@ module WefunderGenerated
32
32
  # Attribute type mapping.
33
33
  def self.openapi_types
34
34
  {
35
- :'data' => :'WebhookSubscriptionWithSecret2EnvelopeData'
35
+ :'investment_session' => :'InvestmentSessionCreateInput'
36
36
  }
37
37
  end
38
38
 
@@ -46,19 +46,21 @@ module WefunderGenerated
46
46
  # @param [Hash] attributes Model attributes in the form of hash
47
47
  def initialize(attributes = {})
48
48
  if (!attributes.is_a?(Hash))
49
- fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::WebhookSubscriptionWithSecret2Envelope` initialize method"
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::CreateOfferingInvestmentSessionRequest` initialize method"
50
50
  end
51
51
 
52
52
  # check to see if the attribute exists and convert string to symbol for hash key
53
53
  attributes = attributes.each_with_object({}) { |(k, v), h|
54
54
  if (!self.class.attribute_map.key?(k.to_sym))
55
- fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::WebhookSubscriptionWithSecret2Envelope`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::CreateOfferingInvestmentSessionRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
56
  end
57
57
  h[k.to_sym] = v
58
58
  }
59
59
 
60
- if attributes.key?(:'data')
61
- self.data = attributes[:'data']
60
+ if attributes.key?(:'investment_session')
61
+ self.investment_session = attributes[:'investment_session']
62
+ else
63
+ self.investment_session = nil
62
64
  end
63
65
  end
64
66
 
@@ -67,6 +69,10 @@ module WefunderGenerated
67
69
  def list_invalid_properties
68
70
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
69
71
  invalid_properties = Array.new
72
+ if @investment_session.nil?
73
+ invalid_properties.push('invalid value for "investment_session", investment_session cannot be nil.')
74
+ end
75
+
70
76
  invalid_properties
71
77
  end
72
78
 
@@ -74,6 +80,7 @@ module WefunderGenerated
74
80
  # @return true if the model is valid
75
81
  def valid?
76
82
  warn '[DEPRECATED] the `valid?` method is obsolete'
83
+ return false if @investment_session.nil?
77
84
  true
78
85
  end
79
86
 
@@ -82,7 +89,7 @@ module WefunderGenerated
82
89
  def ==(o)
83
90
  return true if self.equal?(o)
84
91
  self.class == o.class &&
85
- data == o.data
92
+ investment_session == o.investment_session
86
93
  end
87
94
 
88
95
  # @see the `==` method
@@ -94,7 +101,7 @@ module WefunderGenerated
94
101
  # Calculates hash code according to all attributes.
95
102
  # @return [Integer] Hash code
96
103
  def hash
97
- [data].hash
104
+ [investment_session].hash
98
105
  end
99
106
 
100
107
  # Builds the object from hash