avalara_sdk 25.8.0 → 25.8.2

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 (185) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +32 -6
  4. data/docs/A1099/V2/BulkUpsert1099FormsRequest.md +4 -0
  5. data/docs/A1099/V2/CompaniesW9Api.md +6 -6
  6. data/docs/A1099/V2/CoveredIndividualRequest.md +26 -26
  7. data/docs/A1099/V2/Create1099Form201Response.md +4 -0
  8. data/docs/A1099/V2/ErrorResponse.md +1 -1
  9. data/docs/A1099/V2/ErrorResponseItem.md +20 -0
  10. data/docs/A1099/V2/Form1042S.md +140 -0
  11. data/docs/A1099/V2/Form1042SListItem.md +12 -8
  12. data/docs/A1099/V2/Form1042SListItemResponse.md +19 -9
  13. data/docs/A1099/V2/Form1042SRequest.md +14 -10
  14. data/docs/A1099/V2/Form1042SResponse.md +10 -6
  15. data/docs/A1099/V2/Form1095B.md +14 -2
  16. data/docs/A1099/V2/Form1095BListItem.md +14 -8
  17. data/docs/A1099/V2/Form1095BListItemResponse.md +20 -8
  18. data/docs/A1099/V2/Form1095BRequest.md +14 -8
  19. data/docs/A1099/V2/Form1095BResponse.md +106 -0
  20. data/docs/A1099/V2/Form1095CList.md +20 -0
  21. data/docs/A1099/V2/Form1095CListItem.md +90 -0
  22. data/docs/A1099/V2/Form1099Base.md +14 -2
  23. data/docs/A1099/V2/Form1099BaseResponse.md +20 -8
  24. data/docs/A1099/V2/Form1099Div.md +130 -0
  25. data/docs/A1099/V2/Form1099DivListItem.md +32 -28
  26. data/docs/A1099/V2/Form1099DivListItemResponse.md +130 -0
  27. data/docs/A1099/V2/Form1099DivRequest.md +32 -28
  28. data/docs/A1099/V2/Form1099DivResponse.md +48 -6
  29. data/docs/A1099/V2/Form1099Int.md +122 -0
  30. data/docs/A1099/V2/Form1099IntList.md +20 -0
  31. data/docs/A1099/V2/Form1099IntListItem.md +100 -0
  32. data/docs/A1099/V2/Form1099IntListItemResponse.md +122 -0
  33. data/docs/A1099/V2/Form1099IntRequest.md +96 -0
  34. data/docs/A1099/V2/Form1099IntResponse.md +120 -0
  35. data/docs/A1099/V2/Form1099K.md +14 -2
  36. data/docs/A1099/V2/Form1099KListItem.md +14 -8
  37. data/docs/A1099/V2/Form1099KListItemResponse.md +20 -8
  38. data/docs/A1099/V2/Form1099KRequest.md +18 -12
  39. data/docs/A1099/V2/Form1099KResponse.md +132 -0
  40. data/docs/A1099/V2/Form1099ListResponseValueInner.md +4 -0
  41. data/docs/A1099/V2/Form1099Misc.md +24 -12
  42. data/docs/A1099/V2/Form1099MiscListItem.md +14 -12
  43. data/docs/A1099/V2/Form1099MiscListItemResponse.md +30 -16
  44. data/docs/A1099/V2/Form1099MiscRequest.md +14 -12
  45. data/docs/A1099/V2/Form1099MiscResponse.md +12 -10
  46. data/docs/A1099/V2/Form1099Nec.md +14 -2
  47. data/docs/A1099/V2/Form1099NecListItem.md +14 -10
  48. data/docs/A1099/V2/Form1099NecListItemResponse.md +20 -8
  49. data/docs/A1099/V2/Form1099NecRequest.md +14 -10
  50. data/docs/A1099/V2/Form1099NecResponse.md +10 -8
  51. data/docs/A1099/V2/Form1099ProccessResult.md +3 -1
  52. data/docs/A1099/V2/Form1099ProccessResultProcessedFormsInner.md +61 -0
  53. data/docs/A1099/V2/Form1099R.md +14 -4
  54. data/docs/A1099/V2/Form1099RListItem.md +12 -8
  55. data/docs/A1099/V2/Form1099RListItemResponse.md +20 -10
  56. data/docs/A1099/V2/Form1099RRequest.md +12 -8
  57. data/docs/A1099/V2/Form1099RResponse.md +132 -0
  58. data/docs/A1099/V2/FormRequestBase.md +14 -8
  59. data/docs/A1099/V2/FormRequestListItemBase.md +14 -8
  60. data/docs/A1099/V2/FormResponseBase.md +10 -6
  61. data/docs/A1099/V2/FormSingleRequestBase.md +14 -8
  62. data/docs/A1099/V2/Forms1099Api.md +11 -11
  63. data/docs/A1099/V2/FormsW9Api.md +21 -19
  64. data/docs/A1099/V2/Get1099Form200Response.md +4 -0
  65. data/docs/A1099/V2/ICreateForm1099Request.md +2 -0
  66. data/docs/A1099/V2/IUpdateForm1099Request.md +2 -0
  67. data/docs/A1099/V2/IrsResponse.md +20 -0
  68. data/docs/A1099/V2/Issuers1099Api.md +6 -6
  69. data/docs/A1099/V2/Jobs1099Api.md +1 -1
  70. data/docs/A1099/V2/OfferAndCoverageRequest.md +26 -0
  71. data/docs/A1099/V2/PaginatedQueryResultModelCompanyResponse.md +1 -1
  72. data/docs/A1099/V2/PaginatedQueryResultModelIssuerResponse.md +1 -1
  73. data/docs/A1099/V2/PaginatedQueryResultModelW9FormBaseResponse.md +22 -0
  74. data/docs/A1099/V2/TinMatchStatusResponse.md +22 -0
  75. data/docs/A1099/V2/Update1099Form200Response.md +8 -0
  76. data/docs/A1099/V2/W4FormResponse.md +1 -29
  77. data/docs/A1099/V2/W8BenEFormResponse.md +1 -29
  78. data/docs/A1099/V2/W8BenFormResponse.md +1 -29
  79. data/docs/A1099/V2/W8ImyFormResponse.md +1 -29
  80. data/docs/A1099/V2/W9FormBaseResponse.md +3 -3
  81. data/docs/A1099/V2/W9FormResponse.md +2 -28
  82. data/lib/avalara_sdk/api/A1099/V2/companies_w9_api.rb +1 -1
  83. data/lib/avalara_sdk/api/A1099/V2/forms1099_api.rb +3 -3
  84. data/lib/avalara_sdk/api/A1099/V2/forms_w9_api.rb +30 -14
  85. data/lib/avalara_sdk/api/A1099/V2/issuers1099_api.rb +1 -1
  86. data/lib/avalara_sdk/api/A1099/V2/jobs1099_api.rb +1 -1
  87. data/lib/avalara_sdk/api/EInvoicing/V1/data_input_fields_api.rb +1 -1
  88. data/lib/avalara_sdk/api/EInvoicing/V1/documents_api.rb +1 -1
  89. data/lib/avalara_sdk/api/EInvoicing/V1/interop_api.rb +1 -1
  90. data/lib/avalara_sdk/api/EInvoicing/V1/mandates_api.rb +1 -1
  91. data/lib/avalara_sdk/api/EInvoicing/V1/subscriptions_api.rb +1 -1
  92. data/lib/avalara_sdk/api/EInvoicing/V1/tax_identifiers_api.rb +1 -1
  93. data/lib/avalara_sdk/api/EInvoicing/V1/trading_partners_api.rb +1 -1
  94. data/lib/avalara_sdk/models/A1099/V2/bulk_upsert1099_forms_request.rb +2 -0
  95. data/lib/avalara_sdk/models/A1099/V2/covered_individual_reference.rb +1 -1
  96. data/lib/avalara_sdk/models/A1099/V2/covered_individual_request.rb +79 -79
  97. data/lib/avalara_sdk/models/A1099/V2/create1099_form201_response.rb +2 -0
  98. data/lib/avalara_sdk/models/A1099/V2/error_response.rb +1 -1
  99. data/lib/avalara_sdk/models/A1099/V2/error_response_item.rb +221 -0
  100. data/lib/avalara_sdk/models/A1099/V2/form1042_s.rb +824 -0
  101. data/lib/avalara_sdk/models/A1099/V2/form1042_s_list_item.rb +44 -119
  102. data/lib/avalara_sdk/models/A1099/V2/form1042_s_list_item_response.rb +67 -12
  103. data/lib/avalara_sdk/models/A1099/V2/form1042_s_request.rb +55 -132
  104. data/lib/avalara_sdk/models/A1099/V2/form1042_s_response.rb +43 -24
  105. data/lib/avalara_sdk/models/A1099/V2/form1095_b.rb +68 -9
  106. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list_item.rb +54 -119
  107. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list_item_response.rb +77 -12
  108. data/lib/avalara_sdk/models/A1099/V2/form1095_b_request.rb +56 -121
  109. data/lib/avalara_sdk/models/A1099/V2/form1095_b_response.rb +709 -0
  110. data/lib/avalara_sdk/models/A1099/V2/form1095_c_list.rb +238 -0
  111. data/lib/avalara_sdk/models/A1099/V2/form1095_c_list_item.rb +662 -0
  112. data/lib/avalara_sdk/models/A1099/V2/form1099_base.rb +68 -9
  113. data/lib/avalara_sdk/models/A1099/V2/form1099_base_response.rb +77 -12
  114. data/lib/avalara_sdk/models/A1099/V2/form1099_div.rb +781 -0
  115. data/lib/avalara_sdk/models/A1099/V2/form1099_div_list_item.rb +93 -147
  116. data/lib/avalara_sdk/models/A1099/V2/form1099_div_list_item_response.rb +931 -0
  117. data/lib/avalara_sdk/models/A1099/V2/form1099_div_request.rb +93 -149
  118. data/lib/avalara_sdk/models/A1099/V2/form1099_div_response.rb +214 -24
  119. data/lib/avalara_sdk/models/A1099/V2/form1099_int.rb +741 -0
  120. data/lib/avalara_sdk/models/A1099/V2/form1099_int_list.rb +238 -0
  121. data/lib/avalara_sdk/models/A1099/V2/form1099_int_list_item.rb +702 -0
  122. data/lib/avalara_sdk/models/A1099/V2/form1099_int_list_item_response.rb +887 -0
  123. data/lib/avalara_sdk/models/A1099/V2/form1099_int_request.rb +684 -0
  124. data/lib/avalara_sdk/models/A1099/V2/form1099_int_response.rb +773 -0
  125. data/lib/avalara_sdk/models/A1099/V2/form1099_k.rb +68 -9
  126. data/lib/avalara_sdk/models/A1099/V2/form1099_k_list_item.rb +56 -119
  127. data/lib/avalara_sdk/models/A1099/V2/form1099_k_list_item_response.rb +77 -12
  128. data/lib/avalara_sdk/models/A1099/V2/form1099_k_request.rb +82 -123
  129. data/lib/avalara_sdk/models/A1099/V2/form1099_k_response.rb +839 -0
  130. data/lib/avalara_sdk/models/A1099/V2/form1099_list_response_value_inner.rb +2 -0
  131. data/lib/avalara_sdk/models/A1099/V2/form1099_misc.rb +106 -47
  132. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_list_item.rb +52 -135
  133. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_list_item_response.rb +116 -40
  134. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_request.rb +52 -137
  135. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_response.rb +49 -39
  136. data/lib/avalara_sdk/models/A1099/V2/form1099_nec.rb +68 -9
  137. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_list_item.rb +56 -129
  138. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_list_item_response.rb +77 -12
  139. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_request.rb +56 -131
  140. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_response.rb +43 -33
  141. data/lib/avalara_sdk/models/A1099/V2/form1099_proccess_result.rb +22 -4
  142. data/lib/avalara_sdk/models/A1099/V2/form1099_proccess_result_processed_forms_inner.rb +107 -0
  143. data/lib/avalara_sdk/models/A1099/V2/form1099_r.rb +68 -19
  144. data/lib/avalara_sdk/models/A1099/V2/form1099_r_list_item.rb +46 -119
  145. data/lib/avalara_sdk/models/A1099/V2/form1099_r_list_item_response.rb +77 -23
  146. data/lib/avalara_sdk/models/A1099/V2/form1099_r_request.rb +46 -121
  147. data/lib/avalara_sdk/models/A1099/V2/form1099_r_response.rb +839 -0
  148. data/lib/avalara_sdk/models/A1099/V2/form1099_status_detail.rb +1 -1
  149. data/lib/avalara_sdk/models/A1099/V2/form_request_base.rb +54 -119
  150. data/lib/avalara_sdk/models/A1099/V2/form_request_list_item_base.rb +56 -119
  151. data/lib/avalara_sdk/models/A1099/V2/form_response_base.rb +43 -24
  152. data/lib/avalara_sdk/models/A1099/V2/form_single_request_base.rb +56 -121
  153. data/lib/avalara_sdk/models/A1099/V2/get1099_form200_response.rb +2 -0
  154. data/lib/avalara_sdk/models/A1099/V2/i_create_form1099_request.rb +1 -0
  155. data/lib/avalara_sdk/models/A1099/V2/i_update_form1099_request.rb +1 -0
  156. data/lib/avalara_sdk/models/A1099/V2/included_base.rb +1 -1
  157. data/lib/avalara_sdk/models/A1099/V2/irs_response.rb +221 -0
  158. data/lib/avalara_sdk/models/A1099/V2/issuer_command.rb +1 -0
  159. data/lib/avalara_sdk/models/A1099/V2/offer_and_coverage_request.rb +256 -0
  160. data/lib/avalara_sdk/models/A1099/V2/paginated_query_result_model_w9_form_base_response.rb +234 -0
  161. data/lib/avalara_sdk/models/A1099/V2/state_and_local_withholding.rb +1 -1
  162. data/lib/avalara_sdk/models/A1099/V2/state_efile_status_detail.rb +1 -1
  163. data/lib/avalara_sdk/models/A1099/V2/tin_match_status_response.rb +267 -0
  164. data/lib/avalara_sdk/models/A1099/V2/update1099_form200_response.rb +4 -0
  165. data/lib/avalara_sdk/models/A1099/V2/validation_error.rb +1 -1
  166. data/lib/avalara_sdk/models/A1099/V2/w4_form_response.rb +15 -157
  167. data/lib/avalara_sdk/models/A1099/V2/w8_ben_e_form_response.rb +14 -156
  168. data/lib/avalara_sdk/models/A1099/V2/w8_ben_form_response.rb +15 -157
  169. data/lib/avalara_sdk/models/A1099/V2/w8_imy_form_response.rb +15 -157
  170. data/lib/avalara_sdk/models/A1099/V2/w9_form_base_response.rb +19 -14
  171. data/lib/avalara_sdk/models/A1099/V2/w9_form_response.rb +18 -150
  172. data/lib/avalara_sdk/version.rb +1 -1
  173. data/lib/avalara_sdk.rb +21 -1
  174. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-11.1.3/gem_make.out +5 -5
  175. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.4.1/gem_make.out +5 -5
  176. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debase-0.2.9/gem_make.out +5 -5
  177. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debug-1.10.0/gem_make.out +5 -5
  178. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/erb-5.0.1/gem_make.out +5 -5
  179. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.0/gem_make.out +5 -5
  180. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.12.2/gem_make.out +5 -5
  181. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-1.4.0/gem_make.out +5 -5
  182. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/psych-5.2.6/gem_make.out +5 -5
  183. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +5 -5
  184. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.7/gem_make.out +5 -5
  185. metadata +42 -2
@@ -0,0 +1,702 @@
1
+ =begin
2
+ #Avalara 1099 & W-9 API Definition
3
+
4
+ ### 🔐 Authentication Generate a **license key** from: *[Avalara Portal](https://www.avalara.com/us/en/signin.html) → 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 Form1099IntListItem
14
+ # Interest Income
15
+ attr_accessor :interest_income
16
+
17
+ # Early Withdrawal Penalty
18
+ attr_accessor :early_withdrawal_penalty
19
+
20
+ # Interest on U.S. Savings Bonds and Treasury obligations
21
+ attr_accessor :us_savings_bonds_interest
22
+
23
+ # Federal income tax withheld
24
+ attr_accessor :federal_income_tax_withheld
25
+
26
+ # Investment Expenses
27
+ attr_accessor :investment_expenses
28
+
29
+ # Foreign tax paid
30
+ attr_accessor :foreign_tax_paid
31
+
32
+ # Foreign country or U.S. possession
33
+ attr_accessor :foreign_country
34
+
35
+ # Tax-Exempt Interest
36
+ attr_accessor :tax_exempt_interest
37
+
38
+ # Specified Private activity
39
+ attr_accessor :specified_private_activity_bond_interest
40
+
41
+ # Market Discount
42
+ attr_accessor :market_discount
43
+
44
+ # Bond Premium
45
+ attr_accessor :bond_premium
46
+
47
+ # Bond Premium on Treasury obligations
48
+ attr_accessor :bond_premium_on_treasury_obligations
49
+
50
+ # Bond Premium on tax exempt bond
51
+ attr_accessor :bond_premium_on_tax_exempt_bond
52
+
53
+ # Tax exempt bond CUSIP no.
54
+ attr_accessor :tax_exempt_bond_cusip_number
55
+
56
+ # Issuer Reference ID. One of `issuerReferenceId` or `issuerTin` is required.
57
+ attr_accessor :issuer_reference_id
58
+
59
+ # Issuer TIN. One of `issuerReferenceId` or `issuerTin` is required.
60
+ attr_accessor :issuer_tin
61
+
62
+ # Tax year
63
+ attr_accessor :tax_year
64
+
65
+ # Issuer ID
66
+ attr_accessor :issuer_id
67
+
68
+ # Reference ID
69
+ attr_accessor :reference_id
70
+
71
+ # Recipient Tax ID Number
72
+ attr_accessor :recipient_tin
73
+
74
+ # Recipient name
75
+ attr_accessor :recipient_name
76
+
77
+ # Type of TIN (Tax ID Number). Will be one of: * SSN * EIN * ITIN * ATIN
78
+ attr_accessor :tin_type
79
+
80
+ # Recipient second name
81
+ attr_accessor :recipient_second_name
82
+
83
+ # Address
84
+ attr_accessor :address
85
+
86
+ # Address line 2
87
+ attr_accessor :address2
88
+
89
+ # City
90
+ attr_accessor :city
91
+
92
+ # US state. Required if CountryCode is \"US\".
93
+ attr_accessor :state
94
+
95
+ # Zip/postal code
96
+ attr_accessor :zip
97
+
98
+ # Recipient email address
99
+ attr_accessor :email
100
+
101
+ # Account number
102
+ attr_accessor :account_number
103
+
104
+ # Office code
105
+ attr_accessor :office_code
106
+
107
+ # Foreign province
108
+ attr_accessor :non_us_province
109
+
110
+ # Country code, as defined at https://www.irs.gov/e-file-providers/country-codes
111
+ attr_accessor :country_code
112
+
113
+ # Boolean indicating that federal e-filing should be scheduled for this form
114
+ attr_accessor :federal_e_file
115
+
116
+ # Boolean indicating that postal mailing to the recipient should be scheduled for this form
117
+ attr_accessor :postal_mail
118
+
119
+ # Boolean indicating that state e-filing should be scheduled for this form
120
+ attr_accessor :state_e_file
121
+
122
+ # Boolean indicating that TIN Matching should be scheduled for this form
123
+ attr_accessor :tin_match
124
+
125
+ # Indicates whether the recipient has no TIN
126
+ attr_accessor :no_tin
127
+
128
+ # Second TIN notice in three years
129
+ attr_accessor :second_tin_notice
130
+
131
+ # Fatca filing requirement
132
+ attr_accessor :fatca_filing_requirement
133
+
134
+ # Boolean indicating that address verification should be scheduled for this form
135
+ attr_accessor :address_verification
136
+
137
+ # State and local withholding information
138
+ attr_accessor :state_and_local_withholding
139
+
140
+ class EnumAttributeValidator
141
+ attr_reader :datatype
142
+ attr_reader :allowable_values
143
+
144
+ def initialize(datatype, allowable_values)
145
+ @allowable_values = allowable_values.map do |value|
146
+ case datatype.to_s
147
+ when /Integer/i
148
+ value.to_i
149
+ when /Float/i
150
+ value.to_f
151
+ else
152
+ value
153
+ end
154
+ end
155
+ end
156
+
157
+ def valid?(value)
158
+ !value || allowable_values.include?(value)
159
+ end
160
+ end
161
+
162
+ # Attribute mapping from ruby-style variable name to JSON key.
163
+ def self.attribute_map
164
+ {
165
+ :'interest_income' => :'interestIncome',
166
+ :'early_withdrawal_penalty' => :'earlyWithdrawalPenalty',
167
+ :'us_savings_bonds_interest' => :'usSavingsBondsInterest',
168
+ :'federal_income_tax_withheld' => :'federalIncomeTaxWithheld',
169
+ :'investment_expenses' => :'investmentExpenses',
170
+ :'foreign_tax_paid' => :'foreignTaxPaid',
171
+ :'foreign_country' => :'foreignCountry',
172
+ :'tax_exempt_interest' => :'taxExemptInterest',
173
+ :'specified_private_activity_bond_interest' => :'specifiedPrivateActivityBondInterest',
174
+ :'market_discount' => :'marketDiscount',
175
+ :'bond_premium' => :'bondPremium',
176
+ :'bond_premium_on_treasury_obligations' => :'bondPremiumOnTreasuryObligations',
177
+ :'bond_premium_on_tax_exempt_bond' => :'bondPremiumOnTaxExemptBond',
178
+ :'tax_exempt_bond_cusip_number' => :'taxExemptBondCusipNumber',
179
+ :'issuer_reference_id' => :'issuerReferenceId',
180
+ :'issuer_tin' => :'issuerTin',
181
+ :'tax_year' => :'taxYear',
182
+ :'issuer_id' => :'issuerId',
183
+ :'reference_id' => :'referenceId',
184
+ :'recipient_tin' => :'recipientTin',
185
+ :'recipient_name' => :'recipientName',
186
+ :'tin_type' => :'tinType',
187
+ :'recipient_second_name' => :'recipientSecondName',
188
+ :'address' => :'address',
189
+ :'address2' => :'address2',
190
+ :'city' => :'city',
191
+ :'state' => :'state',
192
+ :'zip' => :'zip',
193
+ :'email' => :'email',
194
+ :'account_number' => :'accountNumber',
195
+ :'office_code' => :'officeCode',
196
+ :'non_us_province' => :'nonUsProvince',
197
+ :'country_code' => :'countryCode',
198
+ :'federal_e_file' => :'federalEFile',
199
+ :'postal_mail' => :'postalMail',
200
+ :'state_e_file' => :'stateEFile',
201
+ :'tin_match' => :'tinMatch',
202
+ :'no_tin' => :'noTin',
203
+ :'second_tin_notice' => :'secondTinNotice',
204
+ :'fatca_filing_requirement' => :'fatcaFilingRequirement',
205
+ :'address_verification' => :'addressVerification',
206
+ :'state_and_local_withholding' => :'stateAndLocalWithholding'
207
+ }
208
+ end
209
+
210
+ # Returns all the JSON keys this model knows about
211
+ def self.acceptable_attributes
212
+ attribute_map.values
213
+ end
214
+
215
+ # Attribute type mapping.
216
+ def self.openapi_types
217
+ {
218
+ :'interest_income' => :'Float',
219
+ :'early_withdrawal_penalty' => :'Float',
220
+ :'us_savings_bonds_interest' => :'Float',
221
+ :'federal_income_tax_withheld' => :'Float',
222
+ :'investment_expenses' => :'Float',
223
+ :'foreign_tax_paid' => :'Float',
224
+ :'foreign_country' => :'String',
225
+ :'tax_exempt_interest' => :'Float',
226
+ :'specified_private_activity_bond_interest' => :'Float',
227
+ :'market_discount' => :'Float',
228
+ :'bond_premium' => :'Float',
229
+ :'bond_premium_on_treasury_obligations' => :'Float',
230
+ :'bond_premium_on_tax_exempt_bond' => :'Float',
231
+ :'tax_exempt_bond_cusip_number' => :'String',
232
+ :'issuer_reference_id' => :'String',
233
+ :'issuer_tin' => :'String',
234
+ :'tax_year' => :'Integer',
235
+ :'issuer_id' => :'String',
236
+ :'reference_id' => :'String',
237
+ :'recipient_tin' => :'String',
238
+ :'recipient_name' => :'String',
239
+ :'tin_type' => :'String',
240
+ :'recipient_second_name' => :'String',
241
+ :'address' => :'String',
242
+ :'address2' => :'String',
243
+ :'city' => :'String',
244
+ :'state' => :'String',
245
+ :'zip' => :'String',
246
+ :'email' => :'String',
247
+ :'account_number' => :'String',
248
+ :'office_code' => :'String',
249
+ :'non_us_province' => :'String',
250
+ :'country_code' => :'String',
251
+ :'federal_e_file' => :'Boolean',
252
+ :'postal_mail' => :'Boolean',
253
+ :'state_e_file' => :'Boolean',
254
+ :'tin_match' => :'Boolean',
255
+ :'no_tin' => :'Boolean',
256
+ :'second_tin_notice' => :'Boolean',
257
+ :'fatca_filing_requirement' => :'Boolean',
258
+ :'address_verification' => :'Boolean',
259
+ :'state_and_local_withholding' => :'StateAndLocalWithholdingRequest'
260
+ }
261
+ end
262
+
263
+ # List of attributes with nullable: true
264
+ def self.openapi_nullable
265
+ Set.new([
266
+ :'interest_income',
267
+ :'early_withdrawal_penalty',
268
+ :'us_savings_bonds_interest',
269
+ :'federal_income_tax_withheld',
270
+ :'investment_expenses',
271
+ :'foreign_tax_paid',
272
+ :'foreign_country',
273
+ :'tax_exempt_interest',
274
+ :'specified_private_activity_bond_interest',
275
+ :'market_discount',
276
+ :'bond_premium',
277
+ :'bond_premium_on_treasury_obligations',
278
+ :'bond_premium_on_tax_exempt_bond',
279
+ :'tax_exempt_bond_cusip_number',
280
+ :'issuer_reference_id',
281
+ :'issuer_tin',
282
+ :'issuer_id',
283
+ :'reference_id',
284
+ :'recipient_tin',
285
+ :'recipient_name',
286
+ :'recipient_second_name',
287
+ :'address',
288
+ :'address2',
289
+ :'city',
290
+ :'state',
291
+ :'zip',
292
+ :'email',
293
+ :'account_number',
294
+ :'office_code',
295
+ :'non_us_province',
296
+ :'country_code',
297
+ :'second_tin_notice',
298
+ :'state_and_local_withholding'
299
+ ])
300
+ end
301
+
302
+ # List of class defined in allOf (OpenAPI v3)
303
+ def self.openapi_all_of
304
+ [
305
+ :'FormRequestListItemBase'
306
+ ]
307
+ end
308
+
309
+ # Initializes the object
310
+ # @param [Hash] attributes Model attributes in the form of hash
311
+ def initialize(attributes = {})
312
+ if (!attributes.is_a?(Hash))
313
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AvalaraSdk::A1099::V2::Form1099IntListItem` initialize method"
314
+ end
315
+
316
+ # check to see if the attribute exists and convert string to symbol for hash key
317
+ attributes = attributes.each_with_object({}) { |(k, v), h|
318
+ if (!self.class.attribute_map.key?(k.to_sym))
319
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AvalaraSdk::A1099::V2::Form1099IntListItem`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
320
+ end
321
+ h[k.to_sym] = v
322
+ }
323
+
324
+ if attributes.key?(:'interest_income')
325
+ self.interest_income = attributes[:'interest_income']
326
+ end
327
+
328
+ if attributes.key?(:'early_withdrawal_penalty')
329
+ self.early_withdrawal_penalty = attributes[:'early_withdrawal_penalty']
330
+ end
331
+
332
+ if attributes.key?(:'us_savings_bonds_interest')
333
+ self.us_savings_bonds_interest = attributes[:'us_savings_bonds_interest']
334
+ end
335
+
336
+ if attributes.key?(:'federal_income_tax_withheld')
337
+ self.federal_income_tax_withheld = attributes[:'federal_income_tax_withheld']
338
+ end
339
+
340
+ if attributes.key?(:'investment_expenses')
341
+ self.investment_expenses = attributes[:'investment_expenses']
342
+ end
343
+
344
+ if attributes.key?(:'foreign_tax_paid')
345
+ self.foreign_tax_paid = attributes[:'foreign_tax_paid']
346
+ end
347
+
348
+ if attributes.key?(:'foreign_country')
349
+ self.foreign_country = attributes[:'foreign_country']
350
+ end
351
+
352
+ if attributes.key?(:'tax_exempt_interest')
353
+ self.tax_exempt_interest = attributes[:'tax_exempt_interest']
354
+ end
355
+
356
+ if attributes.key?(:'specified_private_activity_bond_interest')
357
+ self.specified_private_activity_bond_interest = attributes[:'specified_private_activity_bond_interest']
358
+ end
359
+
360
+ if attributes.key?(:'market_discount')
361
+ self.market_discount = attributes[:'market_discount']
362
+ end
363
+
364
+ if attributes.key?(:'bond_premium')
365
+ self.bond_premium = attributes[:'bond_premium']
366
+ end
367
+
368
+ if attributes.key?(:'bond_premium_on_treasury_obligations')
369
+ self.bond_premium_on_treasury_obligations = attributes[:'bond_premium_on_treasury_obligations']
370
+ end
371
+
372
+ if attributes.key?(:'bond_premium_on_tax_exempt_bond')
373
+ self.bond_premium_on_tax_exempt_bond = attributes[:'bond_premium_on_tax_exempt_bond']
374
+ end
375
+
376
+ if attributes.key?(:'tax_exempt_bond_cusip_number')
377
+ self.tax_exempt_bond_cusip_number = attributes[:'tax_exempt_bond_cusip_number']
378
+ end
379
+
380
+ if attributes.key?(:'issuer_reference_id')
381
+ self.issuer_reference_id = attributes[:'issuer_reference_id']
382
+ end
383
+
384
+ if attributes.key?(:'issuer_tin')
385
+ self.issuer_tin = attributes[:'issuer_tin']
386
+ end
387
+
388
+ if attributes.key?(:'tax_year')
389
+ self.tax_year = attributes[:'tax_year']
390
+ else
391
+ self.tax_year = nil
392
+ end
393
+
394
+ if attributes.key?(:'issuer_id')
395
+ self.issuer_id = attributes[:'issuer_id']
396
+ end
397
+
398
+ if attributes.key?(:'reference_id')
399
+ self.reference_id = attributes[:'reference_id']
400
+ end
401
+
402
+ if attributes.key?(:'recipient_tin')
403
+ self.recipient_tin = attributes[:'recipient_tin']
404
+ end
405
+
406
+ if attributes.key?(:'recipient_name')
407
+ self.recipient_name = attributes[:'recipient_name']
408
+ end
409
+
410
+ if attributes.key?(:'tin_type')
411
+ self.tin_type = attributes[:'tin_type']
412
+ end
413
+
414
+ if attributes.key?(:'recipient_second_name')
415
+ self.recipient_second_name = attributes[:'recipient_second_name']
416
+ end
417
+
418
+ if attributes.key?(:'address')
419
+ self.address = attributes[:'address']
420
+ end
421
+
422
+ if attributes.key?(:'address2')
423
+ self.address2 = attributes[:'address2']
424
+ end
425
+
426
+ if attributes.key?(:'city')
427
+ self.city = attributes[:'city']
428
+ end
429
+
430
+ if attributes.key?(:'state')
431
+ self.state = attributes[:'state']
432
+ end
433
+
434
+ if attributes.key?(:'zip')
435
+ self.zip = attributes[:'zip']
436
+ end
437
+
438
+ if attributes.key?(:'email')
439
+ self.email = attributes[:'email']
440
+ end
441
+
442
+ if attributes.key?(:'account_number')
443
+ self.account_number = attributes[:'account_number']
444
+ end
445
+
446
+ if attributes.key?(:'office_code')
447
+ self.office_code = attributes[:'office_code']
448
+ end
449
+
450
+ if attributes.key?(:'non_us_province')
451
+ self.non_us_province = attributes[:'non_us_province']
452
+ end
453
+
454
+ if attributes.key?(:'country_code')
455
+ self.country_code = attributes[:'country_code']
456
+ end
457
+
458
+ if attributes.key?(:'federal_e_file')
459
+ self.federal_e_file = attributes[:'federal_e_file']
460
+ end
461
+
462
+ if attributes.key?(:'postal_mail')
463
+ self.postal_mail = attributes[:'postal_mail']
464
+ end
465
+
466
+ if attributes.key?(:'state_e_file')
467
+ self.state_e_file = attributes[:'state_e_file']
468
+ end
469
+
470
+ if attributes.key?(:'tin_match')
471
+ self.tin_match = attributes[:'tin_match']
472
+ end
473
+
474
+ if attributes.key?(:'no_tin')
475
+ self.no_tin = attributes[:'no_tin']
476
+ end
477
+
478
+ if attributes.key?(:'second_tin_notice')
479
+ self.second_tin_notice = attributes[:'second_tin_notice']
480
+ end
481
+
482
+ if attributes.key?(:'fatca_filing_requirement')
483
+ self.fatca_filing_requirement = attributes[:'fatca_filing_requirement']
484
+ end
485
+
486
+ if attributes.key?(:'address_verification')
487
+ self.address_verification = attributes[:'address_verification']
488
+ end
489
+
490
+ if attributes.key?(:'state_and_local_withholding')
491
+ self.state_and_local_withholding = attributes[:'state_and_local_withholding']
492
+ end
493
+ end
494
+
495
+ # Show invalid properties with the reasons. Usually used together with valid?
496
+ # @return Array for valid properties with the reasons
497
+ def list_invalid_properties
498
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
499
+ invalid_properties = Array.new
500
+ if @tax_year.nil?
501
+ invalid_properties.push('invalid value for "tax_year", tax_year cannot be nil.')
502
+ end
503
+
504
+ invalid_properties
505
+ end
506
+
507
+ # Check to see if the all the properties in the model are valid
508
+ # @return true if the model is valid
509
+ def valid?
510
+ warn '[DEPRECATED] the `valid?` method is obsolete'
511
+ return false if @tax_year.nil?
512
+ tin_type_validator = EnumAttributeValidator.new('String', ["EIN", "SSN", "ITIN", "ATIN"])
513
+ return false unless tin_type_validator.valid?(@tin_type)
514
+ true
515
+ end
516
+
517
+ # Custom attribute writer method checking allowed values (enum).
518
+ # @param [Object] tin_type Object to be assigned
519
+ def tin_type=(tin_type)
520
+ validator = EnumAttributeValidator.new('String', ["EIN", "SSN", "ITIN", "ATIN"])
521
+ unless validator.valid?(tin_type)
522
+ fail ArgumentError, "invalid value for \"tin_type\", must be one of #{validator.allowable_values}."
523
+ end
524
+ @tin_type = tin_type
525
+ end
526
+
527
+ # Checks equality by comparing each attribute.
528
+ # @param [Object] Object to be compared
529
+ def ==(o)
530
+ return true if self.equal?(o)
531
+ self.class == o.class &&
532
+ interest_income == o.interest_income &&
533
+ early_withdrawal_penalty == o.early_withdrawal_penalty &&
534
+ us_savings_bonds_interest == o.us_savings_bonds_interest &&
535
+ federal_income_tax_withheld == o.federal_income_tax_withheld &&
536
+ investment_expenses == o.investment_expenses &&
537
+ foreign_tax_paid == o.foreign_tax_paid &&
538
+ foreign_country == o.foreign_country &&
539
+ tax_exempt_interest == o.tax_exempt_interest &&
540
+ specified_private_activity_bond_interest == o.specified_private_activity_bond_interest &&
541
+ market_discount == o.market_discount &&
542
+ bond_premium == o.bond_premium &&
543
+ bond_premium_on_treasury_obligations == o.bond_premium_on_treasury_obligations &&
544
+ bond_premium_on_tax_exempt_bond == o.bond_premium_on_tax_exempt_bond &&
545
+ tax_exempt_bond_cusip_number == o.tax_exempt_bond_cusip_number &&
546
+ issuer_reference_id == o.issuer_reference_id &&
547
+ issuer_tin == o.issuer_tin &&
548
+ tax_year == o.tax_year &&
549
+ issuer_id == o.issuer_id &&
550
+ reference_id == o.reference_id &&
551
+ recipient_tin == o.recipient_tin &&
552
+ recipient_name == o.recipient_name &&
553
+ tin_type == o.tin_type &&
554
+ recipient_second_name == o.recipient_second_name &&
555
+ address == o.address &&
556
+ address2 == o.address2 &&
557
+ city == o.city &&
558
+ state == o.state &&
559
+ zip == o.zip &&
560
+ email == o.email &&
561
+ account_number == o.account_number &&
562
+ office_code == o.office_code &&
563
+ non_us_province == o.non_us_province &&
564
+ country_code == o.country_code &&
565
+ federal_e_file == o.federal_e_file &&
566
+ postal_mail == o.postal_mail &&
567
+ state_e_file == o.state_e_file &&
568
+ tin_match == o.tin_match &&
569
+ no_tin == o.no_tin &&
570
+ second_tin_notice == o.second_tin_notice &&
571
+ fatca_filing_requirement == o.fatca_filing_requirement &&
572
+ address_verification == o.address_verification &&
573
+ state_and_local_withholding == o.state_and_local_withholding
574
+ end
575
+
576
+ # @see the `==` method
577
+ # @param [Object] Object to be compared
578
+ def eql?(o)
579
+ self == o
580
+ end
581
+
582
+ # Calculates hash code according to all attributes.
583
+ # @return [Integer] Hash code
584
+ def hash
585
+ [interest_income, early_withdrawal_penalty, us_savings_bonds_interest, federal_income_tax_withheld, investment_expenses, foreign_tax_paid, foreign_country, tax_exempt_interest, specified_private_activity_bond_interest, market_discount, bond_premium, bond_premium_on_treasury_obligations, bond_premium_on_tax_exempt_bond, tax_exempt_bond_cusip_number, issuer_reference_id, issuer_tin, tax_year, issuer_id, reference_id, recipient_tin, recipient_name, tin_type, recipient_second_name, address, address2, city, state, zip, email, account_number, office_code, non_us_province, country_code, federal_e_file, postal_mail, state_e_file, tin_match, no_tin, second_tin_notice, fatca_filing_requirement, address_verification, state_and_local_withholding].hash
586
+ end
587
+
588
+ # Builds the object from hash
589
+ # @param [Hash] attributes Model attributes in the form of hash
590
+ # @return [Object] Returns the model itself
591
+ def self.build_from_hash(attributes)
592
+ return nil unless attributes.is_a?(Hash)
593
+ attributes = attributes.transform_keys(&:to_sym)
594
+ transformed_hash = {}
595
+ openapi_types.each_pair do |key, type|
596
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
597
+ transformed_hash["#{key}"] = nil
598
+ elsif type =~ /\AArray<(.*)>/i
599
+ # check to ensure the input is an array given that the attribute
600
+ # is documented as an array but the input is not
601
+ if attributes[attribute_map[key]].is_a?(Array)
602
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
603
+ end
604
+ elsif !attributes[attribute_map[key]].nil?
605
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
606
+ end
607
+ end
608
+ new(transformed_hash)
609
+ end
610
+
611
+ # Deserializes the data based on type
612
+ # @param string type Data type
613
+ # @param string value Value to be deserialized
614
+ # @return [Object] Deserialized data
615
+ def self._deserialize(type, value)
616
+ case type.to_sym
617
+ when :Time
618
+ Time.parse(value)
619
+ when :Date
620
+ Date.parse(value)
621
+ when :String
622
+ value.to_s
623
+ when :Integer
624
+ value.to_i
625
+ when :Float
626
+ value.to_f
627
+ when :Boolean
628
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
629
+ true
630
+ else
631
+ false
632
+ end
633
+ when :Object
634
+ # generic object (usually a Hash), return directly
635
+ value
636
+ when /\AArray<(?<inner_type>.+)>\z/
637
+ inner_type = Regexp.last_match[:inner_type]
638
+ value.map { |v| _deserialize(inner_type, v) }
639
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
640
+ k_type = Regexp.last_match[:k_type]
641
+ v_type = Regexp.last_match[:v_type]
642
+ {}.tap do |hash|
643
+ value.each do |k, v|
644
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
645
+ end
646
+ end
647
+ else # model
648
+ # models (e.g. Pet) or oneOf
649
+ klass = AvalaraSdk::A1099::V2.const_get(type)
650
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
651
+ end
652
+ end
653
+
654
+ # Returns the string representation of the object
655
+ # @return [String] String presentation of the object
656
+ def to_s
657
+ to_hash.to_s
658
+ end
659
+
660
+ # to_body is an alias to to_hash (backward compatibility)
661
+ # @return [Hash] Returns the object in the form of hash
662
+ def to_body
663
+ to_hash
664
+ end
665
+
666
+ # Returns the object in the form of hash
667
+ # @return [Hash] Returns the object in the form of hash
668
+ def to_hash
669
+ hash = {}
670
+ self.class.attribute_map.each_pair do |attr, param|
671
+ value = self.send(attr)
672
+ if value.nil?
673
+ is_nullable = self.class.openapi_nullable.include?(attr)
674
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
675
+ end
676
+
677
+ hash[param] = _to_hash(value)
678
+ end
679
+ hash
680
+ end
681
+
682
+ # Outputs non-array value in the form of hash
683
+ # For object, use to_hash. Otherwise, just return the value
684
+ # @param [Object] value Any valid value
685
+ # @return [Hash] Returns the value in the form of hash
686
+ def _to_hash(value)
687
+ if value.is_a?(Array)
688
+ value.compact.map { |v| _to_hash(v) }
689
+ elsif value.is_a?(Hash)
690
+ {}.tap do |hash|
691
+ value.each { |k, v| hash[k] = _to_hash(v) }
692
+ end
693
+ elsif value.respond_to? :to_hash
694
+ value.to_hash
695
+ else
696
+ value
697
+ end
698
+ end
699
+
700
+ end
701
+
702
+ end