lob 6.0.7 → 6.0.8

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,644 @@
1
+ =begin
2
+ #Lob
3
+
4
+ #The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. <p> Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
5
+
6
+ The version of the OpenAPI document: 1.3.0
7
+ Contact: lob-openapi@lob.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.2.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Lob
17
+ class UsAddress
18
+ # Unique identifier prefixed with `adr_`.
19
+ attr_accessor :id
20
+
21
+ # An internal description that identifies this resource. Must be no longer than 255 characters.
22
+ attr_accessor :description
23
+
24
+ # name associated with address
25
+ attr_accessor :name
26
+
27
+ # Either `name` or `company` is required, you may also add both.
28
+ attr_accessor :company
29
+
30
+ # Must be no longer than 40 characters.
31
+ attr_accessor :phone
32
+
33
+ # Must be no longer than 100 characters.
34
+ attr_accessor :email
35
+
36
+ # Use metadata to store custom information for tagging and labeling back to your internal systems. Must be an object with up to 20 key-value pairs. Keys must be at most 40 characters and values must be at most 500 characters. Neither can contain the characters `\"` and `\\`. i.e. '{\"customer_id\" : \"NEWYORK2015\"}' Nested objects are not supported. See [Metadata](#section/Metadata) for more information.
37
+ attr_accessor :metadata
38
+
39
+ attr_accessor :address_line1
40
+
41
+ attr_accessor :address_line2
42
+
43
+ attr_accessor :address_city
44
+
45
+ # 2 letter state short-name code
46
+ attr_accessor :address_state
47
+
48
+ # Must follow the ZIP format of `12345` or ZIP+4 format of `12345-1234`.
49
+ attr_accessor :address_zip
50
+
51
+ # Full name of country
52
+ attr_accessor :address_country
53
+
54
+ attr_accessor :object
55
+
56
+ # A timestamp in ISO 8601 format of the date the resource was created.
57
+ attr_accessor :date_created
58
+
59
+ # A timestamp in ISO 8601 format of the date the resource was last modified.
60
+ attr_accessor :date_modified
61
+
62
+ # Only returned if the resource has been successfully deleted.
63
+ attr_accessor :deleted
64
+
65
+ # Checks if address id is used or not
66
+ attr_accessor :inline
67
+
68
+ # Only returned for accounts on certain <a href=\"https://dashboard.lob.com/#/settings/editions\">Print &amp; Mail Editions</a>. Value is `true` if the address was altered because the recipient filed for a <a href=\"#ncoa\">National Change of Address (NCOA)</a>, `false` if the NCOA check was run but no altered address was found, and `null` if the NCOA check was not run. The NCOA check does not happen for non-US addresses, for non-deliverable US addresses, or for addresses created before the NCOA feature was added to your account.
69
+ attr_accessor :recipient_moved
70
+
71
+ class EnumAttributeValidator
72
+ attr_reader :datatype
73
+ attr_reader :allowable_values
74
+
75
+ def initialize(datatype, allowable_values)
76
+ @allowable_values = allowable_values.map do |value|
77
+ case datatype.to_s
78
+ when /Integer/i
79
+ value.to_i
80
+ when /Float/i
81
+ value.to_f
82
+ else
83
+ value
84
+ end
85
+ end
86
+ end
87
+
88
+ def valid?(value)
89
+ !value || allowable_values.include?(value)
90
+ end
91
+ end
92
+
93
+ # Attribute mapping from ruby-style variable name to JSON key.
94
+ def self.attribute_map
95
+ {
96
+ :'id' => :'id',
97
+ :'description' => :'description',
98
+ :'name' => :'name',
99
+ :'company' => :'company',
100
+ :'phone' => :'phone',
101
+ :'email' => :'email',
102
+ :'metadata' => :'metadata',
103
+ :'address_line1' => :'address_line1',
104
+ :'address_line2' => :'address_line2',
105
+ :'address_city' => :'address_city',
106
+ :'address_state' => :'address_state',
107
+ :'address_zip' => :'address_zip',
108
+ :'address_country' => :'address_country',
109
+ :'object' => :'object',
110
+ :'date_created' => :'date_created',
111
+ :'date_modified' => :'date_modified',
112
+ :'deleted' => :'deleted',
113
+ :'inline' => :'inline',
114
+ :'recipient_moved' => :'recipient_moved'
115
+ }
116
+ end
117
+
118
+ # Returns all the JSON keys this model knows about
119
+ def self.acceptable_attributes
120
+ attribute_map.values
121
+ end
122
+
123
+ # Attribute type mapping.
124
+ def self.openapi_types
125
+ {
126
+ :'id' => :'String',
127
+ :'description' => :'String',
128
+ :'name' => :'String',
129
+ :'company' => :'String',
130
+ :'phone' => :'String',
131
+ :'email' => :'String',
132
+ :'metadata' => :'Hash<String, String>',
133
+ :'address_line1' => :'String',
134
+ :'address_line2' => :'String',
135
+ :'address_city' => :'String',
136
+ :'address_state' => :'String',
137
+ :'address_zip' => :'String',
138
+ :'address_country' => :'String',
139
+ :'object' => :'String',
140
+ :'date_created' => :'Time',
141
+ :'date_modified' => :'Time',
142
+ :'deleted' => :'Boolean',
143
+ :'inline' => :'Boolean',
144
+ :'recipient_moved' => :'Boolean'
145
+ }
146
+ end
147
+
148
+ # List of attributes with nullable: true
149
+ def self.openapi_nullable
150
+ Set.new([
151
+ :'description',
152
+ :'name',
153
+ :'company',
154
+ :'phone',
155
+ :'email',
156
+ :'address_line2',
157
+ :'recipient_moved'
158
+ ])
159
+ end
160
+
161
+ # Initializes the object
162
+ # @param [Hash] attributes Model attributes in the form of hash
163
+ def initialize(attributes = {})
164
+ if (!attributes.is_a?(Hash))
165
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Lob::UsAddress` initialize method"
166
+ end
167
+
168
+ # check to see if the attribute exists and convert string to symbol for hash key
169
+ attributes = attributes.each_with_object({}) { |(k, v), h|
170
+ if (!self.class.attribute_map.key?(k.to_sym))
171
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Lob::UsAddress`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
172
+ end
173
+ h[k.to_sym] = v
174
+ }
175
+
176
+ if attributes.key?(:'id')
177
+ self.id = attributes[:'id']
178
+ end
179
+
180
+ if attributes.key?(:'description')
181
+ self.description = attributes[:'description']
182
+ end
183
+
184
+ if attributes.key?(:'name')
185
+ self.name = attributes[:'name']
186
+ end
187
+
188
+ if attributes.key?(:'company')
189
+ self.company = attributes[:'company']
190
+ end
191
+
192
+ if attributes.key?(:'phone')
193
+ self.phone = attributes[:'phone']
194
+ end
195
+
196
+ if attributes.key?(:'email')
197
+ self.email = attributes[:'email']
198
+ end
199
+
200
+ if attributes.key?(:'metadata')
201
+ if (value = attributes[:'metadata']).is_a?(Hash)
202
+ self.metadata = value
203
+ end
204
+ end
205
+
206
+ if attributes.key?(:'address_line1')
207
+ self.address_line1 = attributes[:'address_line1']
208
+ end
209
+
210
+ if attributes.key?(:'address_line2')
211
+ self.address_line2 = attributes[:'address_line2']
212
+ end
213
+
214
+ if attributes.key?(:'address_city')
215
+ self.address_city = attributes[:'address_city']
216
+ end
217
+
218
+ if attributes.key?(:'address_state')
219
+ self.address_state = attributes[:'address_state']
220
+ end
221
+
222
+ if attributes.key?(:'address_zip')
223
+ self.address_zip = attributes[:'address_zip']
224
+ end
225
+
226
+ if attributes.key?(:'address_country')
227
+ self.address_country = attributes[:'address_country']
228
+ end
229
+
230
+ if attributes.key?(:'object')
231
+ self.object = attributes[:'object']
232
+ else
233
+ self.object = 'address'
234
+ end
235
+
236
+ if attributes.key?(:'date_created')
237
+ self.date_created = attributes[:'date_created']
238
+ end
239
+
240
+ if attributes.key?(:'date_modified')
241
+ self.date_modified = attributes[:'date_modified']
242
+ end
243
+
244
+ if attributes.key?(:'deleted')
245
+ self.deleted = attributes[:'deleted']
246
+ end
247
+
248
+ if attributes.key?(:'inline')
249
+ self.inline = attributes[:'inline']
250
+ end
251
+
252
+ if attributes.key?(:'recipient_moved')
253
+ self.recipient_moved = attributes[:'recipient_moved']
254
+ end
255
+ end
256
+
257
+ # Show invalid properties with the reasons. Usually used together with valid?
258
+ # @return Array for valid properties with the reasons
259
+ def list_invalid_properties
260
+ invalid_properties = Array.new
261
+ pattern = Regexp.new(/^adr_[a-zA-Z0-9]+$/)
262
+ if !@id.nil? && @id !~ pattern
263
+ invalid_properties.push("invalid value for \"id\", must conform to the pattern #{pattern}.")
264
+ end
265
+
266
+ if !@description.nil? && @description.to_s.length > 255
267
+ invalid_properties.push('invalid value for "description", the character length must be smaller than or equal to 255.')
268
+ end
269
+
270
+ if !@name.nil? && @name.to_s.length > 40
271
+ invalid_properties.push('invalid value for "name", the character length must be smaller than or equal to 40.')
272
+ end
273
+
274
+ if !@company.nil? && @company.to_s.length > 40
275
+ invalid_properties.push('invalid value for "company", the character length must be smaller than or equal to 40.')
276
+ end
277
+
278
+ if !@phone.nil? && @phone.to_s.length > 40
279
+ invalid_properties.push('invalid value for "phone", the character length must be smaller than or equal to 40.')
280
+ end
281
+
282
+ if !@email.nil? && @email.to_s.length > 100
283
+ invalid_properties.push('invalid value for "email", the character length must be smaller than or equal to 100.')
284
+ end
285
+
286
+ if !@address_line1.nil? && @address_line1.to_s.length > 64
287
+ invalid_properties.push('invalid value for "address_line1", the character length must be smaller than or equal to 64.')
288
+ end
289
+
290
+ if !@address_line2.nil? && @address_line2.to_s.length > 64
291
+ invalid_properties.push('invalid value for "address_line2", the character length must be smaller than or equal to 64.')
292
+ end
293
+
294
+ if !@address_city.nil? && @address_city.to_s.length > 200
295
+ invalid_properties.push('invalid value for "address_city", the character length must be smaller than or equal to 200.')
296
+ end
297
+
298
+ pattern = Regexp.new(/^[a-zA-Z]{2}$/)
299
+ if !@address_state.nil? && @address_state !~ pattern
300
+ invalid_properties.push("invalid value for \"address_state\", must conform to the pattern #{pattern}.")
301
+ end
302
+
303
+ pattern = Regexp.new(/^\d{5}(-\d{4})?$/)
304
+ if !@address_zip.nil? && @address_zip !~ pattern
305
+ invalid_properties.push("invalid value for \"address_zip\", must conform to the pattern #{pattern}.")
306
+ end
307
+
308
+ if !@address_country.nil? && @address_country.to_s.length > 200
309
+ invalid_properties.push('invalid value for "address_country", the character length must be smaller than or equal to 200.')
310
+ end
311
+
312
+ invalid_properties
313
+ end
314
+
315
+ # Check to see if the all the properties in the model are valid
316
+ # @return true if the model is valid
317
+ def valid?
318
+ return false if !@id.nil? && @id !~ Regexp.new(/^adr_[a-zA-Z0-9]+$/)
319
+ return false if !@description.nil? && @description.to_s.length > 255
320
+ return false if !@name.nil? && @name.to_s.length > 40
321
+ return false if !@company.nil? && @company.to_s.length > 40
322
+ return false if !@phone.nil? && @phone.to_s.length > 40
323
+ return false if !@email.nil? && @email.to_s.length > 100
324
+ return false if !@address_line1.nil? && @address_line1.to_s.length > 64
325
+ return false if !@address_line2.nil? && @address_line2.to_s.length > 64
326
+ return false if !@address_city.nil? && @address_city.to_s.length > 200
327
+ return false if !@address_state.nil? && @address_state !~ Regexp.new(/^[a-zA-Z]{2}$/)
328
+ return false if !@address_zip.nil? && @address_zip !~ Regexp.new(/^\d{5}(-\d{4})?$/)
329
+ address_country_validator = EnumAttributeValidator.new('String', ["UNITED STATES"])
330
+ return false unless address_country_validator.valid?(@address_country)
331
+ return false if !@address_country.nil? && @address_country.to_s.length > 200
332
+ object_validator = EnumAttributeValidator.new('String', ["address"])
333
+ return false unless object_validator.valid?(@object)
334
+ true
335
+ end
336
+
337
+ # Custom attribute writer method with validation
338
+ # @param [Object] id Value to be assigned
339
+ def id=(id)
340
+ pattern = Regexp.new(/^adr_[a-zA-Z0-9]+$/)
341
+ if !id.nil? && id !~ pattern
342
+ fail ArgumentError, "invalid value for \"id\", must conform to the pattern #{pattern}."
343
+ end
344
+
345
+ @id = id
346
+ end
347
+
348
+ # Custom attribute writer method with validation
349
+ # @param [Object] description Value to be assigned
350
+ def description=(description)
351
+ if !description.nil? && description.to_s.length > 255
352
+ fail ArgumentError, 'invalid value for "description", the character length must be smaller than or equal to 255.'
353
+ end
354
+
355
+ @description = description
356
+ end
357
+
358
+ # Custom attribute writer method with validation
359
+ # @param [Object] name Value to be assigned
360
+ def name=(name)
361
+ if !name.nil? && name.to_s.length > 40
362
+ fail ArgumentError, 'invalid value for "name", the character length must be smaller than or equal to 40.'
363
+ end
364
+
365
+ @name = name
366
+ end
367
+
368
+ # Custom attribute writer method with validation
369
+ # @param [Object] company Value to be assigned
370
+ def company=(company)
371
+ if !company.nil? && company.to_s.length > 40
372
+ fail ArgumentError, 'invalid value for "company", the character length must be smaller than or equal to 40.'
373
+ end
374
+
375
+ @company = company
376
+ end
377
+
378
+ # Custom attribute writer method with validation
379
+ # @param [Object] phone Value to be assigned
380
+ def phone=(phone)
381
+ if !phone.nil? && phone.to_s.length > 40
382
+ fail ArgumentError, 'invalid value for "phone", the character length must be smaller than or equal to 40.'
383
+ end
384
+
385
+ @phone = phone
386
+ end
387
+
388
+ # Custom attribute writer method with validation
389
+ # @param [Object] email Value to be assigned
390
+ def email=(email)
391
+ if !email.nil? && email.to_s.length > 100
392
+ fail ArgumentError, 'invalid value for "email", the character length must be smaller than or equal to 100.'
393
+ end
394
+
395
+ @email = email
396
+ end
397
+
398
+ # Custom attribute writer method with validation
399
+ # @param [Object] metadata Value to be assigned
400
+ def metadata=(metadata)
401
+ @metadata = metadata
402
+ end
403
+
404
+ # Custom attribute writer method with validation
405
+ # @param [Object] address_line1 Value to be assigned
406
+ def address_line1=(address_line1)
407
+ if !address_line1.nil? && address_line1.to_s.length > 64
408
+ fail ArgumentError, 'invalid value for "address_line1", the character length must be smaller than or equal to 64.'
409
+ end
410
+
411
+ @address_line1 = address_line1
412
+ end
413
+
414
+ # Custom attribute writer method with validation
415
+ # @param [Object] address_line2 Value to be assigned
416
+ def address_line2=(address_line2)
417
+ if !address_line2.nil? && address_line2.to_s.length > 64
418
+ fail ArgumentError, 'invalid value for "address_line2", the character length must be smaller than or equal to 64.'
419
+ end
420
+
421
+ @address_line2 = address_line2
422
+ end
423
+
424
+ # Custom attribute writer method with validation
425
+ # @param [Object] address_city Value to be assigned
426
+ def address_city=(address_city)
427
+ if !address_city.nil? && address_city.to_s.length > 200
428
+ fail ArgumentError, 'invalid value for "address_city", the character length must be smaller than or equal to 200.'
429
+ end
430
+
431
+ @address_city = address_city
432
+ end
433
+
434
+ # Custom attribute writer method with validation
435
+ # @param [Object] address_state Value to be assigned
436
+ def address_state=(address_state)
437
+ pattern = Regexp.new(/^[a-zA-Z]{2}$/)
438
+ if !address_state.nil? && address_state !~ pattern
439
+ fail ArgumentError, "invalid value for \"address_state\", must conform to the pattern #{pattern}."
440
+ end
441
+
442
+ @address_state = address_state
443
+ end
444
+
445
+ # Custom attribute writer method with validation
446
+ # @param [Object] address_zip Value to be assigned
447
+ def address_zip=(address_zip)
448
+ pattern = Regexp.new(/^\d{5}(-\d{4})?$/)
449
+ if !address_zip.nil? && address_zip !~ pattern
450
+ fail ArgumentError, "invalid value for \"address_zip\", must conform to the pattern #{pattern}."
451
+ end
452
+
453
+ @address_zip = address_zip
454
+ end
455
+
456
+ # Custom attribute writer method checking allowed values (enum).
457
+ # @param [Object] address_country Object to be assigned
458
+ def address_country=(address_country)
459
+ validator = EnumAttributeValidator.new('String', ["UNITED STATES"])
460
+ unless validator.valid?(address_country)
461
+ fail ArgumentError, "invalid value for \"address_country\", must be one of #{validator.allowable_values}."
462
+ end
463
+ @address_country = address_country
464
+ end
465
+
466
+ # Custom attribute writer method checking allowed values (enum).
467
+ # @param [Object] object Object to be assigned
468
+ def object=(object)
469
+ validator = EnumAttributeValidator.new('String', ["address"])
470
+ unless validator.valid?(object)
471
+ fail ArgumentError, "invalid value for \"object\", must be one of #{validator.allowable_values}."
472
+ end
473
+ @object = object
474
+ end
475
+
476
+ # Checks equality by comparing each attribute.
477
+ # @param [Object] Object to be compared
478
+ def ==(o)
479
+ return true if self.equal?(o)
480
+ self.class == o.class &&
481
+ id == o.id &&
482
+ description == o.description &&
483
+ name == o.name &&
484
+ company == o.company &&
485
+ phone == o.phone &&
486
+ email == o.email &&
487
+ metadata == o.metadata &&
488
+ address_line1 == o.address_line1 &&
489
+ address_line2 == o.address_line2 &&
490
+ address_city == o.address_city &&
491
+ address_state == o.address_state &&
492
+ address_zip == o.address_zip &&
493
+ address_country == o.address_country &&
494
+ object == o.object &&
495
+ date_created == o.date_created &&
496
+ date_modified == o.date_modified &&
497
+ deleted == o.deleted &&
498
+ inline == o.inline &&
499
+ recipient_moved == o.recipient_moved
500
+ end
501
+
502
+ # @see the `==` method
503
+ # @param [Object] Object to be compared
504
+ def eql?(o)
505
+ self == o
506
+ end
507
+
508
+ # Calculates hash code according to all attributes.
509
+ # @return [Integer] Hash code
510
+ def hash
511
+ [id, description, name, company, phone, email, metadata, address_line1, address_line2, address_city, address_state, address_zip, address_country, object, date_created, date_modified, deleted, inline, recipient_moved].hash
512
+ end
513
+
514
+
515
+ # Builds the object from hash
516
+ # @param [Hash] attributes Model attributes in the form of hash
517
+ # @return [Object] Returns the model itself
518
+ def self.build_from_hash(attributes)
519
+ new.build_from_hash(attributes)
520
+ end
521
+
522
+ # Builds the object from hash
523
+ # @param [Hash] attributes Model attributes in the form of hash
524
+ # @return [Object] Returns the model itself
525
+ def build_from_hash(attributes)
526
+ return nil unless attributes.is_a?(Hash)
527
+ attributes = attributes.transform_keys(&:to_sym)
528
+ self.class.openapi_types.each_pair do |key, type|
529
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
530
+ self.send("#{key}=", nil) # // guardrails-disable-line
531
+ elsif type =~ /\AArray<(.*)>/i
532
+ # check to ensure the input is an array given that the attribute
533
+ # is documented as an array but the input is not
534
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
535
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) }) # // guardrails-disable-line
536
+ end
537
+ elsif !attributes[self.class.attribute_map[key]].nil? && type.kind_of?(Array)
538
+ for base_type in type do
539
+ res = _deserialize(base_type, attributes[self.class.attribute_map[key]])
540
+ if !res.nil?
541
+ self.send("#{key}=", res) # // guardrails-disable-line
542
+ break
543
+ end
544
+ end
545
+ elsif !attributes[self.class.attribute_map[key]].nil?
546
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]])) # // guardrails-disable-line
547
+ end
548
+ end
549
+
550
+ self
551
+ end
552
+
553
+ # Deserializes the data based on type
554
+ # @param string type Data type
555
+ # @param string value Value to be deserialized
556
+ # @return [Object] Deserialized data
557
+ def _deserialize(type, value)
558
+ case type.to_sym
559
+ when :Time
560
+ Time.parse(value)
561
+ when :Date
562
+ Date.parse(value)
563
+ when :String
564
+ value.to_s
565
+ when :Integer
566
+ value.to_i
567
+ when :Float
568
+ value.to_f
569
+ when :Boolean
570
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
571
+ true
572
+ else
573
+ false
574
+ end
575
+ when :Object
576
+ # generic object (usually a Hash), return directly
577
+ value
578
+ when /\AArray<(?<inner_type>.+)>\z/
579
+ inner_type = Regexp.last_match[:inner_type]
580
+ value.map { |v| _deserialize(inner_type, v) }
581
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
582
+ k_type = Regexp.last_match[:k_type]
583
+ v_type = Regexp.last_match[:v_type]
584
+ {}.tap do |hash|
585
+ value.each do |k, v|
586
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
587
+ end
588
+ end
589
+ else # model
590
+ # models (e.g. Pet) or oneOf
591
+ klass = Lob.const_get(type)
592
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
593
+ end
594
+ end
595
+
596
+ # Returns the string representation of the object
597
+ # @return [String] String presentation of the object
598
+ def to_s
599
+ to_hash.to_s
600
+ end
601
+
602
+ # to_body is an alias to to_hash (backward compatibility)
603
+ # @return [Hash] Returns the object in the form of hash
604
+ def to_body
605
+ to_hash
606
+ end
607
+
608
+ # Returns the object in the form of hash
609
+ # @return [Hash] Returns the object in the form of hash
610
+ def to_hash
611
+ hash = {}
612
+ self.class.attribute_map.each_pair do |attr, param|
613
+ value = self.send(attr) # // guardrails-disable-line
614
+ if value.nil?
615
+ is_nullable = self.class.openapi_nullable.include?(attr)
616
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
617
+ end
618
+
619
+ hash[param] = _to_hash(value)
620
+ end
621
+ hash
622
+ end
623
+
624
+ # Outputs non-array value in the form of hash
625
+ # For object, use to_hash. Otherwise, just return the value
626
+ # @param [Object] value Any valid value
627
+ # @return [Hash] Returns the value in the form of hash
628
+ def _to_hash(value)
629
+ if value.is_a?(Array)
630
+ value.compact.map { |v| _to_hash(v) }
631
+ elsif value.is_a?(Hash)
632
+ {}.tap do |hash|
633
+ value.each { |k, v| hash[k] = _to_hash(v) }
634
+ end
635
+ elsif value.respond_to? :to_hash
636
+ value.to_hash
637
+ else
638
+ value
639
+ end
640
+ end
641
+
642
+ end
643
+
644
+ end
@@ -11,5 +11,5 @@ OpenAPI Generator version: 5.2.1
11
11
  =end
12
12
 
13
13
  module Lob
14
- VERSION = '6.0.7'
14
+ VERSION = '6.0.8'
15
15
  end