fdx-api-sdk-ruby 1.0.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 (634) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +28 -0
  3. data/README.md +125 -0
  4. data/lib/fdx_api/api_helper.rb +10 -0
  5. data/lib/fdx_api/client.rb +187 -0
  6. data/lib/fdx_api/configuration.rb +133 -0
  7. data/lib/fdx_api/controllers/account_information_controller.rb +135 -0
  8. data/lib/fdx_api/controllers/account_statements_controller.rb +132 -0
  9. data/lib/fdx_api/controllers/account_transactions_controller.rb +126 -0
  10. data/lib/fdx_api/controllers/base_controller.rb +65 -0
  11. data/lib/fdx_api/controllers/event_notifications_controller.rb +274 -0
  12. data/lib/fdx_api/controllers/fraud_notification_controller.rb +37 -0
  13. data/lib/fdx_api/controllers/internal_transfers_controller.rb +206 -0
  14. data/lib/fdx_api/controllers/meta_controller.rb +105 -0
  15. data/lib/fdx_api/controllers/money_movement_controller.rb +92 -0
  16. data/lib/fdx_api/controllers/payee_management_controller.rb +257 -0
  17. data/lib/fdx_api/controllers/payment_initiation_parties_controller.rb +439 -0
  18. data/lib/fdx_api/controllers/payments_controller.rb +280 -0
  19. data/lib/fdx_api/controllers/payroll_information_controller.rb +117 -0
  20. data/lib/fdx_api/controllers/personal_information_controller.rb +155 -0
  21. data/lib/fdx_api/controllers/recipients_controller.rb +197 -0
  22. data/lib/fdx_api/controllers/recurring_payments_controller.rb +339 -0
  23. data/lib/fdx_api/controllers/resource_information_controller.rb +121 -0
  24. data/lib/fdx_api/controllers/reward_program_categories_controller.rb +64 -0
  25. data/lib/fdx_api/controllers/reward_program_information_controller.rb +88 -0
  26. data/lib/fdx_api/controllers/submit_tax_forms_controller.rb +106 -0
  27. data/lib/fdx_api/controllers/tax_forms_controller.rb +190 -0
  28. data/lib/fdx_api/controllers/user_consent_controller.rb +125 -0
  29. data/lib/fdx_api/exceptions/api_exception.rb +21 -0
  30. data/lib/fdx_api/exceptions/error_exception.rb +65 -0
  31. data/lib/fdx_api/exceptions/payee_entity_error_exception.rb +48 -0
  32. data/lib/fdx_api/exceptions/payment_entity_error_exception.rb +160 -0
  33. data/lib/fdx_api/exceptions/recurring_payment_entity_error_exception.rb +140 -0
  34. data/lib/fdx_api/http/api_response.rb +19 -0
  35. data/lib/fdx_api/http/auth/bearer_auth.rb +43 -0
  36. data/lib/fdx_api/http/auth/tax_basic_auth.rb +50 -0
  37. data/lib/fdx_api/http/http_call_back.rb +10 -0
  38. data/lib/fdx_api/http/http_method_enum.rb +10 -0
  39. data/lib/fdx_api/http/http_request.rb +10 -0
  40. data/lib/fdx_api/http/http_response.rb +10 -0
  41. data/lib/fdx_api/http/proxy_settings.rb +13 -0
  42. data/lib/fdx_api/logging/configuration/api_logging_configuration.rb +114 -0
  43. data/lib/fdx_api/logging/sdk_logger.rb +17 -0
  44. data/lib/fdx_api/models/account_bill_pay_status.rb +32 -0
  45. data/lib/fdx_api/models/account_bill_pay_status2.rb +29 -0
  46. data/lib/fdx_api/models/account_category_type.rb +41 -0
  47. data/lib/fdx_api/models/account_contact_entity.rb +132 -0
  48. data/lib/fdx_api/models/account_contact_entity2.rb +142 -0
  49. data/lib/fdx_api/models/account_descriptor_entity.rb +253 -0
  50. data/lib/fdx_api/models/account_entity.rb +380 -0
  51. data/lib/fdx_api/models/account_holder_entity.rb +263 -0
  52. data/lib/fdx_api/models/account_holder_relationship.rb +79 -0
  53. data/lib/fdx_api/models/account_holder_relationship1.rb +79 -0
  54. data/lib/fdx_api/models/account_status.rb +41 -0
  55. data/lib/fdx_api/models/account_status2.rb +42 -0
  56. data/lib/fdx_api/models/account_type.rb +240 -0
  57. data/lib/fdx_api/models/accounts_entity.rb +109 -0
  58. data/lib/fdx_api/models/active_inactive_status.rb +23 -0
  59. data/lib/fdx_api/models/active_inactive_status2.rb +23 -0
  60. data/lib/fdx_api/models/address.rb +151 -0
  61. data/lib/fdx_api/models/an_array_of_statements.rb +105 -0
  62. data/lib/fdx_api/models/annuity_account_entity.rb +347 -0
  63. data/lib/fdx_api/models/array_of_account_payment_networks.rb +104 -0
  64. data/lib/fdx_api/models/asset_class.rb +38 -0
  65. data/lib/fdx_api/models/asset_class2.rb +38 -0
  66. data/lib/fdx_api/models/asset_transfer_network.rb +134 -0
  67. data/lib/fdx_api/models/asset_transfer_network_list.rb +85 -0
  68. data/lib/fdx_api/models/asset_transfer_type.rb +26 -0
  69. data/lib/fdx_api/models/asset_transfer_type2.rb +26 -0
  70. data/lib/fdx_api/models/availability_entity.rb +115 -0
  71. data/lib/fdx_api/models/availability_entity1.rb +115 -0
  72. data/lib/fdx_api/models/availability_list_entity.rb +85 -0
  73. data/lib/fdx_api/models/availability_status.rb +29 -0
  74. data/lib/fdx_api/models/availability_status1.rb +29 -0
  75. data/lib/fdx_api/models/availability_status3.rb +29 -0
  76. data/lib/fdx_api/models/balance_type.rb +25 -0
  77. data/lib/fdx_api/models/balance_type2.rb +24 -0
  78. data/lib/fdx_api/models/base_model.rb +110 -0
  79. data/lib/fdx_api/models/base_payroll_rate.rb +82 -0
  80. data/lib/fdx_api/models/base_payroll_rate1.rb +82 -0
  81. data/lib/fdx_api/models/basic_auth_credentials.rb +105 -0
  82. data/lib/fdx_api/models/basic_auth_credentials1.rb +105 -0
  83. data/lib/fdx_api/models/basic_auth_for_qr.rb +96 -0
  84. data/lib/fdx_api/models/bills_entity.rb +201 -0
  85. data/lib/fdx_api/models/branch_entity.rb +116 -0
  86. data/lib/fdx_api/models/branch_entity1.rb +126 -0
  87. data/lib/fdx_api/models/business_customer_entity.rb +136 -0
  88. data/lib/fdx_api/models/business_income_statement.rb +604 -0
  89. data/lib/fdx_api/models/business_name.rb +85 -0
  90. data/lib/fdx_api/models/business_or_consumer_type.rb +23 -0
  91. data/lib/fdx_api/models/business_or_consumer_type1.rb +23 -0
  92. data/lib/fdx_api/models/call_type.rb +29 -0
  93. data/lib/fdx_api/models/call_type2.rb +29 -0
  94. data/lib/fdx_api/models/capability_entity.rb +139 -0
  95. data/lib/fdx_api/models/card_art_entity.rb +91 -0
  96. data/lib/fdx_api/models/card_art_entity2.rb +101 -0
  97. data/lib/fdx_api/models/certification_metric_entity.rb +172 -0
  98. data/lib/fdx_api/models/certification_metrics_entity.rb +84 -0
  99. data/lib/fdx_api/models/code_and_amount.rb +85 -0
  100. data/lib/fdx_api/models/commercial_account_entity.rb +457 -0
  101. data/lib/fdx_api/models/commercial_balance_entity.rb +106 -0
  102. data/lib/fdx_api/models/commercial_code_entity.rb +91 -0
  103. data/lib/fdx_api/models/commercial_code_entity1.rb +96 -0
  104. data/lib/fdx_api/models/commercial_transaction_entity.rb +286 -0
  105. data/lib/fdx_api/models/compounding_period.rb +38 -0
  106. data/lib/fdx_api/models/compounding_period2.rb +38 -0
  107. data/lib/fdx_api/models/consent_duration_type.rb +26 -0
  108. data/lib/fdx_api/models/consent_grant_entity.rb +232 -0
  109. data/lib/fdx_api/models/consent_grant_resource_entity.rb +92 -0
  110. data/lib/fdx_api/models/consent_grant_status.rb +26 -0
  111. data/lib/fdx_api/models/consent_grant_status1.rb +26 -0
  112. data/lib/fdx_api/models/consent_grant_status3.rb +26 -0
  113. data/lib/fdx_api/models/consent_request_entity.rb +121 -0
  114. data/lib/fdx_api/models/consent_requested_resource_entity.rb +82 -0
  115. data/lib/fdx_api/models/consent_resource_type.rb +27 -0
  116. data/lib/fdx_api/models/consent_resource_type1.rb +26 -0
  117. data/lib/fdx_api/models/consent_resource_type3.rb +26 -0
  118. data/lib/fdx_api/models/consent_revocation_entity.rb +114 -0
  119. data/lib/fdx_api/models/consent_revocation_list_entity.rb +85 -0
  120. data/lib/fdx_api/models/consent_revocation_request_entity.rb +85 -0
  121. data/lib/fdx_api/models/consent_update_reason.rb +23 -0
  122. data/lib/fdx_api/models/consent_update_reason1.rb +23 -0
  123. data/lib/fdx_api/models/contact_preferences_type.rb +32 -0
  124. data/lib/fdx_api/models/contact_preferences_type2.rb +32 -0
  125. data/lib/fdx_api/models/contacts_entity.rb +113 -0
  126. data/lib/fdx_api/models/content_types.rb +38 -0
  127. data/lib/fdx_api/models/contribution_entity.rb +275 -0
  128. data/lib/fdx_api/models/coupon_mature_frequency.rb +32 -0
  129. data/lib/fdx_api/models/coupon_mature_frequency2.rb +32 -0
  130. data/lib/fdx_api/models/coverage_month.rb +56 -0
  131. data/lib/fdx_api/models/coverage_month1.rb +56 -0
  132. data/lib/fdx_api/models/coverage_month3.rb +56 -0
  133. data/lib/fdx_api/models/cryptocurrency_tax_statement_list.rb +239 -0
  134. data/lib/fdx_api/models/cryptocurrency_tax_statement_list1.rb +239 -0
  135. data/lib/fdx_api/models/currency_entity.rb +98 -0
  136. data/lib/fdx_api/models/currency_entity1.rb +108 -0
  137. data/lib/fdx_api/models/currency_entity2.rb +108 -0
  138. data/lib/fdx_api/models/currency_entity4.rb +108 -0
  139. data/lib/fdx_api/models/customer_entity.rb +241 -0
  140. data/lib/fdx_api/models/customer_name_entity.rb +134 -0
  141. data/lib/fdx_api/models/customer_name_entity1.rb +134 -0
  142. data/lib/fdx_api/models/customer_to_account_relationship_entity.rb +114 -0
  143. data/lib/fdx_api/models/customers_entity.rb +104 -0
  144. data/lib/fdx_api/models/data_cluster.rb +63 -0
  145. data/lib/fdx_api/models/date_and_amount.rb +95 -0
  146. data/lib/fdx_api/models/debit_credit_memo.rb +26 -0
  147. data/lib/fdx_api/models/debit_credit_memo2.rb +26 -0
  148. data/lib/fdx_api/models/debt_class.rb +29 -0
  149. data/lib/fdx_api/models/debt_class2.rb +29 -0
  150. data/lib/fdx_api/models/debt_security_entity.rb +209 -0
  151. data/lib/fdx_api/models/debt_type.rb +23 -0
  152. data/lib/fdx_api/models/debt_type2.rb +23 -0
  153. data/lib/fdx_api/models/delivery_address.rb +160 -0
  154. data/lib/fdx_api/models/delivery_address1.rb +150 -0
  155. data/lib/fdx_api/models/delivery_address_type.rb +29 -0
  156. data/lib/fdx_api/models/deposit_account_entity.rb +335 -0
  157. data/lib/fdx_api/models/deposit_transaction_entity.rb +223 -0
  158. data/lib/fdx_api/models/deposit_transaction_type.rb +59 -0
  159. data/lib/fdx_api/models/deposit_transaction_type2.rb +61 -0
  160. data/lib/fdx_api/models/description_and_amount.rb +85 -0
  161. data/lib/fdx_api/models/digital_wallet_account_entity.rb +316 -0
  162. data/lib/fdx_api/models/digital_wallet_transaction_entity.rb +213 -0
  163. data/lib/fdx_api/models/digital_wallet_transaction_type.rb +59 -0
  164. data/lib/fdx_api/models/digital_wallet_transaction_type2.rb +61 -0
  165. data/lib/fdx_api/models/direct_deposit_entity.rb +98 -0
  166. data/lib/fdx_api/models/document_status.rb +26 -0
  167. data/lib/fdx_api/models/document_status2.rb +26 -0
  168. data/lib/fdx_api/models/domicile_entity.rb +95 -0
  169. data/lib/fdx_api/models/domicile_entity1.rb +95 -0
  170. data/lib/fdx_api/models/electronic_address_entity.rb +87 -0
  171. data/lib/fdx_api/models/employee_entity.rb +175 -0
  172. data/lib/fdx_api/models/employee_entity1.rb +175 -0
  173. data/lib/fdx_api/models/employer_entity.rb +125 -0
  174. data/lib/fdx_api/models/employer_entity1.rb +125 -0
  175. data/lib/fdx_api/models/employment.rb +149 -0
  176. data/lib/fdx_api/models/employment1.rb +149 -0
  177. data/lib/fdx_api/models/employment_type.rb +36 -0
  178. data/lib/fdx_api/models/employment_type2.rb +36 -0
  179. data/lib/fdx_api/models/error1.rb +113 -0
  180. data/lib/fdx_api/models/expired_option_type.rb +23 -0
  181. data/lib/fdx_api/models/expired_option_type2.rb +24 -0
  182. data/lib/fdx_api/models/external_account_id_scheme_entity.rb +85 -0
  183. data/lib/fdx_api/models/external_financial_institution_id_scheme_entity.rb +85 -0
  184. data/lib/fdx_api/models/farm_income_statement.rb +628 -0
  185. data/lib/fdx_api/models/farm_rental_income_statement.rb +586 -0
  186. data/lib/fdx_api/models/fdx_api_actor_type.rb +24 -0
  187. data/lib/fdx_api/models/fdx_jwt_profile.rb +171 -0
  188. data/lib/fdx_api/models/fdx_oauth_token_introspection_response.rb +180 -0
  189. data/lib/fdx_api/models/fdx_resource_operation_id.rb +227 -0
  190. data/lib/fdx_api/models/fdx_resource_operation_id1.rb +227 -0
  191. data/lib/fdx_api/models/fdx_resource_operation_id3.rb +227 -0
  192. data/lib/fdx_api/models/fdx_version.rb +119 -0
  193. data/lib/fdx_api/models/fi_attribute_entity.rb +95 -0
  194. data/lib/fdx_api/models/fi_portion_entity.rb +95 -0
  195. data/lib/fdx_api/models/financial_institution_entity.rb +116 -0
  196. data/lib/fdx_api/models/financial_institution_entity2.rb +116 -0
  197. data/lib/fdx_api/models/form1041_k1.rb +572 -0
  198. data/lib/fdx_api/models/form1041_k11.rb +570 -0
  199. data/lib/fdx_api/models/form1042_s.rb +541 -0
  200. data/lib/fdx_api/models/form1042_s1.rb +539 -0
  201. data/lib/fdx_api/models/form1042_s_agent.rb +207 -0
  202. data/lib/fdx_api/models/form1042_s_agent1.rb +196 -0
  203. data/lib/fdx_api/models/form1042_s_agent2.rb +196 -0
  204. data/lib/fdx_api/models/form1042_s_agent3.rb +196 -0
  205. data/lib/fdx_api/models/form1042_s_agent4.rb +196 -0
  206. data/lib/fdx_api/models/form1042_s_recipient.rb +216 -0
  207. data/lib/fdx_api/models/form1042_s_recipient1.rb +216 -0
  208. data/lib/fdx_api/models/form1065_k1.rb +1177 -0
  209. data/lib/fdx_api/models/form1065_k11.rb +1176 -0
  210. data/lib/fdx_api/models/form1095_a.rb +364 -0
  211. data/lib/fdx_api/models/form1095_a1.rb +364 -0
  212. data/lib/fdx_api/models/form1095_b.rb +281 -0
  213. data/lib/fdx_api/models/form1095_b1.rb +280 -0
  214. data/lib/fdx_api/models/form1095_c.rb +294 -0
  215. data/lib/fdx_api/models/form1095_c1.rb +293 -0
  216. data/lib/fdx_api/models/form1097_btc.rb +314 -0
  217. data/lib/fdx_api/models/form1097_btc1.rb +313 -0
  218. data/lib/fdx_api/models/form1098.rb +388 -0
  219. data/lib/fdx_api/models/form10981.rb +387 -0
  220. data/lib/fdx_api/models/form1098_c.rb +421 -0
  221. data/lib/fdx_api/models/form1098_c1.rb +420 -0
  222. data/lib/fdx_api/models/form1098_e.rb +255 -0
  223. data/lib/fdx_api/models/form1098_e1.rb +254 -0
  224. data/lib/fdx_api/models/form1098_ma.rb +276 -0
  225. data/lib/fdx_api/models/form1098_ma1.rb +275 -0
  226. data/lib/fdx_api/models/form1098_q.rb +338 -0
  227. data/lib/fdx_api/models/form1098_q1.rb +337 -0
  228. data/lib/fdx_api/models/form1098_t.rb +338 -0
  229. data/lib/fdx_api/models/form1098_t1.rb +337 -0
  230. data/lib/fdx_api/models/form1099_a.rb +289 -0
  231. data/lib/fdx_api/models/form1099_a1.rb +288 -0
  232. data/lib/fdx_api/models/form1099_b.rb +368 -0
  233. data/lib/fdx_api/models/form1099_b1.rb +367 -0
  234. data/lib/fdx_api/models/form1099_c.rb +310 -0
  235. data/lib/fdx_api/models/form1099_c1.rb +309 -0
  236. data/lib/fdx_api/models/form1099_cap.rb +274 -0
  237. data/lib/fdx_api/models/form1099_cap1.rb +273 -0
  238. data/lib/fdx_api/models/form1099_consolidated_statement.rb +327 -0
  239. data/lib/fdx_api/models/form1099_consolidated_statement1.rb +325 -0
  240. data/lib/fdx_api/models/form1099_div.rb +538 -0
  241. data/lib/fdx_api/models/form1099_div1.rb +537 -0
  242. data/lib/fdx_api/models/form1099_g.rb +363 -0
  243. data/lib/fdx_api/models/form1099_g1.rb +362 -0
  244. data/lib/fdx_api/models/form1099_h.rb +263 -0
  245. data/lib/fdx_api/models/form1099_h1.rb +262 -0
  246. data/lib/fdx_api/models/form1099_int.rb +488 -0
  247. data/lib/fdx_api/models/form1099_int1.rb +487 -0
  248. data/lib/fdx_api/models/form1099_k.rb +413 -0
  249. data/lib/fdx_api/models/form1099_k1.rb +412 -0
  250. data/lib/fdx_api/models/form1099_ls.rb +274 -0
  251. data/lib/fdx_api/models/form1099_ls1.rb +273 -0
  252. data/lib/fdx_api/models/form1099_ltc.rb +339 -0
  253. data/lib/fdx_api/models/form1099_ltc1.rb +338 -0
  254. data/lib/fdx_api/models/form1099_misc.rb +438 -0
  255. data/lib/fdx_api/models/form1099_misc1.rb +437 -0
  256. data/lib/fdx_api/models/form1099_nec.rb +301 -0
  257. data/lib/fdx_api/models/form1099_nec1.rb +300 -0
  258. data/lib/fdx_api/models/form1099_oid.rb +431 -0
  259. data/lib/fdx_api/models/form1099_oid1.rb +430 -0
  260. data/lib/fdx_api/models/form1099_patr.rb +421 -0
  261. data/lib/fdx_api/models/form1099_patr1.rb +420 -0
  262. data/lib/fdx_api/models/form1099_q.rb +335 -0
  263. data/lib/fdx_api/models/form1099_q1.rb +334 -0
  264. data/lib/fdx_api/models/form1099_qa.rb +295 -0
  265. data/lib/fdx_api/models/form1099_qa1.rb +294 -0
  266. data/lib/fdx_api/models/form1099_r.rb +475 -0
  267. data/lib/fdx_api/models/form1099_r1.rb +474 -0
  268. data/lib/fdx_api/models/form1099_s.rb +306 -0
  269. data/lib/fdx_api/models/form1099_s1.rb +305 -0
  270. data/lib/fdx_api/models/form1099_sa.rb +306 -0
  271. data/lib/fdx_api/models/form1099_sa1.rb +305 -0
  272. data/lib/fdx_api/models/form1099_sb.rb +267 -0
  273. data/lib/fdx_api/models/form1099_sb1.rb +266 -0
  274. data/lib/fdx_api/models/form1120_sk1.rb +670 -0
  275. data/lib/fdx_api/models/form1120_sk11.rb +669 -0
  276. data/lib/fdx_api/models/form2439.rb +306 -0
  277. data/lib/fdx_api/models/form24391.rb +305 -0
  278. data/lib/fdx_api/models/form3921.rb +298 -0
  279. data/lib/fdx_api/models/form39211.rb +297 -0
  280. data/lib/fdx_api/models/form3922.rb +327 -0
  281. data/lib/fdx_api/models/form39221.rb +326 -0
  282. data/lib/fdx_api/models/form5498.rb +486 -0
  283. data/lib/fdx_api/models/form54981.rb +485 -0
  284. data/lib/fdx_api/models/form5498_esa.rb +258 -0
  285. data/lib/fdx_api/models/form5498_esa1.rb +257 -0
  286. data/lib/fdx_api/models/form5498_qa.rb +311 -0
  287. data/lib/fdx_api/models/form5498_qa1.rb +310 -0
  288. data/lib/fdx_api/models/form5498_sa.rb +321 -0
  289. data/lib/fdx_api/models/form5498_sa1.rb +320 -0
  290. data/lib/fdx_api/models/form_w2.rb +459 -0
  291. data/lib/fdx_api/models/form_w21.rb +458 -0
  292. data/lib/fdx_api/models/form_w22.rb +458 -0
  293. data/lib/fdx_api/models/form_w24.rb +458 -0
  294. data/lib/fdx_api/models/form_w2_c.rb +276 -0
  295. data/lib/fdx_api/models/form_w2_c2.rb +275 -0
  296. data/lib/fdx_api/models/form_w2_g.rb +354 -0
  297. data/lib/fdx_api/models/form_w2_g2.rb +353 -0
  298. data/lib/fdx_api/models/gain_or_loss_from_cryptocurrency_transaction.rb +173 -0
  299. data/lib/fdx_api/models/generic_account_identification_entity.rb +107 -0
  300. data/lib/fdx_api/models/generic_financial_institution_id_entity.rb +107 -0
  301. data/lib/fdx_api/models/government_issued_id_type.rb +23 -0
  302. data/lib/fdx_api/models/government_issued_id_type2.rb +23 -0
  303. data/lib/fdx_api/models/government_issued_party_identification_entity.rb +118 -0
  304. data/lib/fdx_api/models/hateoas_link.rb +119 -0
  305. data/lib/fdx_api/models/health_insurance_coverage.rb +115 -0
  306. data/lib/fdx_api/models/health_insurance_covered_individual.rb +118 -0
  307. data/lib/fdx_api/models/health_insurance_marketplace_covered_individual.rb +119 -0
  308. data/lib/fdx_api/models/held_in_account.rb +29 -0
  309. data/lib/fdx_api/models/held_in_account2.rb +29 -0
  310. data/lib/fdx_api/models/holding_entity.rb +448 -0
  311. data/lib/fdx_api/models/holding_sub_type.rb +23 -0
  312. data/lib/fdx_api/models/holding_sub_type2.rb +23 -0
  313. data/lib/fdx_api/models/holding_type.rb +51 -0
  314. data/lib/fdx_api/models/holding_type2.rb +41 -0
  315. data/lib/fdx_api/models/http_action_type.rb +32 -0
  316. data/lib/fdx_api/models/iban2007_identifier_entity.rb +86 -0
  317. data/lib/fdx_api/models/income.rb +124 -0
  318. data/lib/fdx_api/models/income_type.rb +26 -0
  319. data/lib/fdx_api/models/income_type2.rb +27 -0
  320. data/lib/fdx_api/models/incoming_and_outgoing_transfer_limits.rb +85 -0
  321. data/lib/fdx_api/models/incoming_and_outgoing_transfer_limits2.rb +85 -0
  322. data/lib/fdx_api/models/individual_name.rb +115 -0
  323. data/lib/fdx_api/models/industry_classification_system.rb +38 -0
  324. data/lib/fdx_api/models/industry_code.rb +95 -0
  325. data/lib/fdx_api/models/insurance_account_entity.rb +326 -0
  326. data/lib/fdx_api/models/insurance_transaction_entity.rb +201 -0
  327. data/lib/fdx_api/models/insurance_transaction_type.rb +29 -0
  328. data/lib/fdx_api/models/interest_rate_type.rb +23 -0
  329. data/lib/fdx_api/models/interest_rate_type2.rb +23 -0
  330. data/lib/fdx_api/models/intermediary.rb +139 -0
  331. data/lib/fdx_api/models/investment401_k_source_type.rb +38 -0
  332. data/lib/fdx_api/models/investment401_k_source_type1.rb +40 -0
  333. data/lib/fdx_api/models/investment401_k_source_type2.rb +39 -0
  334. data/lib/fdx_api/models/investment401_k_source_type4.rb +39 -0
  335. data/lib/fdx_api/models/investment_account_entity.rb +548 -0
  336. data/lib/fdx_api/models/investment_balance_entity.rb +138 -0
  337. data/lib/fdx_api/models/investment_balance_type.rb +23 -0
  338. data/lib/fdx_api/models/investment_balance_type2.rb +23 -0
  339. data/lib/fdx_api/models/investment_loan_entity.rb +261 -0
  340. data/lib/fdx_api/models/investment_sale_type.rb +38 -0
  341. data/lib/fdx_api/models/investment_transaction_entity.rb +669 -0
  342. data/lib/fdx_api/models/investment_transaction_type.rb +155 -0
  343. data/lib/fdx_api/models/investment_transaction_type2.rb +161 -0
  344. data/lib/fdx_api/models/investment_transfer_action_direction.rb +23 -0
  345. data/lib/fdx_api/models/investment_transfer_action_direction2.rb +23 -0
  346. data/lib/fdx_api/models/iso3166_country_code.rb +764 -0
  347. data/lib/fdx_api/models/iso3166_country_code1.rb +764 -0
  348. data/lib/fdx_api/models/iso3166_country_code2.rb +764 -0
  349. data/lib/fdx_api/models/iso4217_currency_code.rb +560 -0
  350. data/lib/fdx_api/models/iso4217_currency_code1.rb +560 -0
  351. data/lib/fdx_api/models/iso4217_currency_code2.rb +560 -0
  352. data/lib/fdx_api/models/iso93622014_business_identifier_code_entity.rb +93 -0
  353. data/lib/fdx_api/models/iso93622022_business_identifier_code_entity.rb +91 -0
  354. data/lib/fdx_api/models/line_item_entity.rb +156 -0
  355. data/lib/fdx_api/models/line_of_credit_account_entity.rb +474 -0
  356. data/lib/fdx_api/models/line_of_credit_transaction_entity.rb +223 -0
  357. data/lib/fdx_api/models/line_of_credit_transaction_type.rb +38 -0
  358. data/lib/fdx_api/models/line_of_credit_transaction_type2.rb +38 -0
  359. data/lib/fdx_api/models/loan_account_entity.rb +432 -0
  360. data/lib/fdx_api/models/loan_payment_frequency.rb +47 -0
  361. data/lib/fdx_api/models/loan_payment_frequency2.rb +48 -0
  362. data/lib/fdx_api/models/loan_transaction_entity.rb +212 -0
  363. data/lib/fdx_api/models/loan_transaction_type.rb +49 -0
  364. data/lib/fdx_api/models/loan_transaction_type2.rb +41 -0
  365. data/lib/fdx_api/models/local_tax_withholding.rb +96 -0
  366. data/lib/fdx_api/models/local_tax_withholding1.rb +96 -0
  367. data/lib/fdx_api/models/merchant_entity.rb +159 -0
  368. data/lib/fdx_api/models/merchant_entity1.rb +159 -0
  369. data/lib/fdx_api/models/merchant_for_update_entity.rb +118 -0
  370. data/lib/fdx_api/models/merchant_for_update_entity1.rb +118 -0
  371. data/lib/fdx_api/models/message_format.rb +20 -0
  372. data/lib/fdx_api/models/message_format2.rb +20 -0
  373. data/lib/fdx_api/models/monetary_amount.rb +84 -0
  374. data/lib/fdx_api/models/monetary_amount1.rb +84 -0
  375. data/lib/fdx_api/models/monetary_amount2.rb +84 -0
  376. data/lib/fdx_api/models/monetary_amount3.rb +84 -0
  377. data/lib/fdx_api/models/monetary_amount4.rb +84 -0
  378. data/lib/fdx_api/models/monetary_amount5.rb +84 -0
  379. data/lib/fdx_api/models/monetary_amount6.rb +84 -0
  380. data/lib/fdx_api/models/month_abbreviation.rb +53 -0
  381. data/lib/fdx_api/models/month_abbreviation1.rb +53 -0
  382. data/lib/fdx_api/models/month_and_amount.rb +85 -0
  383. data/lib/fdx_api/models/mutual_fund_security_entity.rb +161 -0
  384. data/lib/fdx_api/models/mutual_fund_type.rb +26 -0
  385. data/lib/fdx_api/models/mutual_fund_type2.rb +26 -0
  386. data/lib/fdx_api/models/name_address_and_phone.rb +171 -0
  387. data/lib/fdx_api/models/name_address_and_phone1.rb +171 -0
  388. data/lib/fdx_api/models/name_and_address.rb +159 -0
  389. data/lib/fdx_api/models/notification_category.rb +32 -0
  390. data/lib/fdx_api/models/notification_category1.rb +32 -0
  391. data/lib/fdx_api/models/notification_entity.rb +169 -0
  392. data/lib/fdx_api/models/notification_payload_entity.rb +95 -0
  393. data/lib/fdx_api/models/notification_payload_entity2.rb +95 -0
  394. data/lib/fdx_api/models/notification_payload_id_type.rb +32 -0
  395. data/lib/fdx_api/models/notification_payload_id_type2.rb +32 -0
  396. data/lib/fdx_api/models/notification_priority.rb +26 -0
  397. data/lib/fdx_api/models/notification_priority2.rb +26 -0
  398. data/lib/fdx_api/models/notification_severity.rb +32 -0
  399. data/lib/fdx_api/models/notification_severity2.rb +32 -0
  400. data/lib/fdx_api/models/notification_subscription_entity.rb +123 -0
  401. data/lib/fdx_api/models/notification_type.rb +38 -0
  402. data/lib/fdx_api/models/notifications_entity.rb +104 -0
  403. data/lib/fdx_api/models/occurrence_based_limits_for_a_payment_network.rb +95 -0
  404. data/lib/fdx_api/models/occurrence_based_limits_for_a_payment_network2.rb +94 -0
  405. data/lib/fdx_api/models/offer_of_health_insurance_coverage.rb +119 -0
  406. data/lib/fdx_api/models/open_order_entity.rb +231 -0
  407. data/lib/fdx_api/models/operation_entity.rb +150 -0
  408. data/lib/fdx_api/models/option_security_entity.rb +135 -0
  409. data/lib/fdx_api/models/option_type.rb +23 -0
  410. data/lib/fdx_api/models/option_type2.rb +23 -0
  411. data/lib/fdx_api/models/order_duration.rb +26 -0
  412. data/lib/fdx_api/models/order_duration2.rb +26 -0
  413. data/lib/fdx_api/models/order_type.rb +41 -0
  414. data/lib/fdx_api/models/order_type2.rb +42 -0
  415. data/lib/fdx_api/models/organization_name_entity.rb +87 -0
  416. data/lib/fdx_api/models/other_monetary_amount.rb +94 -0
  417. data/lib/fdx_api/models/other_security_entity.rb +94 -0
  418. data/lib/fdx_api/models/page_metadata.rb +108 -0
  419. data/lib/fdx_api/models/page_metadata_links.rb +95 -0
  420. data/lib/fdx_api/models/page_metadata_links1.rb +85 -0
  421. data/lib/fdx_api/models/party_entity.rb +139 -0
  422. data/lib/fdx_api/models/party_group_entity.rb +86 -0
  423. data/lib/fdx_api/models/party_status.rb +33 -0
  424. data/lib/fdx_api/models/party_status1.rb +29 -0
  425. data/lib/fdx_api/models/party_status3.rb +29 -0
  426. data/lib/fdx_api/models/party_type.rb +35 -0
  427. data/lib/fdx_api/models/party_type1.rb +35 -0
  428. data/lib/fdx_api/models/party_type2.rb +35 -0
  429. data/lib/fdx_api/models/payee_entity.rb +75 -0
  430. data/lib/fdx_api/models/payee_for_update_entity.rb +74 -0
  431. data/lib/fdx_api/models/payee_for_update_entity1.rb +74 -0
  432. data/lib/fdx_api/models/payees_entity.rb +113 -0
  433. data/lib/fdx_api/models/payment_amounts.rb +133 -0
  434. data/lib/fdx_api/models/payment_amounts1.rb +92 -0
  435. data/lib/fdx_api/models/payment_amounts2.rb +133 -0
  436. data/lib/fdx_api/models/payment_amounts3.rb +92 -0
  437. data/lib/fdx_api/models/payment_delivery_address_entity.rb +99 -0
  438. data/lib/fdx_api/models/payment_details_entity.rb +142 -0
  439. data/lib/fdx_api/models/payment_entity.rb +262 -0
  440. data/lib/fdx_api/models/payment_for_update_entity.rb +113 -0
  441. data/lib/fdx_api/models/payment_for_update_entity1.rb +113 -0
  442. data/lib/fdx_api/models/payment_for_update_entity2.rb +113 -0
  443. data/lib/fdx_api/models/payment_frequency.rb +38 -0
  444. data/lib/fdx_api/models/payment_frequency1.rb +38 -0
  445. data/lib/fdx_api/models/payment_frequency3.rb +38 -0
  446. data/lib/fdx_api/models/payment_generic_account_entity.rb +138 -0
  447. data/lib/fdx_api/models/payment_generic_account_entity1.rb +138 -0
  448. data/lib/fdx_api/models/payment_generic_account_entity2.rb +138 -0
  449. data/lib/fdx_api/models/payment_initiation_parties_entity.rb +108 -0
  450. data/lib/fdx_api/models/payment_initiation_party_contact_method_entity.rb +97 -0
  451. data/lib/fdx_api/models/payment_initiation_party_create_response_entity.rb +85 -0
  452. data/lib/fdx_api/models/payment_initiation_party_entity.rb +292 -0
  453. data/lib/fdx_api/models/payment_initiation_party_method_create_response_entity.rb +78 -0
  454. data/lib/fdx_api/models/payment_initiation_party_name_entity.rb +98 -0
  455. data/lib/fdx_api/models/payment_initiation_party_name_entity1.rb +97 -0
  456. data/lib/fdx_api/models/payment_initiation_party_name_entity3.rb +97 -0
  457. data/lib/fdx_api/models/payment_initiation_party_summary_entity.rb +90 -0
  458. data/lib/fdx_api/models/payment_initiation_party_to_payment_method_entity.rb +130 -0
  459. data/lib/fdx_api/models/payment_method_credit_account_entity.rb +111 -0
  460. data/lib/fdx_api/models/payment_method_debit_account_entity.rb +100 -0
  461. data/lib/fdx_api/models/payment_method_entity.rb +139 -0
  462. data/lib/fdx_api/models/payment_method_entity2.rb +149 -0
  463. data/lib/fdx_api/models/payment_method_id.rb +96 -0
  464. data/lib/fdx_api/models/payment_method_system_code.rb +90 -0
  465. data/lib/fdx_api/models/payment_method_system_proprietary.rb +85 -0
  466. data/lib/fdx_api/models/payment_network_identifier_type.rb +23 -0
  467. data/lib/fdx_api/models/payment_network_identifier_type1.rb +23 -0
  468. data/lib/fdx_api/models/payment_network_identifier_type3.rb +23 -0
  469. data/lib/fdx_api/models/payment_network_supported_by_account.rb +161 -0
  470. data/lib/fdx_api/models/payment_network_type.rb +43 -0
  471. data/lib/fdx_api/models/payment_network_type2.rb +39 -0
  472. data/lib/fdx_api/models/payment_status.rb +41 -0
  473. data/lib/fdx_api/models/payment_status1.rb +35 -0
  474. data/lib/fdx_api/models/payment_status3.rb +35 -0
  475. data/lib/fdx_api/models/payments_entity.rb +113 -0
  476. data/lib/fdx_api/models/payout_mode.rb +41 -0
  477. data/lib/fdx_api/models/payout_mode2.rb +38 -0
  478. data/lib/fdx_api/models/payout_type.rb +26 -0
  479. data/lib/fdx_api/models/payout_type2.rb +23 -0
  480. data/lib/fdx_api/models/payroll_frequency_type.rb +50 -0
  481. data/lib/fdx_api/models/payroll_frequency_type2.rb +50 -0
  482. data/lib/fdx_api/models/payroll_rate_type.rb +29 -0
  483. data/lib/fdx_api/models/payroll_rate_type2.rb +29 -0
  484. data/lib/fdx_api/models/payroll_report_entity.rb +162 -0
  485. data/lib/fdx_api/models/payroll_report_list_entity.rb +103 -0
  486. data/lib/fdx_api/models/payroll_report_summary_entity.rb +160 -0
  487. data/lib/fdx_api/models/payroll_report_type.rb +24 -0
  488. data/lib/fdx_api/models/payroll_report_type1.rb +23 -0
  489. data/lib/fdx_api/models/pension_source_entity.rb +136 -0
  490. data/lib/fdx_api/models/period_certain_type.rb +36 -0
  491. data/lib/fdx_api/models/period_certain_type2.rb +33 -0
  492. data/lib/fdx_api/models/planned_availability_entity.rb +122 -0
  493. data/lib/fdx_api/models/policy_premium_term_type.rb +23 -0
  494. data/lib/fdx_api/models/policy_premium_term_type2.rb +23 -0
  495. data/lib/fdx_api/models/policy_product_type.rb +26 -0
  496. data/lib/fdx_api/models/policy_product_type2.rb +23 -0
  497. data/lib/fdx_api/models/policy_status.rb +52 -0
  498. data/lib/fdx_api/models/policy_status2.rb +41 -0
  499. data/lib/fdx_api/models/portion_entity.rb +95 -0
  500. data/lib/fdx_api/models/position_type.rb +23 -0
  501. data/lib/fdx_api/models/position_type1.rb +23 -0
  502. data/lib/fdx_api/models/proprietary_account_id_scheme_entity.rb +88 -0
  503. data/lib/fdx_api/models/proprietary_financial_institution_id_scheme_entity.rb +86 -0
  504. data/lib/fdx_api/models/recipient_provider.rb +293 -0
  505. data/lib/fdx_api/models/recipient_record_at_ecosystem_registry.rb +223 -0
  506. data/lib/fdx_api/models/recipient_records_at_ecosystem_registry.rb +105 -0
  507. data/lib/fdx_api/models/recipient_request.rb +214 -0
  508. data/lib/fdx_api/models/recurring_payment_duration_entity.rb +86 -0
  509. data/lib/fdx_api/models/recurring_payment_duration_entity2.rb +86 -0
  510. data/lib/fdx_api/models/recurring_payment_duration_type.rb +24 -0
  511. data/lib/fdx_api/models/recurring_payment_duration_type2.rb +23 -0
  512. data/lib/fdx_api/models/recurring_payment_entity.rb +231 -0
  513. data/lib/fdx_api/models/recurring_payment_for_update_entity.rb +133 -0
  514. data/lib/fdx_api/models/recurring_payment_for_update_entity1.rb +132 -0
  515. data/lib/fdx_api/models/recurring_payment_for_update_entity2.rb +132 -0
  516. data/lib/fdx_api/models/recurring_payment_frequency.rb +46 -0
  517. data/lib/fdx_api/models/recurring_payment_frequency2.rb +44 -0
  518. data/lib/fdx_api/models/recurring_payment_status.rb +33 -0
  519. data/lib/fdx_api/models/recurring_payment_status2.rb +29 -0
  520. data/lib/fdx_api/models/recurring_payments_entity.rb +113 -0
  521. data/lib/fdx_api/models/registry.rb +30 -0
  522. data/lib/fdx_api/models/registry_reference.rb +102 -0
  523. data/lib/fdx_api/models/rental_income_statement.rb +424 -0
  524. data/lib/fdx_api/models/resource_entity.rb +114 -0
  525. data/lib/fdx_api/models/resource_list_entity.rb +104 -0
  526. data/lib/fdx_api/models/resource_status.rb +26 -0
  527. data/lib/fdx_api/models/resource_status2.rb +26 -0
  528. data/lib/fdx_api/models/result_type.rb +26 -0
  529. data/lib/fdx_api/models/reward_balance_entity.rb +144 -0
  530. data/lib/fdx_api/models/reward_categories_entity.rb +104 -0
  531. data/lib/fdx_api/models/reward_category_entity.rb +136 -0
  532. data/lib/fdx_api/models/reward_program_entity.rb +136 -0
  533. data/lib/fdx_api/models/reward_program_membership_entity.rb +147 -0
  534. data/lib/fdx_api/models/reward_programs_entity.rb +104 -0
  535. data/lib/fdx_api/models/reward_type.rb +30 -0
  536. data/lib/fdx_api/models/reward_type2.rb +26 -0
  537. data/lib/fdx_api/models/royalty_income_statement.rb +424 -0
  538. data/lib/fdx_api/models/sale_proceeds_type.rb +23 -0
  539. data/lib/fdx_api/models/sale_proceeds_type2.rb +23 -0
  540. data/lib/fdx_api/models/secured.rb +23 -0
  541. data/lib/fdx_api/models/secured2.rb +23 -0
  542. data/lib/fdx_api/models/security_category.rb +35 -0
  543. data/lib/fdx_api/models/security_detail_irs_form1099_b.rb +390 -0
  544. data/lib/fdx_api/models/security_entity.rb +96 -0
  545. data/lib/fdx_api/models/security_id_entity.rb +95 -0
  546. data/lib/fdx_api/models/security_id_type.rb +60 -0
  547. data/lib/fdx_api/models/security_id_type1.rb +50 -0
  548. data/lib/fdx_api/models/security_type.rb +51 -0
  549. data/lib/fdx_api/models/security_type2.rb +41 -0
  550. data/lib/fdx_api/models/state_and_local_tax_withholding.rb +95 -0
  551. data/lib/fdx_api/models/state_and_local_tax_withholding1.rb +95 -0
  552. data/lib/fdx_api/models/state_and_local_tax_withholding2.rb +95 -0
  553. data/lib/fdx_api/models/state_code.rb +203 -0
  554. data/lib/fdx_api/models/state_tax_withholding.rb +95 -0
  555. data/lib/fdx_api/models/state_tax_withholding2.rb +95 -0
  556. data/lib/fdx_api/models/statement_entity.rb +135 -0
  557. data/lib/fdx_api/models/stock_security_entity.rb +147 -0
  558. data/lib/fdx_api/models/stock_type.rb +29 -0
  559. data/lib/fdx_api/models/stock_type2.rb +29 -0
  560. data/lib/fdx_api/models/sub_account_type.rb +29 -0
  561. data/lib/fdx_api/models/sub_account_type1.rb +29 -0
  562. data/lib/fdx_api/models/sub_account_type2.rb +29 -0
  563. data/lib/fdx_api/models/sub_account_type4.rb +29 -0
  564. data/lib/fdx_api/models/supplemental_status.rb +44 -0
  565. data/lib/fdx_api/models/supplemental_status2.rb +44 -0
  566. data/lib/fdx_api/models/suspected_fraud_incident_entity.rb +133 -0
  567. data/lib/fdx_api/models/sweep_security_entity.rb +135 -0
  568. data/lib/fdx_api/models/synchronizable_array_entity.rb +96 -0
  569. data/lib/fdx_api/models/synchronizable_array_links_entity.rb +95 -0
  570. data/lib/fdx_api/models/synchronizable_array_links_entity2.rb +95 -0
  571. data/lib/fdx_api/models/tax.rb +218 -0
  572. data/lib/fdx_api/models/tax_data.rb +653 -0
  573. data/lib/fdx_api/models/tax_data_for_qr.rb +675 -0
  574. data/lib/fdx_api/models/tax_form_attribute.rb +106 -0
  575. data/lib/fdx_api/models/tax_lot_entity.rb +140 -0
  576. data/lib/fdx_api/models/tax_party.rb +138 -0
  577. data/lib/fdx_api/models/tax_party1.rb +140 -0
  578. data/lib/fdx_api/models/tax_party2.rb +138 -0
  579. data/lib/fdx_api/models/tax_party3.rb +138 -0
  580. data/lib/fdx_api/models/tax_party4.rb +139 -0
  581. data/lib/fdx_api/models/tax_party6.rb +140 -0
  582. data/lib/fdx_api/models/tax_party7.rb +140 -0
  583. data/lib/fdx_api/models/tax_party8.rb +139 -0
  584. data/lib/fdx_api/models/tax_party_type.rb +23 -0
  585. data/lib/fdx_api/models/tax_party_type2.rb +24 -0
  586. data/lib/fdx_api/models/tax_refund_direct_deposit.rb +108 -0
  587. data/lib/fdx_api/models/tax_refund_direct_deposit2.rb +108 -0
  588. data/lib/fdx_api/models/tax_statement.rb +174 -0
  589. data/lib/fdx_api/models/tax_statement1.rb +175 -0
  590. data/lib/fdx_api/models/tax_statement2.rb +175 -0
  591. data/lib/fdx_api/models/tax_statement4.rb +175 -0
  592. data/lib/fdx_api/models/tax_statement6.rb +175 -0
  593. data/lib/fdx_api/models/tax_statement_list.rb +85 -0
  594. data/lib/fdx_api/models/telephone_number.rb +105 -0
  595. data/lib/fdx_api/models/telephone_number_plus_extension.rb +105 -0
  596. data/lib/fdx_api/models/telephone_number_plus_extension1.rb +105 -0
  597. data/lib/fdx_api/models/telephone_number_plus_extension2.rb +105 -0
  598. data/lib/fdx_api/models/telephone_number_type.rb +29 -0
  599. data/lib/fdx_api/models/time_and_occurrence_based_transfer_limits.rb +115 -0
  600. data/lib/fdx_api/models/time_and_occurrence_based_transfer_limits1.rb +115 -0
  601. data/lib/fdx_api/models/time_and_occurrence_based_transfer_limits3.rb +115 -0
  602. data/lib/fdx_api/models/timeframe_based_limits_for_a_payment_network.rb +139 -0
  603. data/lib/fdx_api/models/timeframe_based_limits_for_a_payment_network1.rb +138 -0
  604. data/lib/fdx_api/models/timeframe_based_limits_for_a_payment_network2.rb +138 -0
  605. data/lib/fdx_api/models/timeframe_based_limits_for_a_payment_network3.rb +138 -0
  606. data/lib/fdx_api/models/timeframe_based_limits_for_a_payment_network5.rb +138 -0
  607. data/lib/fdx_api/models/transaction.rb +357 -0
  608. data/lib/fdx_api/models/transaction_reason.rb +26 -0
  609. data/lib/fdx_api/models/transaction_reason2.rb +27 -0
  610. data/lib/fdx_api/models/transaction_reward_entity.rb +97 -0
  611. data/lib/fdx_api/models/transaction_reward_entity2.rb +107 -0
  612. data/lib/fdx_api/models/transaction_status.rb +29 -0
  613. data/lib/fdx_api/models/transaction_status2.rb +29 -0
  614. data/lib/fdx_api/models/transactions_entity.rb +109 -0
  615. data/lib/fdx_api/models/transfer_entity.rb +169 -0
  616. data/lib/fdx_api/models/transfer_for_create_entity.rb +129 -0
  617. data/lib/fdx_api/models/transfer_for_create_entity1.rb +129 -0
  618. data/lib/fdx_api/models/transfers_entity.rb +113 -0
  619. data/lib/fdx_api/models/treasury_management_type.rb +30 -0
  620. data/lib/fdx_api/models/type_data_type.rb +26 -0
  621. data/lib/fdx_api/models/type_data_type2.rb +24 -0
  622. data/lib/fdx_api/models/type_form_type.rb +176 -0
  623. data/lib/fdx_api/models/type_form_type1.rb +176 -0
  624. data/lib/fdx_api/models/unit_type.rb +23 -0
  625. data/lib/fdx_api/models/unit_type1.rb +23 -0
  626. data/lib/fdx_api/models/unit_type3.rb +23 -0
  627. data/lib/fdx_api/models/updates_metadata_entity.rb +77 -0
  628. data/lib/fdx_api/models/updates_metadata_entity2.rb +77 -0
  629. data/lib/fdx_api/models/vesting_entity.rb +186 -0
  630. data/lib/fdx_api/utilities/date_time_helper.rb +11 -0
  631. data/lib/fdx_api/utilities/file_wrapper.rb +28 -0
  632. data/lib/fdx_api/utilities/union_type_lookup.rb +240 -0
  633. data/lib/fdx_api.rb +661 -0
  634. metadata +717 -0
@@ -0,0 +1,337 @@
1
+ # fdx_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module FdxApi
7
+ # Tuition Statement
8
+ class Form1098T1 < BaseModel
9
+ SKIP = Object.new
10
+ private_constant :SKIP
11
+
12
+ # Year for which taxes are being paid
13
+ # @return [Integer]
14
+ attr_accessor :tax_year
15
+
16
+ # True to indicate this is a corrected tax form
17
+ # @return [TrueClass | FalseClass]
18
+ attr_accessor :corrected
19
+
20
+ # Long-term persistent identity of the source account. Not the account
21
+ # number
22
+ # @return [String]
23
+ attr_accessor :account_id
24
+
25
+ # Long-term persistent id for this tax form. Depending upon the data
26
+ # provider, this may be the same id as the enclosing tax statement id, or
27
+ # this may be a different id, or this id may be omitted.
28
+ # @return [String]
29
+ attr_accessor :tax_form_id
30
+
31
+ # Date of production or delivery of the tax form
32
+ # @return [Date]
33
+ attr_accessor :tax_form_date
34
+
35
+ # Additional explanation text or content about this tax form
36
+ # @return [String]
37
+ attr_accessor :additional_information
38
+
39
+ # Enumerated name of the tax form entity e.g. "TaxW2"
40
+ # @return [TypeFormType1]
41
+ attr_accessor :tax_form_type
42
+
43
+ # Issuer's name, address, phone, and TIN. Issuer data need only be
44
+ # transmitted on enclosing TaxStatement, if it is the same on all its
45
+ # included tax forms.
46
+ # @return [TaxParty8]
47
+ attr_accessor :issuer
48
+
49
+ # Recipient's name, address, phone, and TIN. Recipient data need only be
50
+ # transmitted on enclosing TaxStatement, if it is the same on all its
51
+ # included tax forms.
52
+ # @return [TaxParty1]
53
+ attr_accessor :recipient
54
+
55
+ # Additional attributes for this tax form when defined fields are not
56
+ # available. Some specific additional attributes already defined by
57
+ # providers: Fields required by [IRS
58
+ # FIRE](https://www.irs.gov/e-file-providers/filing-information-returns-elec
59
+ # tronically-fire): Name Control, Type of Identification Number (EIN, SSN,
60
+ # ITIN, ATIN). (ATIN is tax ID number for pending adoptions.) Tax form
61
+ # provider field for taxpayer notification: Recipient Email Address.
62
+ # @return [Array[TaxFormAttribute]]
63
+ attr_accessor :attributes
64
+
65
+ # Present if an error was encountered while retrieving this form
66
+ # @return [Error1]
67
+ attr_accessor :error
68
+
69
+ # Links to retrieve this form as data or image, or to invoke other APIs
70
+ # @return [Array[HateoasLink]]
71
+ attr_accessor :links
72
+
73
+ # By checking the box in STUDENT'S TIN, filer is making a true and accurate
74
+ # certification under penalty of perjury that they have complied with
75
+ # standards promulgated by the Secretary for obtaining such individual's TIN
76
+ # @return [TrueClass | FalseClass]
77
+ attr_accessor :student_tin_certification
78
+
79
+ # Account number
80
+ # @return [String]
81
+ attr_accessor :account_number
82
+
83
+ # Box 8, Check if at least half-time student
84
+ # @return [TrueClass | FalseClass]
85
+ attr_accessor :half_time
86
+
87
+ # Box 1, Payments received for qualified tuition and related expenses
88
+ # @return [Float]
89
+ attr_accessor :qualified_tuition_fees
90
+
91
+ # Box 4, Adjustments made for a prior year
92
+ # @return [Float]
93
+ attr_accessor :adjustment_prior_year
94
+
95
+ # Box 5, Scholarships or grants
96
+ # @return [Float]
97
+ attr_accessor :scholarship
98
+
99
+ # Box 6, Adjustments to scholarships or grants for a prior year
100
+ # @return [Float]
101
+ attr_accessor :adjust_scholarship
102
+
103
+ # Box 7, Check if the amount in box 1 or box 2 includes amounts for an
104
+ # academic period beginning January - March of next year
105
+ # @return [TrueClass | FalseClass]
106
+ attr_accessor :include_jan_mar
107
+
108
+ # Box 9, Check if graduate student
109
+ # @return [TrueClass | FalseClass]
110
+ attr_accessor :graduate
111
+
112
+ # Box 10, Insurance contract reimbursement / refund
113
+ # @return [Float]
114
+ attr_accessor :insurance_refund
115
+
116
+ # A mapping from model property names to API property names.
117
+ def self.names
118
+ @_hash = {} if @_hash.nil?
119
+ @_hash['tax_year'] = 'taxYear'
120
+ @_hash['corrected'] = 'corrected'
121
+ @_hash['account_id'] = 'accountId'
122
+ @_hash['tax_form_id'] = 'taxFormId'
123
+ @_hash['tax_form_date'] = 'taxFormDate'
124
+ @_hash['additional_information'] = 'additionalInformation'
125
+ @_hash['tax_form_type'] = 'taxFormType'
126
+ @_hash['issuer'] = 'issuer'
127
+ @_hash['recipient'] = 'recipient'
128
+ @_hash['attributes'] = 'attributes'
129
+ @_hash['error'] = 'error'
130
+ @_hash['links'] = 'links'
131
+ @_hash['student_tin_certification'] = 'studentTinCertification'
132
+ @_hash['account_number'] = 'accountNumber'
133
+ @_hash['half_time'] = 'halfTime'
134
+ @_hash['qualified_tuition_fees'] = 'qualifiedTuitionFees'
135
+ @_hash['adjustment_prior_year'] = 'adjustmentPriorYear'
136
+ @_hash['scholarship'] = 'scholarship'
137
+ @_hash['adjust_scholarship'] = 'adjustScholarship'
138
+ @_hash['include_jan_mar'] = 'includeJanMar'
139
+ @_hash['graduate'] = 'graduate'
140
+ @_hash['insurance_refund'] = 'insuranceRefund'
141
+ @_hash
142
+ end
143
+
144
+ # An array for optional fields
145
+ def self.optionals
146
+ %w[
147
+ tax_year
148
+ corrected
149
+ account_id
150
+ tax_form_id
151
+ tax_form_date
152
+ additional_information
153
+ tax_form_type
154
+ issuer
155
+ recipient
156
+ attributes
157
+ error
158
+ links
159
+ student_tin_certification
160
+ account_number
161
+ half_time
162
+ qualified_tuition_fees
163
+ adjustment_prior_year
164
+ scholarship
165
+ adjust_scholarship
166
+ include_jan_mar
167
+ graduate
168
+ insurance_refund
169
+ ]
170
+ end
171
+
172
+ # An array for nullable fields
173
+ def self.nullables
174
+ []
175
+ end
176
+
177
+ def initialize(tax_year: SKIP, corrected: SKIP, account_id: SKIP,
178
+ tax_form_id: SKIP, tax_form_date: SKIP,
179
+ additional_information: SKIP, tax_form_type: SKIP,
180
+ issuer: SKIP, recipient: SKIP, attributes: SKIP, error: SKIP,
181
+ links: SKIP, student_tin_certification: SKIP,
182
+ account_number: SKIP, half_time: SKIP,
183
+ qualified_tuition_fees: SKIP, adjustment_prior_year: SKIP,
184
+ scholarship: SKIP, adjust_scholarship: SKIP,
185
+ include_jan_mar: SKIP, graduate: SKIP,
186
+ insurance_refund: SKIP, additional_properties: nil)
187
+ # Add additional model properties to the instance
188
+ additional_properties = {} if additional_properties.nil?
189
+
190
+ @tax_year = tax_year unless tax_year == SKIP
191
+ @corrected = corrected unless corrected == SKIP
192
+ @account_id = account_id unless account_id == SKIP
193
+ @tax_form_id = tax_form_id unless tax_form_id == SKIP
194
+ @tax_form_date = tax_form_date unless tax_form_date == SKIP
195
+ @additional_information = additional_information unless additional_information == SKIP
196
+ @tax_form_type = tax_form_type unless tax_form_type == SKIP
197
+ @issuer = issuer unless issuer == SKIP
198
+ @recipient = recipient unless recipient == SKIP
199
+ @attributes = attributes unless attributes == SKIP
200
+ @error = error unless error == SKIP
201
+ @links = links unless links == SKIP
202
+ unless student_tin_certification == SKIP
203
+ @student_tin_certification =
204
+ student_tin_certification
205
+ end
206
+ @account_number = account_number unless account_number == SKIP
207
+ @half_time = half_time unless half_time == SKIP
208
+ @qualified_tuition_fees = qualified_tuition_fees unless qualified_tuition_fees == SKIP
209
+ @adjustment_prior_year = adjustment_prior_year unless adjustment_prior_year == SKIP
210
+ @scholarship = scholarship unless scholarship == SKIP
211
+ @adjust_scholarship = adjust_scholarship unless adjust_scholarship == SKIP
212
+ @include_jan_mar = include_jan_mar unless include_jan_mar == SKIP
213
+ @graduate = graduate unless graduate == SKIP
214
+ @insurance_refund = insurance_refund unless insurance_refund == SKIP
215
+ @additional_properties = additional_properties
216
+ end
217
+
218
+ # Creates an instance of the object from a hash.
219
+ def self.from_hash(hash)
220
+ return nil unless hash
221
+
222
+ # Extract variables from the hash.
223
+ tax_year = hash.key?('taxYear') ? hash['taxYear'] : SKIP
224
+ corrected = hash.key?('corrected') ? hash['corrected'] : SKIP
225
+ account_id = hash.key?('accountId') ? hash['accountId'] : SKIP
226
+ tax_form_id = hash.key?('taxFormId') ? hash['taxFormId'] : SKIP
227
+ tax_form_date = hash.key?('taxFormDate') ? hash['taxFormDate'] : SKIP
228
+ additional_information =
229
+ hash.key?('additionalInformation') ? hash['additionalInformation'] : SKIP
230
+ tax_form_type = hash.key?('taxFormType') ? hash['taxFormType'] : SKIP
231
+ issuer = TaxParty8.from_hash(hash['issuer']) if hash['issuer']
232
+ recipient = TaxParty1.from_hash(hash['recipient']) if hash['recipient']
233
+ # Parameter is an array, so we need to iterate through it
234
+ attributes = nil
235
+ unless hash['attributes'].nil?
236
+ attributes = []
237
+ hash['attributes'].each do |structure|
238
+ attributes << (TaxFormAttribute.from_hash(structure) if structure)
239
+ end
240
+ end
241
+
242
+ attributes = SKIP unless hash.key?('attributes')
243
+ error = Error1.from_hash(hash['error']) if hash['error']
244
+ # Parameter is an array, so we need to iterate through it
245
+ links = nil
246
+ unless hash['links'].nil?
247
+ links = []
248
+ hash['links'].each do |structure|
249
+ links << (HateoasLink.from_hash(structure) if structure)
250
+ end
251
+ end
252
+
253
+ links = SKIP unless hash.key?('links')
254
+ student_tin_certification =
255
+ hash.key?('studentTinCertification') ? hash['studentTinCertification'] : SKIP
256
+ account_number = hash.key?('accountNumber') ? hash['accountNumber'] : SKIP
257
+ half_time = hash.key?('halfTime') ? hash['halfTime'] : SKIP
258
+ qualified_tuition_fees =
259
+ hash.key?('qualifiedTuitionFees') ? hash['qualifiedTuitionFees'] : SKIP
260
+ adjustment_prior_year =
261
+ hash.key?('adjustmentPriorYear') ? hash['adjustmentPriorYear'] : SKIP
262
+ scholarship = hash.key?('scholarship') ? hash['scholarship'] : SKIP
263
+ adjust_scholarship =
264
+ hash.key?('adjustScholarship') ? hash['adjustScholarship'] : SKIP
265
+ include_jan_mar =
266
+ hash.key?('includeJanMar') ? hash['includeJanMar'] : SKIP
267
+ graduate = hash.key?('graduate') ? hash['graduate'] : SKIP
268
+ insurance_refund =
269
+ hash.key?('insuranceRefund') ? hash['insuranceRefund'] : SKIP
270
+
271
+ # Create a new hash for additional properties, removing known properties.
272
+ new_hash = hash.reject { |k, _| names.value?(k) }
273
+
274
+ additional_properties = APIHelper.get_additional_properties(
275
+ new_hash, proc { |value| value }
276
+ )
277
+
278
+ # Create object from extracted values.
279
+ Form1098T1.new(tax_year: tax_year,
280
+ corrected: corrected,
281
+ account_id: account_id,
282
+ tax_form_id: tax_form_id,
283
+ tax_form_date: tax_form_date,
284
+ additional_information: additional_information,
285
+ tax_form_type: tax_form_type,
286
+ issuer: issuer,
287
+ recipient: recipient,
288
+ attributes: attributes,
289
+ error: error,
290
+ links: links,
291
+ student_tin_certification: student_tin_certification,
292
+ account_number: account_number,
293
+ half_time: half_time,
294
+ qualified_tuition_fees: qualified_tuition_fees,
295
+ adjustment_prior_year: adjustment_prior_year,
296
+ scholarship: scholarship,
297
+ adjust_scholarship: adjust_scholarship,
298
+ include_jan_mar: include_jan_mar,
299
+ graduate: graduate,
300
+ insurance_refund: insurance_refund,
301
+ additional_properties: additional_properties)
302
+ end
303
+
304
+ # Provides a human-readable string representation of the object.
305
+ def to_s
306
+ class_name = self.class.name.split('::').last
307
+ "<#{class_name} tax_year: #{@tax_year}, corrected: #{@corrected}, account_id:"\
308
+ " #{@account_id}, tax_form_id: #{@tax_form_id}, tax_form_date: #{@tax_form_date},"\
309
+ " additional_information: #{@additional_information}, tax_form_type: #{@tax_form_type},"\
310
+ " issuer: #{@issuer}, recipient: #{@recipient}, attributes: #{@attributes}, error:"\
311
+ " #{@error}, links: #{@links}, student_tin_certification: #{@student_tin_certification},"\
312
+ " account_number: #{@account_number}, half_time: #{@half_time}, qualified_tuition_fees:"\
313
+ " #{@qualified_tuition_fees}, adjustment_prior_year: #{@adjustment_prior_year}, scholarship:"\
314
+ " #{@scholarship}, adjust_scholarship: #{@adjust_scholarship}, include_jan_mar:"\
315
+ " #{@include_jan_mar}, graduate: #{@graduate}, insurance_refund: #{@insurance_refund},"\
316
+ " additional_properties: #{@additional_properties}>"
317
+ end
318
+
319
+ # Provides a debugging-friendly string with detailed object information.
320
+ def inspect
321
+ class_name = self.class.name.split('::').last
322
+ "<#{class_name} tax_year: #{@tax_year.inspect}, corrected: #{@corrected.inspect},"\
323
+ " account_id: #{@account_id.inspect}, tax_form_id: #{@tax_form_id.inspect}, tax_form_date:"\
324
+ " #{@tax_form_date.inspect}, additional_information: #{@additional_information.inspect},"\
325
+ " tax_form_type: #{@tax_form_type.inspect}, issuer: #{@issuer.inspect}, recipient:"\
326
+ " #{@recipient.inspect}, attributes: #{@attributes.inspect}, error: #{@error.inspect},"\
327
+ " links: #{@links.inspect}, student_tin_certification:"\
328
+ " #{@student_tin_certification.inspect}, account_number: #{@account_number.inspect},"\
329
+ " half_time: #{@half_time.inspect}, qualified_tuition_fees:"\
330
+ " #{@qualified_tuition_fees.inspect}, adjustment_prior_year:"\
331
+ " #{@adjustment_prior_year.inspect}, scholarship: #{@scholarship.inspect},"\
332
+ " adjust_scholarship: #{@adjust_scholarship.inspect}, include_jan_mar:"\
333
+ " #{@include_jan_mar.inspect}, graduate: #{@graduate.inspect}, insurance_refund:"\
334
+ " #{@insurance_refund.inspect}, additional_properties: #{@additional_properties}>"
335
+ end
336
+ end
337
+ end
@@ -0,0 +1,289 @@
1
+ # fdx_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module FdxApi
7
+ # Acquisition or Abandonment of Secured Property, from LENDER (1st-2nd boxes
8
+ # as issuer) to BORROWER (3rd-4th boxes as recipient)
9
+ class Form1099A < BaseModel
10
+ SKIP = Object.new
11
+ private_constant :SKIP
12
+
13
+ # Year for which taxes are being paid
14
+ # @return [Integer]
15
+ attr_accessor :tax_year
16
+
17
+ # True to indicate this is a corrected tax form
18
+ # @return [TrueClass | FalseClass]
19
+ attr_accessor :corrected
20
+
21
+ # Long-term persistent identity of the source account. Not the account
22
+ # number
23
+ # @return [String]
24
+ attr_accessor :account_id
25
+
26
+ # Long-term persistent id for this tax form. Depending upon the data
27
+ # provider, this may be the same id as the enclosing tax statement id, or
28
+ # this may be a different id, or this id may be omitted.
29
+ # @return [String]
30
+ attr_accessor :tax_form_id
31
+
32
+ # Date of production or delivery of the tax form
33
+ # @return [Date]
34
+ attr_accessor :tax_form_date
35
+
36
+ # Additional explanation text or content about this tax form
37
+ # @return [String]
38
+ attr_accessor :additional_information
39
+
40
+ # Enumerated name of the tax form entity e.g. "TaxW2"
41
+ # @return [TypeFormType1]
42
+ attr_accessor :tax_form_type
43
+
44
+ # Issuer's name, address, phone, and TIN. Issuer data need only be
45
+ # transmitted on enclosing TaxStatement, if it is the same on all its
46
+ # included tax forms.
47
+ # @return [TaxParty8]
48
+ attr_accessor :issuer
49
+
50
+ # Recipient's name, address, phone, and TIN. Recipient data need only be
51
+ # transmitted on enclosing TaxStatement, if it is the same on all its
52
+ # included tax forms.
53
+ # @return [TaxParty1]
54
+ attr_accessor :recipient
55
+
56
+ # Additional attributes for this tax form when defined fields are not
57
+ # available. Some specific additional attributes already defined by
58
+ # providers: Fields required by [IRS
59
+ # FIRE](https://www.irs.gov/e-file-providers/filing-information-returns-elec
60
+ # tronically-fire): Name Control, Type of Identification Number (EIN, SSN,
61
+ # ITIN, ATIN). (ATIN is tax ID number for pending adoptions.) Tax form
62
+ # provider field for taxpayer notification: Recipient Email Address.
63
+ # @return [Array[TaxFormAttribute]]
64
+ attr_accessor :attributes
65
+
66
+ # Present if an error was encountered while retrieving this form
67
+ # @return [Error1]
68
+ attr_accessor :error
69
+
70
+ # Links to retrieve this form as data or image, or to invoke other APIs
71
+ # @return [Array[HateoasLink]]
72
+ attr_accessor :links
73
+
74
+ # Account number
75
+ # @return [String]
76
+ attr_accessor :account_number
77
+
78
+ # Box 1, Date of lender's acquisition or knowledge of abandonment
79
+ # @return [Date]
80
+ attr_accessor :date_of_acquisition
81
+
82
+ # Box 2, Balance of principal outstanding
83
+ # @return [Float]
84
+ attr_accessor :principal_balance
85
+
86
+ # Box 4, Fair market value property
87
+ # @return [Float]
88
+ attr_accessor :fair_market_value
89
+
90
+ # Box 5, If checked, the borrower was personally liable for repayment of the
91
+ # debt
92
+ # @return [TrueClass | FalseClass]
93
+ attr_accessor :personally_liable
94
+
95
+ # Box 6, Description of property
96
+ # @return [String]
97
+ attr_accessor :property_description
98
+
99
+ # A mapping from model property names to API property names.
100
+ def self.names
101
+ @_hash = {} if @_hash.nil?
102
+ @_hash['tax_year'] = 'taxYear'
103
+ @_hash['corrected'] = 'corrected'
104
+ @_hash['account_id'] = 'accountId'
105
+ @_hash['tax_form_id'] = 'taxFormId'
106
+ @_hash['tax_form_date'] = 'taxFormDate'
107
+ @_hash['additional_information'] = 'additionalInformation'
108
+ @_hash['tax_form_type'] = 'taxFormType'
109
+ @_hash['issuer'] = 'issuer'
110
+ @_hash['recipient'] = 'recipient'
111
+ @_hash['attributes'] = 'attributes'
112
+ @_hash['error'] = 'error'
113
+ @_hash['links'] = 'links'
114
+ @_hash['account_number'] = 'accountNumber'
115
+ @_hash['date_of_acquisition'] = 'dateOfAcquisition'
116
+ @_hash['principal_balance'] = 'principalBalance'
117
+ @_hash['fair_market_value'] = 'fairMarketValue'
118
+ @_hash['personally_liable'] = 'personallyLiable'
119
+ @_hash['property_description'] = 'propertyDescription'
120
+ @_hash
121
+ end
122
+
123
+ # An array for optional fields
124
+ def self.optionals
125
+ %w[
126
+ tax_year
127
+ corrected
128
+ account_id
129
+ tax_form_id
130
+ tax_form_date
131
+ additional_information
132
+ tax_form_type
133
+ issuer
134
+ recipient
135
+ attributes
136
+ error
137
+ links
138
+ account_number
139
+ date_of_acquisition
140
+ principal_balance
141
+ fair_market_value
142
+ personally_liable
143
+ property_description
144
+ ]
145
+ end
146
+
147
+ # An array for nullable fields
148
+ def self.nullables
149
+ []
150
+ end
151
+
152
+ def initialize(tax_year: SKIP, corrected: SKIP, account_id: SKIP,
153
+ tax_form_id: SKIP, tax_form_date: SKIP,
154
+ additional_information: SKIP, tax_form_type: SKIP,
155
+ issuer: SKIP, recipient: SKIP, attributes: SKIP, error: SKIP,
156
+ links: SKIP, account_number: SKIP, date_of_acquisition: SKIP,
157
+ principal_balance: SKIP, fair_market_value: SKIP,
158
+ personally_liable: SKIP, property_description: SKIP,
159
+ additional_properties: nil)
160
+ # Add additional model properties to the instance
161
+ additional_properties = {} if additional_properties.nil?
162
+
163
+ @tax_year = tax_year unless tax_year == SKIP
164
+ @corrected = corrected unless corrected == SKIP
165
+ @account_id = account_id unless account_id == SKIP
166
+ @tax_form_id = tax_form_id unless tax_form_id == SKIP
167
+ @tax_form_date = tax_form_date unless tax_form_date == SKIP
168
+ @additional_information = additional_information unless additional_information == SKIP
169
+ @tax_form_type = tax_form_type unless tax_form_type == SKIP
170
+ @issuer = issuer unless issuer == SKIP
171
+ @recipient = recipient unless recipient == SKIP
172
+ @attributes = attributes unless attributes == SKIP
173
+ @error = error unless error == SKIP
174
+ @links = links unless links == SKIP
175
+ @account_number = account_number unless account_number == SKIP
176
+ @date_of_acquisition = date_of_acquisition unless date_of_acquisition == SKIP
177
+ @principal_balance = principal_balance unless principal_balance == SKIP
178
+ @fair_market_value = fair_market_value unless fair_market_value == SKIP
179
+ @personally_liable = personally_liable unless personally_liable == SKIP
180
+ @property_description = property_description unless property_description == SKIP
181
+ @additional_properties = additional_properties
182
+ end
183
+
184
+ # Creates an instance of the object from a hash.
185
+ def self.from_hash(hash)
186
+ return nil unless hash
187
+
188
+ # Extract variables from the hash.
189
+ tax_year = hash.key?('taxYear') ? hash['taxYear'] : SKIP
190
+ corrected = hash.key?('corrected') ? hash['corrected'] : SKIP
191
+ account_id = hash.key?('accountId') ? hash['accountId'] : SKIP
192
+ tax_form_id = hash.key?('taxFormId') ? hash['taxFormId'] : SKIP
193
+ tax_form_date = hash.key?('taxFormDate') ? hash['taxFormDate'] : SKIP
194
+ additional_information =
195
+ hash.key?('additionalInformation') ? hash['additionalInformation'] : SKIP
196
+ tax_form_type = hash.key?('taxFormType') ? hash['taxFormType'] : SKIP
197
+ issuer = TaxParty8.from_hash(hash['issuer']) if hash['issuer']
198
+ recipient = TaxParty1.from_hash(hash['recipient']) if hash['recipient']
199
+ # Parameter is an array, so we need to iterate through it
200
+ attributes = nil
201
+ unless hash['attributes'].nil?
202
+ attributes = []
203
+ hash['attributes'].each do |structure|
204
+ attributes << (TaxFormAttribute.from_hash(structure) if structure)
205
+ end
206
+ end
207
+
208
+ attributes = SKIP unless hash.key?('attributes')
209
+ error = Error1.from_hash(hash['error']) if hash['error']
210
+ # Parameter is an array, so we need to iterate through it
211
+ links = nil
212
+ unless hash['links'].nil?
213
+ links = []
214
+ hash['links'].each do |structure|
215
+ links << (HateoasLink.from_hash(structure) if structure)
216
+ end
217
+ end
218
+
219
+ links = SKIP unless hash.key?('links')
220
+ account_number = hash.key?('accountNumber') ? hash['accountNumber'] : SKIP
221
+ date_of_acquisition =
222
+ hash.key?('dateOfAcquisition') ? hash['dateOfAcquisition'] : SKIP
223
+ principal_balance =
224
+ hash.key?('principalBalance') ? hash['principalBalance'] : SKIP
225
+ fair_market_value =
226
+ hash.key?('fairMarketValue') ? hash['fairMarketValue'] : SKIP
227
+ personally_liable =
228
+ hash.key?('personallyLiable') ? hash['personallyLiable'] : SKIP
229
+ property_description =
230
+ hash.key?('propertyDescription') ? hash['propertyDescription'] : SKIP
231
+
232
+ # Create a new hash for additional properties, removing known properties.
233
+ new_hash = hash.reject { |k, _| names.value?(k) }
234
+
235
+ additional_properties = APIHelper.get_additional_properties(
236
+ new_hash, proc { |value| value }
237
+ )
238
+
239
+ # Create object from extracted values.
240
+ Form1099A.new(tax_year: tax_year,
241
+ corrected: corrected,
242
+ account_id: account_id,
243
+ tax_form_id: tax_form_id,
244
+ tax_form_date: tax_form_date,
245
+ additional_information: additional_information,
246
+ tax_form_type: tax_form_type,
247
+ issuer: issuer,
248
+ recipient: recipient,
249
+ attributes: attributes,
250
+ error: error,
251
+ links: links,
252
+ account_number: account_number,
253
+ date_of_acquisition: date_of_acquisition,
254
+ principal_balance: principal_balance,
255
+ fair_market_value: fair_market_value,
256
+ personally_liable: personally_liable,
257
+ property_description: property_description,
258
+ additional_properties: additional_properties)
259
+ end
260
+
261
+ # Provides a human-readable string representation of the object.
262
+ def to_s
263
+ class_name = self.class.name.split('::').last
264
+ "<#{class_name} tax_year: #{@tax_year}, corrected: #{@corrected}, account_id:"\
265
+ " #{@account_id}, tax_form_id: #{@tax_form_id}, tax_form_date: #{@tax_form_date},"\
266
+ " additional_information: #{@additional_information}, tax_form_type: #{@tax_form_type},"\
267
+ " issuer: #{@issuer}, recipient: #{@recipient}, attributes: #{@attributes}, error:"\
268
+ " #{@error}, links: #{@links}, account_number: #{@account_number}, date_of_acquisition:"\
269
+ " #{@date_of_acquisition}, principal_balance: #{@principal_balance}, fair_market_value:"\
270
+ " #{@fair_market_value}, personally_liable: #{@personally_liable}, property_description:"\
271
+ " #{@property_description}, additional_properties: #{@additional_properties}>"
272
+ end
273
+
274
+ # Provides a debugging-friendly string with detailed object information.
275
+ def inspect
276
+ class_name = self.class.name.split('::').last
277
+ "<#{class_name} tax_year: #{@tax_year.inspect}, corrected: #{@corrected.inspect},"\
278
+ " account_id: #{@account_id.inspect}, tax_form_id: #{@tax_form_id.inspect}, tax_form_date:"\
279
+ " #{@tax_form_date.inspect}, additional_information: #{@additional_information.inspect},"\
280
+ " tax_form_type: #{@tax_form_type.inspect}, issuer: #{@issuer.inspect}, recipient:"\
281
+ " #{@recipient.inspect}, attributes: #{@attributes.inspect}, error: #{@error.inspect},"\
282
+ " links: #{@links.inspect}, account_number: #{@account_number.inspect}, date_of_acquisition:"\
283
+ " #{@date_of_acquisition.inspect}, principal_balance: #{@principal_balance.inspect},"\
284
+ " fair_market_value: #{@fair_market_value.inspect}, personally_liable:"\
285
+ " #{@personally_liable.inspect}, property_description: #{@property_description.inspect},"\
286
+ " additional_properties: #{@additional_properties}>"
287
+ end
288
+ end
289
+ end