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