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,327 @@
1
+ # fdx_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module FdxApi
7
+ # Transfer of Stock Acquired Through an Employee Stock Purchase Plan under
8
+ # Section 423(c), from CORPORATION (1st-2nd boxes as issuer) to EMPLOYEE
9
+ # (3rd-4th boxes as recipient)
10
+ class Form3922 < BaseModel
11
+ SKIP = Object.new
12
+ private_constant :SKIP
13
+
14
+ # Year for which taxes are being paid
15
+ # @return [Integer]
16
+ attr_accessor :tax_year
17
+
18
+ # True to indicate this is a corrected tax form
19
+ # @return [TrueClass | FalseClass]
20
+ attr_accessor :corrected
21
+
22
+ # Long-term persistent identity of the source account. Not the account
23
+ # number
24
+ # @return [String]
25
+ attr_accessor :account_id
26
+
27
+ # Long-term persistent id for this tax form. Depending upon the data
28
+ # provider, this may be the same id as the enclosing tax statement id, or
29
+ # this may be a different id, or this id may be omitted.
30
+ # @return [String]
31
+ attr_accessor :tax_form_id
32
+
33
+ # Date of production or delivery of the tax form
34
+ # @return [Date]
35
+ attr_accessor :tax_form_date
36
+
37
+ # Additional explanation text or content about this tax form
38
+ # @return [String]
39
+ attr_accessor :additional_information
40
+
41
+ # Enumerated name of the tax form entity e.g. "TaxW2"
42
+ # @return [TypeFormType1]
43
+ attr_accessor :tax_form_type
44
+
45
+ # Issuer's name, address, phone, and TIN. Issuer data need only be
46
+ # transmitted on enclosing TaxStatement, if it is the same on all its
47
+ # included tax forms.
48
+ # @return [TaxParty8]
49
+ attr_accessor :issuer
50
+
51
+ # Recipient's name, address, phone, and TIN. Recipient data need only be
52
+ # transmitted on enclosing TaxStatement, if it is the same on all its
53
+ # included tax forms.
54
+ # @return [TaxParty1]
55
+ attr_accessor :recipient
56
+
57
+ # Additional attributes for this tax form when defined fields are not
58
+ # available. Some specific additional attributes already defined by
59
+ # providers: Fields required by [IRS
60
+ # FIRE](https://www.irs.gov/e-file-providers/filing-information-returns-elec
61
+ # tronically-fire): Name Control, Type of Identification Number (EIN, SSN,
62
+ # ITIN, ATIN). (ATIN is tax ID number for pending adoptions.) Tax form
63
+ # provider field for taxpayer notification: Recipient Email Address.
64
+ # @return [Array[TaxFormAttribute]]
65
+ attr_accessor :attributes
66
+
67
+ # Present if an error was encountered while retrieving this form
68
+ # @return [Error1]
69
+ attr_accessor :error
70
+
71
+ # Links to retrieve this form as data or image, or to invoke other APIs
72
+ # @return [Array[HateoasLink]]
73
+ attr_accessor :links
74
+
75
+ # Account number
76
+ # @return [String]
77
+ attr_accessor :account_number
78
+
79
+ # Box 1, Date option granted
80
+ # @return [Date]
81
+ attr_accessor :option_grant_date
82
+
83
+ # Box 2, Date option exercised
84
+ # @return [Date]
85
+ attr_accessor :option_exercise_date
86
+
87
+ # Box 3, Fair market value per share on grant date
88
+ # @return [Float]
89
+ attr_accessor :grant_market_value
90
+
91
+ # Box 4, Fair market value per share on exercise date
92
+ # @return [Float]
93
+ attr_accessor :exercise_market_value
94
+
95
+ # Box 5, Exercise price paid per share
96
+ # @return [Float]
97
+ attr_accessor :exercise_price
98
+
99
+ # Box 6, Number of shares transferred
100
+ # @return [Float]
101
+ attr_accessor :number_of_shares
102
+
103
+ # Box 7, Date legal title transferred
104
+ # @return [Date]
105
+ attr_accessor :title_transfer_date
106
+
107
+ # Box 8, Exercise price per share determined as if the option was exercised
108
+ # on the option granted date
109
+ # @return [Float]
110
+ attr_accessor :grant_date_exercise_price
111
+
112
+ # A mapping from model property names to API property names.
113
+ def self.names
114
+ @_hash = {} if @_hash.nil?
115
+ @_hash['tax_year'] = 'taxYear'
116
+ @_hash['corrected'] = 'corrected'
117
+ @_hash['account_id'] = 'accountId'
118
+ @_hash['tax_form_id'] = 'taxFormId'
119
+ @_hash['tax_form_date'] = 'taxFormDate'
120
+ @_hash['additional_information'] = 'additionalInformation'
121
+ @_hash['tax_form_type'] = 'taxFormType'
122
+ @_hash['issuer'] = 'issuer'
123
+ @_hash['recipient'] = 'recipient'
124
+ @_hash['attributes'] = 'attributes'
125
+ @_hash['error'] = 'error'
126
+ @_hash['links'] = 'links'
127
+ @_hash['account_number'] = 'accountNumber'
128
+ @_hash['option_grant_date'] = 'optionGrantDate'
129
+ @_hash['option_exercise_date'] = 'optionExerciseDate'
130
+ @_hash['grant_market_value'] = 'grantMarketValue'
131
+ @_hash['exercise_market_value'] = 'exerciseMarketValue'
132
+ @_hash['exercise_price'] = 'exercisePrice'
133
+ @_hash['number_of_shares'] = 'numberOfShares'
134
+ @_hash['title_transfer_date'] = 'titleTransferDate'
135
+ @_hash['grant_date_exercise_price'] = 'grantDateExercisePrice'
136
+ @_hash
137
+ end
138
+
139
+ # An array for optional fields
140
+ def self.optionals
141
+ %w[
142
+ tax_year
143
+ corrected
144
+ account_id
145
+ tax_form_id
146
+ tax_form_date
147
+ additional_information
148
+ tax_form_type
149
+ issuer
150
+ recipient
151
+ attributes
152
+ error
153
+ links
154
+ account_number
155
+ option_grant_date
156
+ option_exercise_date
157
+ grant_market_value
158
+ exercise_market_value
159
+ exercise_price
160
+ number_of_shares
161
+ title_transfer_date
162
+ grant_date_exercise_price
163
+ ]
164
+ end
165
+
166
+ # An array for nullable fields
167
+ def self.nullables
168
+ []
169
+ end
170
+
171
+ def initialize(tax_year: SKIP, corrected: SKIP, account_id: SKIP,
172
+ tax_form_id: SKIP, tax_form_date: SKIP,
173
+ additional_information: SKIP, tax_form_type: SKIP,
174
+ issuer: SKIP, recipient: SKIP, attributes: SKIP, error: SKIP,
175
+ links: SKIP, account_number: SKIP, option_grant_date: SKIP,
176
+ option_exercise_date: SKIP, grant_market_value: SKIP,
177
+ exercise_market_value: SKIP, exercise_price: SKIP,
178
+ number_of_shares: SKIP, title_transfer_date: SKIP,
179
+ grant_date_exercise_price: SKIP, additional_properties: nil)
180
+ # Add additional model properties to the instance
181
+ additional_properties = {} if additional_properties.nil?
182
+
183
+ @tax_year = tax_year unless tax_year == SKIP
184
+ @corrected = corrected unless corrected == SKIP
185
+ @account_id = account_id unless account_id == SKIP
186
+ @tax_form_id = tax_form_id unless tax_form_id == SKIP
187
+ @tax_form_date = tax_form_date unless tax_form_date == SKIP
188
+ @additional_information = additional_information unless additional_information == SKIP
189
+ @tax_form_type = tax_form_type unless tax_form_type == SKIP
190
+ @issuer = issuer unless issuer == SKIP
191
+ @recipient = recipient unless recipient == SKIP
192
+ @attributes = attributes unless attributes == SKIP
193
+ @error = error unless error == SKIP
194
+ @links = links unless links == SKIP
195
+ @account_number = account_number unless account_number == SKIP
196
+ @option_grant_date = option_grant_date unless option_grant_date == SKIP
197
+ @option_exercise_date = option_exercise_date unless option_exercise_date == SKIP
198
+ @grant_market_value = grant_market_value unless grant_market_value == SKIP
199
+ @exercise_market_value = exercise_market_value unless exercise_market_value == SKIP
200
+ @exercise_price = exercise_price unless exercise_price == SKIP
201
+ @number_of_shares = number_of_shares unless number_of_shares == SKIP
202
+ @title_transfer_date = title_transfer_date unless title_transfer_date == SKIP
203
+ unless grant_date_exercise_price == SKIP
204
+ @grant_date_exercise_price =
205
+ grant_date_exercise_price
206
+ end
207
+ @additional_properties = additional_properties
208
+ end
209
+
210
+ # Creates an instance of the object from a hash.
211
+ def self.from_hash(hash)
212
+ return nil unless hash
213
+
214
+ # Extract variables from the hash.
215
+ tax_year = hash.key?('taxYear') ? hash['taxYear'] : SKIP
216
+ corrected = hash.key?('corrected') ? hash['corrected'] : SKIP
217
+ account_id = hash.key?('accountId') ? hash['accountId'] : SKIP
218
+ tax_form_id = hash.key?('taxFormId') ? hash['taxFormId'] : SKIP
219
+ tax_form_date = hash.key?('taxFormDate') ? hash['taxFormDate'] : SKIP
220
+ additional_information =
221
+ hash.key?('additionalInformation') ? hash['additionalInformation'] : SKIP
222
+ tax_form_type = hash.key?('taxFormType') ? hash['taxFormType'] : SKIP
223
+ issuer = TaxParty8.from_hash(hash['issuer']) if hash['issuer']
224
+ recipient = TaxParty1.from_hash(hash['recipient']) if hash['recipient']
225
+ # Parameter is an array, so we need to iterate through it
226
+ attributes = nil
227
+ unless hash['attributes'].nil?
228
+ attributes = []
229
+ hash['attributes'].each do |structure|
230
+ attributes << (TaxFormAttribute.from_hash(structure) if structure)
231
+ end
232
+ end
233
+
234
+ attributes = SKIP unless hash.key?('attributes')
235
+ error = Error1.from_hash(hash['error']) if hash['error']
236
+ # Parameter is an array, so we need to iterate through it
237
+ links = nil
238
+ unless hash['links'].nil?
239
+ links = []
240
+ hash['links'].each do |structure|
241
+ links << (HateoasLink.from_hash(structure) if structure)
242
+ end
243
+ end
244
+
245
+ links = SKIP unless hash.key?('links')
246
+ account_number = hash.key?('accountNumber') ? hash['accountNumber'] : SKIP
247
+ option_grant_date =
248
+ hash.key?('optionGrantDate') ? hash['optionGrantDate'] : SKIP
249
+ option_exercise_date =
250
+ hash.key?('optionExerciseDate') ? hash['optionExerciseDate'] : SKIP
251
+ grant_market_value =
252
+ hash.key?('grantMarketValue') ? hash['grantMarketValue'] : SKIP
253
+ exercise_market_value =
254
+ hash.key?('exerciseMarketValue') ? hash['exerciseMarketValue'] : SKIP
255
+ exercise_price = hash.key?('exercisePrice') ? hash['exercisePrice'] : SKIP
256
+ number_of_shares =
257
+ hash.key?('numberOfShares') ? hash['numberOfShares'] : SKIP
258
+ title_transfer_date =
259
+ hash.key?('titleTransferDate') ? hash['titleTransferDate'] : SKIP
260
+ grant_date_exercise_price =
261
+ hash.key?('grantDateExercisePrice') ? hash['grantDateExercisePrice'] : SKIP
262
+
263
+ # Create a new hash for additional properties, removing known properties.
264
+ new_hash = hash.reject { |k, _| names.value?(k) }
265
+
266
+ additional_properties = APIHelper.get_additional_properties(
267
+ new_hash, proc { |value| value }
268
+ )
269
+
270
+ # Create object from extracted values.
271
+ Form3922.new(tax_year: tax_year,
272
+ corrected: corrected,
273
+ account_id: account_id,
274
+ tax_form_id: tax_form_id,
275
+ tax_form_date: tax_form_date,
276
+ additional_information: additional_information,
277
+ tax_form_type: tax_form_type,
278
+ issuer: issuer,
279
+ recipient: recipient,
280
+ attributes: attributes,
281
+ error: error,
282
+ links: links,
283
+ account_number: account_number,
284
+ option_grant_date: option_grant_date,
285
+ option_exercise_date: option_exercise_date,
286
+ grant_market_value: grant_market_value,
287
+ exercise_market_value: exercise_market_value,
288
+ exercise_price: exercise_price,
289
+ number_of_shares: number_of_shares,
290
+ title_transfer_date: title_transfer_date,
291
+ grant_date_exercise_price: grant_date_exercise_price,
292
+ additional_properties: additional_properties)
293
+ end
294
+
295
+ # Provides a human-readable string representation of the object.
296
+ def to_s
297
+ class_name = self.class.name.split('::').last
298
+ "<#{class_name} tax_year: #{@tax_year}, corrected: #{@corrected}, account_id:"\
299
+ " #{@account_id}, tax_form_id: #{@tax_form_id}, tax_form_date: #{@tax_form_date},"\
300
+ " additional_information: #{@additional_information}, tax_form_type: #{@tax_form_type},"\
301
+ " issuer: #{@issuer}, recipient: #{@recipient}, attributes: #{@attributes}, error:"\
302
+ " #{@error}, links: #{@links}, account_number: #{@account_number}, option_grant_date:"\
303
+ " #{@option_grant_date}, option_exercise_date: #{@option_exercise_date}, grant_market_value:"\
304
+ " #{@grant_market_value}, exercise_market_value: #{@exercise_market_value}, exercise_price:"\
305
+ " #{@exercise_price}, number_of_shares: #{@number_of_shares}, title_transfer_date:"\
306
+ " #{@title_transfer_date}, grant_date_exercise_price: #{@grant_date_exercise_price},"\
307
+ " additional_properties: #{@additional_properties}>"
308
+ end
309
+
310
+ # Provides a debugging-friendly string with detailed object information.
311
+ def inspect
312
+ class_name = self.class.name.split('::').last
313
+ "<#{class_name} tax_year: #{@tax_year.inspect}, corrected: #{@corrected.inspect},"\
314
+ " account_id: #{@account_id.inspect}, tax_form_id: #{@tax_form_id.inspect}, tax_form_date:"\
315
+ " #{@tax_form_date.inspect}, additional_information: #{@additional_information.inspect},"\
316
+ " tax_form_type: #{@tax_form_type.inspect}, issuer: #{@issuer.inspect}, recipient:"\
317
+ " #{@recipient.inspect}, attributes: #{@attributes.inspect}, error: #{@error.inspect},"\
318
+ " links: #{@links.inspect}, account_number: #{@account_number.inspect}, option_grant_date:"\
319
+ " #{@option_grant_date.inspect}, option_exercise_date: #{@option_exercise_date.inspect},"\
320
+ " grant_market_value: #{@grant_market_value.inspect}, exercise_market_value:"\
321
+ " #{@exercise_market_value.inspect}, exercise_price: #{@exercise_price.inspect},"\
322
+ " number_of_shares: #{@number_of_shares.inspect}, title_transfer_date:"\
323
+ " #{@title_transfer_date.inspect}, grant_date_exercise_price:"\
324
+ " #{@grant_date_exercise_price.inspect}, additional_properties: #{@additional_properties}>"
325
+ end
326
+ end
327
+ end
@@ -0,0 +1,326 @@
1
+ # fdx_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v3.0 (
4
+ # https://www.apimatic.io ).
5
+
6
+ module FdxApi
7
+ # Transfer of Stock Acquired Through an Employee Stock Purchase Plan under
8
+ # Section 423(c)
9
+ class Form39221 < 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 option granted
79
+ # @return [Date]
80
+ attr_accessor :option_grant_date
81
+
82
+ # Box 2, Date option exercised
83
+ # @return [Date]
84
+ attr_accessor :option_exercise_date
85
+
86
+ # Box 3, Fair market value per share on grant date
87
+ # @return [Float]
88
+ attr_accessor :grant_market_value
89
+
90
+ # Box 4, Fair market value per share on exercise date
91
+ # @return [Float]
92
+ attr_accessor :exercise_market_value
93
+
94
+ # Box 5, Exercise price paid per share
95
+ # @return [Float]
96
+ attr_accessor :exercise_price
97
+
98
+ # Box 6, Number of shares transferred
99
+ # @return [Float]
100
+ attr_accessor :number_of_shares
101
+
102
+ # Box 7, Date legal title transferred
103
+ # @return [Date]
104
+ attr_accessor :title_transfer_date
105
+
106
+ # Box 8, Exercise price per share determined as if the option was exercised
107
+ # on the option granted date
108
+ # @return [Float]
109
+ attr_accessor :grant_date_exercise_price
110
+
111
+ # A mapping from model property names to API property names.
112
+ def self.names
113
+ @_hash = {} if @_hash.nil?
114
+ @_hash['tax_year'] = 'taxYear'
115
+ @_hash['corrected'] = 'corrected'
116
+ @_hash['account_id'] = 'accountId'
117
+ @_hash['tax_form_id'] = 'taxFormId'
118
+ @_hash['tax_form_date'] = 'taxFormDate'
119
+ @_hash['additional_information'] = 'additionalInformation'
120
+ @_hash['tax_form_type'] = 'taxFormType'
121
+ @_hash['issuer'] = 'issuer'
122
+ @_hash['recipient'] = 'recipient'
123
+ @_hash['attributes'] = 'attributes'
124
+ @_hash['error'] = 'error'
125
+ @_hash['links'] = 'links'
126
+ @_hash['account_number'] = 'accountNumber'
127
+ @_hash['option_grant_date'] = 'optionGrantDate'
128
+ @_hash['option_exercise_date'] = 'optionExerciseDate'
129
+ @_hash['grant_market_value'] = 'grantMarketValue'
130
+ @_hash['exercise_market_value'] = 'exerciseMarketValue'
131
+ @_hash['exercise_price'] = 'exercisePrice'
132
+ @_hash['number_of_shares'] = 'numberOfShares'
133
+ @_hash['title_transfer_date'] = 'titleTransferDate'
134
+ @_hash['grant_date_exercise_price'] = 'grantDateExercisePrice'
135
+ @_hash
136
+ end
137
+
138
+ # An array for optional fields
139
+ def self.optionals
140
+ %w[
141
+ tax_year
142
+ corrected
143
+ account_id
144
+ tax_form_id
145
+ tax_form_date
146
+ additional_information
147
+ tax_form_type
148
+ issuer
149
+ recipient
150
+ attributes
151
+ error
152
+ links
153
+ account_number
154
+ option_grant_date
155
+ option_exercise_date
156
+ grant_market_value
157
+ exercise_market_value
158
+ exercise_price
159
+ number_of_shares
160
+ title_transfer_date
161
+ grant_date_exercise_price
162
+ ]
163
+ end
164
+
165
+ # An array for nullable fields
166
+ def self.nullables
167
+ []
168
+ end
169
+
170
+ def initialize(tax_year: SKIP, corrected: SKIP, account_id: SKIP,
171
+ tax_form_id: SKIP, tax_form_date: SKIP,
172
+ additional_information: SKIP, tax_form_type: SKIP,
173
+ issuer: SKIP, recipient: SKIP, attributes: SKIP, error: SKIP,
174
+ links: SKIP, account_number: SKIP, option_grant_date: SKIP,
175
+ option_exercise_date: SKIP, grant_market_value: SKIP,
176
+ exercise_market_value: SKIP, exercise_price: SKIP,
177
+ number_of_shares: SKIP, title_transfer_date: SKIP,
178
+ grant_date_exercise_price: SKIP, additional_properties: nil)
179
+ # Add additional model properties to the instance
180
+ additional_properties = {} if additional_properties.nil?
181
+
182
+ @tax_year = tax_year unless tax_year == SKIP
183
+ @corrected = corrected unless corrected == SKIP
184
+ @account_id = account_id unless account_id == SKIP
185
+ @tax_form_id = tax_form_id unless tax_form_id == SKIP
186
+ @tax_form_date = tax_form_date unless tax_form_date == SKIP
187
+ @additional_information = additional_information unless additional_information == SKIP
188
+ @tax_form_type = tax_form_type unless tax_form_type == SKIP
189
+ @issuer = issuer unless issuer == SKIP
190
+ @recipient = recipient unless recipient == SKIP
191
+ @attributes = attributes unless attributes == SKIP
192
+ @error = error unless error == SKIP
193
+ @links = links unless links == SKIP
194
+ @account_number = account_number unless account_number == SKIP
195
+ @option_grant_date = option_grant_date unless option_grant_date == SKIP
196
+ @option_exercise_date = option_exercise_date unless option_exercise_date == SKIP
197
+ @grant_market_value = grant_market_value unless grant_market_value == SKIP
198
+ @exercise_market_value = exercise_market_value unless exercise_market_value == SKIP
199
+ @exercise_price = exercise_price unless exercise_price == SKIP
200
+ @number_of_shares = number_of_shares unless number_of_shares == SKIP
201
+ @title_transfer_date = title_transfer_date unless title_transfer_date == SKIP
202
+ unless grant_date_exercise_price == SKIP
203
+ @grant_date_exercise_price =
204
+ grant_date_exercise_price
205
+ end
206
+ @additional_properties = additional_properties
207
+ end
208
+
209
+ # Creates an instance of the object from a hash.
210
+ def self.from_hash(hash)
211
+ return nil unless hash
212
+
213
+ # Extract variables from the hash.
214
+ tax_year = hash.key?('taxYear') ? hash['taxYear'] : SKIP
215
+ corrected = hash.key?('corrected') ? hash['corrected'] : SKIP
216
+ account_id = hash.key?('accountId') ? hash['accountId'] : SKIP
217
+ tax_form_id = hash.key?('taxFormId') ? hash['taxFormId'] : SKIP
218
+ tax_form_date = hash.key?('taxFormDate') ? hash['taxFormDate'] : SKIP
219
+ additional_information =
220
+ hash.key?('additionalInformation') ? hash['additionalInformation'] : SKIP
221
+ tax_form_type = hash.key?('taxFormType') ? hash['taxFormType'] : SKIP
222
+ issuer = TaxParty8.from_hash(hash['issuer']) if hash['issuer']
223
+ recipient = TaxParty1.from_hash(hash['recipient']) if hash['recipient']
224
+ # Parameter is an array, so we need to iterate through it
225
+ attributes = nil
226
+ unless hash['attributes'].nil?
227
+ attributes = []
228
+ hash['attributes'].each do |structure|
229
+ attributes << (TaxFormAttribute.from_hash(structure) if structure)
230
+ end
231
+ end
232
+
233
+ attributes = SKIP unless hash.key?('attributes')
234
+ error = Error1.from_hash(hash['error']) if hash['error']
235
+ # Parameter is an array, so we need to iterate through it
236
+ links = nil
237
+ unless hash['links'].nil?
238
+ links = []
239
+ hash['links'].each do |structure|
240
+ links << (HateoasLink.from_hash(structure) if structure)
241
+ end
242
+ end
243
+
244
+ links = SKIP unless hash.key?('links')
245
+ account_number = hash.key?('accountNumber') ? hash['accountNumber'] : SKIP
246
+ option_grant_date =
247
+ hash.key?('optionGrantDate') ? hash['optionGrantDate'] : SKIP
248
+ option_exercise_date =
249
+ hash.key?('optionExerciseDate') ? hash['optionExerciseDate'] : SKIP
250
+ grant_market_value =
251
+ hash.key?('grantMarketValue') ? hash['grantMarketValue'] : SKIP
252
+ exercise_market_value =
253
+ hash.key?('exerciseMarketValue') ? hash['exerciseMarketValue'] : SKIP
254
+ exercise_price = hash.key?('exercisePrice') ? hash['exercisePrice'] : SKIP
255
+ number_of_shares =
256
+ hash.key?('numberOfShares') ? hash['numberOfShares'] : SKIP
257
+ title_transfer_date =
258
+ hash.key?('titleTransferDate') ? hash['titleTransferDate'] : SKIP
259
+ grant_date_exercise_price =
260
+ hash.key?('grantDateExercisePrice') ? hash['grantDateExercisePrice'] : SKIP
261
+
262
+ # Create a new hash for additional properties, removing known properties.
263
+ new_hash = hash.reject { |k, _| names.value?(k) }
264
+
265
+ additional_properties = APIHelper.get_additional_properties(
266
+ new_hash, proc { |value| value }
267
+ )
268
+
269
+ # Create object from extracted values.
270
+ Form39221.new(tax_year: tax_year,
271
+ corrected: corrected,
272
+ account_id: account_id,
273
+ tax_form_id: tax_form_id,
274
+ tax_form_date: tax_form_date,
275
+ additional_information: additional_information,
276
+ tax_form_type: tax_form_type,
277
+ issuer: issuer,
278
+ recipient: recipient,
279
+ attributes: attributes,
280
+ error: error,
281
+ links: links,
282
+ account_number: account_number,
283
+ option_grant_date: option_grant_date,
284
+ option_exercise_date: option_exercise_date,
285
+ grant_market_value: grant_market_value,
286
+ exercise_market_value: exercise_market_value,
287
+ exercise_price: exercise_price,
288
+ number_of_shares: number_of_shares,
289
+ title_transfer_date: title_transfer_date,
290
+ grant_date_exercise_price: grant_date_exercise_price,
291
+ additional_properties: additional_properties)
292
+ end
293
+
294
+ # Provides a human-readable string representation of the object.
295
+ def to_s
296
+ class_name = self.class.name.split('::').last
297
+ "<#{class_name} tax_year: #{@tax_year}, corrected: #{@corrected}, account_id:"\
298
+ " #{@account_id}, tax_form_id: #{@tax_form_id}, tax_form_date: #{@tax_form_date},"\
299
+ " additional_information: #{@additional_information}, tax_form_type: #{@tax_form_type},"\
300
+ " issuer: #{@issuer}, recipient: #{@recipient}, attributes: #{@attributes}, error:"\
301
+ " #{@error}, links: #{@links}, account_number: #{@account_number}, option_grant_date:"\
302
+ " #{@option_grant_date}, option_exercise_date: #{@option_exercise_date}, grant_market_value:"\
303
+ " #{@grant_market_value}, exercise_market_value: #{@exercise_market_value}, exercise_price:"\
304
+ " #{@exercise_price}, number_of_shares: #{@number_of_shares}, title_transfer_date:"\
305
+ " #{@title_transfer_date}, grant_date_exercise_price: #{@grant_date_exercise_price},"\
306
+ " additional_properties: #{@additional_properties}>"
307
+ end
308
+
309
+ # Provides a debugging-friendly string with detailed object information.
310
+ def inspect
311
+ class_name = self.class.name.split('::').last
312
+ "<#{class_name} tax_year: #{@tax_year.inspect}, corrected: #{@corrected.inspect},"\
313
+ " account_id: #{@account_id.inspect}, tax_form_id: #{@tax_form_id.inspect}, tax_form_date:"\
314
+ " #{@tax_form_date.inspect}, additional_information: #{@additional_information.inspect},"\
315
+ " tax_form_type: #{@tax_form_type.inspect}, issuer: #{@issuer.inspect}, recipient:"\
316
+ " #{@recipient.inspect}, attributes: #{@attributes.inspect}, error: #{@error.inspect},"\
317
+ " links: #{@links.inspect}, account_number: #{@account_number.inspect}, option_grant_date:"\
318
+ " #{@option_grant_date.inspect}, option_exercise_date: #{@option_exercise_date.inspect},"\
319
+ " grant_market_value: #{@grant_market_value.inspect}, exercise_market_value:"\
320
+ " #{@exercise_market_value.inspect}, exercise_price: #{@exercise_price.inspect},"\
321
+ " number_of_shares: #{@number_of_shares.inspect}, title_transfer_date:"\
322
+ " #{@title_transfer_date.inspect}, grant_date_exercise_price:"\
323
+ " #{@grant_date_exercise_price.inspect}, additional_properties: #{@additional_properties}>"
324
+ end
325
+ end
326
+ end