tremendous_ruby 5.7.0 → 5.8.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.
@@ -0,0 +1,358 @@
1
+ =begin
2
+ #API Endpoints
3
+
4
+ #Deliver monetary rewards and incentives to employees, customers, survey participants, and more through the Tremendous API. For organizational tasks, like managing your organization and it's members within Tremendous, please see the Tremendous Organizational API.
5
+
6
+ The version of the OpenAPI document: 2
7
+ Contact: developers@tremendous.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.8.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Tremendous
17
+ class BalanceTransactionOrderPayment
18
+ # Total price of the order before fees (in USD)
19
+ attr_accessor :subtotal
20
+
21
+ # Total price of the order including fees (in USD)
22
+ attr_accessor :total
23
+
24
+ # Fees for the order (in USD)
25
+ attr_accessor :fees
26
+
27
+ # Discount for the order (in USD)
28
+ attr_accessor :discount
29
+
30
+ attr_accessor :refund
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'subtotal' => :'subtotal',
36
+ :'total' => :'total',
37
+ :'fees' => :'fees',
38
+ :'discount' => :'discount',
39
+ :'refund' => :'refund'
40
+ }
41
+ end
42
+
43
+ # Returns all the JSON keys this model knows about
44
+ def self.acceptable_attributes
45
+ attribute_map.values
46
+ end
47
+
48
+ # Attribute type mapping.
49
+ def self.openapi_types
50
+ {
51
+ :'subtotal' => :'Float',
52
+ :'total' => :'Float',
53
+ :'fees' => :'Float',
54
+ :'discount' => :'Float',
55
+ :'refund' => :'PaymentDetailsRefund'
56
+ }
57
+ end
58
+
59
+ # List of attributes with nullable: true
60
+ def self.openapi_nullable
61
+ Set.new([
62
+ ])
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ if (!attributes.is_a?(Hash))
69
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Tremendous::BalanceTransactionOrderPayment` initialize method"
70
+ end
71
+
72
+ # check to see if the attribute exists and convert string to symbol for hash key
73
+ attributes = attributes.each_with_object({}) { |(k, v), h|
74
+ if (!self.class.attribute_map.key?(k.to_sym))
75
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Tremendous::BalanceTransactionOrderPayment`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
76
+ end
77
+ h[k.to_sym] = v
78
+ }
79
+
80
+ if attributes.key?(:'subtotal')
81
+ self.subtotal = attributes[:'subtotal']
82
+ else
83
+ self.subtotal = nil
84
+ end
85
+
86
+ if attributes.key?(:'total')
87
+ self.total = attributes[:'total']
88
+ else
89
+ self.total = nil
90
+ end
91
+
92
+ if attributes.key?(:'fees')
93
+ self.fees = attributes[:'fees']
94
+ else
95
+ self.fees = nil
96
+ end
97
+
98
+ if attributes.key?(:'discount')
99
+ self.discount = attributes[:'discount']
100
+ else
101
+ self.discount = nil
102
+ end
103
+
104
+ if attributes.key?(:'refund')
105
+ self.refund = attributes[:'refund']
106
+ end
107
+ end
108
+
109
+ # Show invalid properties with the reasons. Usually used together with valid?
110
+ # @return Array for valid properties with the reasons
111
+ def list_invalid_properties
112
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
113
+ invalid_properties = Array.new
114
+ if @subtotal.nil?
115
+ invalid_properties.push('invalid value for "subtotal", subtotal cannot be nil.')
116
+ end
117
+
118
+ if @subtotal < 0
119
+ invalid_properties.push('invalid value for "subtotal", must be greater than or equal to 0.')
120
+ end
121
+
122
+ if @total.nil?
123
+ invalid_properties.push('invalid value for "total", total cannot be nil.')
124
+ end
125
+
126
+ if @total < 0
127
+ invalid_properties.push('invalid value for "total", must be greater than or equal to 0.')
128
+ end
129
+
130
+ if @fees.nil?
131
+ invalid_properties.push('invalid value for "fees", fees cannot be nil.')
132
+ end
133
+
134
+ if @fees < 0
135
+ invalid_properties.push('invalid value for "fees", must be greater than or equal to 0.')
136
+ end
137
+
138
+ if @discount.nil?
139
+ invalid_properties.push('invalid value for "discount", discount cannot be nil.')
140
+ end
141
+
142
+ if @discount < 0
143
+ invalid_properties.push('invalid value for "discount", must be greater than or equal to 0.')
144
+ end
145
+
146
+ invalid_properties
147
+ end
148
+
149
+ # Check to see if the all the properties in the model are valid
150
+ # @return true if the model is valid
151
+ def valid?
152
+ warn '[DEPRECATED] the `valid?` method is obsolete'
153
+ return false if @subtotal.nil?
154
+ return false if @subtotal < 0
155
+ return false if @total.nil?
156
+ return false if @total < 0
157
+ return false if @fees.nil?
158
+ return false if @fees < 0
159
+ return false if @discount.nil?
160
+ return false if @discount < 0
161
+ true
162
+ end
163
+
164
+ # Custom attribute writer method with validation
165
+ # @param [Object] subtotal Value to be assigned
166
+ def subtotal=(subtotal)
167
+ if subtotal.nil?
168
+ fail ArgumentError, 'subtotal cannot be nil'
169
+ end
170
+
171
+ if subtotal < 0
172
+ fail ArgumentError, 'invalid value for "subtotal", must be greater than or equal to 0.'
173
+ end
174
+
175
+ @subtotal = subtotal
176
+ end
177
+
178
+ # Custom attribute writer method with validation
179
+ # @param [Object] total Value to be assigned
180
+ def total=(total)
181
+ if total.nil?
182
+ fail ArgumentError, 'total cannot be nil'
183
+ end
184
+
185
+ if total < 0
186
+ fail ArgumentError, 'invalid value for "total", must be greater than or equal to 0.'
187
+ end
188
+
189
+ @total = total
190
+ end
191
+
192
+ # Custom attribute writer method with validation
193
+ # @param [Object] fees Value to be assigned
194
+ def fees=(fees)
195
+ if fees.nil?
196
+ fail ArgumentError, 'fees cannot be nil'
197
+ end
198
+
199
+ if fees < 0
200
+ fail ArgumentError, 'invalid value for "fees", must be greater than or equal to 0.'
201
+ end
202
+
203
+ @fees = fees
204
+ end
205
+
206
+ # Custom attribute writer method with validation
207
+ # @param [Object] discount Value to be assigned
208
+ def discount=(discount)
209
+ if discount.nil?
210
+ fail ArgumentError, 'discount cannot be nil'
211
+ end
212
+
213
+ if discount < 0
214
+ fail ArgumentError, 'invalid value for "discount", must be greater than or equal to 0.'
215
+ end
216
+
217
+ @discount = discount
218
+ end
219
+
220
+ # Checks equality by comparing each attribute.
221
+ # @param [Object] Object to be compared
222
+ def ==(o)
223
+ return true if self.equal?(o)
224
+ self.class == o.class &&
225
+ subtotal == o.subtotal &&
226
+ total == o.total &&
227
+ fees == o.fees &&
228
+ discount == o.discount &&
229
+ refund == o.refund
230
+ end
231
+
232
+ # @see the `==` method
233
+ # @param [Object] Object to be compared
234
+ def eql?(o)
235
+ self == o
236
+ end
237
+
238
+ # Calculates hash code according to all attributes.
239
+ # @return [Integer] Hash code
240
+ def hash
241
+ [subtotal, total, fees, discount, refund].hash
242
+ end
243
+
244
+ # Builds the object from hash
245
+ # @param [Hash] attributes Model attributes in the form of hash
246
+ # @return [Object] Returns the model itself
247
+ def self.build_from_hash(attributes)
248
+ return nil unless attributes.is_a?(Hash)
249
+ attributes = attributes.transform_keys(&:to_sym)
250
+ transformed_hash = {}
251
+ openapi_types.each_pair do |key, type|
252
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
253
+ transformed_hash["#{key}"] = nil
254
+ elsif type =~ /\AArray<(.*)>/i
255
+ # check to ensure the input is an array given that the attribute
256
+ # is documented as an array but the input is not
257
+ if attributes[attribute_map[key]].is_a?(Array)
258
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
259
+ end
260
+ elsif !attributes[attribute_map[key]].nil?
261
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
262
+ end
263
+ end
264
+ new(transformed_hash)
265
+ end
266
+
267
+ # Deserializes the data based on type
268
+ # @param string type Data type
269
+ # @param string value Value to be deserialized
270
+ # @return [Object] Deserialized data
271
+ def self._deserialize(type, value)
272
+ case type.to_sym
273
+ when :Time
274
+ Time.parse(value)
275
+ when :Date
276
+ Date.parse(value)
277
+ when :String
278
+ value.to_s
279
+ when :Integer
280
+ value.to_i
281
+ when :Float
282
+ value.to_f
283
+ when :Boolean
284
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
285
+ true
286
+ else
287
+ false
288
+ end
289
+ when :Object
290
+ # generic object (usually a Hash), return directly
291
+ value
292
+ when /\AArray<(?<inner_type>.+)>\z/
293
+ inner_type = Regexp.last_match[:inner_type]
294
+ value.map { |v| _deserialize(inner_type, v) }
295
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
296
+ k_type = Regexp.last_match[:k_type]
297
+ v_type = Regexp.last_match[:v_type]
298
+ {}.tap do |hash|
299
+ value.each do |k, v|
300
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
301
+ end
302
+ end
303
+ else # model
304
+ # models (e.g. Pet) or oneOf
305
+ klass = Tremendous.const_get(type)
306
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
307
+ end
308
+ end
309
+
310
+ # Returns the string representation of the object
311
+ # @return [String] String presentation of the object
312
+ def to_s
313
+ to_hash.to_s
314
+ end
315
+
316
+ # to_body is an alias to to_hash (backward compatibility)
317
+ # @return [Hash] Returns the object in the form of hash
318
+ def to_body
319
+ to_hash
320
+ end
321
+
322
+ # Returns the object in the form of hash
323
+ # @return [Hash] Returns the object in the form of hash
324
+ def to_hash
325
+ hash = {}
326
+ self.class.attribute_map.each_pair do |attr, param|
327
+ value = self.send(attr)
328
+ if value.nil?
329
+ is_nullable = self.class.openapi_nullable.include?(attr)
330
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
331
+ end
332
+
333
+ hash[param] = _to_hash(value)
334
+ end
335
+ hash
336
+ end
337
+
338
+ # Outputs non-array value in the form of hash
339
+ # For object, use to_hash. Otherwise, just return the value
340
+ # @param [Object] value Any valid value
341
+ # @return [Hash] Returns the value in the form of hash
342
+ def _to_hash(value)
343
+ if value.is_a?(Array)
344
+ value.compact.map { |v| _to_hash(v) }
345
+ elsif value.is_a?(Hash)
346
+ {}.tap do |hash|
347
+ value.each { |k, v| hash[k] = _to_hash(v) }
348
+ end
349
+ elsif value.respond_to? :to_hash
350
+ value.to_hash
351
+ else
352
+ value
353
+ end
354
+ end
355
+
356
+ end
357
+
358
+ end
@@ -19,6 +19,9 @@ module Tremendous
19
19
  # The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released.
20
20
  attr_accessor :status
21
21
 
22
+ # The fraud risk associated with the reward.
23
+ attr_accessor :risk
24
+
22
25
  # The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward dollar limit` * `Over reward count limit` * `VPN detected` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `IP related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email`
23
26
  attr_accessor :reasons
24
27
 
@@ -69,6 +72,7 @@ module Tremendous
69
72
  def self.attribute_map
70
73
  {
71
74
  :'status' => :'status',
75
+ :'risk' => :'risk',
72
76
  :'reasons' => :'reasons',
73
77
  :'reviewed_by' => :'reviewed_by',
74
78
  :'reviewed_at' => :'reviewed_at',
@@ -90,6 +94,7 @@ module Tremendous
90
94
  def self.openapi_types
91
95
  {
92
96
  :'status' => :'String',
97
+ :'risk' => :'String',
93
98
  :'reasons' => :'Array<String>',
94
99
  :'reviewed_by' => :'String',
95
100
  :'reviewed_at' => :'Time',
@@ -127,6 +132,10 @@ module Tremendous
127
132
  self.status = attributes[:'status']
128
133
  end
129
134
 
135
+ if attributes.key?(:'risk')
136
+ self.risk = attributes[:'risk']
137
+ end
138
+
130
139
  if attributes.key?(:'reasons')
131
140
  if (value = attributes[:'reasons']).is_a?(Array)
132
141
  self.reasons = value
@@ -180,6 +189,8 @@ module Tremendous
180
189
  warn '[DEPRECATED] the `valid?` method is obsolete'
181
190
  status_validator = EnumAttributeValidator.new('String', ["flagged", "blocked", "released"])
182
191
  return false unless status_validator.valid?(@status)
192
+ risk_validator = EnumAttributeValidator.new('String', ["high", "medium", "low"])
193
+ return false unless risk_validator.valid?(@risk)
183
194
  redemption_method_validator = EnumAttributeValidator.new('String', ["paypal", "bank", "merchant card", "visa card", "charity", "venmo"])
184
195
  return false unless redemption_method_validator.valid?(@redemption_method)
185
196
  true
@@ -195,6 +206,16 @@ module Tremendous
195
206
  @status = status
196
207
  end
197
208
 
209
+ # Custom attribute writer method checking allowed values (enum).
210
+ # @param [Object] risk Object to be assigned
211
+ def risk=(risk)
212
+ validator = EnumAttributeValidator.new('String', ["high", "medium", "low"])
213
+ unless validator.valid?(risk)
214
+ fail ArgumentError, "invalid value for \"risk\", must be one of #{validator.allowable_values}."
215
+ end
216
+ @risk = risk
217
+ end
218
+
198
219
  # Custom attribute writer method checking allowed values (enum).
199
220
  # @param [Object] redemption_method Object to be assigned
200
221
  def redemption_method=(redemption_method)
@@ -211,6 +232,7 @@ module Tremendous
211
232
  return true if self.equal?(o)
212
233
  self.class == o.class &&
213
234
  status == o.status &&
235
+ risk == o.risk &&
214
236
  reasons == o.reasons &&
215
237
  reviewed_by == o.reviewed_by &&
216
238
  reviewed_at == o.reviewed_at &&
@@ -231,7 +253,7 @@ module Tremendous
231
253
  # Calculates hash code according to all attributes.
232
254
  # @return [Integer] Hash code
233
255
  def hash
234
- [status, reasons, reviewed_by, reviewed_at, related_rewards, device_id, redemption_method, redeemed_at, geo, reward].hash
256
+ [status, risk, reasons, reviewed_by, reviewed_at, related_rewards, device_id, redemption_method, redeemed_at, geo, reward].hash
235
257
  end
236
258
 
237
259
  # Builds the object from hash
@@ -0,0 +1,41 @@
1
+ =begin
2
+ #API Endpoints
3
+
4
+ #Deliver monetary rewards and incentives to employees, customers, survey participants, and more through the Tremendous API. For organizational tasks, like managing your organization and it's members within Tremendous, please see the Tremendous Organizational API.
5
+
6
+ The version of the OpenAPI document: 2
7
+ Contact: developers@tremendous.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.8.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Tremendous
17
+ class FraudReviewRisk
18
+ HIGH = "high".freeze
19
+ MEDIUM = "medium".freeze
20
+ LOW = "low".freeze
21
+
22
+ def self.all_vars
23
+ @all_vars ||= [HIGH, MEDIUM, LOW].freeze
24
+ end
25
+
26
+ # Builds the enum from string
27
+ # @param [String] The enum value in the form of the string
28
+ # @return [String] The enum value
29
+ def self.build_from_hash(value)
30
+ new.build_from_hash(value)
31
+ end
32
+
33
+ # Builds the enum from string
34
+ # @param [String] The enum value in the form of the string
35
+ # @return [String] The enum value
36
+ def build_from_hash(value)
37
+ return value if FraudReviewRisk.all_vars.include?(value)
38
+ raise "Invalid ENUM value #{value} for class #FraudReviewRisk"
39
+ end
40
+ end
41
+ end
@@ -19,6 +19,9 @@ module Tremendous
19
19
  # The current status of the fraud review: * `flagged` - The reward has been flagged for and waiting manual review. * `blocked` - The reward was reviewed and blocked. * `released` - The reward was reviewed and released.
20
20
  attr_accessor :status
21
21
 
22
+ # The fraud risk associated with the reward.
23
+ attr_accessor :risk
24
+
22
25
  # The array may contain multiple reasons, depending on which rule(s) flagged the reward for review. Reasons can be any of the following: * `Disallowed IP` * `Disallowed email` * `Disallowed country` * `Over reward dollar limit` * `Over reward count limit` * `VPN detected` * `Device related to multiple emails` * `Device or account related to multiple emails` * `IP on a Tremendous fraud list` * `Bank account on a Tremendous fraud list` * `Fingerprint on a Tremendous fraud list` * `Email on a Tremendous fraud list` * `Phone on a Tremendous fraud list` * `IP related to a blocked reward` * `Bank account related to a blocked reward` * `Fingerprint related to a blocked reward` * `Email related to a blocked reward` * `Phone related to a blocked reward` * `Allowed IP` * `Allowed email`
23
26
  attr_accessor :reasons
24
27
 
@@ -69,6 +72,7 @@ module Tremendous
69
72
  def self.attribute_map
70
73
  {
71
74
  :'status' => :'status',
75
+ :'risk' => :'risk',
72
76
  :'reasons' => :'reasons',
73
77
  :'reviewed_by' => :'reviewed_by',
74
78
  :'reviewed_at' => :'reviewed_at',
@@ -90,6 +94,7 @@ module Tremendous
90
94
  def self.openapi_types
91
95
  {
92
96
  :'status' => :'String',
97
+ :'risk' => :'String',
93
98
  :'reasons' => :'Array<String>',
94
99
  :'reviewed_by' => :'String',
95
100
  :'reviewed_at' => :'Time',
@@ -127,6 +132,10 @@ module Tremendous
127
132
  self.status = attributes[:'status']
128
133
  end
129
134
 
135
+ if attributes.key?(:'risk')
136
+ self.risk = attributes[:'risk']
137
+ end
138
+
130
139
  if attributes.key?(:'reasons')
131
140
  if (value = attributes[:'reasons']).is_a?(Array)
132
141
  self.reasons = value
@@ -180,6 +189,8 @@ module Tremendous
180
189
  warn '[DEPRECATED] the `valid?` method is obsolete'
181
190
  status_validator = EnumAttributeValidator.new('String', ["flagged", "blocked", "released"])
182
191
  return false unless status_validator.valid?(@status)
192
+ risk_validator = EnumAttributeValidator.new('String', ["high", "medium", "low"])
193
+ return false unless risk_validator.valid?(@risk)
183
194
  redemption_method_validator = EnumAttributeValidator.new('String', ["paypal", "bank", "merchant card", "visa card", "charity", "venmo"])
184
195
  return false unless redemption_method_validator.valid?(@redemption_method)
185
196
  true
@@ -195,6 +206,16 @@ module Tremendous
195
206
  @status = status
196
207
  end
197
208
 
209
+ # Custom attribute writer method checking allowed values (enum).
210
+ # @param [Object] risk Object to be assigned
211
+ def risk=(risk)
212
+ validator = EnumAttributeValidator.new('String', ["high", "medium", "low"])
213
+ unless validator.valid?(risk)
214
+ fail ArgumentError, "invalid value for \"risk\", must be one of #{validator.allowable_values}."
215
+ end
216
+ @risk = risk
217
+ end
218
+
198
219
  # Custom attribute writer method checking allowed values (enum).
199
220
  # @param [Object] redemption_method Object to be assigned
200
221
  def redemption_method=(redemption_method)
@@ -211,6 +232,7 @@ module Tremendous
211
232
  return true if self.equal?(o)
212
233
  self.class == o.class &&
213
234
  status == o.status &&
235
+ risk == o.risk &&
214
236
  reasons == o.reasons &&
215
237
  reviewed_by == o.reviewed_by &&
216
238
  reviewed_at == o.reviewed_at &&
@@ -231,7 +253,7 @@ module Tremendous
231
253
  # Calculates hash code according to all attributes.
232
254
  # @return [Integer] Hash code
233
255
  def hash
234
- [status, reasons, reviewed_by, reviewed_at, related_rewards, device_id, redemption_method, redeemed_at, geo, reward].hash
256
+ [status, risk, reasons, reviewed_by, reviewed_at, related_rewards, device_id, redemption_method, redeemed_at, geo, reward].hash
235
257
  end
236
258
 
237
259
  # Builds the object from hash