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,636 @@
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 Form1099NecResponse
14
+ attr_accessor :second_tin_notice
15
+
16
+ attr_accessor :nonemployee_compensation
17
+
18
+ attr_accessor :payer_made_direct_sales
19
+
20
+ attr_accessor :federal_income_tax_withheld
21
+
22
+ attr_accessor :type
23
+
24
+ attr_accessor :created_at
25
+
26
+ attr_accessor :updated_at
27
+
28
+ attr_accessor :user_id
29
+
30
+ attr_accessor :state_and_local_withholding
31
+
32
+ attr_accessor :tin_type
33
+
34
+ attr_accessor :id
35
+
36
+ attr_accessor :issuer_id
37
+
38
+ attr_accessor :issuer_reference_id
39
+
40
+ attr_accessor :issuer_tin
41
+
42
+ attr_accessor :tax_year
43
+
44
+ attr_accessor :reference_id
45
+
46
+ attr_accessor :recipient_name
47
+
48
+ attr_accessor :recipient_tin
49
+
50
+ attr_accessor :recipient_second_name
51
+
52
+ attr_accessor :address
53
+
54
+ attr_accessor :address2
55
+
56
+ attr_accessor :city
57
+
58
+ attr_accessor :state
59
+
60
+ attr_accessor :zip
61
+
62
+ attr_accessor :recipient_email
63
+
64
+ attr_accessor :account_number
65
+
66
+ attr_accessor :office_code
67
+
68
+ attr_accessor :recipient_non_us_province
69
+
70
+ attr_accessor :country_code
71
+
72
+ attr_accessor :federal_e_file
73
+
74
+ attr_accessor :postal_mail
75
+
76
+ attr_accessor :state_e_file
77
+
78
+ attr_accessor :tin_match
79
+
80
+ attr_accessor :address_verification
81
+
82
+ attr_accessor :federal_efile_status
83
+
84
+ attr_accessor :state_efile_status
85
+
86
+ attr_accessor :postal_mail_status
87
+
88
+ attr_accessor :tin_match_status
89
+
90
+ attr_accessor :address_verification_status
91
+
92
+ attr_accessor :validation_errors
93
+
94
+ class EnumAttributeValidator
95
+ attr_reader :datatype
96
+ attr_reader :allowable_values
97
+
98
+ def initialize(datatype, allowable_values)
99
+ @allowable_values = allowable_values.map do |value|
100
+ case datatype.to_s
101
+ when /Integer/i
102
+ value.to_i
103
+ when /Float/i
104
+ value.to_f
105
+ else
106
+ value
107
+ end
108
+ end
109
+ end
110
+
111
+ def valid?(value)
112
+ !value || allowable_values.include?(value)
113
+ end
114
+ end
115
+
116
+ # Attribute mapping from ruby-style variable name to JSON key.
117
+ def self.attribute_map
118
+ {
119
+ :'second_tin_notice' => :'secondTinNotice',
120
+ :'nonemployee_compensation' => :'nonemployeeCompensation',
121
+ :'payer_made_direct_sales' => :'payerMadeDirectSales',
122
+ :'federal_income_tax_withheld' => :'federalIncomeTaxWithheld',
123
+ :'type' => :'type',
124
+ :'created_at' => :'createdAt',
125
+ :'updated_at' => :'updatedAt',
126
+ :'user_id' => :'userId',
127
+ :'state_and_local_withholding' => :'stateAndLocalWithholding',
128
+ :'tin_type' => :'tinType',
129
+ :'id' => :'id',
130
+ :'issuer_id' => :'issuerId',
131
+ :'issuer_reference_id' => :'issuerReferenceId',
132
+ :'issuer_tin' => :'issuerTin',
133
+ :'tax_year' => :'taxYear',
134
+ :'reference_id' => :'referenceId',
135
+ :'recipient_name' => :'recipientName',
136
+ :'recipient_tin' => :'recipientTin',
137
+ :'recipient_second_name' => :'recipientSecondName',
138
+ :'address' => :'address',
139
+ :'address2' => :'address2',
140
+ :'city' => :'city',
141
+ :'state' => :'state',
142
+ :'zip' => :'zip',
143
+ :'recipient_email' => :'recipientEmail',
144
+ :'account_number' => :'accountNumber',
145
+ :'office_code' => :'officeCode',
146
+ :'recipient_non_us_province' => :'recipientNonUsProvince',
147
+ :'country_code' => :'countryCode',
148
+ :'federal_e_file' => :'federalEFile',
149
+ :'postal_mail' => :'postalMail',
150
+ :'state_e_file' => :'stateEFile',
151
+ :'tin_match' => :'tinMatch',
152
+ :'address_verification' => :'addressVerification',
153
+ :'federal_efile_status' => :'federalEfileStatus',
154
+ :'state_efile_status' => :'stateEfileStatus',
155
+ :'postal_mail_status' => :'postalMailStatus',
156
+ :'tin_match_status' => :'tinMatchStatus',
157
+ :'address_verification_status' => :'addressVerificationStatus',
158
+ :'validation_errors' => :'validationErrors'
159
+ }
160
+ end
161
+
162
+ # Returns all the JSON keys this model knows about
163
+ def self.acceptable_attributes
164
+ attribute_map.values
165
+ end
166
+
167
+ # Attribute type mapping.
168
+ def self.openapi_types
169
+ {
170
+ :'second_tin_notice' => :'Boolean',
171
+ :'nonemployee_compensation' => :'Float',
172
+ :'payer_made_direct_sales' => :'Boolean',
173
+ :'federal_income_tax_withheld' => :'Float',
174
+ :'type' => :'String',
175
+ :'created_at' => :'Time',
176
+ :'updated_at' => :'Time',
177
+ :'user_id' => :'String',
178
+ :'state_and_local_withholding' => :'StateAndLocalWithholdingResponse',
179
+ :'tin_type' => :'String',
180
+ :'id' => :'String',
181
+ :'issuer_id' => :'String',
182
+ :'issuer_reference_id' => :'String',
183
+ :'issuer_tin' => :'String',
184
+ :'tax_year' => :'Integer',
185
+ :'reference_id' => :'String',
186
+ :'recipient_name' => :'String',
187
+ :'recipient_tin' => :'String',
188
+ :'recipient_second_name' => :'String',
189
+ :'address' => :'String',
190
+ :'address2' => :'String',
191
+ :'city' => :'String',
192
+ :'state' => :'String',
193
+ :'zip' => :'String',
194
+ :'recipient_email' => :'String',
195
+ :'account_number' => :'String',
196
+ :'office_code' => :'String',
197
+ :'recipient_non_us_province' => :'String',
198
+ :'country_code' => :'String',
199
+ :'federal_e_file' => :'Boolean',
200
+ :'postal_mail' => :'Boolean',
201
+ :'state_e_file' => :'Boolean',
202
+ :'tin_match' => :'Boolean',
203
+ :'address_verification' => :'Boolean',
204
+ :'federal_efile_status' => :'StatusDetail',
205
+ :'state_efile_status' => :'Array<StateEfileStatusDetailApp>',
206
+ :'postal_mail_status' => :'StatusDetail',
207
+ :'tin_match_status' => :'StatusDetail',
208
+ :'address_verification_status' => :'StatusDetail',
209
+ :'validation_errors' => :'Array<ValidationErrorApp>'
210
+ }
211
+ end
212
+
213
+ # List of attributes with nullable: true
214
+ def self.openapi_nullable
215
+ Set.new([
216
+ :'federal_efile_status',
217
+ :'state_efile_status',
218
+ :'postal_mail_status',
219
+ :'tin_match_status',
220
+ :'address_verification_status',
221
+ :'validation_errors'
222
+ ])
223
+ end
224
+
225
+ # List of class defined in allOf (OpenAPI v3)
226
+ def self.openapi_all_of
227
+ [
228
+ :'FormResponseBase'
229
+ ]
230
+ end
231
+
232
+ # Initializes the object
233
+ # @param [Hash] attributes Model attributes in the form of hash
234
+ def initialize(attributes = {})
235
+ if (!attributes.is_a?(Hash))
236
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AvalaraSdk::A1099::V2::Form1099NecResponse` initialize method"
237
+ end
238
+
239
+ # check to see if the attribute exists and convert string to symbol for hash key
240
+ attributes = attributes.each_with_object({}) { |(k, v), h|
241
+ if (!self.class.attribute_map.key?(k.to_sym))
242
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AvalaraSdk::A1099::V2::Form1099NecResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
243
+ end
244
+ h[k.to_sym] = v
245
+ }
246
+
247
+ if attributes.key?(:'second_tin_notice')
248
+ self.second_tin_notice = attributes[:'second_tin_notice']
249
+ end
250
+
251
+ if attributes.key?(:'nonemployee_compensation')
252
+ self.nonemployee_compensation = attributes[:'nonemployee_compensation']
253
+ end
254
+
255
+ if attributes.key?(:'payer_made_direct_sales')
256
+ self.payer_made_direct_sales = attributes[:'payer_made_direct_sales']
257
+ end
258
+
259
+ if attributes.key?(:'federal_income_tax_withheld')
260
+ self.federal_income_tax_withheld = attributes[:'federal_income_tax_withheld']
261
+ end
262
+
263
+ if attributes.key?(:'type')
264
+ self.type = attributes[:'type']
265
+ end
266
+
267
+ if attributes.key?(:'created_at')
268
+ self.created_at = attributes[:'created_at']
269
+ end
270
+
271
+ if attributes.key?(:'updated_at')
272
+ self.updated_at = attributes[:'updated_at']
273
+ end
274
+
275
+ if attributes.key?(:'user_id')
276
+ self.user_id = attributes[:'user_id']
277
+ end
278
+
279
+ if attributes.key?(:'state_and_local_withholding')
280
+ self.state_and_local_withholding = attributes[:'state_and_local_withholding']
281
+ end
282
+
283
+ if attributes.key?(:'tin_type')
284
+ self.tin_type = attributes[:'tin_type']
285
+ end
286
+
287
+ if attributes.key?(:'id')
288
+ self.id = attributes[:'id']
289
+ end
290
+
291
+ if attributes.key?(:'issuer_id')
292
+ self.issuer_id = attributes[:'issuer_id']
293
+ end
294
+
295
+ if attributes.key?(:'issuer_reference_id')
296
+ self.issuer_reference_id = attributes[:'issuer_reference_id']
297
+ end
298
+
299
+ if attributes.key?(:'issuer_tin')
300
+ self.issuer_tin = attributes[:'issuer_tin']
301
+ end
302
+
303
+ if attributes.key?(:'tax_year')
304
+ self.tax_year = attributes[:'tax_year']
305
+ end
306
+
307
+ if attributes.key?(:'reference_id')
308
+ self.reference_id = attributes[:'reference_id']
309
+ end
310
+
311
+ if attributes.key?(:'recipient_name')
312
+ self.recipient_name = attributes[:'recipient_name']
313
+ end
314
+
315
+ if attributes.key?(:'recipient_tin')
316
+ self.recipient_tin = attributes[:'recipient_tin']
317
+ end
318
+
319
+ if attributes.key?(:'recipient_second_name')
320
+ self.recipient_second_name = attributes[:'recipient_second_name']
321
+ end
322
+
323
+ if attributes.key?(:'address')
324
+ self.address = attributes[:'address']
325
+ end
326
+
327
+ if attributes.key?(:'address2')
328
+ self.address2 = attributes[:'address2']
329
+ end
330
+
331
+ if attributes.key?(:'city')
332
+ self.city = attributes[:'city']
333
+ end
334
+
335
+ if attributes.key?(:'state')
336
+ self.state = attributes[:'state']
337
+ end
338
+
339
+ if attributes.key?(:'zip')
340
+ self.zip = attributes[:'zip']
341
+ end
342
+
343
+ if attributes.key?(:'recipient_email')
344
+ self.recipient_email = attributes[:'recipient_email']
345
+ end
346
+
347
+ if attributes.key?(:'account_number')
348
+ self.account_number = attributes[:'account_number']
349
+ end
350
+
351
+ if attributes.key?(:'office_code')
352
+ self.office_code = attributes[:'office_code']
353
+ end
354
+
355
+ if attributes.key?(:'recipient_non_us_province')
356
+ self.recipient_non_us_province = attributes[:'recipient_non_us_province']
357
+ end
358
+
359
+ if attributes.key?(:'country_code')
360
+ self.country_code = attributes[:'country_code']
361
+ end
362
+
363
+ if attributes.key?(:'federal_e_file')
364
+ self.federal_e_file = attributes[:'federal_e_file']
365
+ end
366
+
367
+ if attributes.key?(:'postal_mail')
368
+ self.postal_mail = attributes[:'postal_mail']
369
+ end
370
+
371
+ if attributes.key?(:'state_e_file')
372
+ self.state_e_file = attributes[:'state_e_file']
373
+ end
374
+
375
+ if attributes.key?(:'tin_match')
376
+ self.tin_match = attributes[:'tin_match']
377
+ end
378
+
379
+ if attributes.key?(:'address_verification')
380
+ self.address_verification = attributes[:'address_verification']
381
+ end
382
+
383
+ if attributes.key?(:'federal_efile_status')
384
+ self.federal_efile_status = attributes[:'federal_efile_status']
385
+ end
386
+
387
+ if attributes.key?(:'state_efile_status')
388
+ if (value = attributes[:'state_efile_status']).is_a?(Array)
389
+ self.state_efile_status = value
390
+ end
391
+ end
392
+
393
+ if attributes.key?(:'postal_mail_status')
394
+ self.postal_mail_status = attributes[:'postal_mail_status']
395
+ end
396
+
397
+ if attributes.key?(:'tin_match_status')
398
+ self.tin_match_status = attributes[:'tin_match_status']
399
+ end
400
+
401
+ if attributes.key?(:'address_verification_status')
402
+ self.address_verification_status = attributes[:'address_verification_status']
403
+ end
404
+
405
+ if attributes.key?(:'validation_errors')
406
+ if (value = attributes[:'validation_errors']).is_a?(Array)
407
+ self.validation_errors = value
408
+ end
409
+ end
410
+ end
411
+
412
+ # Show invalid properties with the reasons. Usually used together with valid?
413
+ # @return Array for valid properties with the reasons
414
+ def list_invalid_properties
415
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
416
+ invalid_properties = Array.new
417
+ invalid_properties
418
+ end
419
+
420
+ # Check to see if the all the properties in the model are valid
421
+ # @return true if the model is valid
422
+ def valid?
423
+ warn '[DEPRECATED] the `valid?` method is obsolete'
424
+ type_validator = EnumAttributeValidator.new('String', ["Form1099Nec", "Form1099Misc", "Form1099Div", "Form1099R", "Form1099K", "Form1095B"])
425
+ return false unless type_validator.valid?(@type)
426
+ tin_type_validator = EnumAttributeValidator.new('String', ["EIN", "SSN", "ITIN", "ATIN"])
427
+ return false unless tin_type_validator.valid?(@tin_type)
428
+ true
429
+ end
430
+
431
+ # Custom attribute writer method checking allowed values (enum).
432
+ # @param [Object] type Object to be assigned
433
+ def type=(type)
434
+ validator = EnumAttributeValidator.new('String', ["Form1099Nec", "Form1099Misc", "Form1099Div", "Form1099R", "Form1099K", "Form1095B"])
435
+ unless validator.valid?(type)
436
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
437
+ end
438
+ @type = type
439
+ end
440
+
441
+ # Custom attribute writer method checking allowed values (enum).
442
+ # @param [Object] tin_type Object to be assigned
443
+ def tin_type=(tin_type)
444
+ validator = EnumAttributeValidator.new('String', ["EIN", "SSN", "ITIN", "ATIN"])
445
+ unless validator.valid?(tin_type)
446
+ fail ArgumentError, "invalid value for \"tin_type\", must be one of #{validator.allowable_values}."
447
+ end
448
+ @tin_type = tin_type
449
+ end
450
+
451
+ # Custom attribute writer method with validation
452
+ # @param [Object] state_efile_status Value to be assigned
453
+ def state_efile_status=(state_efile_status)
454
+ @state_efile_status = state_efile_status
455
+ end
456
+
457
+ # Custom attribute writer method with validation
458
+ # @param [Object] validation_errors Value to be assigned
459
+ def validation_errors=(validation_errors)
460
+ @validation_errors = validation_errors
461
+ end
462
+
463
+ # Checks equality by comparing each attribute.
464
+ # @param [Object] Object to be compared
465
+ def ==(o)
466
+ return true if self.equal?(o)
467
+ self.class == o.class &&
468
+ second_tin_notice == o.second_tin_notice &&
469
+ nonemployee_compensation == o.nonemployee_compensation &&
470
+ payer_made_direct_sales == o.payer_made_direct_sales &&
471
+ federal_income_tax_withheld == o.federal_income_tax_withheld &&
472
+ type == o.type &&
473
+ created_at == o.created_at &&
474
+ updated_at == o.updated_at &&
475
+ user_id == o.user_id &&
476
+ state_and_local_withholding == o.state_and_local_withholding &&
477
+ tin_type == o.tin_type &&
478
+ id == o.id &&
479
+ issuer_id == o.issuer_id &&
480
+ issuer_reference_id == o.issuer_reference_id &&
481
+ issuer_tin == o.issuer_tin &&
482
+ tax_year == o.tax_year &&
483
+ reference_id == o.reference_id &&
484
+ recipient_name == o.recipient_name &&
485
+ recipient_tin == o.recipient_tin &&
486
+ recipient_second_name == o.recipient_second_name &&
487
+ address == o.address &&
488
+ address2 == o.address2 &&
489
+ city == o.city &&
490
+ state == o.state &&
491
+ zip == o.zip &&
492
+ recipient_email == o.recipient_email &&
493
+ account_number == o.account_number &&
494
+ office_code == o.office_code &&
495
+ recipient_non_us_province == o.recipient_non_us_province &&
496
+ country_code == o.country_code &&
497
+ federal_e_file == o.federal_e_file &&
498
+ postal_mail == o.postal_mail &&
499
+ state_e_file == o.state_e_file &&
500
+ tin_match == o.tin_match &&
501
+ address_verification == o.address_verification &&
502
+ federal_efile_status == o.federal_efile_status &&
503
+ state_efile_status == o.state_efile_status &&
504
+ postal_mail_status == o.postal_mail_status &&
505
+ tin_match_status == o.tin_match_status &&
506
+ address_verification_status == o.address_verification_status &&
507
+ validation_errors == o.validation_errors
508
+ end
509
+
510
+ # @see the `==` method
511
+ # @param [Object] Object to be compared
512
+ def eql?(o)
513
+ self == o
514
+ end
515
+
516
+ # Calculates hash code according to all attributes.
517
+ # @return [Integer] Hash code
518
+ def hash
519
+ [second_tin_notice, nonemployee_compensation, payer_made_direct_sales, federal_income_tax_withheld, type, created_at, updated_at, user_id, state_and_local_withholding, tin_type, id, issuer_id, issuer_reference_id, issuer_tin, tax_year, reference_id, recipient_name, recipient_tin, 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, federal_efile_status, state_efile_status, postal_mail_status, tin_match_status, address_verification_status, validation_errors].hash
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 self.build_from_hash(attributes)
526
+ return nil unless attributes.is_a?(Hash)
527
+ attributes = attributes.transform_keys(&:to_sym)
528
+ transformed_hash = {}
529
+ openapi_types.each_pair do |key, type|
530
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
531
+ transformed_hash["#{key}"] = nil
532
+ elsif type =~ /\AArray<(.*)>/i
533
+ # check to ensure the input is an array given that the attribute
534
+ # is documented as an array but the input is not
535
+ if attributes[attribute_map[key]].is_a?(Array)
536
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
537
+ end
538
+ elsif !attributes[attribute_map[key]].nil?
539
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
540
+ end
541
+ end
542
+ new(transformed_hash)
543
+ end
544
+
545
+ # Deserializes the data based on type
546
+ # @param string type Data type
547
+ # @param string value Value to be deserialized
548
+ # @return [Object] Deserialized data
549
+ def self._deserialize(type, value)
550
+ case type.to_sym
551
+ when :Time
552
+ Time.parse(value)
553
+ when :Date
554
+ Date.parse(value)
555
+ when :String
556
+ value.to_s
557
+ when :Integer
558
+ value.to_i
559
+ when :Float
560
+ value.to_f
561
+ when :Boolean
562
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
563
+ true
564
+ else
565
+ false
566
+ end
567
+ when :Object
568
+ # generic object (usually a Hash), return directly
569
+ value
570
+ when /\AArray<(?<inner_type>.+)>\z/
571
+ inner_type = Regexp.last_match[:inner_type]
572
+ value.map { |v| _deserialize(inner_type, v) }
573
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
574
+ k_type = Regexp.last_match[:k_type]
575
+ v_type = Regexp.last_match[:v_type]
576
+ {}.tap do |hash|
577
+ value.each do |k, v|
578
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
579
+ end
580
+ end
581
+ else # model
582
+ # models (e.g. Pet) or oneOf
583
+ klass = AvalaraSdk::A1099::V2.const_get(type)
584
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
585
+ end
586
+ end
587
+
588
+ # Returns the string representation of the object
589
+ # @return [String] String presentation of the object
590
+ def to_s
591
+ to_hash.to_s
592
+ end
593
+
594
+ # to_body is an alias to to_hash (backward compatibility)
595
+ # @return [Hash] Returns the object in the form of hash
596
+ def to_body
597
+ to_hash
598
+ end
599
+
600
+ # Returns the object in the form of hash
601
+ # @return [Hash] Returns the object in the form of hash
602
+ def to_hash
603
+ hash = {}
604
+ self.class.attribute_map.each_pair do |attr, param|
605
+ value = self.send(attr)
606
+ if value.nil?
607
+ is_nullable = self.class.openapi_nullable.include?(attr)
608
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
609
+ end
610
+
611
+ hash[param] = _to_hash(value)
612
+ end
613
+ hash
614
+ end
615
+
616
+ # Outputs non-array value in the form of hash
617
+ # For object, use to_hash. Otherwise, just return the value
618
+ # @param [Object] value Any valid value
619
+ # @return [Hash] Returns the value in the form of hash
620
+ def _to_hash(value)
621
+ if value.is_a?(Array)
622
+ value.compact.map { |v| _to_hash(v) }
623
+ elsif value.is_a?(Hash)
624
+ {}.tap do |hash|
625
+ value.each { |k, v| hash[k] = _to_hash(v) }
626
+ end
627
+ elsif value.respond_to? :to_hash
628
+ value.to_hash
629
+ else
630
+ value
631
+ end
632
+ end
633
+
634
+ end
635
+
636
+ end