avalara_sdk 25.6.0 → 25.7.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -3
  3. data/docs/A1099/V2/BulkUpsert1099FormsRequest.md +3 -1
  4. data/docs/A1099/V2/CompaniesW9Api.md +45 -31
  5. data/docs/A1099/V2/CoveredIndividualReference.md +58 -0
  6. data/docs/A1099/V2/CoveredIndividualRequest.md +54 -0
  7. data/docs/A1099/V2/Form1095B.md +86 -0
  8. data/docs/A1099/V2/Form1095BList.md +20 -0
  9. data/docs/A1099/V2/Form1095BListItem.md +74 -0
  10. data/docs/A1099/V2/Form1095BRequest.md +76 -0
  11. data/docs/A1099/V2/Form1099Base.md +8 -8
  12. data/docs/A1099/V2/Form1099DivListItem.md +11 -11
  13. data/docs/A1099/V2/Form1099DivRequest.md +11 -17
  14. data/docs/A1099/V2/Form1099DivResponse.md +88 -0
  15. data/docs/A1099/V2/Form1099K.md +8 -8
  16. data/docs/A1099/V2/Form1099KListItem.md +11 -11
  17. data/docs/A1099/V2/Form1099KRequest.md +11 -17
  18. data/docs/A1099/V2/Form1099List.md +1 -1
  19. data/docs/A1099/V2/Form1099ListDataInner.md +32 -0
  20. data/docs/A1099/V2/Form1099Misc.md +8 -8
  21. data/docs/A1099/V2/Form1099MiscListItem.md +11 -11
  22. data/docs/A1099/V2/Form1099MiscRequest.md +11 -17
  23. data/docs/A1099/V2/Form1099MiscResponse.md +120 -0
  24. data/docs/A1099/V2/Form1099Nec.md +8 -8
  25. data/docs/A1099/V2/Form1099NecListItem.md +11 -11
  26. data/docs/A1099/V2/Form1099NecRequest.md +11 -17
  27. data/docs/A1099/V2/Form1099NecResponse.md +96 -0
  28. data/docs/A1099/V2/Form1099R.md +8 -8
  29. data/docs/A1099/V2/Form1099RListItem.md +11 -11
  30. data/docs/A1099/V2/Form1099RRequest.md +11 -17
  31. data/docs/A1099/V2/FormRequestBase.md +9 -13
  32. data/docs/A1099/V2/FormRequestCsvBase.md +66 -0
  33. data/docs/A1099/V2/FormResponseBase.md +43 -9
  34. data/docs/A1099/V2/FormSingleRequestBase.md +11 -15
  35. data/docs/A1099/V2/Forms1099Api.md +75 -57
  36. data/docs/A1099/V2/FormsW9Api.md +63 -123
  37. data/docs/A1099/V2/Get1099Form200Response.md +55 -0
  38. data/docs/A1099/V2/IncludedBase.md +20 -0
  39. data/docs/A1099/V2/Issuers1099Api.md +45 -31
  40. data/docs/A1099/V2/Jobs1099Api.md +10 -6
  41. data/docs/A1099/V2/StateAndLocalWithholdingResponse.md +32 -0
  42. data/docs/A1099/V2/StateEfileStatusDetail.md +1 -1
  43. data/docs/A1099/V2/StateEfileStatusDetailApp.md +22 -0
  44. data/docs/A1099/V2/StatusDetail.md +20 -0
  45. data/docs/A1099/V2/Update1099Form200Response.md +53 -0
  46. data/docs/A1099/V2/ValidationErrorApp.md +20 -0
  47. data/docs/EInvoicing/V1/DataInputFieldsApi.md +4 -4
  48. data/docs/EInvoicing/V1/DocumentsApi.md +2 -2
  49. data/docs/EInvoicing/V1/MandatesApi.md +4 -4
  50. data/docs/EInvoicing/V1/SubscriptionsApi.md +4 -4
  51. data/docs/EInvoicing/V1/TradingPartnersApi.md +4 -4
  52. data/lib/avalara_sdk/api/A1099/V2/companies_w9_api.rb +103 -43
  53. data/lib/avalara_sdk/api/A1099/V2/forms1099_api.rb +171 -87
  54. data/lib/avalara_sdk/api/A1099/V2/forms_w9_api.rb +135 -176
  55. data/lib/avalara_sdk/api/A1099/V2/issuers1099_api.rb +103 -43
  56. data/lib/avalara_sdk/api/A1099/V2/jobs1099_api.rb +19 -7
  57. data/lib/avalara_sdk/api/EInvoicing/V1/data_input_fields_api.rb +6 -6
  58. data/lib/avalara_sdk/api/EInvoicing/V1/documents_api.rb +4 -4
  59. data/lib/avalara_sdk/api/EInvoicing/V1/interop_api.rb +1 -1
  60. data/lib/avalara_sdk/api/EInvoicing/V1/mandates_api.rb +6 -6
  61. data/lib/avalara_sdk/api/EInvoicing/V1/subscriptions_api.rb +6 -6
  62. data/lib/avalara_sdk/api/EInvoicing/V1/trading_partners_api.rb +7 -7
  63. data/lib/avalara_sdk/models/A1099/V2/bulk_upsert1099_forms_request.rb +1 -0
  64. data/lib/avalara_sdk/models/A1099/V2/covered_individual_reference.rb +403 -0
  65. data/lib/avalara_sdk/models/A1099/V2/covered_individual_request.rb +378 -0
  66. data/lib/avalara_sdk/models/A1099/V2/form1095_b.rb +572 -0
  67. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list.rb +238 -0
  68. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list_item.rb +538 -0
  69. data/lib/avalara_sdk/models/A1099/V2/form1095_b_request.rb +559 -0
  70. data/lib/avalara_sdk/models/A1099/V2/form1099_base.rb +29 -29
  71. data/lib/avalara_sdk/models/A1099/V2/form1099_div_list_item.rb +78 -36
  72. data/lib/avalara_sdk/models/A1099/V2/form1099_div_request.rb +80 -53
  73. data/lib/avalara_sdk/models/A1099/V2/form1099_div_response.rb +600 -0
  74. data/lib/avalara_sdk/models/A1099/V2/form1099_k.rb +29 -29
  75. data/lib/avalara_sdk/models/A1099/V2/form1099_k_list_item.rb +56 -37
  76. data/lib/avalara_sdk/models/A1099/V2/form1099_k_request.rb +80 -54
  77. data/lib/avalara_sdk/models/A1099/V2/form1099_list.rb +1 -1
  78. data/lib/avalara_sdk/models/A1099/V2/form1099_list_data_inner.rb +20 -68
  79. data/lib/avalara_sdk/models/A1099/V2/form1099_misc.rb +29 -29
  80. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_list_item.rb +78 -36
  81. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_request.rb +80 -53
  82. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_response.rb +744 -0
  83. data/lib/avalara_sdk/models/A1099/V2/form1099_nec.rb +29 -29
  84. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_list_item.rb +78 -36
  85. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_request.rb +80 -53
  86. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_response.rb +636 -0
  87. data/lib/avalara_sdk/models/A1099/V2/form1099_r.rb +29 -29
  88. data/lib/avalara_sdk/models/A1099/V2/form1099_r_list_item.rb +56 -36
  89. data/lib/avalara_sdk/models/A1099/V2/form1099_r_request.rb +80 -53
  90. data/lib/avalara_sdk/models/A1099/V2/form_request_base.rb +68 -44
  91. data/lib/avalara_sdk/models/A1099/V2/form_request_csv_base.rb +475 -0
  92. data/lib/avalara_sdk/models/A1099/V2/form_response_base.rb +252 -31
  93. data/lib/avalara_sdk/models/A1099/V2/form_single_request_base.rb +80 -44
  94. data/lib/avalara_sdk/models/A1099/V2/get1099_form200_response.rb +104 -0
  95. data/lib/avalara_sdk/models/A1099/V2/included_base.rb +219 -0
  96. data/lib/avalara_sdk/models/A1099/V2/state_and_local_withholding_request.rb +1 -0
  97. data/lib/avalara_sdk/models/A1099/V2/state_and_local_withholding_response.rb +274 -0
  98. data/lib/avalara_sdk/models/A1099/V2/state_efile_status_detail_app.rb +231 -0
  99. data/lib/avalara_sdk/models/A1099/V2/status_detail.rb +221 -0
  100. data/lib/avalara_sdk/models/A1099/V2/update1099_form200_response.rb +103 -0
  101. data/lib/avalara_sdk/models/A1099/V2/validation_error_app.rb +229 -0
  102. data/lib/avalara_sdk/version.rb +1 -1
  103. data/lib/avalara_sdk.rb +17 -0
  104. data/spec/integration/a1099_spec.rb +12 -12
  105. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-11.1.3/gem_make.out +5 -5
  106. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.4.1/gem_make.out +5 -5
  107. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debase-0.2.9/gem_make.out +5 -5
  108. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debug-1.10.0/gem_make.out +5 -5
  109. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/erb-5.0.1/gem_make.out +5 -5
  110. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.0/gem_make.out +5 -5
  111. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.12.2/gem_make.out +5 -5
  112. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-1.4.0/gem_make.out +5 -5
  113. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/psych-5.2.6/gem_make.out +5 -5
  114. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +5 -5
  115. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.7/gem_make.out +5 -5
  116. metadata +36 -2
@@ -0,0 +1,538 @@
1
+ =begin
2
+ #Avalara 1099 & W-9 API Definition
3
+
4
+ ### 🔐 Authentication Use **username/password** or generate a **license key** from: *Avalara Portal → Settings → License and API Keys*. [More on authentication methods](https://developer.avalara.com/avatax-dm-combined-erp/common-setup/authentication/authentication-methods/) [Test your credentials](https://developer.avalara.com/avatax/test-credentials/) ## 📘 API & SDK Documentation [Avalara SDK (.NET) on GitHub](https://github.com/avadev/Avalara-SDK-DotNet#avalarasdk--the-unified-c-library-for-next-gen-avalara-services) [Code Examples – 1099 API](https://github.com/avadev/Avalara-SDK-DotNet/blob/main/docs/A1099/V2/Class1099IssuersApi.md#call1099issuersget)
5
+
6
+
7
+ =end
8
+
9
+ require 'date'
10
+ require 'time'
11
+
12
+ module AvalaraSdk::A1099::V2
13
+ class Form1095BListItem
14
+ attr_accessor :employee_first_name
15
+
16
+ attr_accessor :employee_middle_name
17
+
18
+ attr_accessor :employee_last_name
19
+
20
+ attr_accessor :employee_name_suffix
21
+
22
+ attr_accessor :employee_date_of_birth
23
+
24
+ attr_accessor :origin_of_health_coverage_code
25
+
26
+ attr_accessor :covered_individuals
27
+
28
+ attr_accessor :issuer_id
29
+
30
+ attr_accessor :reference_id
31
+
32
+ attr_accessor :recipient_name
33
+
34
+ attr_accessor :recipient_tin
35
+
36
+ attr_accessor :tin_type
37
+
38
+ attr_accessor :recipient_second_name
39
+
40
+ attr_accessor :address
41
+
42
+ attr_accessor :address2
43
+
44
+ attr_accessor :city
45
+
46
+ attr_accessor :state
47
+
48
+ attr_accessor :zip
49
+
50
+ attr_accessor :recipient_email
51
+
52
+ attr_accessor :account_number
53
+
54
+ attr_accessor :office_code
55
+
56
+ attr_accessor :recipient_non_us_province
57
+
58
+ attr_accessor :country_code
59
+
60
+ attr_accessor :federal_e_file
61
+
62
+ attr_accessor :postal_mail
63
+
64
+ attr_accessor :state_e_file
65
+
66
+ attr_accessor :tin_match
67
+
68
+ attr_accessor :address_verification
69
+
70
+ attr_accessor :state_and_local_withholding
71
+
72
+ class EnumAttributeValidator
73
+ attr_reader :datatype
74
+ attr_reader :allowable_values
75
+
76
+ def initialize(datatype, allowable_values)
77
+ @allowable_values = allowable_values.map do |value|
78
+ case datatype.to_s
79
+ when /Integer/i
80
+ value.to_i
81
+ when /Float/i
82
+ value.to_f
83
+ else
84
+ value
85
+ end
86
+ end
87
+ end
88
+
89
+ def valid?(value)
90
+ !value || allowable_values.include?(value)
91
+ end
92
+ end
93
+
94
+ # Attribute mapping from ruby-style variable name to JSON key.
95
+ def self.attribute_map
96
+ {
97
+ :'employee_first_name' => :'employeeFirstName',
98
+ :'employee_middle_name' => :'employeeMiddleName',
99
+ :'employee_last_name' => :'employeeLastName',
100
+ :'employee_name_suffix' => :'employeeNameSuffix',
101
+ :'employee_date_of_birth' => :'employeeDateOfBirth',
102
+ :'origin_of_health_coverage_code' => :'originOfHealthCoverageCode',
103
+ :'covered_individuals' => :'coveredIndividuals',
104
+ :'issuer_id' => :'issuerId',
105
+ :'reference_id' => :'referenceId',
106
+ :'recipient_name' => :'recipientName',
107
+ :'recipient_tin' => :'recipientTin',
108
+ :'tin_type' => :'tinType',
109
+ :'recipient_second_name' => :'recipientSecondName',
110
+ :'address' => :'address',
111
+ :'address2' => :'address2',
112
+ :'city' => :'city',
113
+ :'state' => :'state',
114
+ :'zip' => :'zip',
115
+ :'recipient_email' => :'recipientEmail',
116
+ :'account_number' => :'accountNumber',
117
+ :'office_code' => :'officeCode',
118
+ :'recipient_non_us_province' => :'recipientNonUsProvince',
119
+ :'country_code' => :'countryCode',
120
+ :'federal_e_file' => :'federalEFile',
121
+ :'postal_mail' => :'postalMail',
122
+ :'state_e_file' => :'stateEFile',
123
+ :'tin_match' => :'tinMatch',
124
+ :'address_verification' => :'addressVerification',
125
+ :'state_and_local_withholding' => :'stateAndLocalWithholding'
126
+ }
127
+ end
128
+
129
+ # Returns all the JSON keys this model knows about
130
+ def self.acceptable_attributes
131
+ attribute_map.values
132
+ end
133
+
134
+ # Attribute type mapping.
135
+ def self.openapi_types
136
+ {
137
+ :'employee_first_name' => :'String',
138
+ :'employee_middle_name' => :'String',
139
+ :'employee_last_name' => :'String',
140
+ :'employee_name_suffix' => :'String',
141
+ :'employee_date_of_birth' => :'Time',
142
+ :'origin_of_health_coverage_code' => :'String',
143
+ :'covered_individuals' => :'Array<CoveredIndividualRequest>',
144
+ :'issuer_id' => :'String',
145
+ :'reference_id' => :'String',
146
+ :'recipient_name' => :'String',
147
+ :'recipient_tin' => :'String',
148
+ :'tin_type' => :'String',
149
+ :'recipient_second_name' => :'String',
150
+ :'address' => :'String',
151
+ :'address2' => :'String',
152
+ :'city' => :'String',
153
+ :'state' => :'String',
154
+ :'zip' => :'String',
155
+ :'recipient_email' => :'String',
156
+ :'account_number' => :'String',
157
+ :'office_code' => :'String',
158
+ :'recipient_non_us_province' => :'String',
159
+ :'country_code' => :'String',
160
+ :'federal_e_file' => :'Boolean',
161
+ :'postal_mail' => :'Boolean',
162
+ :'state_e_file' => :'Boolean',
163
+ :'tin_match' => :'Boolean',
164
+ :'address_verification' => :'Boolean',
165
+ :'state_and_local_withholding' => :'StateAndLocalWithholdingRequest'
166
+ }
167
+ end
168
+
169
+ # List of attributes with nullable: true
170
+ def self.openapi_nullable
171
+ Set.new([
172
+ :'employee_middle_name',
173
+ :'employee_name_suffix',
174
+ :'employee_date_of_birth',
175
+ :'issuer_id',
176
+ :'reference_id',
177
+ :'recipient_name',
178
+ :'address2',
179
+ :'recipient_email',
180
+ :'account_number',
181
+ :'office_code',
182
+ :'recipient_non_us_province',
183
+ ])
184
+ end
185
+
186
+ # List of class defined in allOf (OpenAPI v3)
187
+ def self.openapi_all_of
188
+ [
189
+ :'FormRequestBase'
190
+ ]
191
+ end
192
+
193
+ # Initializes the object
194
+ # @param [Hash] attributes Model attributes in the form of hash
195
+ def initialize(attributes = {})
196
+ if (!attributes.is_a?(Hash))
197
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AvalaraSdk::A1099::V2::Form1095BListItem` initialize method"
198
+ end
199
+
200
+ # check to see if the attribute exists and convert string to symbol for hash key
201
+ attributes = attributes.each_with_object({}) { |(k, v), h|
202
+ if (!self.class.attribute_map.key?(k.to_sym))
203
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AvalaraSdk::A1099::V2::Form1095BListItem`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
204
+ end
205
+ h[k.to_sym] = v
206
+ }
207
+
208
+ if attributes.key?(:'employee_first_name')
209
+ self.employee_first_name = attributes[:'employee_first_name']
210
+ end
211
+
212
+ if attributes.key?(:'employee_middle_name')
213
+ self.employee_middle_name = attributes[:'employee_middle_name']
214
+ end
215
+
216
+ if attributes.key?(:'employee_last_name')
217
+ self.employee_last_name = attributes[:'employee_last_name']
218
+ end
219
+
220
+ if attributes.key?(:'employee_name_suffix')
221
+ self.employee_name_suffix = attributes[:'employee_name_suffix']
222
+ end
223
+
224
+ if attributes.key?(:'employee_date_of_birth')
225
+ self.employee_date_of_birth = attributes[:'employee_date_of_birth']
226
+ end
227
+
228
+ if attributes.key?(:'origin_of_health_coverage_code')
229
+ self.origin_of_health_coverage_code = attributes[:'origin_of_health_coverage_code']
230
+ end
231
+
232
+ if attributes.key?(:'covered_individuals')
233
+ if (value = attributes[:'covered_individuals']).is_a?(Array)
234
+ self.covered_individuals = value
235
+ end
236
+ end
237
+
238
+ if attributes.key?(:'issuer_id')
239
+ self.issuer_id = attributes[:'issuer_id']
240
+ end
241
+
242
+ if attributes.key?(:'reference_id')
243
+ self.reference_id = attributes[:'reference_id']
244
+ end
245
+
246
+ if attributes.key?(:'recipient_name')
247
+ self.recipient_name = attributes[:'recipient_name']
248
+ end
249
+
250
+ if attributes.key?(:'recipient_tin')
251
+ self.recipient_tin = attributes[:'recipient_tin']
252
+ end
253
+
254
+ if attributes.key?(:'tin_type')
255
+ self.tin_type = attributes[:'tin_type']
256
+ end
257
+
258
+ if attributes.key?(:'recipient_second_name')
259
+ self.recipient_second_name = attributes[:'recipient_second_name']
260
+ end
261
+
262
+ if attributes.key?(:'address')
263
+ self.address = attributes[:'address']
264
+ end
265
+
266
+ if attributes.key?(:'address2')
267
+ self.address2 = attributes[:'address2']
268
+ end
269
+
270
+ if attributes.key?(:'city')
271
+ self.city = attributes[:'city']
272
+ end
273
+
274
+ if attributes.key?(:'state')
275
+ self.state = attributes[:'state']
276
+ end
277
+
278
+ if attributes.key?(:'zip')
279
+ self.zip = attributes[:'zip']
280
+ end
281
+
282
+ if attributes.key?(:'recipient_email')
283
+ self.recipient_email = attributes[:'recipient_email']
284
+ end
285
+
286
+ if attributes.key?(:'account_number')
287
+ self.account_number = attributes[:'account_number']
288
+ end
289
+
290
+ if attributes.key?(:'office_code')
291
+ self.office_code = attributes[:'office_code']
292
+ end
293
+
294
+ if attributes.key?(:'recipient_non_us_province')
295
+ self.recipient_non_us_province = attributes[:'recipient_non_us_province']
296
+ end
297
+
298
+ if attributes.key?(:'country_code')
299
+ self.country_code = attributes[:'country_code']
300
+ end
301
+
302
+ if attributes.key?(:'federal_e_file')
303
+ self.federal_e_file = attributes[:'federal_e_file']
304
+ end
305
+
306
+ if attributes.key?(:'postal_mail')
307
+ self.postal_mail = attributes[:'postal_mail']
308
+ end
309
+
310
+ if attributes.key?(:'state_e_file')
311
+ self.state_e_file = attributes[:'state_e_file']
312
+ end
313
+
314
+ if attributes.key?(:'tin_match')
315
+ self.tin_match = attributes[:'tin_match']
316
+ end
317
+
318
+ if attributes.key?(:'address_verification')
319
+ self.address_verification = attributes[:'address_verification']
320
+ end
321
+
322
+ if attributes.key?(:'state_and_local_withholding')
323
+ self.state_and_local_withholding = attributes[:'state_and_local_withholding']
324
+ end
325
+ end
326
+
327
+ # Show invalid properties with the reasons. Usually used together with valid?
328
+ # @return Array for valid properties with the reasons
329
+ def list_invalid_properties
330
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
331
+ invalid_properties = Array.new
332
+ invalid_properties
333
+ end
334
+
335
+ # Check to see if the all the properties in the model are valid
336
+ # @return true if the model is valid
337
+ def valid?
338
+ warn '[DEPRECATED] the `valid?` method is obsolete'
339
+ origin_of_health_coverage_code_validator = EnumAttributeValidator.new('String', ["SmallBusinessHealthOptionsProgram", "EmployerSponsored", "GovernmentSponsored", "IndividualMarket", "MultiemployerPlan", "OtherDesignatedMinimumEssentialCoverage", "EmployerSponsoredIndividualHra"])
340
+ return false unless origin_of_health_coverage_code_validator.valid?(@origin_of_health_coverage_code)
341
+ tin_type_validator = EnumAttributeValidator.new('String', ["EIN", "SSN", "ITIN", "ATIN"])
342
+ return false unless tin_type_validator.valid?(@tin_type)
343
+ true
344
+ end
345
+
346
+ # Custom attribute writer method checking allowed values (enum).
347
+ # @param [Object] origin_of_health_coverage_code Object to be assigned
348
+ def origin_of_health_coverage_code=(origin_of_health_coverage_code)
349
+ validator = EnumAttributeValidator.new('String', ["SmallBusinessHealthOptionsProgram", "EmployerSponsored", "GovernmentSponsored", "IndividualMarket", "MultiemployerPlan", "OtherDesignatedMinimumEssentialCoverage", "EmployerSponsoredIndividualHra"])
350
+ unless validator.valid?(origin_of_health_coverage_code)
351
+ fail ArgumentError, "invalid value for \"origin_of_health_coverage_code\", must be one of #{validator.allowable_values}."
352
+ end
353
+ @origin_of_health_coverage_code = origin_of_health_coverage_code
354
+ end
355
+
356
+ # Custom attribute writer method with validation
357
+ # @param [Object] covered_individuals Value to be assigned
358
+ def covered_individuals=(covered_individuals)
359
+ if covered_individuals.nil?
360
+ fail ArgumentError, 'covered_individuals cannot be nil'
361
+ end
362
+
363
+ @covered_individuals = covered_individuals
364
+ end
365
+
366
+ # Custom attribute writer method checking allowed values (enum).
367
+ # @param [Object] tin_type Object to be assigned
368
+ def tin_type=(tin_type)
369
+ validator = EnumAttributeValidator.new('String', ["EIN", "SSN", "ITIN", "ATIN"])
370
+ unless validator.valid?(tin_type)
371
+ fail ArgumentError, "invalid value for \"tin_type\", must be one of #{validator.allowable_values}."
372
+ end
373
+ @tin_type = tin_type
374
+ end
375
+
376
+ # Checks equality by comparing each attribute.
377
+ # @param [Object] Object to be compared
378
+ def ==(o)
379
+ return true if self.equal?(o)
380
+ self.class == o.class &&
381
+ employee_first_name == o.employee_first_name &&
382
+ employee_middle_name == o.employee_middle_name &&
383
+ employee_last_name == o.employee_last_name &&
384
+ employee_name_suffix == o.employee_name_suffix &&
385
+ employee_date_of_birth == o.employee_date_of_birth &&
386
+ origin_of_health_coverage_code == o.origin_of_health_coverage_code &&
387
+ covered_individuals == o.covered_individuals &&
388
+ issuer_id == o.issuer_id &&
389
+ reference_id == o.reference_id &&
390
+ recipient_name == o.recipient_name &&
391
+ recipient_tin == o.recipient_tin &&
392
+ tin_type == o.tin_type &&
393
+ recipient_second_name == o.recipient_second_name &&
394
+ address == o.address &&
395
+ address2 == o.address2 &&
396
+ city == o.city &&
397
+ state == o.state &&
398
+ zip == o.zip &&
399
+ recipient_email == o.recipient_email &&
400
+ account_number == o.account_number &&
401
+ office_code == o.office_code &&
402
+ recipient_non_us_province == o.recipient_non_us_province &&
403
+ country_code == o.country_code &&
404
+ federal_e_file == o.federal_e_file &&
405
+ postal_mail == o.postal_mail &&
406
+ state_e_file == o.state_e_file &&
407
+ tin_match == o.tin_match &&
408
+ address_verification == o.address_verification &&
409
+ state_and_local_withholding == o.state_and_local_withholding
410
+ end
411
+
412
+ # @see the `==` method
413
+ # @param [Object] Object to be compared
414
+ def eql?(o)
415
+ self == o
416
+ end
417
+
418
+ # Calculates hash code according to all attributes.
419
+ # @return [Integer] Hash code
420
+ def hash
421
+ [employee_first_name, employee_middle_name, employee_last_name, employee_name_suffix, employee_date_of_birth, origin_of_health_coverage_code, covered_individuals, issuer_id, reference_id, recipient_name, recipient_tin, tin_type, recipient_second_name, address, address2, city, state, zip, recipient_email, account_number, office_code, recipient_non_us_province, country_code, federal_e_file, postal_mail, state_e_file, tin_match, address_verification, state_and_local_withholding].hash
422
+ end
423
+
424
+ # Builds the object from hash
425
+ # @param [Hash] attributes Model attributes in the form of hash
426
+ # @return [Object] Returns the model itself
427
+ def self.build_from_hash(attributes)
428
+ return nil unless attributes.is_a?(Hash)
429
+ attributes = attributes.transform_keys(&:to_sym)
430
+ transformed_hash = {}
431
+ openapi_types.each_pair do |key, type|
432
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
433
+ transformed_hash["#{key}"] = nil
434
+ elsif type =~ /\AArray<(.*)>/i
435
+ # check to ensure the input is an array given that the attribute
436
+ # is documented as an array but the input is not
437
+ if attributes[attribute_map[key]].is_a?(Array)
438
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
439
+ end
440
+ elsif !attributes[attribute_map[key]].nil?
441
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
442
+ end
443
+ end
444
+ new(transformed_hash)
445
+ end
446
+
447
+ # Deserializes the data based on type
448
+ # @param string type Data type
449
+ # @param string value Value to be deserialized
450
+ # @return [Object] Deserialized data
451
+ def self._deserialize(type, value)
452
+ case type.to_sym
453
+ when :Time
454
+ Time.parse(value)
455
+ when :Date
456
+ Date.parse(value)
457
+ when :String
458
+ value.to_s
459
+ when :Integer
460
+ value.to_i
461
+ when :Float
462
+ value.to_f
463
+ when :Boolean
464
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
465
+ true
466
+ else
467
+ false
468
+ end
469
+ when :Object
470
+ # generic object (usually a Hash), return directly
471
+ value
472
+ when /\AArray<(?<inner_type>.+)>\z/
473
+ inner_type = Regexp.last_match[:inner_type]
474
+ value.map { |v| _deserialize(inner_type, v) }
475
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
476
+ k_type = Regexp.last_match[:k_type]
477
+ v_type = Regexp.last_match[:v_type]
478
+ {}.tap do |hash|
479
+ value.each do |k, v|
480
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
481
+ end
482
+ end
483
+ else # model
484
+ # models (e.g. Pet) or oneOf
485
+ klass = AvalaraSdk::A1099::V2.const_get(type)
486
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
487
+ end
488
+ end
489
+
490
+ # Returns the string representation of the object
491
+ # @return [String] String presentation of the object
492
+ def to_s
493
+ to_hash.to_s
494
+ end
495
+
496
+ # to_body is an alias to to_hash (backward compatibility)
497
+ # @return [Hash] Returns the object in the form of hash
498
+ def to_body
499
+ to_hash
500
+ end
501
+
502
+ # Returns the object in the form of hash
503
+ # @return [Hash] Returns the object in the form of hash
504
+ def to_hash
505
+ hash = {}
506
+ self.class.attribute_map.each_pair do |attr, param|
507
+ value = self.send(attr)
508
+ if value.nil?
509
+ is_nullable = self.class.openapi_nullable.include?(attr)
510
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
511
+ end
512
+
513
+ hash[param] = _to_hash(value)
514
+ end
515
+ hash
516
+ end
517
+
518
+ # Outputs non-array value in the form of hash
519
+ # For object, use to_hash. Otherwise, just return the value
520
+ # @param [Object] value Any valid value
521
+ # @return [Hash] Returns the value in the form of hash
522
+ def _to_hash(value)
523
+ if value.is_a?(Array)
524
+ value.compact.map { |v| _to_hash(v) }
525
+ elsif value.is_a?(Hash)
526
+ {}.tap do |hash|
527
+ value.each { |k, v| hash[k] = _to_hash(v) }
528
+ end
529
+ elsif value.respond_to? :to_hash
530
+ value.to_hash
531
+ else
532
+ value
533
+ end
534
+ end
535
+
536
+ end
537
+
538
+ end