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