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
@@ -0,0 +1,267 @@
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 SyndicateDealReadinessEnvelopeData
18
+ # The deal's `ofr_` id.
19
+ attr_accessor :id
20
+
21
+ attr_accessor :type
22
+
23
+ attr_accessor :attributes
24
+
25
+ class EnumAttributeValidator
26
+ attr_reader :datatype
27
+ attr_reader :allowable_values
28
+
29
+ def initialize(datatype, allowable_values)
30
+ @allowable_values = allowable_values.map do |value|
31
+ case datatype.to_s
32
+ when /Integer/i
33
+ value.to_i
34
+ when /Float/i
35
+ value.to_f
36
+ else
37
+ value
38
+ end
39
+ end
40
+ end
41
+
42
+ def valid?(value)
43
+ !value || allowable_values.include?(value)
44
+ end
45
+ end
46
+
47
+ # Attribute mapping from ruby-style variable name to JSON key.
48
+ def self.attribute_map
49
+ {
50
+ :'id' => :'id',
51
+ :'type' => :'type',
52
+ :'attributes' => :'attributes'
53
+ }
54
+ end
55
+
56
+ # Returns all the JSON keys this model knows about
57
+ def self.acceptable_attributes
58
+ attribute_map.values
59
+ end
60
+
61
+ # Attribute type mapping.
62
+ def self.openapi_types
63
+ {
64
+ :'id' => :'String',
65
+ :'type' => :'String',
66
+ :'attributes' => :'SyndicateDealReadinessEnvelopeDataAttributes'
67
+ }
68
+ end
69
+
70
+ # List of attributes with nullable: true
71
+ def self.openapi_nullable
72
+ Set.new([
73
+ ])
74
+ end
75
+
76
+ # Initializes the object
77
+ # @param [Hash] attributes Model attributes in the form of hash
78
+ def initialize(attributes = {})
79
+ if (!attributes.is_a?(Hash))
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::SyndicateDealReadinessEnvelopeData` initialize method"
81
+ end
82
+
83
+ # check to see if the attribute exists and convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}) { |(k, v), h|
85
+ if (!self.class.attribute_map.key?(k.to_sym))
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::SyndicateDealReadinessEnvelopeData`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
87
+ end
88
+ h[k.to_sym] = v
89
+ }
90
+
91
+ if attributes.key?(:'id')
92
+ self.id = attributes[:'id']
93
+ end
94
+
95
+ if attributes.key?(:'type')
96
+ self.type = attributes[:'type']
97
+ end
98
+
99
+ if attributes.key?(:'attributes')
100
+ self.attributes = attributes[:'attributes']
101
+ end
102
+ end
103
+
104
+ # Show invalid properties with the reasons. Usually used together with valid?
105
+ # @return Array for valid properties with the reasons
106
+ def list_invalid_properties
107
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
108
+ invalid_properties = Array.new
109
+ invalid_properties
110
+ end
111
+
112
+ # Check to see if the all the properties in the model are valid
113
+ # @return true if the model is valid
114
+ def valid?
115
+ warn '[DEPRECATED] the `valid?` method is obsolete'
116
+ type_validator = EnumAttributeValidator.new('String', ["syndicate_deal_readiness"])
117
+ return false unless type_validator.valid?(@type)
118
+ true
119
+ end
120
+
121
+ # Custom attribute writer method checking allowed values (enum).
122
+ # @param [Object] type Object to be assigned
123
+ def type=(type)
124
+ validator = EnumAttributeValidator.new('String', ["syndicate_deal_readiness"])
125
+ unless validator.valid?(type)
126
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
127
+ end
128
+ @type = type
129
+ end
130
+
131
+ # Checks equality by comparing each attribute.
132
+ # @param [Object] Object to be compared
133
+ def ==(o)
134
+ return true if self.equal?(o)
135
+ self.class == o.class &&
136
+ id == o.id &&
137
+ type == o.type &&
138
+ attributes == o.attributes
139
+ end
140
+
141
+ # @see the `==` method
142
+ # @param [Object] Object to be compared
143
+ def eql?(o)
144
+ self == o
145
+ end
146
+
147
+ # Calculates hash code according to all attributes.
148
+ # @return [Integer] Hash code
149
+ def hash
150
+ [id, type, attributes].hash
151
+ end
152
+
153
+ # Builds the object from hash
154
+ # @param [Hash] attributes Model attributes in the form of hash
155
+ # @return [Object] Returns the model itself
156
+ def self.build_from_hash(attributes)
157
+ return nil unless attributes.is_a?(Hash)
158
+ attributes = attributes.transform_keys(&:to_sym)
159
+ transformed_hash = {}
160
+ openapi_types.each_pair do |key, type|
161
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
162
+ transformed_hash["#{key}"] = nil
163
+ elsif type =~ /\AArray<(.*)>/i
164
+ # check to ensure the input is an array given that the attribute
165
+ # is documented as an array but the input is not
166
+ if attributes[attribute_map[key]].is_a?(Array)
167
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
168
+ end
169
+ elsif !attributes[attribute_map[key]].nil?
170
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
171
+ end
172
+ end
173
+ new(transformed_hash)
174
+ end
175
+
176
+ # Deserializes the data based on type
177
+ # @param string type Data type
178
+ # @param string value Value to be deserialized
179
+ # @return [Object] Deserialized data
180
+ def self._deserialize(type, value)
181
+ case type.to_sym
182
+ when :Time
183
+ Time.parse(value)
184
+ when :Date
185
+ Date.parse(value)
186
+ when :String
187
+ value.to_s
188
+ when :Integer
189
+ value.to_i
190
+ when :Float
191
+ value.to_f
192
+ when :Boolean
193
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
194
+ true
195
+ else
196
+ false
197
+ end
198
+ when :Object
199
+ # generic object (usually a Hash), return directly
200
+ value
201
+ when /\AArray<(?<inner_type>.+)>\z/
202
+ inner_type = Regexp.last_match[:inner_type]
203
+ value.map { |v| _deserialize(inner_type, v) }
204
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
205
+ k_type = Regexp.last_match[:k_type]
206
+ v_type = Regexp.last_match[:v_type]
207
+ {}.tap do |hash|
208
+ value.each do |k, v|
209
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
210
+ end
211
+ end
212
+ else # model
213
+ # models (e.g. Pet) or oneOf
214
+ klass = WefunderGenerated.const_get(type)
215
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
216
+ end
217
+ end
218
+
219
+ # Returns the string representation of the object
220
+ # @return [String] String presentation of the object
221
+ def to_s
222
+ to_hash.to_s
223
+ end
224
+
225
+ # to_body is an alias to to_hash (backward compatibility)
226
+ # @return [Hash] Returns the object in the form of hash
227
+ def to_body
228
+ to_hash
229
+ end
230
+
231
+ # Returns the object in the form of hash
232
+ # @return [Hash] Returns the object in the form of hash
233
+ def to_hash
234
+ hash = {}
235
+ self.class.attribute_map.each_pair do |attr, param|
236
+ value = self.send(attr)
237
+ if value.nil?
238
+ is_nullable = self.class.openapi_nullable.include?(attr)
239
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
240
+ end
241
+
242
+ hash[param] = _to_hash(value)
243
+ end
244
+ hash
245
+ end
246
+
247
+ # Outputs non-array value in the form of hash
248
+ # For object, use to_hash. Otherwise, just return the value
249
+ # @param [Object] value Any valid value
250
+ # @return [Hash] Returns the value in the form of hash
251
+ def _to_hash(value)
252
+ if value.is_a?(Array)
253
+ value.compact.map { |v| _to_hash(v) }
254
+ elsif value.is_a?(Hash)
255
+ {}.tap do |hash|
256
+ value.each { |k, v| hash[k] = _to_hash(v) }
257
+ end
258
+ elsif value.respond_to? :to_hash
259
+ value.to_hash
260
+ else
261
+ value
262
+ end
263
+ end
264
+
265
+ end
266
+
267
+ end
@@ -14,15 +14,14 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module WefunderGenerated
17
- class AttributionPartner
18
- attr_accessor :id
19
-
20
- attr_accessor :company_name
21
-
22
- attr_accessor :website
17
+ class SyndicateDealReadinessEnvelopeDataAttributes
18
+ # Every item before `sign_and_open` is complete.
19
+ attr_accessor :ready
23
20
 
24
21
  attr_accessor :status
25
22
 
23
+ attr_accessor :items
24
+
26
25
  class EnumAttributeValidator
27
26
  attr_reader :datatype
28
27
  attr_reader :allowable_values
@@ -48,10 +47,9 @@ module WefunderGenerated
48
47
  # Attribute mapping from ruby-style variable name to JSON key.
49
48
  def self.attribute_map
50
49
  {
51
- :'id' => :'id',
52
- :'company_name' => :'company_name',
53
- :'website' => :'website',
54
- :'status' => :'status'
50
+ :'ready' => :'ready',
51
+ :'status' => :'status',
52
+ :'items' => :'items'
55
53
  }
56
54
  end
57
55
 
@@ -63,10 +61,9 @@ module WefunderGenerated
63
61
  # Attribute type mapping.
64
62
  def self.openapi_types
65
63
  {
66
- :'id' => :'Integer',
67
- :'company_name' => :'String',
68
- :'website' => :'String',
69
- :'status' => :'String'
64
+ :'ready' => :'Boolean',
65
+ :'status' => :'String',
66
+ :'items' => :'Array<SyndicateDealReadinessItem>'
70
67
  }
71
68
  end
72
69
 
@@ -80,32 +77,30 @@ module WefunderGenerated
80
77
  # @param [Hash] attributes Model attributes in the form of hash
81
78
  def initialize(attributes = {})
82
79
  if (!attributes.is_a?(Hash))
83
- fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::AttributionPartner` initialize method"
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::SyndicateDealReadinessEnvelopeDataAttributes` initialize method"
84
81
  end
85
82
 
86
83
  # check to see if the attribute exists and convert string to symbol for hash key
87
84
  attributes = attributes.each_with_object({}) { |(k, v), h|
88
85
  if (!self.class.attribute_map.key?(k.to_sym))
89
- fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::AttributionPartner`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::SyndicateDealReadinessEnvelopeDataAttributes`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
90
87
  end
91
88
  h[k.to_sym] = v
92
89
  }
93
90
 
94
- if attributes.key?(:'id')
95
- self.id = attributes[:'id']
96
- end
97
-
98
- if attributes.key?(:'company_name')
99
- self.company_name = attributes[:'company_name']
100
- end
101
-
102
- if attributes.key?(:'website')
103
- self.website = attributes[:'website']
91
+ if attributes.key?(:'ready')
92
+ self.ready = attributes[:'ready']
104
93
  end
105
94
 
106
95
  if attributes.key?(:'status')
107
96
  self.status = attributes[:'status']
108
97
  end
98
+
99
+ if attributes.key?(:'items')
100
+ if (value = attributes[:'items']).is_a?(Array)
101
+ self.items = value
102
+ end
103
+ end
109
104
  end
110
105
 
111
106
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -120,7 +115,7 @@ module WefunderGenerated
120
115
  # @return true if the model is valid
121
116
  def valid?
122
117
  warn '[DEPRECATED] the `valid?` method is obsolete'
123
- status_validator = EnumAttributeValidator.new('String', ["pending", "approved", "rejected"])
118
+ status_validator = EnumAttributeValidator.new('String', ["upcoming", "open", "closed", "canceled"])
124
119
  return false unless status_validator.valid?(@status)
125
120
  true
126
121
  end
@@ -128,7 +123,7 @@ module WefunderGenerated
128
123
  # Custom attribute writer method checking allowed values (enum).
129
124
  # @param [Object] status Object to be assigned
130
125
  def status=(status)
131
- validator = EnumAttributeValidator.new('String', ["pending", "approved", "rejected"])
126
+ validator = EnumAttributeValidator.new('String', ["upcoming", "open", "closed", "canceled"])
132
127
  unless validator.valid?(status)
133
128
  fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
134
129
  end
@@ -140,10 +135,9 @@ module WefunderGenerated
140
135
  def ==(o)
141
136
  return true if self.equal?(o)
142
137
  self.class == o.class &&
143
- id == o.id &&
144
- company_name == o.company_name &&
145
- website == o.website &&
146
- status == o.status
138
+ ready == o.ready &&
139
+ status == o.status &&
140
+ items == o.items
147
141
  end
148
142
 
149
143
  # @see the `==` method
@@ -155,7 +149,7 @@ module WefunderGenerated
155
149
  # Calculates hash code according to all attributes.
156
150
  # @return [Integer] Hash code
157
151
  def hash
158
- [id, company_name, website, status].hash
152
+ [ready, status, items].hash
159
153
  end
160
154
 
161
155
  # Builds the object from hash
@@ -14,27 +14,21 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module WefunderGenerated
17
- # A single webhook delivery attempt
18
- class WebhookDelivery
19
- attr_accessor :id
17
+ class SyndicateDealReadinessItem
18
+ attr_accessor :key
20
19
 
21
- # Unique delivery identifier (use for idempotency)
22
- attr_accessor :delivery_uuid
23
-
24
- # The event that triggered this delivery
25
- attr_accessor :event_type
20
+ attr_accessor :label
26
21
 
27
22
  attr_accessor :status
28
23
 
29
- # Number of delivery attempts
30
- attr_accessor :attempts
31
-
32
- # HTTP status code from the last attempt
33
- attr_accessor :response_code
24
+ # What is missing, in a sentence.
25
+ attr_accessor :detail
34
26
 
35
- attr_accessor :last_attempt_at
27
+ # The wefunder.com page where a person completes this step, when there is one.
28
+ attr_accessor :action_url
36
29
 
37
- attr_accessor :created_at
30
+ # Keys of the items that must be complete first.
31
+ attr_accessor :blocked_by
38
32
 
39
33
  class EnumAttributeValidator
40
34
  attr_reader :datatype
@@ -61,14 +55,12 @@ module WefunderGenerated
61
55
  # Attribute mapping from ruby-style variable name to JSON key.
62
56
  def self.attribute_map
63
57
  {
64
- :'id' => :'id',
65
- :'delivery_uuid' => :'delivery_uuid',
66
- :'event_type' => :'event_type',
58
+ :'key' => :'key',
59
+ :'label' => :'label',
67
60
  :'status' => :'status',
68
- :'attempts' => :'attempts',
69
- :'response_code' => :'response_code',
70
- :'last_attempt_at' => :'last_attempt_at',
71
- :'created_at' => :'created_at'
61
+ :'detail' => :'detail',
62
+ :'action_url' => :'action_url',
63
+ :'blocked_by' => :'blocked_by'
72
64
  }
73
65
  end
74
66
 
@@ -80,22 +72,20 @@ module WefunderGenerated
80
72
  # Attribute type mapping.
81
73
  def self.openapi_types
82
74
  {
83
- :'id' => :'Integer',
84
- :'delivery_uuid' => :'String',
85
- :'event_type' => :'String',
75
+ :'key' => :'String',
76
+ :'label' => :'String',
86
77
  :'status' => :'String',
87
- :'attempts' => :'Integer',
88
- :'response_code' => :'Integer',
89
- :'last_attempt_at' => :'Time',
90
- :'created_at' => :'Time'
78
+ :'detail' => :'String',
79
+ :'action_url' => :'String',
80
+ :'blocked_by' => :'Array<String>'
91
81
  }
92
82
  end
93
83
 
94
84
  # List of attributes with nullable: true
95
85
  def self.openapi_nullable
96
86
  Set.new([
97
- :'response_code',
98
- :'last_attempt_at',
87
+ :'detail',
88
+ :'action_url',
99
89
  ])
100
90
  end
101
91
 
@@ -103,47 +93,41 @@ module WefunderGenerated
103
93
  # @param [Hash] attributes Model attributes in the form of hash
104
94
  def initialize(attributes = {})
105
95
  if (!attributes.is_a?(Hash))
106
- fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::WebhookDelivery` initialize method"
96
+ fail ArgumentError, "The input argument (attributes) must be a hash in `WefunderGenerated::SyndicateDealReadinessItem` initialize method"
107
97
  end
108
98
 
109
99
  # check to see if the attribute exists and convert string to symbol for hash key
110
100
  attributes = attributes.each_with_object({}) { |(k, v), h|
111
101
  if (!self.class.attribute_map.key?(k.to_sym))
112
- fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::WebhookDelivery`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
102
+ fail ArgumentError, "`#{k}` is not a valid attribute in `WefunderGenerated::SyndicateDealReadinessItem`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
113
103
  end
114
104
  h[k.to_sym] = v
115
105
  }
116
106
 
117
- if attributes.key?(:'id')
118
- self.id = attributes[:'id']
119
- end
120
-
121
- if attributes.key?(:'delivery_uuid')
122
- self.delivery_uuid = attributes[:'delivery_uuid']
107
+ if attributes.key?(:'key')
108
+ self.key = attributes[:'key']
123
109
  end
124
110
 
125
- if attributes.key?(:'event_type')
126
- self.event_type = attributes[:'event_type']
111
+ if attributes.key?(:'label')
112
+ self.label = attributes[:'label']
127
113
  end
128
114
 
129
115
  if attributes.key?(:'status')
130
116
  self.status = attributes[:'status']
131
117
  end
132
118
 
133
- if attributes.key?(:'attempts')
134
- self.attempts = attributes[:'attempts']
135
- end
136
-
137
- if attributes.key?(:'response_code')
138
- self.response_code = attributes[:'response_code']
119
+ if attributes.key?(:'detail')
120
+ self.detail = attributes[:'detail']
139
121
  end
140
122
 
141
- if attributes.key?(:'last_attempt_at')
142
- self.last_attempt_at = attributes[:'last_attempt_at']
123
+ if attributes.key?(:'action_url')
124
+ self.action_url = attributes[:'action_url']
143
125
  end
144
126
 
145
- if attributes.key?(:'created_at')
146
- self.created_at = attributes[:'created_at']
127
+ if attributes.key?(:'blocked_by')
128
+ if (value = attributes[:'blocked_by']).is_a?(Array)
129
+ self.blocked_by = value
130
+ end
147
131
  end
148
132
  end
149
133
 
@@ -159,15 +143,27 @@ module WefunderGenerated
159
143
  # @return true if the model is valid
160
144
  def valid?
161
145
  warn '[DEPRECATED] the `valid?` method is obsolete'
162
- status_validator = EnumAttributeValidator.new('String', ["pending", "delivered", "failed"])
146
+ key_validator = EnumAttributeValidator.new('String', ["target_company", "terms", "allocation", "series", "master_llc", "advisor", "conflict_disclosures", "carry_agreements", "sign_and_open"])
147
+ return false unless key_validator.valid?(@key)
148
+ status_validator = EnumAttributeValidator.new('String', ["complete", "missing", "needs_human", "needs_staff", "blocked"])
163
149
  return false unless status_validator.valid?(@status)
164
150
  true
165
151
  end
166
152
 
153
+ # Custom attribute writer method checking allowed values (enum).
154
+ # @param [Object] key Object to be assigned
155
+ def key=(key)
156
+ validator = EnumAttributeValidator.new('String', ["target_company", "terms", "allocation", "series", "master_llc", "advisor", "conflict_disclosures", "carry_agreements", "sign_and_open"])
157
+ unless validator.valid?(key)
158
+ fail ArgumentError, "invalid value for \"key\", must be one of #{validator.allowable_values}."
159
+ end
160
+ @key = key
161
+ end
162
+
167
163
  # Custom attribute writer method checking allowed values (enum).
168
164
  # @param [Object] status Object to be assigned
169
165
  def status=(status)
170
- validator = EnumAttributeValidator.new('String', ["pending", "delivered", "failed"])
166
+ validator = EnumAttributeValidator.new('String', ["complete", "missing", "needs_human", "needs_staff", "blocked"])
171
167
  unless validator.valid?(status)
172
168
  fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
173
169
  end
@@ -179,14 +175,12 @@ module WefunderGenerated
179
175
  def ==(o)
180
176
  return true if self.equal?(o)
181
177
  self.class == o.class &&
182
- id == o.id &&
183
- delivery_uuid == o.delivery_uuid &&
184
- event_type == o.event_type &&
178
+ key == o.key &&
179
+ label == o.label &&
185
180
  status == o.status &&
186
- attempts == o.attempts &&
187
- response_code == o.response_code &&
188
- last_attempt_at == o.last_attempt_at &&
189
- created_at == o.created_at
181
+ detail == o.detail &&
182
+ action_url == o.action_url &&
183
+ blocked_by == o.blocked_by
190
184
  end
191
185
 
192
186
  # @see the `==` method
@@ -198,7 +192,7 @@ module WefunderGenerated
198
192
  # Calculates hash code according to all attributes.
199
193
  # @return [Integer] Hash code
200
194
  def hash
201
- [id, delivery_uuid, event_type, status, attempts, response_code, last_attempt_at, created_at].hash
195
+ [key, label, status, detail, action_url, blocked_by].hash
202
196
  end
203
197
 
204
198
  # Builds the object from hash
@@ -21,10 +21,10 @@ module WefunderGenerated
21
21
  # Member count grouped by role
22
22
  attr_accessor :members_by_role
23
23
 
24
- # Total number of linked deals (all linked fundraises)
24
+ # Rounds in the syndicate's visible deal set, in any state. Excludes invite-only companies' rounds and testing-the-waters rounds of directory companies, so this is not every round the syndicate has been linked to.
25
25
  attr_accessor :total_deals
26
26
 
27
- # Number of currently live deals (open/oversubscribed/closing states)
27
+ # The open, oversubscribed, or closing subset of `total_deals`; the rows `GET /syndicates/{syndicate_id}/deals` lists.
28
28
  attr_accessor :live_deals
29
29
 
30
30
  # Total amount raised across directory-selected deals (one per company), in whole dollars, as a string.
@@ -97,7 +97,7 @@ module WefunderGenerated
97
97
  # @return true if the model is valid
98
98
  def valid?
99
99
  warn '[DEPRECATED] the `valid?` method is obsolete'
100
- event_validator = EnumAttributeValidator.new('String', ["investment.created", "investment.reinstated", "investment.canceled", "investment.converted", "investment.amount_changed", "investment.executed", "offering.opened", "offering.closing", "offering.closed", "offering.canceled", "investment_session.created", "investment_session.started", "investment_session.completed", "investment_session.expired", "investment_session.canceled", "investment.changed", "syndicate_member.invited", "syndicate_member.reinvited", "syndicate_member.applied", "syndicate_member.approved", "syndicate_member.joined"])
100
+ event_validator = EnumAttributeValidator.new('String', ["investment.created", "investment.reinstated", "investment.canceled", "investment.converted", "investment.amount_changed", "investment.executed", "offering.opened", "offering.closing", "offering.closed", "offering.canceled", "investment_session.created", "investment_session.started", "investment_session.completed", "investment_session.expired", "investment_session.canceled", "investment.changed", "syndicate_member.invited", "syndicate_member.reinvited", "syndicate_member.applied", "syndicate_member.approved", "syndicate_member.joined", "syndicate_member.left", "syndicate_member.declined", "join_session.pending_approval", "join_session.completed", "join_session.rejected", "join_session.ineligible", "join_session.canceled", "join_session.expired", "installation.created", "installation.revoked", "investment.referred", "referral_cohorts.published"])
101
101
  return false unless event_validator.valid?(@event)
102
102
  true
103
103
  end
@@ -105,7 +105,7 @@ module WefunderGenerated
105
105
  # Custom attribute writer method checking allowed values (enum).
106
106
  # @param [Object] event Object to be assigned
107
107
  def event=(event)
108
- validator = EnumAttributeValidator.new('String', ["investment.created", "investment.reinstated", "investment.canceled", "investment.converted", "investment.amount_changed", "investment.executed", "offering.opened", "offering.closing", "offering.closed", "offering.canceled", "investment_session.created", "investment_session.started", "investment_session.completed", "investment_session.expired", "investment_session.canceled", "investment.changed", "syndicate_member.invited", "syndicate_member.reinvited", "syndicate_member.applied", "syndicate_member.approved", "syndicate_member.joined"])
108
+ validator = EnumAttributeValidator.new('String', ["investment.created", "investment.reinstated", "investment.canceled", "investment.converted", "investment.amount_changed", "investment.executed", "offering.opened", "offering.closing", "offering.closed", "offering.canceled", "investment_session.created", "investment_session.started", "investment_session.completed", "investment_session.expired", "investment_session.canceled", "investment.changed", "syndicate_member.invited", "syndicate_member.reinvited", "syndicate_member.applied", "syndicate_member.approved", "syndicate_member.joined", "syndicate_member.left", "syndicate_member.declined", "join_session.pending_approval", "join_session.completed", "join_session.rejected", "join_session.ineligible", "join_session.canceled", "join_session.expired", "installation.created", "installation.revoked", "investment.referred", "referral_cohorts.published"])
109
109
  unless validator.valid?(event)
110
110
  fail ArgumentError, "invalid value for \"event\", must be one of #{validator.allowable_values}."
111
111
  end