avalara_sdk 25.7.0 → 25.8.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 (309) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +76 -39
  4. data/docs/A1099/V2/BulkUpsert1099FormsRequest.md +3 -1
  5. data/docs/A1099/V2/CompaniesW9Api.md +22 -22
  6. data/docs/A1099/V2/CoveredIndividualReferenceResponse.md +56 -0
  7. data/docs/A1099/V2/CoveredIndividualRequest.md +19 -19
  8. data/docs/A1099/V2/Create1099Form201Response.md +59 -0
  9. data/docs/A1099/V2/CreateW9Form201Response.md +55 -0
  10. data/docs/A1099/V2/CreateW9FormRequest.md +55 -0
  11. data/docs/A1099/V2/Form1042SList.md +20 -0
  12. data/docs/A1099/V2/Form1042SListItem.md +108 -0
  13. data/docs/A1099/V2/Form1042SListItemResponse.md +130 -0
  14. data/docs/A1099/V2/Form1042SRequest.md +110 -0
  15. data/docs/A1099/V2/Form1042SResponse.md +88 -0
  16. data/docs/A1099/V2/Form1095BListItem.md +31 -31
  17. data/docs/A1099/V2/Form1095BListItemResponse.md +86 -0
  18. data/docs/A1099/V2/Form1095BRequest.md +33 -33
  19. data/docs/A1099/V2/Form1099BaseResponse.md +82 -0
  20. data/docs/A1099/V2/Form1099DivListItem.md +45 -45
  21. data/docs/A1099/V2/Form1099DivRequest.md +44 -44
  22. data/docs/A1099/V2/Form1099DivResponse.md +3 -3
  23. data/docs/A1099/V2/Form1099KListItem.md +46 -46
  24. data/docs/A1099/V2/Form1099KListItemResponse.md +122 -0
  25. data/docs/A1099/V2/Form1099KRequest.md +45 -45
  26. data/docs/A1099/V2/Form1099ListResponse.md +18 -0
  27. data/docs/A1099/V2/Form1099ListResponseValueInner.md +59 -0
  28. data/docs/A1099/V2/Form1099MiscListItem.md +43 -43
  29. data/docs/A1099/V2/Form1099MiscListItemResponse.md +108 -0
  30. data/docs/A1099/V2/Form1099MiscRequest.md +42 -42
  31. data/docs/A1099/V2/Form1099MiscResponse.md +5 -5
  32. data/docs/A1099/V2/Form1099NecListItem.md +31 -31
  33. data/docs/A1099/V2/Form1099NecListItemResponse.md +88 -0
  34. data/docs/A1099/V2/Form1099NecRequest.md +30 -30
  35. data/docs/A1099/V2/Form1099NecResponse.md +5 -5
  36. data/docs/A1099/V2/Form1099RListItem.md +47 -47
  37. data/docs/A1099/V2/Form1099RListItemResponse.md +122 -0
  38. data/docs/A1099/V2/Form1099RRequest.md +45 -45
  39. data/docs/A1099/V2/Form1099StatusDetailResponse.md +20 -0
  40. data/docs/A1099/V2/FormRequestBase.md +23 -23
  41. data/docs/A1099/V2/FormRequestListItemBase.md +66 -0
  42. data/docs/A1099/V2/FormResponseBase.md +3 -3
  43. data/docs/A1099/V2/FormSingleRequestBase.md +25 -25
  44. data/docs/A1099/V2/Forms1099Api.md +75 -63
  45. data/docs/A1099/V2/FormsW9Api.md +61 -56
  46. data/docs/A1099/V2/Get1099Form200Response.md +15 -11
  47. data/docs/A1099/V2/IntermediaryOrFlowThrough.md +38 -0
  48. data/docs/A1099/V2/IntermediaryOrFlowThroughRequest.md +38 -0
  49. data/docs/A1099/V2/IntermediaryOrFlowThroughResponse.md +38 -0
  50. data/docs/A1099/V2/Issuers1099Api.md +23 -23
  51. data/docs/A1099/V2/JobResult.md +15 -15
  52. data/docs/A1099/V2/Jobs1099Api.md +2 -2
  53. data/docs/A1099/V2/PrimaryWithholdingAgent.md +20 -0
  54. data/docs/A1099/V2/PrimaryWithholdingAgentRequest.md +20 -0
  55. data/docs/A1099/V2/PrimaryWithholdingAgentResponse.md +20 -0
  56. data/docs/A1099/V2/StateAndLocalWithholdingResponse.md +8 -8
  57. data/docs/A1099/V2/StateEfileStatusDetailResponse.md +22 -0
  58. data/docs/A1099/V2/SubstantialUsOwnerRequest.md +22 -0
  59. data/docs/A1099/V2/Update1099Form200Response.md +3 -1
  60. data/docs/A1099/V2/ValidationErrorResponse.md +20 -0
  61. data/docs/A1099/V2/W4FormDataModel.md +5 -5
  62. data/docs/A1099/V2/W4FormRequest.md +66 -0
  63. data/docs/A1099/V2/W8BenEFormRequest.md +218 -0
  64. data/docs/A1099/V2/W8BenEFormResponse.md +3 -3
  65. data/docs/A1099/V2/W8BenFormDataModel.md +5 -5
  66. data/docs/A1099/V2/W8BenFormRequest.md +76 -0
  67. data/docs/A1099/V2/W8BeneFormDataModel.md +5 -5
  68. data/docs/A1099/V2/W8ImyFormDataModel.md +5 -5
  69. data/docs/A1099/V2/W8ImyFormRequest.md +250 -0
  70. data/docs/A1099/V2/W8ImyFormResponse.md +2 -2
  71. data/docs/A1099/V2/W9FormBaseRequest.md +28 -0
  72. data/docs/A1099/V2/W9FormDataModel.md +5 -5
  73. data/docs/A1099/V2/W9FormRequest.md +64 -0
  74. data/docs/EInvoicing/V1/Address.md +28 -0
  75. data/docs/EInvoicing/V1/BatchErrorDetail.md +20 -0
  76. data/docs/EInvoicing/V1/BatchSearchListResponse.md +2 -2
  77. data/docs/EInvoicing/V1/Consents.md +18 -0
  78. data/docs/EInvoicing/V1/CreateTradingPartner201Response.md +22 -0
  79. data/docs/EInvoicing/V1/CreateTradingPartnersBatch200Response.md +22 -0
  80. data/docs/EInvoicing/V1/CreateTradingPartnersBatch200ResponseValueInner.md +22 -0
  81. data/docs/EInvoicing/V1/CreateTradingPartnersBatchRequest.md +18 -0
  82. data/docs/EInvoicing/V1/DataInputFieldsApi.md +5 -5
  83. data/docs/EInvoicing/V1/DocumentsApi.md +9 -9
  84. data/docs/EInvoicing/V1/Extension.md +20 -0
  85. data/docs/EInvoicing/V1/Identifier.md +22 -0
  86. data/docs/EInvoicing/V1/InteropApi.md +1 -1
  87. data/docs/EInvoicing/V1/MandatesApi.md +6 -6
  88. data/docs/EInvoicing/V1/SearchParticipants200Response.md +22 -0
  89. data/docs/EInvoicing/V1/SubscriptionsApi.md +12 -12
  90. data/docs/EInvoicing/V1/SupportedDocumentTypes.md +26 -0
  91. data/docs/EInvoicing/V1/TaxIdentifierRequest.md +24 -0
  92. data/docs/EInvoicing/V1/TaxIdentifierResponse.md +20 -0
  93. data/docs/EInvoicing/V1/TaxIdentifierResponseValue.md +22 -0
  94. data/docs/EInvoicing/V1/TaxIdentifierSchemaByCountry200Response.md +20 -0
  95. data/docs/EInvoicing/V1/TaxIdentifiersApi.md +177 -0
  96. data/docs/EInvoicing/V1/TradingPartner.md +34 -0
  97. data/docs/EInvoicing/V1/TradingPartnersApi.md +412 -75
  98. data/docs/EInvoicing/V1/UpdateTradingPartner200Response.md +22 -0
  99. data/docs/EInvoicing/V1/ValidationError.md +20 -0
  100. data/lib/avalara_sdk/api/A1099/V2/companies_w9_api.rb +14 -14
  101. data/lib/avalara_sdk/api/A1099/V2/forms1099_api.rb +51 -39
  102. data/lib/avalara_sdk/api/A1099/V2/forms_w9_api.rb +56 -50
  103. data/lib/avalara_sdk/api/A1099/V2/issuers1099_api.rb +20 -20
  104. data/lib/avalara_sdk/api/A1099/V2/jobs1099_api.rb +2 -2
  105. data/lib/avalara_sdk/api/EInvoicing/V1/data_input_fields_api.rb +7 -7
  106. data/lib/avalara_sdk/api/EInvoicing/V1/documents_api.rb +11 -11
  107. data/lib/avalara_sdk/api/EInvoicing/V1/interop_api.rb +2 -2
  108. data/lib/avalara_sdk/api/EInvoicing/V1/mandates_api.rb +8 -8
  109. data/lib/avalara_sdk/api/EInvoicing/V1/subscriptions_api.rb +21 -21
  110. data/lib/avalara_sdk/api/EInvoicing/V1/tax_identifiers_api.rb +531 -0
  111. data/lib/avalara_sdk/api/EInvoicing/V1/trading_partners_api.rb +660 -80
  112. data/lib/avalara_sdk/models/A1099/V2/attribute.rb +1 -1
  113. data/lib/avalara_sdk/models/A1099/V2/authorized_api_request_model.rb +1 -1
  114. data/lib/avalara_sdk/models/A1099/V2/authorized_api_request_v2_data_model.rb +1 -1
  115. data/lib/avalara_sdk/models/A1099/V2/base_company_model.rb +1 -1
  116. data/lib/avalara_sdk/models/A1099/V2/base_form_list_request.rb +1 -1
  117. data/lib/avalara_sdk/models/A1099/V2/bulk_upsert1099_forms_request.rb +2 -1
  118. data/lib/avalara_sdk/models/A1099/V2/company_create_update_request_model.rb +1 -1
  119. data/lib/avalara_sdk/models/A1099/V2/company_model.rb +1 -1
  120. data/lib/avalara_sdk/models/A1099/V2/company_response.rb +1 -1
  121. data/lib/avalara_sdk/models/A1099/V2/company_response_model.rb +1 -1
  122. data/lib/avalara_sdk/models/A1099/V2/covered_individual_reference_response.rb +407 -0
  123. data/lib/avalara_sdk/models/A1099/V2/covered_individual_request.rb +20 -1
  124. data/lib/avalara_sdk/models/A1099/V2/create1099_form201_response.rb +106 -0
  125. data/lib/avalara_sdk/models/A1099/V2/create_w9_form201_response.rb +104 -0
  126. data/lib/avalara_sdk/models/A1099/V2/create_w9_form_request.rb +104 -0
  127. data/lib/avalara_sdk/models/A1099/V2/data.rb +1 -1
  128. data/lib/avalara_sdk/models/A1099/V2/error_model.rb +1 -1
  129. data/lib/avalara_sdk/models/A1099/V2/error_response.rb +1 -1
  130. data/lib/avalara_sdk/models/A1099/V2/error_response_errors_inner.rb +1 -1
  131. data/lib/avalara_sdk/models/A1099/V2/form1042_s_list.rb +238 -0
  132. data/lib/avalara_sdk/models/A1099/V2/form1042_s_list_item.rb +891 -0
  133. data/lib/avalara_sdk/models/A1099/V2/form1042_s_list_item_response.rb +925 -0
  134. data/lib/avalara_sdk/models/A1099/V2/form1042_s_request.rb +855 -0
  135. data/lib/avalara_sdk/models/A1099/V2/form1042_s_response.rb +600 -0
  136. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list.rb +1 -1
  137. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list_item.rb +147 -14
  138. data/lib/avalara_sdk/models/A1099/V2/form1095_b_list_item_response.rb +700 -0
  139. data/lib/avalara_sdk/models/A1099/V2/form1095_b_request.rb +149 -16
  140. data/lib/avalara_sdk/models/A1099/V2/form1099_base_response.rb +661 -0
  141. data/lib/avalara_sdk/models/A1099/V2/form1099_div_list.rb +1 -1
  142. data/lib/avalara_sdk/models/A1099/V2/form1099_div_list_item.rb +168 -13
  143. data/lib/avalara_sdk/models/A1099/V2/form1099_div_request.rb +159 -14
  144. data/lib/avalara_sdk/models/A1099/V2/form1099_div_response.rb +5 -5
  145. data/lib/avalara_sdk/models/A1099/V2/form1099_k_list.rb +1 -1
  146. data/lib/avalara_sdk/models/A1099/V2/form1099_k_list_item.rb +169 -13
  147. data/lib/avalara_sdk/models/A1099/V2/form1099_k_list_item_response.rb +930 -0
  148. data/lib/avalara_sdk/models/A1099/V2/form1099_k_request.rb +160 -14
  149. data/lib/avalara_sdk/models/A1099/V2/form1099_list_response.rb +220 -0
  150. data/lib/avalara_sdk/models/A1099/V2/form1099_list_response_value_inner.rb +106 -0
  151. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_list.rb +1 -1
  152. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_list_item.rb +171 -19
  153. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_list_item_response.rb +810 -0
  154. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_request.rb +162 -20
  155. data/lib/avalara_sdk/models/A1099/V2/form1099_misc_response.rb +12 -12
  156. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_list.rb +1 -1
  157. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_list_item.rb +168 -20
  158. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_list_item_response.rb +700 -0
  159. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_request.rb +157 -20
  160. data/lib/avalara_sdk/models/A1099/V2/form1099_nec_response.rb +12 -12
  161. data/lib/avalara_sdk/models/A1099/V2/form1099_proccess_result.rb +1 -1
  162. data/lib/avalara_sdk/models/A1099/V2/form1099_r_list.rb +1 -1
  163. data/lib/avalara_sdk/models/A1099/V2/form1099_r_list_item.rb +171 -15
  164. data/lib/avalara_sdk/models/A1099/V2/form1099_r_list_item_response.rb +888 -0
  165. data/lib/avalara_sdk/models/A1099/V2/form1099_r_request.rb +160 -14
  166. data/lib/avalara_sdk/models/A1099/V2/form1099_status_detail_response.rb +223 -0
  167. data/lib/avalara_sdk/models/A1099/V2/form_request_base.rb +138 -12
  168. data/lib/avalara_sdk/models/A1099/V2/form_request_list_item_base.rb +611 -0
  169. data/lib/avalara_sdk/models/A1099/V2/form_response_base.rb +5 -5
  170. data/lib/avalara_sdk/models/A1099/V2/form_single_request_base.rb +140 -14
  171. data/lib/avalara_sdk/models/A1099/V2/get1099_form200_response.rb +8 -6
  172. data/lib/avalara_sdk/models/A1099/V2/http_validation_problem_details.rb +1 -1
  173. data/lib/avalara_sdk/models/A1099/V2/i_create_form1099_request.rb +1 -1
  174. data/lib/avalara_sdk/models/A1099/V2/i_update_form1099_request.rb +1 -1
  175. data/lib/avalara_sdk/models/A1099/V2/intermediary_or_flow_through.rb +311 -0
  176. data/lib/avalara_sdk/models/A1099/V2/intermediary_or_flow_through_request.rb +311 -0
  177. data/lib/avalara_sdk/models/A1099/V2/intermediary_or_flow_through_response.rb +311 -0
  178. data/lib/avalara_sdk/models/A1099/V2/issuer_command.rb +1 -1
  179. data/lib/avalara_sdk/models/A1099/V2/issuer_response.rb +1 -1
  180. data/lib/avalara_sdk/models/A1099/V2/iw9_form_data_models_one_of.rb +1 -1
  181. data/lib/avalara_sdk/models/A1099/V2/job_result.rb +16 -1
  182. data/lib/avalara_sdk/models/A1099/V2/link.rb +1 -1
  183. data/lib/avalara_sdk/models/A1099/V2/paginated_query_result_model.rb +1 -1
  184. data/lib/avalara_sdk/models/A1099/V2/paginated_query_result_model_company_response.rb +1 -1
  185. data/lib/avalara_sdk/models/A1099/V2/paginated_query_result_model_issuer_response.rb +1 -1
  186. data/lib/avalara_sdk/models/A1099/V2/paginated_w9_forms_model.rb +1 -1
  187. data/lib/avalara_sdk/models/A1099/V2/primary_withholding_agent.rb +221 -0
  188. data/lib/avalara_sdk/models/A1099/V2/primary_withholding_agent_request.rb +221 -0
  189. data/lib/avalara_sdk/models/A1099/V2/primary_withholding_agent_response.rb +221 -0
  190. data/lib/avalara_sdk/models/A1099/V2/problem_details.rb +1 -1
  191. data/lib/avalara_sdk/models/A1099/V2/state_and_local_withholding_request.rb +5 -1
  192. data/lib/avalara_sdk/models/A1099/V2/state_and_local_withholding_response.rb +9 -1
  193. data/lib/avalara_sdk/models/A1099/V2/state_efile_status_detail_response.rb +231 -0
  194. data/lib/avalara_sdk/models/A1099/V2/status_detail.rb +1 -1
  195. data/lib/avalara_sdk/models/A1099/V2/substantial_us_owner_request.rb +233 -0
  196. data/lib/avalara_sdk/models/A1099/V2/substantial_us_owner_response.rb +1 -1
  197. data/lib/avalara_sdk/models/A1099/V2/update1099_form200_response.rb +2 -1
  198. data/lib/avalara_sdk/models/A1099/V2/validation_error_response.rb +231 -0
  199. data/lib/avalara_sdk/models/A1099/V2/w4_form_data_model.rb +6 -6
  200. data/lib/avalara_sdk/models/A1099/V2/w4_form_request.rb +509 -0
  201. data/lib/avalara_sdk/models/A1099/V2/w4_form_response.rb +1 -1
  202. data/lib/avalara_sdk/models/A1099/V2/w8_ben_e_form_request.rb +1343 -0
  203. data/lib/avalara_sdk/models/A1099/V2/w8_ben_e_form_response.rb +4 -4
  204. data/lib/avalara_sdk/models/A1099/V2/w8_ben_e_substantial_us_owner_data_model.rb +1 -1
  205. data/lib/avalara_sdk/models/A1099/V2/w8_ben_form_data_model.rb +6 -6
  206. data/lib/avalara_sdk/models/A1099/V2/w8_ben_form_request.rb +561 -0
  207. data/lib/avalara_sdk/models/A1099/V2/w8_ben_form_response.rb +1 -1
  208. data/lib/avalara_sdk/models/A1099/V2/w8_bene_form_data_model.rb +6 -6
  209. data/lib/avalara_sdk/models/A1099/V2/w8_imy_form_data_model.rb +6 -6
  210. data/lib/avalara_sdk/models/A1099/V2/w8_imy_form_request.rb +1518 -0
  211. data/lib/avalara_sdk/models/A1099/V2/w8_imy_form_response.rb +3 -3
  212. data/lib/avalara_sdk/models/A1099/V2/w9_form_base_request.rb +299 -0
  213. data/lib/avalara_sdk/models/A1099/V2/w9_form_base_response.rb +1 -1
  214. data/lib/avalara_sdk/models/A1099/V2/w9_form_data_model.rb +6 -6
  215. data/lib/avalara_sdk/models/A1099/V2/w9_form_request.rb +495 -0
  216. data/lib/avalara_sdk/models/A1099/V2/w9_form_response.rb +4 -3
  217. data/lib/avalara_sdk/models/EInvoicing/V1/address.rb +382 -0
  218. data/lib/avalara_sdk/models/EInvoicing/V1/batch_error_detail.rb +223 -0
  219. data/lib/avalara_sdk/models/EInvoicing/V1/batch_search.rb +1 -1
  220. data/lib/avalara_sdk/models/EInvoicing/V1/batch_search_list_response.rb +3 -2
  221. data/lib/avalara_sdk/models/EInvoicing/V1/consents.rb +213 -0
  222. data/lib/avalara_sdk/models/EInvoicing/V1/create_trading_partner201_response.rb +231 -0
  223. data/lib/avalara_sdk/models/EInvoicing/V1/create_trading_partners_batch200_response.rb +232 -0
  224. data/lib/avalara_sdk/models/EInvoicing/V1/create_trading_partners_batch200_response_value_inner.rb +231 -0
  225. data/lib/avalara_sdk/models/EInvoicing/V1/create_trading_partners_batch_request.rb +212 -0
  226. data/lib/avalara_sdk/models/EInvoicing/V1/data_input_fields_response.rb +1 -2
  227. data/lib/avalara_sdk/models/EInvoicing/V1/document_fetch.rb +1 -2
  228. data/lib/avalara_sdk/models/EInvoicing/V1/error_response.rb +1 -1
  229. data/lib/avalara_sdk/models/EInvoicing/V1/extension.rb +256 -0
  230. data/lib/avalara_sdk/models/EInvoicing/V1/hmac_signature_value.rb +1 -2
  231. data/lib/avalara_sdk/models/EInvoicing/V1/identifier.rb +302 -0
  232. data/lib/avalara_sdk/models/EInvoicing/V1/mandate.rb +1 -2
  233. data/lib/avalara_sdk/models/EInvoicing/V1/pagination.rb +1 -2
  234. data/lib/avalara_sdk/models/EInvoicing/V1/required_when_field.rb +1 -2
  235. data/lib/avalara_sdk/models/EInvoicing/V1/search_participants200_response.rb +232 -0
  236. data/lib/avalara_sdk/models/EInvoicing/V1/signature.rb +1 -2
  237. data/lib/avalara_sdk/models/EInvoicing/V1/signature_value.rb +1 -2
  238. data/lib/avalara_sdk/models/EInvoicing/V1/subscription_common.rb +1 -2
  239. data/lib/avalara_sdk/models/EInvoicing/V1/success_response.rb +1 -2
  240. data/lib/avalara_sdk/models/EInvoicing/V1/supported_document_types.rb +305 -0
  241. data/lib/avalara_sdk/models/EInvoicing/V1/tax_identifier_request.rb +329 -0
  242. data/lib/avalara_sdk/models/EInvoicing/V1/tax_identifier_response.rb +228 -0
  243. data/lib/avalara_sdk/models/EInvoicing/V1/tax_identifier_response_value.rb +231 -0
  244. data/lib/avalara_sdk/models/EInvoicing/V1/tax_identifier_schema_by_country200_response.rb +235 -0
  245. data/lib/avalara_sdk/models/EInvoicing/V1/trading_partner.rb +411 -0
  246. data/lib/avalara_sdk/models/EInvoicing/V1/update_trading_partner200_response.rb +231 -0
  247. data/lib/avalara_sdk/models/EInvoicing/V1/validation_error.rb +222 -0
  248. data/lib/avalara_sdk/models/EInvoicing/V1/webhooks_error_response.rb +1 -2
  249. data/lib/avalara_sdk/version.rb +1 -1
  250. data/lib/avalara_sdk.rb +53 -0
  251. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-11.1.3/byebug/byebug.so +0 -0
  252. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/byebug-11.1.3/gem_make.out +6 -6
  253. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.4.1/date_core.so +0 -0
  254. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.4.1/gem_make.out +6 -6
  255. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/date-3.4.1/mkmf.log +4 -4
  256. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debase-0.2.9/attach.so +0 -0
  257. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debase-0.2.9/debase_internals.so +0 -0
  258. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debase-0.2.9/gem_make.out +7 -7
  259. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debase-0.2.9/mkmf.log +6 -6
  260. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debug-1.10.0/debug/debug.so +0 -0
  261. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/debug-1.10.0/gem_make.out +6 -6
  262. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/erb-5.0.1/erb/escape.so +0 -0
  263. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/erb-5.0.1/gem_make.out +6 -6
  264. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.0/gem_make.out +6 -6
  265. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.0/io/console.so +0 -0
  266. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/io-console-0.8.0/mkmf.log +21 -21
  267. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.12.2/gem_make.out +6 -6
  268. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.12.2/json/ext/generator.so +0 -0
  269. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.12.2/json/ext/parser.so +0 -0
  270. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.12.2/mkmf.log +7 -7
  271. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-1.4.0/gem_make.out +6 -6
  272. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-1.4.0/mkmf.log +6 -6
  273. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/prism-1.4.0/prism/prism.so +0 -0
  274. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/psych-5.2.6/gem_make.out +6 -6
  275. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/psych-5.2.6/mkmf.log +10 -10
  276. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/psych-5.2.6/psych.so +0 -0
  277. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/gem_make.out +6 -6
  278. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/racc-1.8.1/racc/cparse.so +0 -0
  279. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/ruby-debug-ide-0.7.3/gem_make.out +2 -2
  280. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.7/gem_make.out +6 -6
  281. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.7/mkmf.log +2 -2
  282. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/stringio-3.1.7/stringio.so +0 -0
  283. data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/ext/byebug/Makefile +3 -3
  284. data/vendor/bundle/ruby/3.3.0/gems/byebug-11.1.3/lib/byebug/byebug.so +0 -0
  285. data/vendor/bundle/ruby/3.3.0/gems/date-3.4.1/ext/date/Makefile +3 -3
  286. data/vendor/bundle/ruby/3.3.0/gems/date-3.4.1/lib/date_core.so +0 -0
  287. data/vendor/bundle/ruby/3.3.0/gems/debase-0.2.9/ext/Makefile +3 -3
  288. data/vendor/bundle/ruby/3.3.0/gems/debase-0.2.9/ext/attach/Makefile +3 -3
  289. data/vendor/bundle/ruby/3.3.0/gems/debase-0.2.9/lib/attach.so +0 -0
  290. data/vendor/bundle/ruby/3.3.0/gems/debase-0.2.9/lib/debase_internals.so +0 -0
  291. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/ext/debug/Makefile +3 -3
  292. data/vendor/bundle/ruby/3.3.0/gems/debug-1.10.0/lib/debug/debug.so +0 -0
  293. data/vendor/bundle/ruby/3.3.0/gems/erb-5.0.1/ext/erb/escape/Makefile +3 -3
  294. data/vendor/bundle/ruby/3.3.0/gems/erb-5.0.1/lib/erb/escape.so +0 -0
  295. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/ext/io/console/Makefile +3 -3
  296. data/vendor/bundle/ruby/3.3.0/gems/io-console-0.8.0/lib/io/console.so +0 -0
  297. data/vendor/bundle/ruby/3.3.0/gems/json-2.12.2/ext/json/ext/generator/Makefile +3 -3
  298. data/vendor/bundle/ruby/3.3.0/gems/json-2.12.2/ext/json/ext/parser/Makefile +3 -3
  299. data/vendor/bundle/ruby/3.3.0/gems/json-2.12.2/lib/json/ext/generator.so +0 -0
  300. data/vendor/bundle/ruby/3.3.0/gems/json-2.12.2/lib/json/ext/parser.so +0 -0
  301. data/vendor/bundle/ruby/3.3.0/gems/prism-1.4.0/ext/prism/Makefile +3 -3
  302. data/vendor/bundle/ruby/3.3.0/gems/prism-1.4.0/lib/prism/prism.so +0 -0
  303. data/vendor/bundle/ruby/3.3.0/gems/psych-5.2.6/ext/psych/Makefile +3 -3
  304. data/vendor/bundle/ruby/3.3.0/gems/psych-5.2.6/lib/psych.so +0 -0
  305. data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/ext/racc/cparse/Makefile +3 -3
  306. data/vendor/bundle/ruby/3.3.0/gems/racc-1.8.1/lib/racc/cparse.so +0 -0
  307. data/vendor/bundle/ruby/3.3.0/gems/stringio-3.1.7/ext/stringio/Makefile +3 -3
  308. data/vendor/bundle/ruby/3.3.0/gems/stringio-3.1.7/lib/stringio.so +0 -0
  309. metadata +109 -3
@@ -0,0 +1,1343 @@
1
+ =begin
2
+ #Avalara 1099 & W-9 API Definition
3
+
4
+ ### 🔐 Authentication Generate a **license key** from: *[Avalara Portal](https://www.avalara.com/us/en/signin.html) → Settings → License and API Keys*. [More on authentication methods](https://developer.avalara.com/avatax-dm-combined-erp/common-setup/authentication/authentication-methods/) [Test your credentials](https://developer.avalara.com/avatax/test-credentials/) ## 📘 API & SDK Documentation [Avalara SDK (.NET) on GitHub](https://github.com/avadev/Avalara-SDK-DotNet#avalarasdk--the-unified-c-library-for-next-gen-avalara-services) [Code Examples – 1099 API](https://github.com/avadev/Avalara-SDK-DotNet/blob/main/docs/A1099/V2/Class1099IssuersApi.md#call1099issuersget)
5
+
6
+
7
+ =end
8
+
9
+ require 'date'
10
+ require 'time'
11
+
12
+ module AvalaraSdk::A1099::V2
13
+ class W8BenEFormRequest
14
+ # The form type (always \"w8bene\" for this model).
15
+ attr_accessor :type
16
+
17
+ # The name of the individual or entity associated with the form.
18
+ attr_accessor :name
19
+
20
+ # The country of citizenship.
21
+ attr_accessor :citizenship_country
22
+
23
+ # The name of the disregarded entity receiving the payment (if applicable).
24
+ attr_accessor :disregarded_entity
25
+
26
+ # The entity type.
27
+ attr_accessor :entity_type
28
+
29
+ # Indicates whether the entity is making a treaty claim.
30
+ attr_accessor :making_treaty_claim
31
+
32
+ # The FATCA status.
33
+ attr_accessor :fatca_status
34
+
35
+ # The residential address of the individual or entity.
36
+ attr_accessor :residence_address
37
+
38
+ # The city of residence.
39
+ attr_accessor :residence_city
40
+
41
+ # The state of residence.
42
+ attr_accessor :residence_state
43
+
44
+ # The ZIP code of the residence.
45
+ attr_accessor :residence_zip
46
+
47
+ # The country of residence.
48
+ attr_accessor :residence_country
49
+
50
+ # Indicates whether the residence address is also the mailing address.
51
+ attr_accessor :residence_is_mailing
52
+
53
+ # The mailing address.
54
+ attr_accessor :mailing_address
55
+
56
+ # The city of the mailing address.
57
+ attr_accessor :mailing_city
58
+
59
+ # The state of the mailing address.
60
+ attr_accessor :mailing_state
61
+
62
+ # The ZIP code of the mailing address.
63
+ attr_accessor :mailing_zip
64
+
65
+ # The country of the mailing address.
66
+ attr_accessor :mailing_country
67
+
68
+ # The taxpayer identification number (TIN).
69
+ attr_accessor :tin
70
+
71
+ # The global intermediary identification number (GIIN).
72
+ attr_accessor :giin
73
+
74
+ # Indicates whether a foreign TIN is not required.
75
+ attr_accessor :foreign_tin_not_required
76
+
77
+ # The foreign taxpayer identification number (TIN).
78
+ attr_accessor :foreign_tin
79
+
80
+ # A reference number for the form.
81
+ attr_accessor :reference_number
82
+
83
+ # The FATCA status of disregarded entity or branch receiving payment.
84
+ attr_accessor :disregarded_entity_fatca_status
85
+
86
+ # The address for disregarded entities.
87
+ attr_accessor :disregarded_address
88
+
89
+ # The city for disregarded entities.
90
+ attr_accessor :disregarded_city
91
+
92
+ # The state for disregarded entities.
93
+ attr_accessor :disregarded_state
94
+
95
+ # The ZIP code for disregarded entities.
96
+ attr_accessor :disregarded_zip
97
+
98
+ # The country for disregarded entities.
99
+ attr_accessor :disregarded_country
100
+
101
+ # The GIIN for disregarded entities.
102
+ attr_accessor :disregarded_entity_giin
103
+
104
+ # Certifies the beneficial owner's country under the U.S. tax treaty.
105
+ attr_accessor :treaty_country_certification
106
+
107
+ # The treaty country of the beneficial owner.
108
+ attr_accessor :treaty_country
109
+
110
+ # Certifies that the beneficial owner is eligible for treaty benefits and meets any limitation on benefits requirements.
111
+ attr_accessor :benefit_limitation_certification
112
+
113
+ # The benefit limitation for tax treaty claims.
114
+ attr_accessor :benefit_limitation
115
+
116
+ # Certifies that the beneficial owner claims treaty benefits and meets the qualified resident status for specific U.S. source income.
117
+ attr_accessor :qualified_resident_status_certification
118
+
119
+ # Indicates the specific article and paragraph of the tax treaty under which the beneficial owner is claiming benefits.
120
+ attr_accessor :treaty_article
121
+
122
+ # Specifies the reduced withholding rate claimed under the applicable tax treaty.
123
+ attr_accessor :withholding_rate
124
+
125
+ # Specifies the type of income for which the reduced treaty withholding rate is being claimed.
126
+ attr_accessor :income_type
127
+
128
+ # The additional conditions in the article the beneficial owner meets to be eligible for the rate of withholding.
129
+ attr_accessor :treaty_reasons
130
+
131
+ # The name of the entity that sponsors the foreign financial institution (FFI).
132
+ attr_accessor :ffi_sponsoring_entity
133
+
134
+ # Certifies that the entity is an investment entity, not a QI, WP, or WT, and has an agreement with a sponsoring entity.
135
+ attr_accessor :investment_entity_certification
136
+
137
+ # Certifies that the entity is a controlled foreign corporation sponsored by a U.S. financial institution, not a QI, WP, or WT, and shares a common electronic account system for full transparency.
138
+ attr_accessor :controlled_foreign_corporation_certification
139
+
140
+ # Certifies that the FFI operates solely as a limited bank or credit union within its country, meets asset thresholds, and has no foreign operations or affiliations outside its country of organization.
141
+ attr_accessor :compliant_nonregistering_local_bank_certification
142
+
143
+ # Certifies that the FFI is not primarily engaged in investment activities, maintains only low-value accounts, and has limited total assets within its group.
144
+ attr_accessor :compliant_ffi_low_value_accounts_certification
145
+
146
+ # The name of sponsoring entity for a certified deemed-compliant, closely held investment vehicle.
147
+ attr_accessor :sponsored_closely_held_entity_sponsoring_entity
148
+
149
+ # Certifies that the entity is a sponsored investment entity with 20 or fewer individual owners, and that all compliance obligations are fulfilled by the sponsoring entity.
150
+ attr_accessor :sponsored_closely_held_investment_vehicle_certification
151
+
152
+ # Certifies that the entity qualifies as a limited life debt investment entity based on its formation date, issuance terms, and compliance with regulatory requirements.
153
+ attr_accessor :compliant_limited_life_debt_entity_certification
154
+
155
+ # Certifies that the entity is a financial institution solely because it is an investment entity under regulations and the entity does not maintain financial accounts.
156
+ attr_accessor :investment_entity_no_financial_accounts_certification
157
+
158
+ # Certifies that the FFI meets all requirements to qualify as an owner-documented FFI, including restrictions on activities, ownership, and account relationships.
159
+ attr_accessor :owner_documented_ffi_certification
160
+
161
+ # Certifies that the FFI will provide a complete owner reporting statement and required documentation for each relevant owner or debt holder.
162
+ attr_accessor :owner_documented_ffi_reporting_statement_certification
163
+
164
+ # Certifies that the FFI will provide an auditor’s letter and required owner reporting documentation to confirm its status as an owner-documented FFI.
165
+ attr_accessor :owner_documented_ffi_auditor_letter_certification
166
+
167
+ # Certifies that the trust has no contingent or unidentified beneficiaries or designated classes of beneficiaries.
168
+ attr_accessor :owner_documented_ffi_trust_beneficiaries_certification
169
+
170
+ # Certifies that the entity qualifies as a restricted distributor based on its operations, customer base, regulatory compliance, and financial and geographic limitations.
171
+ attr_accessor :restricted_distributor_certification
172
+
173
+ # Certifies that the entity is, and has been, bound by distribution agreements prohibiting sales of fund interests to specified U.S. persons and certain non-U.S. entities.
174
+ attr_accessor :restricted_distributor_agreement_certification
175
+
176
+ # Certifies that the entity complies with distribution restrictions for U.S.-linked investors and has addressed any preexisting sales in accordance with FATCA regulations.
177
+ attr_accessor :restricted_distributor_preexisting_sales_compliance_certification
178
+
179
+ # Certifies that the entity meets the requirements to be considered a nonreporting financial institution to an applicable IGA.
180
+ attr_accessor :nonreporting_iga_ffi_certification
181
+
182
+ # The country for the applicable IGA with the United States.
183
+ attr_accessor :iga_country
184
+
185
+ # The applicable IGA model.
186
+ attr_accessor :iga_model
187
+
188
+ # Specifies how the applicable IGA is treated under the IGA provisions or Treasury regulations.
189
+ attr_accessor :iga_legal_status_treatment
190
+
191
+ # The trustee or sponsor name for the nonreporting IGA FFI.
192
+ attr_accessor :iga_ffi_trustee_or_sponsor
193
+
194
+ # Indicates whether the trustee for the nonreporting IGA FFI is foreign.
195
+ attr_accessor :iga_ffi_trustee_is_foreign
196
+
197
+ # Certifies that the entity is the beneficial owner and is not engaged in commercial financial activities related to the specified payments, accounts or obligations for which this form is submitted.
198
+ attr_accessor :non_commercial_financial_activity_certification
199
+
200
+ # Certifies that the entity is an international organization described in section 7701(a)(18).
201
+ attr_accessor :internation_organization_certification
202
+
203
+ # Certifies that the entity is an intergovernmental or supranational organization primarily comprised of foreign governments, is the beneficial owner, and is not engaged in commercial financial activities.
204
+ attr_accessor :intergovernmental_organization_certification
205
+
206
+ # Certifies that the entity is a pension or retirement fund established in a treaty country and is entitled to treaty benefits on U.S. source income.
207
+ attr_accessor :treaty_qualified_pension_fund_certification
208
+
209
+ # Certifies that the entity is a government-regulated retirement fund meeting specific requirements for contributions, tax exemption, beneficiary limits, and distribution restrictions.
210
+ attr_accessor :qualified_retirement_fund_certification
211
+
212
+ # Certifies that the entity is a government-regulated retirement fund with fewer than 50 participants, limited foreign ownership, and employer sponsorship that is not from investment entities or passive NFFEs.
213
+ attr_accessor :narrow_participation_retirement_fund_certification
214
+
215
+ # Certifies that the entity is formed under a pension plan meeting section 401(a) requirements, except for being U.S.-trust funded.
216
+ attr_accessor :section401_a_equivalent_pension_plan_certification
217
+
218
+ # Certifies that the entity is established solely to earn income for the benefit of qualifying retirement funds or accounts under applicable FATCA regulations or IGAs.
219
+ attr_accessor :investment_entity_for_retirement_funds_certification
220
+
221
+ # Certifies that the entity is established and sponsored by a qualifying exempt beneficial owner to provide retirement, disability, or death benefits to individuals based on services performed for the sponsor.
222
+ attr_accessor :exempt_beneficial_owner_sponsored_retirement_fund_certification
223
+
224
+ # Certifies that the entity is an investment entity wholly owned by exempt beneficial owners and has provided complete ownership and documentation details as required under FATCA regulations.
225
+ attr_accessor :exempt_beneficial_owner_owned_investment_entity_certification
226
+
227
+ # Certifies that the entity is a financial institution (other than an investment entity) that is incorporated or organized under the laws of a possession of the United States.
228
+ attr_accessor :territory_financial_institution_certification
229
+
230
+ # Certifies that the entity is a holding company, treasury center, or captive finance company operating within a nonfinancial group and not functioning as an investment or financial institution.
231
+ attr_accessor :excepted_nonfinancial_group_entity_certification
232
+
233
+ # Certifies that the entity is a recently formed startup NFFE investing in a non-financial business and is not operating as or presenting itself as an investment fund.
234
+ attr_accessor :excepted_nonfinancial_start_up_certification
235
+
236
+ # The date the start-up company was formed on (or, in case of new line of business, the date of board resolution approving the new line of business).
237
+ attr_accessor :startup_formation_or_resolution_date
238
+
239
+ # Certifies that the entity is in liquidation, reorganization, or bankruptcy and intends to operate as a nonfinancial entity, with supporting documentation available if the process exceeds three years.
240
+ attr_accessor :excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification
241
+
242
+ # The filed date for a plan of reorganization, liquidation or bankruptcy.
243
+ attr_accessor :nonfinancial_entity_filing_date
244
+
245
+ # Certifies that the entity is a section 501(c) organization based on a valid IRS determination letter or a legal opinion from U.S. counsel.
246
+ attr_accessor :section501_c_organization_certification
247
+
248
+ # The date of the IRS determination letter confirming the entity’s section 501(c) status.
249
+ attr_accessor :determination_letter_date
250
+
251
+ # Certifies that the entity is a nonprofit organization established for charitable or similar purposes, exempt from income tax, and restricted in the use and distribution of its assets under applicable law.
252
+ attr_accessor :nonprofit_organization_certification
253
+
254
+ # Certifies that the entity is a foreign corporation that is not a financial institution and whose stock is regularly traded on an established securities market.
255
+ attr_accessor :publicly_traded_nffe_certification
256
+
257
+ # The name of the securities market where the corporation's stock is regularly traded.
258
+ attr_accessor :publicly_traded_nffe_securities_market
259
+
260
+ # Certifies that the entity is a foreign corporation that is not a financial institution and is affiliated with a publicly traded entity within the same expanded affiliated group.
261
+ attr_accessor :nffe_affiliate_of_publicly_traded_entity_certification
262
+
263
+ # The name of the affiliated entity whose stock is regularly traded on an established securities market.
264
+ attr_accessor :publicly_traded_entity
265
+
266
+ # The name of the established securities market where the affiliated entity's stock is traded.
267
+ attr_accessor :nffe_affiliate_of_publicly_traded_entity_securities_market
268
+
269
+ # Certifies that the entity is organized in a U.S. possession, is not engaged in financial activities, and is entirely owned by bona fide residents of that possession.
270
+ attr_accessor :excepted_territory_nffe_certification
271
+
272
+ # Certifies that the entity is a foreign non-financial institution with less than 50% passive income and less than 50% of its assets producing or held to produce passive income.
273
+ attr_accessor :active_nffe_certification
274
+
275
+ # Certifies that the entity is a foreign non-financial entity that does not qualify for any other NFFE category and is not a financial institution.
276
+ attr_accessor :passive_nffe_certification
277
+
278
+ # Certifies that the passive NFFE has no substantial U.S. owners or controlling U.S. persons.
279
+ attr_accessor :passive_nffe_no_substantial_us_owners_certification
280
+
281
+ # Certifies that the passive NFFE has provided the name, address, and TIN of each substantial U.S. owner or controlling U.S. person.
282
+ attr_accessor :passive_nffe_substantial_us_owners_provided_certification
283
+
284
+ # Certifies that the entity is an inter-affiliate FFI meeting all conditions for exemption, including limited account activity and payment interactions within its expanded affiliated group.
285
+ attr_accessor :excepted_inter_affiliate_ffi_certification
286
+
287
+ # Certifies that the entity is a sponsored direct reporting NFFE.
288
+ attr_accessor :sponsored_direct_reporting_nffe_certification
289
+
290
+ # The name of the entity that sponsors the direct reporting NFFE.
291
+ attr_accessor :direct_reporting_nffe_sponsoring_entity
292
+
293
+ # The list of substantial U.S. owners of passive NFFE.
294
+ attr_accessor :substantial_us_owners
295
+
296
+ # The name of the signer.
297
+ attr_accessor :signer_name
298
+
299
+ # Certifies signer has the capacity to sign for the beneficial owner.
300
+ attr_accessor :capacity_to_sign_certification
301
+
302
+ # The ID of the associated company.
303
+ attr_accessor :company_id
304
+
305
+ # A reference identifier for the form.
306
+ attr_accessor :reference_id
307
+
308
+ # The email address of the individual associated with the form.
309
+ attr_accessor :email
310
+
311
+ # The date when e-delivery was consented.
312
+ attr_accessor :e_delivery_consented_at
313
+
314
+ # The signature of the form.
315
+ attr_accessor :signature
316
+
317
+ class EnumAttributeValidator
318
+ attr_reader :datatype
319
+ attr_reader :allowable_values
320
+
321
+ def initialize(datatype, allowable_values)
322
+ @allowable_values = allowable_values.map do |value|
323
+ case datatype.to_s
324
+ when /Integer/i
325
+ value.to_i
326
+ when /Float/i
327
+ value.to_f
328
+ else
329
+ value
330
+ end
331
+ end
332
+ end
333
+
334
+ def valid?(value)
335
+ !value || allowable_values.include?(value)
336
+ end
337
+ end
338
+
339
+ # Attribute mapping from ruby-style variable name to JSON key.
340
+ def self.attribute_map
341
+ {
342
+ :'type' => :'type',
343
+ :'name' => :'name',
344
+ :'citizenship_country' => :'citizenshipCountry',
345
+ :'disregarded_entity' => :'disregardedEntity',
346
+ :'entity_type' => :'entityType',
347
+ :'making_treaty_claim' => :'makingTreatyClaim',
348
+ :'fatca_status' => :'fatcaStatus',
349
+ :'residence_address' => :'residenceAddress',
350
+ :'residence_city' => :'residenceCity',
351
+ :'residence_state' => :'residenceState',
352
+ :'residence_zip' => :'residenceZip',
353
+ :'residence_country' => :'residenceCountry',
354
+ :'residence_is_mailing' => :'residenceIsMailing',
355
+ :'mailing_address' => :'mailingAddress',
356
+ :'mailing_city' => :'mailingCity',
357
+ :'mailing_state' => :'mailingState',
358
+ :'mailing_zip' => :'mailingZip',
359
+ :'mailing_country' => :'mailingCountry',
360
+ :'tin' => :'tin',
361
+ :'giin' => :'giin',
362
+ :'foreign_tin_not_required' => :'foreignTinNotRequired',
363
+ :'foreign_tin' => :'foreignTin',
364
+ :'reference_number' => :'referenceNumber',
365
+ :'disregarded_entity_fatca_status' => :'disregardedEntityFatcaStatus',
366
+ :'disregarded_address' => :'disregardedAddress',
367
+ :'disregarded_city' => :'disregardedCity',
368
+ :'disregarded_state' => :'disregardedState',
369
+ :'disregarded_zip' => :'disregardedZip',
370
+ :'disregarded_country' => :'disregardedCountry',
371
+ :'disregarded_entity_giin' => :'disregardedEntityGiin',
372
+ :'treaty_country_certification' => :'treatyCountryCertification',
373
+ :'treaty_country' => :'treatyCountry',
374
+ :'benefit_limitation_certification' => :'benefitLimitationCertification',
375
+ :'benefit_limitation' => :'benefitLimitation',
376
+ :'qualified_resident_status_certification' => :'qualifiedResidentStatusCertification',
377
+ :'treaty_article' => :'treatyArticle',
378
+ :'withholding_rate' => :'withholdingRate',
379
+ :'income_type' => :'incomeType',
380
+ :'treaty_reasons' => :'treatyReasons',
381
+ :'ffi_sponsoring_entity' => :'ffiSponsoringEntity',
382
+ :'investment_entity_certification' => :'investmentEntityCertification',
383
+ :'controlled_foreign_corporation_certification' => :'controlledForeignCorporationCertification',
384
+ :'compliant_nonregistering_local_bank_certification' => :'compliantNonregisteringLocalBankCertification',
385
+ :'compliant_ffi_low_value_accounts_certification' => :'compliantFfiLowValueAccountsCertification',
386
+ :'sponsored_closely_held_entity_sponsoring_entity' => :'sponsoredCloselyHeldEntitySponsoringEntity',
387
+ :'sponsored_closely_held_investment_vehicle_certification' => :'sponsoredCloselyHeldInvestmentVehicleCertification',
388
+ :'compliant_limited_life_debt_entity_certification' => :'compliantLimitedLifeDebtEntityCertification',
389
+ :'investment_entity_no_financial_accounts_certification' => :'investmentEntityNoFinancialAccountsCertification',
390
+ :'owner_documented_ffi_certification' => :'ownerDocumentedFfiCertification',
391
+ :'owner_documented_ffi_reporting_statement_certification' => :'ownerDocumentedFfiReportingStatementCertification',
392
+ :'owner_documented_ffi_auditor_letter_certification' => :'ownerDocumentedFfiAuditorLetterCertification',
393
+ :'owner_documented_ffi_trust_beneficiaries_certification' => :'ownerDocumentedFfiTrustBeneficiariesCertification',
394
+ :'restricted_distributor_certification' => :'restrictedDistributorCertification',
395
+ :'restricted_distributor_agreement_certification' => :'restrictedDistributorAgreementCertification',
396
+ :'restricted_distributor_preexisting_sales_compliance_certification' => :'restrictedDistributorPreexistingSalesComplianceCertification',
397
+ :'nonreporting_iga_ffi_certification' => :'nonreportingIgaFfiCertification',
398
+ :'iga_country' => :'igaCountry',
399
+ :'iga_model' => :'igaModel',
400
+ :'iga_legal_status_treatment' => :'igaLegalStatusTreatment',
401
+ :'iga_ffi_trustee_or_sponsor' => :'igaFfiTrusteeOrSponsor',
402
+ :'iga_ffi_trustee_is_foreign' => :'igaFfiTrusteeIsForeign',
403
+ :'non_commercial_financial_activity_certification' => :'nonCommercialFinancialActivityCertification',
404
+ :'internation_organization_certification' => :'internationOrganizationCertification',
405
+ :'intergovernmental_organization_certification' => :'intergovernmentalOrganizationCertification',
406
+ :'treaty_qualified_pension_fund_certification' => :'treatyQualifiedPensionFundCertification',
407
+ :'qualified_retirement_fund_certification' => :'qualifiedRetirementFundCertification',
408
+ :'narrow_participation_retirement_fund_certification' => :'narrowParticipationRetirementFundCertification',
409
+ :'section401_a_equivalent_pension_plan_certification' => :'section401AEquivalentPensionPlanCertification',
410
+ :'investment_entity_for_retirement_funds_certification' => :'investmentEntityForRetirementFundsCertification',
411
+ :'exempt_beneficial_owner_sponsored_retirement_fund_certification' => :'exemptBeneficialOwnerSponsoredRetirementFundCertification',
412
+ :'exempt_beneficial_owner_owned_investment_entity_certification' => :'exemptBeneficialOwnerOwnedInvestmentEntityCertification',
413
+ :'territory_financial_institution_certification' => :'territoryFinancialInstitutionCertification',
414
+ :'excepted_nonfinancial_group_entity_certification' => :'exceptedNonfinancialGroupEntityCertification',
415
+ :'excepted_nonfinancial_start_up_certification' => :'exceptedNonfinancialStartUpCertification',
416
+ :'startup_formation_or_resolution_date' => :'startupFormationOrResolutionDate',
417
+ :'excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification' => :'exceptedNonfinancialEntityInLiquidationOrBankruptcyCertification',
418
+ :'nonfinancial_entity_filing_date' => :'nonfinancialEntityFilingDate',
419
+ :'section501_c_organization_certification' => :'section501COrganizationCertification',
420
+ :'determination_letter_date' => :'determinationLetterDate',
421
+ :'nonprofit_organization_certification' => :'nonprofitOrganizationCertification',
422
+ :'publicly_traded_nffe_certification' => :'publiclyTradedNffeCertification',
423
+ :'publicly_traded_nffe_securities_market' => :'publiclyTradedNffeSecuritiesMarket',
424
+ :'nffe_affiliate_of_publicly_traded_entity_certification' => :'nffeAffiliateOfPubliclyTradedEntityCertification',
425
+ :'publicly_traded_entity' => :'publiclyTradedEntity',
426
+ :'nffe_affiliate_of_publicly_traded_entity_securities_market' => :'nffeAffiliateOfPubliclyTradedEntitySecuritiesMarket',
427
+ :'excepted_territory_nffe_certification' => :'exceptedTerritoryNffeCertification',
428
+ :'active_nffe_certification' => :'activeNffeCertification',
429
+ :'passive_nffe_certification' => :'passiveNffeCertification',
430
+ :'passive_nffe_no_substantial_us_owners_certification' => :'passiveNffeNoSubstantialUsOwnersCertification',
431
+ :'passive_nffe_substantial_us_owners_provided_certification' => :'passiveNffeSubstantialUsOwnersProvidedCertification',
432
+ :'excepted_inter_affiliate_ffi_certification' => :'exceptedInterAffiliateFfiCertification',
433
+ :'sponsored_direct_reporting_nffe_certification' => :'sponsoredDirectReportingNffeCertification',
434
+ :'direct_reporting_nffe_sponsoring_entity' => :'directReportingNffeSponsoringEntity',
435
+ :'substantial_us_owners' => :'substantialUsOwners',
436
+ :'signer_name' => :'signerName',
437
+ :'capacity_to_sign_certification' => :'capacityToSignCertification',
438
+ :'company_id' => :'companyId',
439
+ :'reference_id' => :'referenceId',
440
+ :'email' => :'email',
441
+ :'e_delivery_consented_at' => :'eDeliveryConsentedAt',
442
+ :'signature' => :'signature'
443
+ }
444
+ end
445
+
446
+ # Returns all the JSON keys this model knows about
447
+ def self.acceptable_attributes
448
+ attribute_map.values
449
+ end
450
+
451
+ # Attribute type mapping.
452
+ def self.openapi_types
453
+ {
454
+ :'type' => :'String',
455
+ :'name' => :'String',
456
+ :'citizenship_country' => :'String',
457
+ :'disregarded_entity' => :'String',
458
+ :'entity_type' => :'String',
459
+ :'making_treaty_claim' => :'Boolean',
460
+ :'fatca_status' => :'String',
461
+ :'residence_address' => :'String',
462
+ :'residence_city' => :'String',
463
+ :'residence_state' => :'String',
464
+ :'residence_zip' => :'String',
465
+ :'residence_country' => :'String',
466
+ :'residence_is_mailing' => :'Boolean',
467
+ :'mailing_address' => :'String',
468
+ :'mailing_city' => :'String',
469
+ :'mailing_state' => :'String',
470
+ :'mailing_zip' => :'String',
471
+ :'mailing_country' => :'String',
472
+ :'tin' => :'String',
473
+ :'giin' => :'String',
474
+ :'foreign_tin_not_required' => :'Boolean',
475
+ :'foreign_tin' => :'String',
476
+ :'reference_number' => :'String',
477
+ :'disregarded_entity_fatca_status' => :'String',
478
+ :'disregarded_address' => :'String',
479
+ :'disregarded_city' => :'String',
480
+ :'disregarded_state' => :'String',
481
+ :'disregarded_zip' => :'String',
482
+ :'disregarded_country' => :'String',
483
+ :'disregarded_entity_giin' => :'String',
484
+ :'treaty_country_certification' => :'Boolean',
485
+ :'treaty_country' => :'String',
486
+ :'benefit_limitation_certification' => :'Boolean',
487
+ :'benefit_limitation' => :'String',
488
+ :'qualified_resident_status_certification' => :'Boolean',
489
+ :'treaty_article' => :'String',
490
+ :'withholding_rate' => :'String',
491
+ :'income_type' => :'String',
492
+ :'treaty_reasons' => :'String',
493
+ :'ffi_sponsoring_entity' => :'String',
494
+ :'investment_entity_certification' => :'Boolean',
495
+ :'controlled_foreign_corporation_certification' => :'Boolean',
496
+ :'compliant_nonregistering_local_bank_certification' => :'Boolean',
497
+ :'compliant_ffi_low_value_accounts_certification' => :'Boolean',
498
+ :'sponsored_closely_held_entity_sponsoring_entity' => :'String',
499
+ :'sponsored_closely_held_investment_vehicle_certification' => :'Boolean',
500
+ :'compliant_limited_life_debt_entity_certification' => :'Boolean',
501
+ :'investment_entity_no_financial_accounts_certification' => :'Boolean',
502
+ :'owner_documented_ffi_certification' => :'Boolean',
503
+ :'owner_documented_ffi_reporting_statement_certification' => :'Boolean',
504
+ :'owner_documented_ffi_auditor_letter_certification' => :'Boolean',
505
+ :'owner_documented_ffi_trust_beneficiaries_certification' => :'Boolean',
506
+ :'restricted_distributor_certification' => :'Boolean',
507
+ :'restricted_distributor_agreement_certification' => :'Boolean',
508
+ :'restricted_distributor_preexisting_sales_compliance_certification' => :'Boolean',
509
+ :'nonreporting_iga_ffi_certification' => :'Boolean',
510
+ :'iga_country' => :'String',
511
+ :'iga_model' => :'String',
512
+ :'iga_legal_status_treatment' => :'String',
513
+ :'iga_ffi_trustee_or_sponsor' => :'String',
514
+ :'iga_ffi_trustee_is_foreign' => :'Boolean',
515
+ :'non_commercial_financial_activity_certification' => :'Boolean',
516
+ :'internation_organization_certification' => :'Boolean',
517
+ :'intergovernmental_organization_certification' => :'Boolean',
518
+ :'treaty_qualified_pension_fund_certification' => :'Boolean',
519
+ :'qualified_retirement_fund_certification' => :'Boolean',
520
+ :'narrow_participation_retirement_fund_certification' => :'Boolean',
521
+ :'section401_a_equivalent_pension_plan_certification' => :'Boolean',
522
+ :'investment_entity_for_retirement_funds_certification' => :'Boolean',
523
+ :'exempt_beneficial_owner_sponsored_retirement_fund_certification' => :'Boolean',
524
+ :'exempt_beneficial_owner_owned_investment_entity_certification' => :'Boolean',
525
+ :'territory_financial_institution_certification' => :'Boolean',
526
+ :'excepted_nonfinancial_group_entity_certification' => :'Boolean',
527
+ :'excepted_nonfinancial_start_up_certification' => :'Boolean',
528
+ :'startup_formation_or_resolution_date' => :'Date',
529
+ :'excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification' => :'Boolean',
530
+ :'nonfinancial_entity_filing_date' => :'Date',
531
+ :'section501_c_organization_certification' => :'Boolean',
532
+ :'determination_letter_date' => :'Date',
533
+ :'nonprofit_organization_certification' => :'Boolean',
534
+ :'publicly_traded_nffe_certification' => :'Boolean',
535
+ :'publicly_traded_nffe_securities_market' => :'String',
536
+ :'nffe_affiliate_of_publicly_traded_entity_certification' => :'Boolean',
537
+ :'publicly_traded_entity' => :'String',
538
+ :'nffe_affiliate_of_publicly_traded_entity_securities_market' => :'String',
539
+ :'excepted_territory_nffe_certification' => :'Boolean',
540
+ :'active_nffe_certification' => :'Boolean',
541
+ :'passive_nffe_certification' => :'Boolean',
542
+ :'passive_nffe_no_substantial_us_owners_certification' => :'Boolean',
543
+ :'passive_nffe_substantial_us_owners_provided_certification' => :'Boolean',
544
+ :'excepted_inter_affiliate_ffi_certification' => :'Boolean',
545
+ :'sponsored_direct_reporting_nffe_certification' => :'Boolean',
546
+ :'direct_reporting_nffe_sponsoring_entity' => :'String',
547
+ :'substantial_us_owners' => :'Array<SubstantialUsOwnerRequest>',
548
+ :'signer_name' => :'String',
549
+ :'capacity_to_sign_certification' => :'Boolean',
550
+ :'company_id' => :'String',
551
+ :'reference_id' => :'String',
552
+ :'email' => :'String',
553
+ :'e_delivery_consented_at' => :'Time',
554
+ :'signature' => :'String'
555
+ }
556
+ end
557
+
558
+ # List of attributes with nullable: true
559
+ def self.openapi_nullable
560
+ Set.new([
561
+ :'disregarded_entity',
562
+ :'making_treaty_claim',
563
+ :'residence_state',
564
+ :'mailing_address',
565
+ :'mailing_city',
566
+ :'mailing_state',
567
+ :'mailing_zip',
568
+ :'mailing_country',
569
+ :'tin',
570
+ :'giin',
571
+ :'foreign_tin_not_required',
572
+ :'foreign_tin',
573
+ :'reference_number',
574
+ :'disregarded_entity_fatca_status',
575
+ :'disregarded_address',
576
+ :'disregarded_city',
577
+ :'disregarded_state',
578
+ :'disregarded_zip',
579
+ :'disregarded_country',
580
+ :'disregarded_entity_giin',
581
+ :'treaty_country_certification',
582
+ :'treaty_country',
583
+ :'benefit_limitation_certification',
584
+ :'benefit_limitation',
585
+ :'qualified_resident_status_certification',
586
+ :'treaty_article',
587
+ :'withholding_rate',
588
+ :'income_type',
589
+ :'treaty_reasons',
590
+ :'ffi_sponsoring_entity',
591
+ :'investment_entity_certification',
592
+ :'controlled_foreign_corporation_certification',
593
+ :'compliant_nonregistering_local_bank_certification',
594
+ :'compliant_ffi_low_value_accounts_certification',
595
+ :'sponsored_closely_held_entity_sponsoring_entity',
596
+ :'sponsored_closely_held_investment_vehicle_certification',
597
+ :'compliant_limited_life_debt_entity_certification',
598
+ :'investment_entity_no_financial_accounts_certification',
599
+ :'owner_documented_ffi_certification',
600
+ :'owner_documented_ffi_reporting_statement_certification',
601
+ :'owner_documented_ffi_auditor_letter_certification',
602
+ :'owner_documented_ffi_trust_beneficiaries_certification',
603
+ :'restricted_distributor_certification',
604
+ :'restricted_distributor_agreement_certification',
605
+ :'restricted_distributor_preexisting_sales_compliance_certification',
606
+ :'nonreporting_iga_ffi_certification',
607
+ :'iga_country',
608
+ :'iga_model',
609
+ :'iga_legal_status_treatment',
610
+ :'iga_ffi_trustee_or_sponsor',
611
+ :'iga_ffi_trustee_is_foreign',
612
+ :'non_commercial_financial_activity_certification',
613
+ :'internation_organization_certification',
614
+ :'intergovernmental_organization_certification',
615
+ :'treaty_qualified_pension_fund_certification',
616
+ :'qualified_retirement_fund_certification',
617
+ :'narrow_participation_retirement_fund_certification',
618
+ :'section401_a_equivalent_pension_plan_certification',
619
+ :'investment_entity_for_retirement_funds_certification',
620
+ :'exempt_beneficial_owner_sponsored_retirement_fund_certification',
621
+ :'exempt_beneficial_owner_owned_investment_entity_certification',
622
+ :'territory_financial_institution_certification',
623
+ :'excepted_nonfinancial_group_entity_certification',
624
+ :'excepted_nonfinancial_start_up_certification',
625
+ :'startup_formation_or_resolution_date',
626
+ :'excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification',
627
+ :'nonfinancial_entity_filing_date',
628
+ :'section501_c_organization_certification',
629
+ :'determination_letter_date',
630
+ :'nonprofit_organization_certification',
631
+ :'publicly_traded_nffe_certification',
632
+ :'publicly_traded_nffe_securities_market',
633
+ :'nffe_affiliate_of_publicly_traded_entity_certification',
634
+ :'publicly_traded_entity',
635
+ :'nffe_affiliate_of_publicly_traded_entity_securities_market',
636
+ :'excepted_territory_nffe_certification',
637
+ :'active_nffe_certification',
638
+ :'passive_nffe_certification',
639
+ :'passive_nffe_no_substantial_us_owners_certification',
640
+ :'passive_nffe_substantial_us_owners_provided_certification',
641
+ :'excepted_inter_affiliate_ffi_certification',
642
+ :'sponsored_direct_reporting_nffe_certification',
643
+ :'direct_reporting_nffe_sponsoring_entity',
644
+ :'signer_name',
645
+ :'capacity_to_sign_certification',
646
+ :'reference_id',
647
+ :'email',
648
+ :'e_delivery_consented_at',
649
+ :'signature'
650
+ ])
651
+ end
652
+
653
+ # List of class defined in allOf (OpenAPI v3)
654
+ def self.openapi_all_of
655
+ [
656
+ :'W9FormBaseRequest'
657
+ ]
658
+ end
659
+
660
+ # Initializes the object
661
+ # @param [Hash] attributes Model attributes in the form of hash
662
+ def initialize(attributes = {})
663
+ if (!attributes.is_a?(Hash))
664
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AvalaraSdk::A1099::V2::W8BenEFormRequest` initialize method"
665
+ end
666
+
667
+ # check to see if the attribute exists and convert string to symbol for hash key
668
+ attributes = attributes.each_with_object({}) { |(k, v), h|
669
+ if (!self.class.attribute_map.key?(k.to_sym))
670
+ fail ArgumentError, "`#{k}` is not a valid attribute in `AvalaraSdk::A1099::V2::W8BenEFormRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
671
+ end
672
+ h[k.to_sym] = v
673
+ }
674
+
675
+ if attributes.key?(:'type')
676
+ self.type = attributes[:'type']
677
+ end
678
+
679
+ if attributes.key?(:'name')
680
+ self.name = attributes[:'name']
681
+ end
682
+
683
+ if attributes.key?(:'citizenship_country')
684
+ self.citizenship_country = attributes[:'citizenship_country']
685
+ end
686
+
687
+ if attributes.key?(:'disregarded_entity')
688
+ self.disregarded_entity = attributes[:'disregarded_entity']
689
+ end
690
+
691
+ if attributes.key?(:'entity_type')
692
+ self.entity_type = attributes[:'entity_type']
693
+ end
694
+
695
+ if attributes.key?(:'making_treaty_claim')
696
+ self.making_treaty_claim = attributes[:'making_treaty_claim']
697
+ end
698
+
699
+ if attributes.key?(:'fatca_status')
700
+ self.fatca_status = attributes[:'fatca_status']
701
+ end
702
+
703
+ if attributes.key?(:'residence_address')
704
+ self.residence_address = attributes[:'residence_address']
705
+ end
706
+
707
+ if attributes.key?(:'residence_city')
708
+ self.residence_city = attributes[:'residence_city']
709
+ end
710
+
711
+ if attributes.key?(:'residence_state')
712
+ self.residence_state = attributes[:'residence_state']
713
+ end
714
+
715
+ if attributes.key?(:'residence_zip')
716
+ self.residence_zip = attributes[:'residence_zip']
717
+ end
718
+
719
+ if attributes.key?(:'residence_country')
720
+ self.residence_country = attributes[:'residence_country']
721
+ end
722
+
723
+ if attributes.key?(:'residence_is_mailing')
724
+ self.residence_is_mailing = attributes[:'residence_is_mailing']
725
+ end
726
+
727
+ if attributes.key?(:'mailing_address')
728
+ self.mailing_address = attributes[:'mailing_address']
729
+ end
730
+
731
+ if attributes.key?(:'mailing_city')
732
+ self.mailing_city = attributes[:'mailing_city']
733
+ end
734
+
735
+ if attributes.key?(:'mailing_state')
736
+ self.mailing_state = attributes[:'mailing_state']
737
+ end
738
+
739
+ if attributes.key?(:'mailing_zip')
740
+ self.mailing_zip = attributes[:'mailing_zip']
741
+ end
742
+
743
+ if attributes.key?(:'mailing_country')
744
+ self.mailing_country = attributes[:'mailing_country']
745
+ end
746
+
747
+ if attributes.key?(:'tin')
748
+ self.tin = attributes[:'tin']
749
+ end
750
+
751
+ if attributes.key?(:'giin')
752
+ self.giin = attributes[:'giin']
753
+ end
754
+
755
+ if attributes.key?(:'foreign_tin_not_required')
756
+ self.foreign_tin_not_required = attributes[:'foreign_tin_not_required']
757
+ end
758
+
759
+ if attributes.key?(:'foreign_tin')
760
+ self.foreign_tin = attributes[:'foreign_tin']
761
+ end
762
+
763
+ if attributes.key?(:'reference_number')
764
+ self.reference_number = attributes[:'reference_number']
765
+ end
766
+
767
+ if attributes.key?(:'disregarded_entity_fatca_status')
768
+ self.disregarded_entity_fatca_status = attributes[:'disregarded_entity_fatca_status']
769
+ end
770
+
771
+ if attributes.key?(:'disregarded_address')
772
+ self.disregarded_address = attributes[:'disregarded_address']
773
+ end
774
+
775
+ if attributes.key?(:'disregarded_city')
776
+ self.disregarded_city = attributes[:'disregarded_city']
777
+ end
778
+
779
+ if attributes.key?(:'disregarded_state')
780
+ self.disregarded_state = attributes[:'disregarded_state']
781
+ end
782
+
783
+ if attributes.key?(:'disregarded_zip')
784
+ self.disregarded_zip = attributes[:'disregarded_zip']
785
+ end
786
+
787
+ if attributes.key?(:'disregarded_country')
788
+ self.disregarded_country = attributes[:'disregarded_country']
789
+ end
790
+
791
+ if attributes.key?(:'disregarded_entity_giin')
792
+ self.disregarded_entity_giin = attributes[:'disregarded_entity_giin']
793
+ end
794
+
795
+ if attributes.key?(:'treaty_country_certification')
796
+ self.treaty_country_certification = attributes[:'treaty_country_certification']
797
+ end
798
+
799
+ if attributes.key?(:'treaty_country')
800
+ self.treaty_country = attributes[:'treaty_country']
801
+ end
802
+
803
+ if attributes.key?(:'benefit_limitation_certification')
804
+ self.benefit_limitation_certification = attributes[:'benefit_limitation_certification']
805
+ end
806
+
807
+ if attributes.key?(:'benefit_limitation')
808
+ self.benefit_limitation = attributes[:'benefit_limitation']
809
+ end
810
+
811
+ if attributes.key?(:'qualified_resident_status_certification')
812
+ self.qualified_resident_status_certification = attributes[:'qualified_resident_status_certification']
813
+ end
814
+
815
+ if attributes.key?(:'treaty_article')
816
+ self.treaty_article = attributes[:'treaty_article']
817
+ end
818
+
819
+ if attributes.key?(:'withholding_rate')
820
+ self.withholding_rate = attributes[:'withholding_rate']
821
+ end
822
+
823
+ if attributes.key?(:'income_type')
824
+ self.income_type = attributes[:'income_type']
825
+ end
826
+
827
+ if attributes.key?(:'treaty_reasons')
828
+ self.treaty_reasons = attributes[:'treaty_reasons']
829
+ end
830
+
831
+ if attributes.key?(:'ffi_sponsoring_entity')
832
+ self.ffi_sponsoring_entity = attributes[:'ffi_sponsoring_entity']
833
+ end
834
+
835
+ if attributes.key?(:'investment_entity_certification')
836
+ self.investment_entity_certification = attributes[:'investment_entity_certification']
837
+ end
838
+
839
+ if attributes.key?(:'controlled_foreign_corporation_certification')
840
+ self.controlled_foreign_corporation_certification = attributes[:'controlled_foreign_corporation_certification']
841
+ end
842
+
843
+ if attributes.key?(:'compliant_nonregistering_local_bank_certification')
844
+ self.compliant_nonregistering_local_bank_certification = attributes[:'compliant_nonregistering_local_bank_certification']
845
+ end
846
+
847
+ if attributes.key?(:'compliant_ffi_low_value_accounts_certification')
848
+ self.compliant_ffi_low_value_accounts_certification = attributes[:'compliant_ffi_low_value_accounts_certification']
849
+ end
850
+
851
+ if attributes.key?(:'sponsored_closely_held_entity_sponsoring_entity')
852
+ self.sponsored_closely_held_entity_sponsoring_entity = attributes[:'sponsored_closely_held_entity_sponsoring_entity']
853
+ end
854
+
855
+ if attributes.key?(:'sponsored_closely_held_investment_vehicle_certification')
856
+ self.sponsored_closely_held_investment_vehicle_certification = attributes[:'sponsored_closely_held_investment_vehicle_certification']
857
+ end
858
+
859
+ if attributes.key?(:'compliant_limited_life_debt_entity_certification')
860
+ self.compliant_limited_life_debt_entity_certification = attributes[:'compliant_limited_life_debt_entity_certification']
861
+ end
862
+
863
+ if attributes.key?(:'investment_entity_no_financial_accounts_certification')
864
+ self.investment_entity_no_financial_accounts_certification = attributes[:'investment_entity_no_financial_accounts_certification']
865
+ end
866
+
867
+ if attributes.key?(:'owner_documented_ffi_certification')
868
+ self.owner_documented_ffi_certification = attributes[:'owner_documented_ffi_certification']
869
+ end
870
+
871
+ if attributes.key?(:'owner_documented_ffi_reporting_statement_certification')
872
+ self.owner_documented_ffi_reporting_statement_certification = attributes[:'owner_documented_ffi_reporting_statement_certification']
873
+ end
874
+
875
+ if attributes.key?(:'owner_documented_ffi_auditor_letter_certification')
876
+ self.owner_documented_ffi_auditor_letter_certification = attributes[:'owner_documented_ffi_auditor_letter_certification']
877
+ end
878
+
879
+ if attributes.key?(:'owner_documented_ffi_trust_beneficiaries_certification')
880
+ self.owner_documented_ffi_trust_beneficiaries_certification = attributes[:'owner_documented_ffi_trust_beneficiaries_certification']
881
+ end
882
+
883
+ if attributes.key?(:'restricted_distributor_certification')
884
+ self.restricted_distributor_certification = attributes[:'restricted_distributor_certification']
885
+ end
886
+
887
+ if attributes.key?(:'restricted_distributor_agreement_certification')
888
+ self.restricted_distributor_agreement_certification = attributes[:'restricted_distributor_agreement_certification']
889
+ end
890
+
891
+ if attributes.key?(:'restricted_distributor_preexisting_sales_compliance_certification')
892
+ self.restricted_distributor_preexisting_sales_compliance_certification = attributes[:'restricted_distributor_preexisting_sales_compliance_certification']
893
+ end
894
+
895
+ if attributes.key?(:'nonreporting_iga_ffi_certification')
896
+ self.nonreporting_iga_ffi_certification = attributes[:'nonreporting_iga_ffi_certification']
897
+ end
898
+
899
+ if attributes.key?(:'iga_country')
900
+ self.iga_country = attributes[:'iga_country']
901
+ end
902
+
903
+ if attributes.key?(:'iga_model')
904
+ self.iga_model = attributes[:'iga_model']
905
+ end
906
+
907
+ if attributes.key?(:'iga_legal_status_treatment')
908
+ self.iga_legal_status_treatment = attributes[:'iga_legal_status_treatment']
909
+ end
910
+
911
+ if attributes.key?(:'iga_ffi_trustee_or_sponsor')
912
+ self.iga_ffi_trustee_or_sponsor = attributes[:'iga_ffi_trustee_or_sponsor']
913
+ end
914
+
915
+ if attributes.key?(:'iga_ffi_trustee_is_foreign')
916
+ self.iga_ffi_trustee_is_foreign = attributes[:'iga_ffi_trustee_is_foreign']
917
+ end
918
+
919
+ if attributes.key?(:'non_commercial_financial_activity_certification')
920
+ self.non_commercial_financial_activity_certification = attributes[:'non_commercial_financial_activity_certification']
921
+ end
922
+
923
+ if attributes.key?(:'internation_organization_certification')
924
+ self.internation_organization_certification = attributes[:'internation_organization_certification']
925
+ end
926
+
927
+ if attributes.key?(:'intergovernmental_organization_certification')
928
+ self.intergovernmental_organization_certification = attributes[:'intergovernmental_organization_certification']
929
+ end
930
+
931
+ if attributes.key?(:'treaty_qualified_pension_fund_certification')
932
+ self.treaty_qualified_pension_fund_certification = attributes[:'treaty_qualified_pension_fund_certification']
933
+ end
934
+
935
+ if attributes.key?(:'qualified_retirement_fund_certification')
936
+ self.qualified_retirement_fund_certification = attributes[:'qualified_retirement_fund_certification']
937
+ end
938
+
939
+ if attributes.key?(:'narrow_participation_retirement_fund_certification')
940
+ self.narrow_participation_retirement_fund_certification = attributes[:'narrow_participation_retirement_fund_certification']
941
+ end
942
+
943
+ if attributes.key?(:'section401_a_equivalent_pension_plan_certification')
944
+ self.section401_a_equivalent_pension_plan_certification = attributes[:'section401_a_equivalent_pension_plan_certification']
945
+ end
946
+
947
+ if attributes.key?(:'investment_entity_for_retirement_funds_certification')
948
+ self.investment_entity_for_retirement_funds_certification = attributes[:'investment_entity_for_retirement_funds_certification']
949
+ end
950
+
951
+ if attributes.key?(:'exempt_beneficial_owner_sponsored_retirement_fund_certification')
952
+ self.exempt_beneficial_owner_sponsored_retirement_fund_certification = attributes[:'exempt_beneficial_owner_sponsored_retirement_fund_certification']
953
+ end
954
+
955
+ if attributes.key?(:'exempt_beneficial_owner_owned_investment_entity_certification')
956
+ self.exempt_beneficial_owner_owned_investment_entity_certification = attributes[:'exempt_beneficial_owner_owned_investment_entity_certification']
957
+ end
958
+
959
+ if attributes.key?(:'territory_financial_institution_certification')
960
+ self.territory_financial_institution_certification = attributes[:'territory_financial_institution_certification']
961
+ end
962
+
963
+ if attributes.key?(:'excepted_nonfinancial_group_entity_certification')
964
+ self.excepted_nonfinancial_group_entity_certification = attributes[:'excepted_nonfinancial_group_entity_certification']
965
+ end
966
+
967
+ if attributes.key?(:'excepted_nonfinancial_start_up_certification')
968
+ self.excepted_nonfinancial_start_up_certification = attributes[:'excepted_nonfinancial_start_up_certification']
969
+ end
970
+
971
+ if attributes.key?(:'startup_formation_or_resolution_date')
972
+ self.startup_formation_or_resolution_date = attributes[:'startup_formation_or_resolution_date']
973
+ end
974
+
975
+ if attributes.key?(:'excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification')
976
+ self.excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification = attributes[:'excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification']
977
+ end
978
+
979
+ if attributes.key?(:'nonfinancial_entity_filing_date')
980
+ self.nonfinancial_entity_filing_date = attributes[:'nonfinancial_entity_filing_date']
981
+ end
982
+
983
+ if attributes.key?(:'section501_c_organization_certification')
984
+ self.section501_c_organization_certification = attributes[:'section501_c_organization_certification']
985
+ end
986
+
987
+ if attributes.key?(:'determination_letter_date')
988
+ self.determination_letter_date = attributes[:'determination_letter_date']
989
+ end
990
+
991
+ if attributes.key?(:'nonprofit_organization_certification')
992
+ self.nonprofit_organization_certification = attributes[:'nonprofit_organization_certification']
993
+ end
994
+
995
+ if attributes.key?(:'publicly_traded_nffe_certification')
996
+ self.publicly_traded_nffe_certification = attributes[:'publicly_traded_nffe_certification']
997
+ end
998
+
999
+ if attributes.key?(:'publicly_traded_nffe_securities_market')
1000
+ self.publicly_traded_nffe_securities_market = attributes[:'publicly_traded_nffe_securities_market']
1001
+ end
1002
+
1003
+ if attributes.key?(:'nffe_affiliate_of_publicly_traded_entity_certification')
1004
+ self.nffe_affiliate_of_publicly_traded_entity_certification = attributes[:'nffe_affiliate_of_publicly_traded_entity_certification']
1005
+ end
1006
+
1007
+ if attributes.key?(:'publicly_traded_entity')
1008
+ self.publicly_traded_entity = attributes[:'publicly_traded_entity']
1009
+ end
1010
+
1011
+ if attributes.key?(:'nffe_affiliate_of_publicly_traded_entity_securities_market')
1012
+ self.nffe_affiliate_of_publicly_traded_entity_securities_market = attributes[:'nffe_affiliate_of_publicly_traded_entity_securities_market']
1013
+ end
1014
+
1015
+ if attributes.key?(:'excepted_territory_nffe_certification')
1016
+ self.excepted_territory_nffe_certification = attributes[:'excepted_territory_nffe_certification']
1017
+ end
1018
+
1019
+ if attributes.key?(:'active_nffe_certification')
1020
+ self.active_nffe_certification = attributes[:'active_nffe_certification']
1021
+ end
1022
+
1023
+ if attributes.key?(:'passive_nffe_certification')
1024
+ self.passive_nffe_certification = attributes[:'passive_nffe_certification']
1025
+ end
1026
+
1027
+ if attributes.key?(:'passive_nffe_no_substantial_us_owners_certification')
1028
+ self.passive_nffe_no_substantial_us_owners_certification = attributes[:'passive_nffe_no_substantial_us_owners_certification']
1029
+ end
1030
+
1031
+ if attributes.key?(:'passive_nffe_substantial_us_owners_provided_certification')
1032
+ self.passive_nffe_substantial_us_owners_provided_certification = attributes[:'passive_nffe_substantial_us_owners_provided_certification']
1033
+ end
1034
+
1035
+ if attributes.key?(:'excepted_inter_affiliate_ffi_certification')
1036
+ self.excepted_inter_affiliate_ffi_certification = attributes[:'excepted_inter_affiliate_ffi_certification']
1037
+ end
1038
+
1039
+ if attributes.key?(:'sponsored_direct_reporting_nffe_certification')
1040
+ self.sponsored_direct_reporting_nffe_certification = attributes[:'sponsored_direct_reporting_nffe_certification']
1041
+ end
1042
+
1043
+ if attributes.key?(:'direct_reporting_nffe_sponsoring_entity')
1044
+ self.direct_reporting_nffe_sponsoring_entity = attributes[:'direct_reporting_nffe_sponsoring_entity']
1045
+ end
1046
+
1047
+ if attributes.key?(:'substantial_us_owners')
1048
+ if (value = attributes[:'substantial_us_owners']).is_a?(Array)
1049
+ self.substantial_us_owners = value
1050
+ end
1051
+ end
1052
+
1053
+ if attributes.key?(:'signer_name')
1054
+ self.signer_name = attributes[:'signer_name']
1055
+ end
1056
+
1057
+ if attributes.key?(:'capacity_to_sign_certification')
1058
+ self.capacity_to_sign_certification = attributes[:'capacity_to_sign_certification']
1059
+ end
1060
+
1061
+ if attributes.key?(:'company_id')
1062
+ self.company_id = attributes[:'company_id']
1063
+ end
1064
+
1065
+ if attributes.key?(:'reference_id')
1066
+ self.reference_id = attributes[:'reference_id']
1067
+ end
1068
+
1069
+ if attributes.key?(:'email')
1070
+ self.email = attributes[:'email']
1071
+ end
1072
+
1073
+ if attributes.key?(:'e_delivery_consented_at')
1074
+ self.e_delivery_consented_at = attributes[:'e_delivery_consented_at']
1075
+ end
1076
+
1077
+ if attributes.key?(:'signature')
1078
+ self.signature = attributes[:'signature']
1079
+ end
1080
+ end
1081
+
1082
+ # Show invalid properties with the reasons. Usually used together with valid?
1083
+ # @return Array for valid properties with the reasons
1084
+ def list_invalid_properties
1085
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
1086
+ invalid_properties = Array.new
1087
+ invalid_properties
1088
+ end
1089
+
1090
+ # Check to see if the all the properties in the model are valid
1091
+ # @return true if the model is valid
1092
+ def valid?
1093
+ warn '[DEPRECATED] the `valid?` method is obsolete'
1094
+ type_validator = EnumAttributeValidator.new('String', ["W4", "W8Ben", "W8BenE", "W8Imy", "W9"])
1095
+ return false unless type_validator.valid?(@type)
1096
+ true
1097
+ end
1098
+
1099
+ # Custom attribute writer method checking allowed values (enum).
1100
+ # @param [Object] type Object to be assigned
1101
+ def type=(type)
1102
+ validator = EnumAttributeValidator.new('String', ["W4", "W8Ben", "W8BenE", "W8Imy", "W9"])
1103
+ unless validator.valid?(type)
1104
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
1105
+ end
1106
+ @type = type
1107
+ end
1108
+
1109
+ # Checks equality by comparing each attribute.
1110
+ # @param [Object] Object to be compared
1111
+ def ==(o)
1112
+ return true if self.equal?(o)
1113
+ self.class == o.class &&
1114
+ type == o.type &&
1115
+ name == o.name &&
1116
+ citizenship_country == o.citizenship_country &&
1117
+ disregarded_entity == o.disregarded_entity &&
1118
+ entity_type == o.entity_type &&
1119
+ making_treaty_claim == o.making_treaty_claim &&
1120
+ fatca_status == o.fatca_status &&
1121
+ residence_address == o.residence_address &&
1122
+ residence_city == o.residence_city &&
1123
+ residence_state == o.residence_state &&
1124
+ residence_zip == o.residence_zip &&
1125
+ residence_country == o.residence_country &&
1126
+ residence_is_mailing == o.residence_is_mailing &&
1127
+ mailing_address == o.mailing_address &&
1128
+ mailing_city == o.mailing_city &&
1129
+ mailing_state == o.mailing_state &&
1130
+ mailing_zip == o.mailing_zip &&
1131
+ mailing_country == o.mailing_country &&
1132
+ tin == o.tin &&
1133
+ giin == o.giin &&
1134
+ foreign_tin_not_required == o.foreign_tin_not_required &&
1135
+ foreign_tin == o.foreign_tin &&
1136
+ reference_number == o.reference_number &&
1137
+ disregarded_entity_fatca_status == o.disregarded_entity_fatca_status &&
1138
+ disregarded_address == o.disregarded_address &&
1139
+ disregarded_city == o.disregarded_city &&
1140
+ disregarded_state == o.disregarded_state &&
1141
+ disregarded_zip == o.disregarded_zip &&
1142
+ disregarded_country == o.disregarded_country &&
1143
+ disregarded_entity_giin == o.disregarded_entity_giin &&
1144
+ treaty_country_certification == o.treaty_country_certification &&
1145
+ treaty_country == o.treaty_country &&
1146
+ benefit_limitation_certification == o.benefit_limitation_certification &&
1147
+ benefit_limitation == o.benefit_limitation &&
1148
+ qualified_resident_status_certification == o.qualified_resident_status_certification &&
1149
+ treaty_article == o.treaty_article &&
1150
+ withholding_rate == o.withholding_rate &&
1151
+ income_type == o.income_type &&
1152
+ treaty_reasons == o.treaty_reasons &&
1153
+ ffi_sponsoring_entity == o.ffi_sponsoring_entity &&
1154
+ investment_entity_certification == o.investment_entity_certification &&
1155
+ controlled_foreign_corporation_certification == o.controlled_foreign_corporation_certification &&
1156
+ compliant_nonregistering_local_bank_certification == o.compliant_nonregistering_local_bank_certification &&
1157
+ compliant_ffi_low_value_accounts_certification == o.compliant_ffi_low_value_accounts_certification &&
1158
+ sponsored_closely_held_entity_sponsoring_entity == o.sponsored_closely_held_entity_sponsoring_entity &&
1159
+ sponsored_closely_held_investment_vehicle_certification == o.sponsored_closely_held_investment_vehicle_certification &&
1160
+ compliant_limited_life_debt_entity_certification == o.compliant_limited_life_debt_entity_certification &&
1161
+ investment_entity_no_financial_accounts_certification == o.investment_entity_no_financial_accounts_certification &&
1162
+ owner_documented_ffi_certification == o.owner_documented_ffi_certification &&
1163
+ owner_documented_ffi_reporting_statement_certification == o.owner_documented_ffi_reporting_statement_certification &&
1164
+ owner_documented_ffi_auditor_letter_certification == o.owner_documented_ffi_auditor_letter_certification &&
1165
+ owner_documented_ffi_trust_beneficiaries_certification == o.owner_documented_ffi_trust_beneficiaries_certification &&
1166
+ restricted_distributor_certification == o.restricted_distributor_certification &&
1167
+ restricted_distributor_agreement_certification == o.restricted_distributor_agreement_certification &&
1168
+ restricted_distributor_preexisting_sales_compliance_certification == o.restricted_distributor_preexisting_sales_compliance_certification &&
1169
+ nonreporting_iga_ffi_certification == o.nonreporting_iga_ffi_certification &&
1170
+ iga_country == o.iga_country &&
1171
+ iga_model == o.iga_model &&
1172
+ iga_legal_status_treatment == o.iga_legal_status_treatment &&
1173
+ iga_ffi_trustee_or_sponsor == o.iga_ffi_trustee_or_sponsor &&
1174
+ iga_ffi_trustee_is_foreign == o.iga_ffi_trustee_is_foreign &&
1175
+ non_commercial_financial_activity_certification == o.non_commercial_financial_activity_certification &&
1176
+ internation_organization_certification == o.internation_organization_certification &&
1177
+ intergovernmental_organization_certification == o.intergovernmental_organization_certification &&
1178
+ treaty_qualified_pension_fund_certification == o.treaty_qualified_pension_fund_certification &&
1179
+ qualified_retirement_fund_certification == o.qualified_retirement_fund_certification &&
1180
+ narrow_participation_retirement_fund_certification == o.narrow_participation_retirement_fund_certification &&
1181
+ section401_a_equivalent_pension_plan_certification == o.section401_a_equivalent_pension_plan_certification &&
1182
+ investment_entity_for_retirement_funds_certification == o.investment_entity_for_retirement_funds_certification &&
1183
+ exempt_beneficial_owner_sponsored_retirement_fund_certification == o.exempt_beneficial_owner_sponsored_retirement_fund_certification &&
1184
+ exempt_beneficial_owner_owned_investment_entity_certification == o.exempt_beneficial_owner_owned_investment_entity_certification &&
1185
+ territory_financial_institution_certification == o.territory_financial_institution_certification &&
1186
+ excepted_nonfinancial_group_entity_certification == o.excepted_nonfinancial_group_entity_certification &&
1187
+ excepted_nonfinancial_start_up_certification == o.excepted_nonfinancial_start_up_certification &&
1188
+ startup_formation_or_resolution_date == o.startup_formation_or_resolution_date &&
1189
+ excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification == o.excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification &&
1190
+ nonfinancial_entity_filing_date == o.nonfinancial_entity_filing_date &&
1191
+ section501_c_organization_certification == o.section501_c_organization_certification &&
1192
+ determination_letter_date == o.determination_letter_date &&
1193
+ nonprofit_organization_certification == o.nonprofit_organization_certification &&
1194
+ publicly_traded_nffe_certification == o.publicly_traded_nffe_certification &&
1195
+ publicly_traded_nffe_securities_market == o.publicly_traded_nffe_securities_market &&
1196
+ nffe_affiliate_of_publicly_traded_entity_certification == o.nffe_affiliate_of_publicly_traded_entity_certification &&
1197
+ publicly_traded_entity == o.publicly_traded_entity &&
1198
+ nffe_affiliate_of_publicly_traded_entity_securities_market == o.nffe_affiliate_of_publicly_traded_entity_securities_market &&
1199
+ excepted_territory_nffe_certification == o.excepted_territory_nffe_certification &&
1200
+ active_nffe_certification == o.active_nffe_certification &&
1201
+ passive_nffe_certification == o.passive_nffe_certification &&
1202
+ passive_nffe_no_substantial_us_owners_certification == o.passive_nffe_no_substantial_us_owners_certification &&
1203
+ passive_nffe_substantial_us_owners_provided_certification == o.passive_nffe_substantial_us_owners_provided_certification &&
1204
+ excepted_inter_affiliate_ffi_certification == o.excepted_inter_affiliate_ffi_certification &&
1205
+ sponsored_direct_reporting_nffe_certification == o.sponsored_direct_reporting_nffe_certification &&
1206
+ direct_reporting_nffe_sponsoring_entity == o.direct_reporting_nffe_sponsoring_entity &&
1207
+ substantial_us_owners == o.substantial_us_owners &&
1208
+ signer_name == o.signer_name &&
1209
+ capacity_to_sign_certification == o.capacity_to_sign_certification &&
1210
+ company_id == o.company_id &&
1211
+ reference_id == o.reference_id &&
1212
+ email == o.email &&
1213
+ e_delivery_consented_at == o.e_delivery_consented_at &&
1214
+ signature == o.signature
1215
+ end
1216
+
1217
+ # @see the `==` method
1218
+ # @param [Object] Object to be compared
1219
+ def eql?(o)
1220
+ self == o
1221
+ end
1222
+
1223
+ # Calculates hash code according to all attributes.
1224
+ # @return [Integer] Hash code
1225
+ def hash
1226
+ [type, name, citizenship_country, disregarded_entity, entity_type, making_treaty_claim, fatca_status, residence_address, residence_city, residence_state, residence_zip, residence_country, residence_is_mailing, mailing_address, mailing_city, mailing_state, mailing_zip, mailing_country, tin, giin, foreign_tin_not_required, foreign_tin, reference_number, disregarded_entity_fatca_status, disregarded_address, disregarded_city, disregarded_state, disregarded_zip, disregarded_country, disregarded_entity_giin, treaty_country_certification, treaty_country, benefit_limitation_certification, benefit_limitation, qualified_resident_status_certification, treaty_article, withholding_rate, income_type, treaty_reasons, ffi_sponsoring_entity, investment_entity_certification, controlled_foreign_corporation_certification, compliant_nonregistering_local_bank_certification, compliant_ffi_low_value_accounts_certification, sponsored_closely_held_entity_sponsoring_entity, sponsored_closely_held_investment_vehicle_certification, compliant_limited_life_debt_entity_certification, investment_entity_no_financial_accounts_certification, owner_documented_ffi_certification, owner_documented_ffi_reporting_statement_certification, owner_documented_ffi_auditor_letter_certification, owner_documented_ffi_trust_beneficiaries_certification, restricted_distributor_certification, restricted_distributor_agreement_certification, restricted_distributor_preexisting_sales_compliance_certification, nonreporting_iga_ffi_certification, iga_country, iga_model, iga_legal_status_treatment, iga_ffi_trustee_or_sponsor, iga_ffi_trustee_is_foreign, non_commercial_financial_activity_certification, internation_organization_certification, intergovernmental_organization_certification, treaty_qualified_pension_fund_certification, qualified_retirement_fund_certification, narrow_participation_retirement_fund_certification, section401_a_equivalent_pension_plan_certification, investment_entity_for_retirement_funds_certification, exempt_beneficial_owner_sponsored_retirement_fund_certification, exempt_beneficial_owner_owned_investment_entity_certification, territory_financial_institution_certification, excepted_nonfinancial_group_entity_certification, excepted_nonfinancial_start_up_certification, startup_formation_or_resolution_date, excepted_nonfinancial_entity_in_liquidation_or_bankruptcy_certification, nonfinancial_entity_filing_date, section501_c_organization_certification, determination_letter_date, nonprofit_organization_certification, publicly_traded_nffe_certification, publicly_traded_nffe_securities_market, nffe_affiliate_of_publicly_traded_entity_certification, publicly_traded_entity, nffe_affiliate_of_publicly_traded_entity_securities_market, excepted_territory_nffe_certification, active_nffe_certification, passive_nffe_certification, passive_nffe_no_substantial_us_owners_certification, passive_nffe_substantial_us_owners_provided_certification, excepted_inter_affiliate_ffi_certification, sponsored_direct_reporting_nffe_certification, direct_reporting_nffe_sponsoring_entity, substantial_us_owners, signer_name, capacity_to_sign_certification, company_id, reference_id, email, e_delivery_consented_at, signature].hash
1227
+ end
1228
+
1229
+ # Builds the object from hash
1230
+ # @param [Hash] attributes Model attributes in the form of hash
1231
+ # @return [Object] Returns the model itself
1232
+ def self.build_from_hash(attributes)
1233
+ return nil unless attributes.is_a?(Hash)
1234
+ attributes = attributes.transform_keys(&:to_sym)
1235
+ transformed_hash = {}
1236
+ openapi_types.each_pair do |key, type|
1237
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
1238
+ transformed_hash["#{key}"] = nil
1239
+ elsif type =~ /\AArray<(.*)>/i
1240
+ # check to ensure the input is an array given that the attribute
1241
+ # is documented as an array but the input is not
1242
+ if attributes[attribute_map[key]].is_a?(Array)
1243
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
1244
+ end
1245
+ elsif !attributes[attribute_map[key]].nil?
1246
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
1247
+ end
1248
+ end
1249
+ new(transformed_hash)
1250
+ end
1251
+
1252
+ # Deserializes the data based on type
1253
+ # @param string type Data type
1254
+ # @param string value Value to be deserialized
1255
+ # @return [Object] Deserialized data
1256
+ def self._deserialize(type, value)
1257
+ case type.to_sym
1258
+ when :Time
1259
+ Time.parse(value)
1260
+ when :Date
1261
+ Date.parse(value)
1262
+ when :String
1263
+ value.to_s
1264
+ when :Integer
1265
+ value.to_i
1266
+ when :Float
1267
+ value.to_f
1268
+ when :Boolean
1269
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
1270
+ true
1271
+ else
1272
+ false
1273
+ end
1274
+ when :Object
1275
+ # generic object (usually a Hash), return directly
1276
+ value
1277
+ when /\AArray<(?<inner_type>.+)>\z/
1278
+ inner_type = Regexp.last_match[:inner_type]
1279
+ value.map { |v| _deserialize(inner_type, v) }
1280
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
1281
+ k_type = Regexp.last_match[:k_type]
1282
+ v_type = Regexp.last_match[:v_type]
1283
+ {}.tap do |hash|
1284
+ value.each do |k, v|
1285
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
1286
+ end
1287
+ end
1288
+ else # model
1289
+ # models (e.g. Pet) or oneOf
1290
+ klass = AvalaraSdk::A1099::V2.const_get(type)
1291
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
1292
+ end
1293
+ end
1294
+
1295
+ # Returns the string representation of the object
1296
+ # @return [String] String presentation of the object
1297
+ def to_s
1298
+ to_hash.to_s
1299
+ end
1300
+
1301
+ # to_body is an alias to to_hash (backward compatibility)
1302
+ # @return [Hash] Returns the object in the form of hash
1303
+ def to_body
1304
+ to_hash
1305
+ end
1306
+
1307
+ # Returns the object in the form of hash
1308
+ # @return [Hash] Returns the object in the form of hash
1309
+ def to_hash
1310
+ hash = {}
1311
+ self.class.attribute_map.each_pair do |attr, param|
1312
+ value = self.send(attr)
1313
+ if value.nil?
1314
+ is_nullable = self.class.openapi_nullable.include?(attr)
1315
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
1316
+ end
1317
+
1318
+ hash[param] = _to_hash(value)
1319
+ end
1320
+ hash
1321
+ end
1322
+
1323
+ # Outputs non-array value in the form of hash
1324
+ # For object, use to_hash. Otherwise, just return the value
1325
+ # @param [Object] value Any valid value
1326
+ # @return [Hash] Returns the value in the form of hash
1327
+ def _to_hash(value)
1328
+ if value.is_a?(Array)
1329
+ value.compact.map { |v| _to_hash(v) }
1330
+ elsif value.is_a?(Hash)
1331
+ {}.tap do |hash|
1332
+ value.each { |k, v| hash[k] = _to_hash(v) }
1333
+ end
1334
+ elsif value.respond_to? :to_hash
1335
+ value.to_hash
1336
+ else
1337
+ value
1338
+ end
1339
+ end
1340
+
1341
+ end
1342
+
1343
+ end