fern_gusto 0.0.6.pre.alpha6

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 (515) hide show
  1. checksums.yaml +7 -0
  2. data/lib/base_gusto.rb +175 -0
  3. data/lib/core/file_utilities.rb +27 -0
  4. data/lib/environment.rb +9 -0
  5. data/lib/fern_gusto/ach_transactions/client.rb +119 -0
  6. data/lib/fern_gusto/admins/types/admin.rb +82 -0
  7. data/lib/fern_gusto/companies/attachments/client.rb +335 -0
  8. data/lib/fern_gusto/companies/attachments/types/attachments_create_request_category.rb +15 -0
  9. data/lib/fern_gusto/companies/attachments/types/attachments_get_download_url_response.rb +56 -0
  10. data/lib/fern_gusto/companies/bank_accounts/client.rb +435 -0
  11. data/lib/fern_gusto/companies/bank_accounts/types/bank_accounts_create_request_account_type.rb +15 -0
  12. data/lib/fern_gusto/companies/benefits/client.rb +862 -0
  13. data/lib/fern_gusto/companies/client.rb +1104 -0
  14. data/lib/fern_gusto/companies/departments/client.rb +587 -0
  15. data/lib/fern_gusto/companies/departments/types/departments_add_people_request_contractors_item.rb +59 -0
  16. data/lib/fern_gusto/companies/departments/types/departments_add_people_request_employees_item.rb +59 -0
  17. data/lib/fern_gusto/companies/departments/types/departments_remove_people_request_contractors_item.rb +59 -0
  18. data/lib/fern_gusto/companies/departments/types/departments_remove_people_request_employees_item.rb +59 -0
  19. data/lib/fern_gusto/companies/employees/client.rb +376 -0
  20. data/lib/fern_gusto/companies/external_payrolls/client.rb +605 -0
  21. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item.rb +98 -0
  22. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_benefits_item.rb +79 -0
  23. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_earnings_item.rb +87 -0
  24. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_earnings_item_earning_type.rb +15 -0
  25. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_request_external_payroll_items_item_taxes_item.rb +69 -0
  26. data/lib/fern_gusto/companies/external_payrolls/types/external_payrolls_update_tax_liabilities_request_liability_selections_item.rb +80 -0
  27. data/lib/fern_gusto/companies/federal_tax_details/client.rb +212 -0
  28. data/lib/fern_gusto/companies/federal_tax_details/types/federal_tax_details_update_request_tax_payer_type.rb +25 -0
  29. data/lib/fern_gusto/companies/forms/client.rb +345 -0
  30. data/lib/fern_gusto/companies/industry_selection/client.rb +207 -0
  31. data/lib/fern_gusto/companies/locations/client.rb +417 -0
  32. data/lib/fern_gusto/companies/pay_schedules/client.rb +377 -0
  33. data/lib/fern_gusto/companies/payment_configs/client.rb +198 -0
  34. data/lib/fern_gusto/companies/payment_configs/types/payment_configs_update_request_payment_speed.rb +19 -0
  35. data/lib/fern_gusto/companies/signatories/client.rb +513 -0
  36. data/lib/fern_gusto/companies/signatories/types/signatories_create_request_home_address.rb +89 -0
  37. data/lib/fern_gusto/companies/signatories/types/signatories_update_request_home_address.rb +88 -0
  38. data/lib/fern_gusto/companies/tax_requirements/client.rb +367 -0
  39. data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_list_response_item.rb +75 -0
  40. data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_update_state_request_requirement_sets_item.rb +88 -0
  41. data/lib/fern_gusto/companies/tax_requirements/types/tax_requirements_update_state_request_requirement_sets_item_requirements_item.rb +70 -0
  42. data/lib/fern_gusto/companies/types/companies_accept_terms_response.rb +56 -0
  43. data/lib/fern_gusto/companies/types/companies_create_request_company.rb +83 -0
  44. data/lib/fern_gusto/companies/types/companies_create_request_user.rb +81 -0
  45. data/lib/fern_gusto/companies/types/companies_create_response.rb +82 -0
  46. data/lib/fern_gusto/companies/types/companies_get_custom_fields_response.rb +59 -0
  47. data/lib/fern_gusto/companies/types/companies_migrate_to_embedded_payroll_response.rb +68 -0
  48. data/lib/fern_gusto/companies/types/companies_retrieve_terms_response.rb +56 -0
  49. data/lib/fern_gusto/companies/types/company.rb +223 -0
  50. data/lib/fern_gusto/companies/types/company_company_status.rb +21 -0
  51. data/lib/fern_gusto/companies/types/company_compensations.rb +85 -0
  52. data/lib/fern_gusto/companies/types/company_compensations_fixed_item.rb +55 -0
  53. data/lib/fern_gusto/companies/types/company_compensations_hourly_item.rb +65 -0
  54. data/lib/fern_gusto/companies/types/company_compensations_paid_time_off_item.rb +55 -0
  55. data/lib/fern_gusto/companies/types/company_entity_type.rb +23 -0
  56. data/lib/fern_gusto/companies/types/company_funding_type.rb +15 -0
  57. data/lib/fern_gusto/companies/types/company_onboarding_status.rb +77 -0
  58. data/lib/fern_gusto/companies/types/company_onboarding_status_onboarding_steps_item.rb +97 -0
  59. data/lib/fern_gusto/companies/types/company_pay_schedule_type.rb +15 -0
  60. data/lib/fern_gusto/companies/types/company_primary_payroll_admin.rb +80 -0
  61. data/lib/fern_gusto/companies/types/company_primary_signatory.rb +100 -0
  62. data/lib/fern_gusto/companies/types/company_primary_signatory_home_address.rb +93 -0
  63. data/lib/fern_gusto/companies/types/company_tier.rb +20 -0
  64. data/lib/fern_gusto/company_attachment/types/company_attachment.rb +81 -0
  65. data/lib/fern_gusto/company_attachment/types/company_attachment_category.rb +13 -0
  66. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account.rb +157 -0
  67. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_account_type.rb +13 -0
  68. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_plaid_status.rb +14 -0
  69. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_verification_status.rb +19 -0
  70. data/lib/fern_gusto/company_bank_accounts/types/company_bank_account_verification_type.rb +17 -0
  71. data/lib/fern_gusto/company_benefits/types/benefit_summary.rb +104 -0
  72. data/lib/fern_gusto/company_benefits/types/benefit_summary_employees.rb +113 -0
  73. data/lib/fern_gusto/company_benefits/types/benefit_summary_employees_payroll_benefits.rb +107 -0
  74. data/lib/fern_gusto/company_benefits/types/benefit_summary_employees_payroll_benefits_pay_period.rb +67 -0
  75. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements.rb +156 -0
  76. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_catch_up.rb +86 -0
  77. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_catch_up_default_value.rb +67 -0
  78. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_company_contribution_annual_maximum.rb +88 -0
  79. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_company_contribution_annual_maximum_default_value.rb +68 -0
  80. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_contribution.rb +86 -0
  81. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_contribution_default_value.rb +67 -0
  82. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_amount.rb +87 -0
  83. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_amount_default_value.rb +67 -0
  84. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_salary_multiplier.rb +88 -0
  85. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_coverage_salary_multiplier_default_value.rb +67 -0
  86. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_deduct_as_percentage.rb +88 -0
  87. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_deduct_as_percentage_default_value.rb +67 -0
  88. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_employee_deduction.rb +88 -0
  89. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_employee_deduction_default_value.rb +67 -0
  90. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_limit_option.rb +86 -0
  91. data/lib/fern_gusto/company_benefits/types/benefit_type_requirements_limit_option_default_value.rb +67 -0
  92. data/lib/fern_gusto/contractor/types/contractor_onboarding_info.rb +78 -0
  93. data/lib/fern_gusto/contractor/types/contractor_onboarding_status_onboarding_status.rb +14 -0
  94. data/lib/fern_gusto/contractor/types/contractor_onboarding_status_onboarding_steps_item.rb +88 -0
  95. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group.rb +145 -0
  96. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_payment_method.rb +15 -0
  97. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_status.rb +16 -0
  98. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_for_group_wage_type.rb +13 -0
  99. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group.rb +127 -0
  100. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal.rb +116 -0
  101. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal_status.rb +16 -0
  102. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_minimal_totals.rb +74 -0
  103. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_status.rb +16 -0
  104. data/lib/fern_gusto/contractor_payment_groups/types/contractor_payment_group_totals.rb +74 -0
  105. data/lib/fern_gusto/contractor_payment_method/types/contractor_bank_account.rb +94 -0
  106. data/lib/fern_gusto/contractor_payment_method/types/contractor_bank_account_account_type.rb +13 -0
  107. data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method.rb +96 -0
  108. data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method_split_by.rb +15 -0
  109. data/lib/fern_gusto/contractor_payment_method/types/contractor_payment_method_type.rb +14 -0
  110. data/lib/fern_gusto/contractor_payments/types/contractor_payment.rb +146 -0
  111. data/lib/fern_gusto/contractor_payments/types/contractor_payment_payment_method.rb +15 -0
  112. data/lib/fern_gusto/contractor_payments/types/contractor_payment_status.rb +13 -0
  113. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary.rb +81 -0
  114. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates.rb +81 -0
  115. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates_contractor_payments_item.rb +93 -0
  116. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_by_dates_total.rb +67 -0
  117. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_contractor_payments_item.rb +86 -0
  118. data/lib/fern_gusto/contractor_payments/types/contractor_payment_summary_total.rb +67 -0
  119. data/lib/fern_gusto/contractor_payments/types/contractor_payment_wage_type.rb +13 -0
  120. data/lib/fern_gusto/contractors/client.rb +1025 -0
  121. data/lib/fern_gusto/contractors/documents/client.rb +269 -0
  122. data/lib/fern_gusto/contractors/documents/types/documents_sign_request_fields_item.rb +67 -0
  123. data/lib/fern_gusto/contractors/forms/client.rb +343 -0
  124. data/lib/fern_gusto/contractors/payment_groups/client.rb +569 -0
  125. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_create_request_contractor_payments_item.rb +102 -0
  126. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_create_request_contractor_payments_item_payment_method.rb +15 -0
  127. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_preview_request_contractor_payments_item.rb +102 -0
  128. data/lib/fern_gusto/contractors/payment_groups/types/payment_groups_preview_request_contractor_payments_item_payment_method.rb +15 -0
  129. data/lib/fern_gusto/contractors/payment_method/client.rb +369 -0
  130. data/lib/fern_gusto/contractors/payment_method/types/payment_method_create_bank_account_request_account_type.rb +14 -0
  131. data/lib/fern_gusto/contractors/payment_method/types/payment_method_update_request_type.rb +17 -0
  132. data/lib/fern_gusto/contractors/payments/client.rb +558 -0
  133. data/lib/fern_gusto/contractors/payments/types/payments_create_request_payment_method.rb +15 -0
  134. data/lib/fern_gusto/contractors/payments/types/payments_list_response.rb +62 -0
  135. data/lib/fern_gusto/contractors/types/contractor.rb +227 -0
  136. data/lib/fern_gusto/contractors/types/contractor_address.rb +94 -0
  137. data/lib/fern_gusto/contractors/types/contractor_onboarding_status.rb +18 -0
  138. data/lib/fern_gusto/contractors/types/contractor_type.rb +13 -0
  139. data/lib/fern_gusto/contractors/types/contractor_wage_type.rb +13 -0
  140. data/lib/fern_gusto/custom_fields/types/company_custom_field.rb +88 -0
  141. data/lib/fern_gusto/custom_fields/types/custom_field_type.rb +16 -0
  142. data/lib/fern_gusto/custom_fields/types/employee_custom_field.rb +104 -0
  143. data/lib/fern_gusto/documents/types/document.rb +167 -0
  144. data/lib/fern_gusto/documents/types/document_fields_item.rb +114 -0
  145. data/lib/fern_gusto/documents/types/document_pages_item.rb +65 -0
  146. data/lib/fern_gusto/documents/types/document_recipient_type.rb +15 -0
  147. data/lib/fern_gusto/documents/types/document_signed.rb +137 -0
  148. data/lib/fern_gusto/documents/types/document_signed_recipient_type.rb +15 -0
  149. data/lib/fern_gusto/earning_types/types/earning_type.rb +66 -0
  150. data/lib/fern_gusto/employee_employments/types/unprocessed_termination_pay_period.rb +101 -0
  151. data/lib/fern_gusto/employee_payment_method/types/employee_bank_account.rb +94 -0
  152. data/lib/fern_gusto/employee_payment_method/types/employee_bank_account_account_type.rb +13 -0
  153. data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_info.rb +96 -0
  154. data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_split_by.rb +15 -0
  155. data/lib/fern_gusto/employee_payment_method/types/employee_payment_method_type.rb +14 -0
  156. data/lib/fern_gusto/employee_tax_setup/types/employee_federal_tax.rb +144 -0
  157. data/lib/fern_gusto/employee_tax_setup/types/employee_federal_tax_w4data_type.rb +13 -0
  158. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax.rb +90 -0
  159. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_answer.rb +74 -0
  160. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_input_question_format.rb +69 -0
  161. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_input_question_format_options_item.rb +67 -0
  162. data/lib/fern_gusto/employee_tax_setup/types/employee_state_tax_question.rb +96 -0
  163. data/lib/fern_gusto/employees/adresses/client.rb +885 -0
  164. data/lib/fern_gusto/employees/benefits/client.rb +656 -0
  165. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution.rb +93 -0
  166. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_type.rb +23 -0
  167. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_value.rb +67 -0
  168. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_contribution_value_item.rb +80 -0
  169. data/lib/fern_gusto/employees/benefits/types/benefits_create_request_deduction_reduces_taxable_income.rb +18 -0
  170. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution.rb +93 -0
  171. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_type.rb +23 -0
  172. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_value.rb +67 -0
  173. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_contribution_value_item.rb +80 -0
  174. data/lib/fern_gusto/employees/benefits/types/benefits_update_request_deduction_reduces_taxable_income.rb +18 -0
  175. data/lib/fern_gusto/employees/client.rb +822 -0
  176. data/lib/fern_gusto/employees/employments/client.rb +799 -0
  177. data/lib/fern_gusto/employees/employments/types/employments_get_history_response_item.rb +95 -0
  178. data/lib/fern_gusto/employees/employments/types/employments_get_history_response_item_employment_status.rb +20 -0
  179. data/lib/fern_gusto/employees/forms/client.rb +433 -0
  180. data/lib/fern_gusto/employees/forms/types/forms_generate_w2response.rb +132 -0
  181. data/lib/fern_gusto/employees/garnishments/client.rb +558 -0
  182. data/lib/fern_gusto/employees/garnishments/types/garnishments_create_request_garnishment_type.rb +20 -0
  183. data/lib/fern_gusto/employees/jobs_and_compensations/client.rb +938 -0
  184. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_create_compensation_request_minimum_wages_item.rb +62 -0
  185. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_create_compensation_request_payment_unit.rb +19 -0
  186. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_update_compensation_request_minimum_wages_item.rb +62 -0
  187. data/lib/fern_gusto/employees/jobs_and_compensations/types/jobs_and_compensations_update_compensation_request_payment_unit.rb +19 -0
  188. data/lib/fern_gusto/employees/payment_method/client.rb +484 -0
  189. data/lib/fern_gusto/employees/payment_method/types/payment_method_create_bank_account_request_account_type.rb +14 -0
  190. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_bank_account_request_account_type.rb +14 -0
  191. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_split_by.rb +17 -0
  192. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_splits_item.rb +83 -0
  193. data/lib/fern_gusto/employees/payment_method/types/payment_method_update_request_type.rb +16 -0
  194. data/lib/fern_gusto/employees/tax_setup/client.rb +422 -0
  195. data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item.rb +73 -0
  196. data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item_questions_item.rb +73 -0
  197. data/lib/fern_gusto/employees/tax_setup/types/tax_setup_update_state_taxes_request_states_item_questions_item_answers_item.rb +77 -0
  198. data/lib/fern_gusto/employees/types/employee.rb +281 -0
  199. data/lib/fern_gusto/employees/types/employee_current_employment_status.rb +20 -0
  200. data/lib/fern_gusto/employees/types/employee_onboarding_info.rb +77 -0
  201. data/lib/fern_gusto/employees/types/employee_onboarding_status.rb +19 -0
  202. data/lib/fern_gusto/employees/types/employee_onboarding_status_onboarding_steps_item.rb +88 -0
  203. data/lib/fern_gusto/employees/types/employee_payment_method.rb +13 -0
  204. data/lib/fern_gusto/employees/types/employees_get_custom_fields_response.rb +59 -0
  205. data/lib/fern_gusto/employees/types/employees_get_request_include.rb +12 -0
  206. data/lib/fern_gusto/events/client.rb +144 -0
  207. data/lib/fern_gusto/events/types/events_list_request_sort_order.rb +12 -0
  208. data/lib/fern_gusto/external_payrolls/types/external_payroll.rb +158 -0
  209. data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_benefits_item.rb +73 -0
  210. data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_earnings_item.rb +87 -0
  211. data/lib/fern_gusto/external_payrolls/types/external_payroll_applicable_taxes_item.rb +85 -0
  212. data/lib/fern_gusto/external_payrolls/types/external_payroll_basic.rb +101 -0
  213. data/lib/fern_gusto/external_payrolls/types/external_payroll_basic_status.rb +16 -0
  214. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item.rb +93 -0
  215. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_benefits_item.rb +74 -0
  216. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_earnings_item.rb +81 -0
  217. data/lib/fern_gusto/external_payrolls/types/external_payroll_external_payroll_items_item_taxes_item.rb +67 -0
  218. data/lib/fern_gusto/external_payrolls/types/external_payroll_metadata.rb +56 -0
  219. data/lib/fern_gusto/external_payrolls/types/external_payroll_status.rb +16 -0
  220. data/lib/fern_gusto/external_payrolls/types/external_payroll_tax_suggestions.rb +72 -0
  221. data/lib/fern_gusto/external_payrolls/types/external_payroll_tax_suggestions_tax_suggestions.rb +68 -0
  222. data/lib/fern_gusto/external_payrolls/types/tax_liabilities_selections.rb +86 -0
  223. data/lib/fern_gusto/external_payrolls/types/tax_liabilities_selections_possible_liabilities.rb +75 -0
  224. data/lib/fern_gusto/federal_tax_details/types/federal_tax_details.rb +140 -0
  225. data/lib/fern_gusto/flows/client.rb +113 -0
  226. data/lib/fern_gusto/flows/types/flow.rb +66 -0
  227. data/lib/fern_gusto/flows/types/flows_create_request_entity_type.rb +14 -0
  228. data/lib/fern_gusto/forms/types/form.rb +123 -0
  229. data/lib/fern_gusto/forms/types/form1099.rb +126 -0
  230. data/lib/fern_gusto/generated_documents/client.rb +106 -0
  231. data/lib/fern_gusto/holiday_pay_policies/client.rb +599 -0
  232. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_add_employees_request_employees_item.rb +57 -0
  233. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays.rb +198 -0
  234. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_christmas_day.rb +57 -0
  235. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_columbus_day.rb +57 -0
  236. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_independence_day.rb +57 -0
  237. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_juneteenth.rb +57 -0
  238. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_labor_day.rb +57 -0
  239. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_memorial_day.rb +57 -0
  240. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_mlk_day.rb +57 -0
  241. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_new_years_day.rb +57 -0
  242. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_presidents_day.rb +57 -0
  243. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_thanksgiving.rb +57 -0
  244. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_create_request_federal_holidays_veterans_day.rb +57 -0
  245. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_remove_employees_request_employees_item.rb +57 -0
  246. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays.rb +198 -0
  247. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_christmas_day.rb +57 -0
  248. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_columbus_day.rb +57 -0
  249. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_independence_day.rb +57 -0
  250. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_juneteenth.rb +57 -0
  251. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_labor_day.rb +57 -0
  252. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_memorial_day.rb +57 -0
  253. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_mlk_day.rb +57 -0
  254. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_new_years_day.rb +57 -0
  255. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_presidents_day.rb +57 -0
  256. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_thanksgiving.rb +57 -0
  257. data/lib/fern_gusto/holiday_pay_policies/types/holiday_pay_policies_update_request_federal_holidays_veterans_day.rb +57 -0
  258. data/lib/fern_gusto/industry/types/industry.rb +87 -0
  259. data/lib/fern_gusto/invoices/client.rb +132 -0
  260. data/lib/fern_gusto/jobs_and_compensations/types/compensation.rb +120 -0
  261. data/lib/fern_gusto/jobs_and_compensations/types/compensation_payment_unit.rb +17 -0
  262. data/lib/fern_gusto/jobs_and_compensations/types/job.rb +161 -0
  263. data/lib/fern_gusto/locations/types/company_address.rb +103 -0
  264. data/lib/fern_gusto/locations/types/location.rb +171 -0
  265. data/lib/fern_gusto/notifications/client.rb +120 -0
  266. data/lib/fern_gusto/pay_schedules/types/pay_schedule.rb +151 -0
  267. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment.rb +103 -0
  268. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_department.rb +65 -0
  269. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_employee.rb +65 -0
  270. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_employee_change.rb +105 -0
  271. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_pay_period.rb +80 -0
  272. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_preview.rb +71 -0
  273. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_preview_type.rb +15 -0
  274. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_transition_pay_period.rb +68 -0
  275. data/lib/fern_gusto/pay_schedules/types/pay_schedule_assignment_type.rb +15 -0
  276. data/lib/fern_gusto/pay_schedules/types/pay_schedule_frequency.rb +17 -0
  277. data/lib/fern_gusto/payment_configs/types/payment_configs.rb +79 -0
  278. data/lib/fern_gusto/payroll/client.rb +1644 -0
  279. data/lib/fern_gusto/payroll/earning_types/client.rb +350 -0
  280. data/lib/fern_gusto/payroll/earning_types/types/earning_types_get_response.rb +74 -0
  281. data/lib/fern_gusto/payroll/external_payrolls/client.rb +199 -0
  282. data/lib/fern_gusto/payroll/pay_schedules/client.rb +584 -0
  283. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_create_request_frequency.rb +17 -0
  284. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_request_frequency.rb +16 -0
  285. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_response.rb +72 -0
  286. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_preview_response_pay_periods_item.rb +83 -0
  287. data/lib/fern_gusto/payroll/pay_schedules/types/pay_schedules_update_request_frequency.rb +17 -0
  288. data/lib/fern_gusto/payroll/types/payroll_create_request_off_cycle_reason.rb +15 -0
  289. data/lib/fern_gusto/payroll/types/payroll_create_request_withholding_pay_period.rb +18 -0
  290. data/lib/fern_gusto/payroll/types/payroll_get_request_include_item.rb +14 -0
  291. data/lib/fern_gusto/payroll/types/payroll_list_request_include_item.rb +13 -0
  292. data/lib/fern_gusto/payroll/types/payroll_list_request_payroll_types_item.rb +13 -0
  293. data/lib/fern_gusto/payroll/types/payroll_list_request_processing_statuses_item.rb +12 -0
  294. data/lib/fern_gusto/payroll/types/payroll_list_request_sort_order.rb +12 -0
  295. data/lib/fern_gusto/payroll/types/payroll_skip_payroll_request_payroll_type.rb +15 -0
  296. data/lib/fern_gusto/payroll/types/payroll_submit_request_submission_blockers_item.rb +67 -0
  297. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item.rb +133 -0
  298. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_fixed_compensations_item.rb +79 -0
  299. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_hourly_compensations_item.rb +79 -0
  300. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_paid_time_off_item.rb +85 -0
  301. data/lib/fern_gusto/payroll/types/payroll_update_request_employee_compensations_item_payment_method.rb +13 -0
  302. data/lib/fern_gusto/payrolls/types/employee_pay_stub.rb +94 -0
  303. data/lib/fern_gusto/payrolls/types/paid_time_off.rb +123 -0
  304. data/lib/fern_gusto/payrolls/types/paid_time_off_name.rb +14 -0
  305. data/lib/fern_gusto/payrolls/types/pay_period.rb +86 -0
  306. data/lib/fern_gusto/payrolls/types/pay_period_payroll.rb +107 -0
  307. data/lib/fern_gusto/payrolls/types/pay_period_payroll_payroll_type.rb +13 -0
  308. data/lib/fern_gusto/payrolls/types/payroll.rb +285 -0
  309. data/lib/fern_gusto/payrolls/types/payroll_minimal.rb +250 -0
  310. data/lib/fern_gusto/payrolls/types/payroll_prepared.rb +250 -0
  311. data/lib/fern_gusto/recovery_cases/client.rb +198 -0
  312. data/lib/fern_gusto/reports/client.rb +306 -0
  313. data/lib/fern_gusto/reports/types/reports_create_request_columns_item.rb +91 -0
  314. data/lib/fern_gusto/reports/types/reports_create_request_employment_status.rb +18 -0
  315. data/lib/fern_gusto/reports/types/reports_create_request_employment_type.rb +16 -0
  316. data/lib/fern_gusto/reports/types/reports_create_request_file_type.rb +13 -0
  317. data/lib/fern_gusto/reports/types/reports_create_request_groupings_item.rb +14 -0
  318. data/lib/fern_gusto/reports/types/reports_create_request_payment_method.rb +13 -0
  319. data/lib/fern_gusto/signatories/types/signatory.rb +175 -0
  320. data/lib/fern_gusto/signatories/types/signatory_home_address.rb +93 -0
  321. data/lib/fern_gusto/signatories/types/signatory_identity_verification_status.rb +28 -0
  322. data/lib/fern_gusto/terminations/types/termination.rb +109 -0
  323. data/lib/fern_gusto/time_off_policies/client.rb +863 -0
  324. data/lib/fern_gusto/time_off_policies/types/time_off_policies_add_employees_request_employees_item.rb +67 -0
  325. data/lib/fern_gusto/time_off_policies/types/time_off_policies_create_request_accrual_method.rb +19 -0
  326. data/lib/fern_gusto/time_off_policies/types/time_off_policies_remove_employees_request_employees_item.rb +57 -0
  327. data/lib/fern_gusto/time_off_policies/types/time_off_policies_update_balance_request_employees_item.rb +67 -0
  328. data/lib/fern_gusto/time_off_policies/types/time_off_policies_update_request_accrual_method.rb +19 -0
  329. data/lib/fern_gusto/time_off_requests/types/time_off_request.rb +141 -0
  330. data/lib/fern_gusto/time_off_requests/types/time_off_request_approver.rb +66 -0
  331. data/lib/fern_gusto/time_off_requests/types/time_off_request_employee.rb +66 -0
  332. data/lib/fern_gusto/time_off_requests/types/time_off_request_initiator.rb +66 -0
  333. data/lib/fern_gusto/time_off_requests/types/time_off_request_request_type.rb +13 -0
  334. data/lib/fern_gusto/time_off_requests/types/time_off_request_status.rb +14 -0
  335. data/lib/fern_gusto/token/client.rb +270 -0
  336. data/lib/fern_gusto/token/types/token_get_info_response.rb +85 -0
  337. data/lib/fern_gusto/token/types/token_get_info_response_resource.rb +64 -0
  338. data/lib/fern_gusto/token/types/token_get_info_response_resource_owner.rb +65 -0
  339. data/lib/fern_gusto/token/types/token_get_info_response_resource_owner_type.rb +13 -0
  340. data/lib/fern_gusto/token/types/token_get_system_access_token_response.rb +77 -0
  341. data/lib/fern_gusto/types/accruing_time_off_hour.rb +64 -0
  342. data/lib/fern_gusto/types/ach_transaction.rb +162 -0
  343. data/lib/fern_gusto/types/ach_transaction_payment_direction.rb +11 -0
  344. data/lib/fern_gusto/types/ach_transaction_payment_event_type.rb +11 -0
  345. data/lib/fern_gusto/types/ach_transaction_payment_status.rb +13 -0
  346. data/lib/fern_gusto/types/ach_transaction_recipient_type.rb +11 -0
  347. data/lib/fern_gusto/types/address.rb +111 -0
  348. data/lib/fern_gusto/types/authentication.rb +96 -0
  349. data/lib/fern_gusto/types/child_support_data.rb +58 -0
  350. data/lib/fern_gusto/types/child_support_data_agencies_item.rb +104 -0
  351. data/lib/fern_gusto/types/child_support_data_agencies_item_fips_codes_item.rb +67 -0
  352. data/lib/fern_gusto/types/child_support_data_agencies_item_required_attributes_item.rb +70 -0
  353. data/lib/fern_gusto/types/child_support_data_agencies_item_required_attributes_item_key.rb +14 -0
  354. data/lib/fern_gusto/types/company_benefit.rb +135 -0
  355. data/lib/fern_gusto/types/company_benefit_with_employee_benefits.rb +148 -0
  356. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item.rb +115 -0
  357. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution.rb +91 -0
  358. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value.rb +61 -0
  359. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value_tiers.rb +60 -0
  360. data/lib/fern_gusto/types/company_benefit_with_employee_benefits_employee_benefits_item_contribution_value_tiers_tiers_item.rb +86 -0
  361. data/lib/fern_gusto/types/contractor_address_info.rb +118 -0
  362. data/lib/fern_gusto/types/contractor_body.rb +200 -0
  363. data/lib/fern_gusto/types/contractor_body_type.rb +11 -0
  364. data/lib/fern_gusto/types/contractor_body_wage_type.rb +11 -0
  365. data/lib/fern_gusto/types/contractor_payment_receipt.rb +161 -0
  366. data/lib/fern_gusto/types/contractor_payment_receipt_contractor_payments_item.rb +120 -0
  367. data/lib/fern_gusto/types/contractor_payment_receipt_licensee.rb +92 -0
  368. data/lib/fern_gusto/types/contractor_payment_receipt_totals.rb +54 -0
  369. data/lib/fern_gusto/types/create_report.rb +77 -0
  370. data/lib/fern_gusto/types/department.rb +103 -0
  371. data/lib/fern_gusto/types/department_contractors_item.rb +53 -0
  372. data/lib/fern_gusto/types/department_employees_item.rb +53 -0
  373. data/lib/fern_gusto/types/document_pdf.rb +63 -0
  374. data/lib/fern_gusto/types/employee_address.rb +139 -0
  375. data/lib/fern_gusto/types/employee_benefit.rb +220 -0
  376. data/lib/fern_gusto/types/employee_benefit_base_object.rb +199 -0
  377. data/lib/fern_gusto/types/employee_benefit_base_object_contribution.rb +89 -0
  378. data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value.rb +61 -0
  379. data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value_tiers.rb +59 -0
  380. data/lib/fern_gusto/types/employee_benefit_base_object_contribution_value_tiers_tiers_item.rb +85 -0
  381. data/lib/fern_gusto/types/employee_benefit_base_object_deduction_reduces_taxable_income.rb +14 -0
  382. data/lib/fern_gusto/types/employee_benefit_for_company_benefit.rb +220 -0
  383. data/lib/fern_gusto/types/employee_work_address.rb +137 -0
  384. data/lib/fern_gusto/types/entity_error_object.rb +102 -0
  385. data/lib/fern_gusto/types/entity_error_object_errors_item.rb +89 -0
  386. data/lib/fern_gusto/types/event.rb +99 -0
  387. data/lib/fern_gusto/types/flsa_status_type.rb +23 -0
  388. data/lib/fern_gusto/types/form_pdf.rb +63 -0
  389. data/lib/fern_gusto/types/garnishment.rb +172 -0
  390. data/lib/fern_gusto/types/garnishment_child_support.rb +113 -0
  391. data/lib/fern_gusto/types/garnishment_child_support_payment_period.rb +14 -0
  392. data/lib/fern_gusto/types/garnishment_garnishment_type.rb +16 -0
  393. data/lib/fern_gusto/types/generated_document.rb +70 -0
  394. data/lib/fern_gusto/types/gross_up_pay.rb +53 -0
  395. data/lib/fern_gusto/types/historical_employee_body.rb +156 -0
  396. data/lib/fern_gusto/types/historical_employee_body_employee_state_taxes.rb +80 -0
  397. data/lib/fern_gusto/types/historical_employee_body_home_address.rb +84 -0
  398. data/lib/fern_gusto/types/historical_employee_body_job.rb +53 -0
  399. data/lib/fern_gusto/types/historical_employee_body_termination.rb +53 -0
  400. data/lib/fern_gusto/types/historical_employee_body_work_address.rb +53 -0
  401. data/lib/fern_gusto/types/holiday_pay_policy.rb +88 -0
  402. data/lib/fern_gusto/types/holiday_pay_policy_employees_item.rb +53 -0
  403. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item.rb +179 -0
  404. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_columbus_day.rb +72 -0
  405. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_independence_day.rb +72 -0
  406. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_juneteenth.rb +72 -0
  407. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_labor_day.rb +72 -0
  408. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_memorial_day.rb +72 -0
  409. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_mlk_day.rb +72 -0
  410. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_new_years_day.rb +72 -0
  411. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_presidents_day.rb +72 -0
  412. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_thanksgiving.rb +72 -0
  413. data/lib/fern_gusto/types/holiday_pay_policy_federal_holidays_item_veterans_day.rb +72 -0
  414. data/lib/fern_gusto/types/invoice_data.rb +58 -0
  415. data/lib/fern_gusto/types/invoice_data_active_companies_item.rb +91 -0
  416. data/lib/fern_gusto/types/minimum_wage.rb +96 -0
  417. data/lib/fern_gusto/types/notification.rb +125 -0
  418. data/lib/fern_gusto/types/notification_resources_item.rb +85 -0
  419. data/lib/fern_gusto/types/off_cycle_reason_type.rb +19 -0
  420. data/lib/fern_gusto/types/paid_holidays.rb +61 -0
  421. data/lib/fern_gusto/types/paid_holidays_schema.rb +77 -0
  422. data/lib/fern_gusto/types/pay_schedule_assignment_body.rb +111 -0
  423. data/lib/fern_gusto/types/pay_schedule_assignment_body_departments_item.rb +65 -0
  424. data/lib/fern_gusto/types/pay_schedule_assignment_body_employees_item.rb +64 -0
  425. data/lib/fern_gusto/types/pay_schedule_assignment_body_type.rb +13 -0
  426. data/lib/fern_gusto/types/payment_method_bank_account.rb +87 -0
  427. data/lib/fern_gusto/types/payroll_blocker.rb +63 -0
  428. data/lib/fern_gusto/types/payroll_blockers_error.rb +60 -0
  429. data/lib/fern_gusto/types/payroll_blockers_error_errors_item.rb +83 -0
  430. data/lib/fern_gusto/types/payroll_blockers_error_errors_item_metadata.rb +54 -0
  431. data/lib/fern_gusto/types/payroll_check.rb +84 -0
  432. data/lib/fern_gusto/types/payroll_company_taxes_type.rb +6 -0
  433. data/lib/fern_gusto/types/payroll_company_taxes_type_item.rb +70 -0
  434. data/lib/fern_gusto/types/payroll_credit_blockers_type.rb +6 -0
  435. data/lib/fern_gusto/types/payroll_credit_blockers_type_item.rb +89 -0
  436. data/lib/fern_gusto/types/payroll_credit_blockers_type_item_status.rb +13 -0
  437. data/lib/fern_gusto/types/payroll_credit_blockers_type_item_unblock_options_item.rb +72 -0
  438. data/lib/fern_gusto/types/payroll_employee_compensations_type.rb +6 -0
  439. data/lib/fern_gusto/types/payroll_employee_compensations_type_item.rb +216 -0
  440. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_benefits_item.rb +79 -0
  441. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_deductions_item.rb +65 -0
  442. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_fixed_compensations_item.rb +74 -0
  443. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_hourly_compensations_item.rb +92 -0
  444. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_paid_time_off_item.rb +76 -0
  445. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_payment_method.rb +11 -0
  446. data/lib/fern_gusto/types/payroll_employee_compensations_type_item_taxes_item.rb +70 -0
  447. data/lib/fern_gusto/types/payroll_fixed_compensation_types_type.rb +6 -0
  448. data/lib/fern_gusto/types/payroll_fixed_compensation_types_type_item.rb +54 -0
  449. data/lib/fern_gusto/types/payroll_pay_period_type.rb +70 -0
  450. data/lib/fern_gusto/types/payroll_payment_speed_changed_type.rb +86 -0
  451. data/lib/fern_gusto/types/payroll_payroll_status_meta_type.rb +92 -0
  452. data/lib/fern_gusto/types/payroll_processing_request.rb +68 -0
  453. data/lib/fern_gusto/types/payroll_processing_request_status.rb +14 -0
  454. data/lib/fern_gusto/types/payroll_receipt.rb +177 -0
  455. data/lib/fern_gusto/types/payroll_receipt_employee_compensations_item.rb +116 -0
  456. data/lib/fern_gusto/types/payroll_receipt_licensee.rb +92 -0
  457. data/lib/fern_gusto/types/payroll_receipt_taxes_item.rb +63 -0
  458. data/lib/fern_gusto/types/payroll_receipt_totals.rb +85 -0
  459. data/lib/fern_gusto/types/payroll_reversal.rb +91 -0
  460. data/lib/fern_gusto/types/payroll_submission_blockers_type.rb +6 -0
  461. data/lib/fern_gusto/types/payroll_submission_blockers_type_item.rb +89 -0
  462. data/lib/fern_gusto/types/payroll_submission_blockers_type_item_status.rb +11 -0
  463. data/lib/fern_gusto/types/payroll_submission_blockers_type_item_unblock_options_item.rb +72 -0
  464. data/lib/fern_gusto/types/payroll_totals_type.rb +199 -0
  465. data/lib/fern_gusto/types/payroll_withholding_pay_period_type.rb +17 -0
  466. data/lib/fern_gusto/types/recovery_case.rb +131 -0
  467. data/lib/fern_gusto/types/recovery_case_status.rb +14 -0
  468. data/lib/fern_gusto/types/rehire.rb +116 -0
  469. data/lib/fern_gusto/types/rehire_body.rb +91 -0
  470. data/lib/fern_gusto/types/rehire_body_employment_status.rb +16 -0
  471. data/lib/fern_gusto/types/rehire_employment_status.rb +16 -0
  472. data/lib/fern_gusto/types/report.rb +72 -0
  473. data/lib/fern_gusto/types/report_template.rb +77 -0
  474. data/lib/fern_gusto/types/supported_benefit.rb +122 -0
  475. data/lib/fern_gusto/types/tax_requirement.rb +111 -0
  476. data/lib/fern_gusto/types/tax_requirement_applicable_if_item.rb +69 -0
  477. data/lib/fern_gusto/types/tax_requirement_applicable_if_item_value.rb +72 -0
  478. data/lib/fern_gusto/types/tax_requirement_effective_from.rb +5 -0
  479. data/lib/fern_gusto/types/tax_requirement_metadata.rb +182 -0
  480. data/lib/fern_gusto/types/tax_requirement_metadata_options_item.rb +70 -0
  481. data/lib/fern_gusto/types/tax_requirement_metadata_rate_type.rb +13 -0
  482. data/lib/fern_gusto/types/tax_requirement_metadata_type.rb +31 -0
  483. data/lib/fern_gusto/types/tax_requirement_metadata_validation.rb +81 -0
  484. data/lib/fern_gusto/types/tax_requirement_metadata_validation_type.rb +11 -0
  485. data/lib/fern_gusto/types/tax_requirement_set.rb +90 -0
  486. data/lib/fern_gusto/types/tax_requirements_state.rb +75 -0
  487. data/lib/fern_gusto/types/time_off_activity.rb +107 -0
  488. data/lib/fern_gusto/types/time_off_activity_time_off_type.rb +11 -0
  489. data/lib/fern_gusto/types/time_off_policy.rb +183 -0
  490. data/lib/fern_gusto/types/time_off_policy_employees_item.rb +53 -0
  491. data/lib/fern_gusto/types/time_off_policy_policy_type.rb +11 -0
  492. data/lib/fern_gusto/types/unprocessable_entity_error_body.rb +59 -0
  493. data/lib/fern_gusto/types/unprocessable_entity_error_body_errors.rb +57 -0
  494. data/lib/fern_gusto/types/unprocessable_entity_error_body_errors_base_item.rb +72 -0
  495. data/lib/fern_gusto/types/unprocessable_entity_error_body_item.rb +65 -0
  496. data/lib/fern_gusto/types/unprocessable_entity_error_body_item_questions_item.rb +69 -0
  497. data/lib/fern_gusto/types/unprocessable_entity_error_body_item_questions_item_answers_item.rb +72 -0
  498. data/lib/fern_gusto/types/unprocessable_entity_error_object.rb +63 -0
  499. data/lib/fern_gusto/types/versionable.rb +57 -0
  500. data/lib/fern_gusto/types/versionable_required.rb +55 -0
  501. data/lib/fern_gusto/types/wire_in_request.rb +170 -0
  502. data/lib/fern_gusto/types/wire_in_request_status.rb +14 -0
  503. data/lib/fern_gusto/webhooks/client.rb +627 -0
  504. data/lib/fern_gusto/webhooks/types/webhook_subscription.rb +82 -0
  505. data/lib/fern_gusto/webhooks/types/webhook_subscription_status.rb +14 -0
  506. data/lib/fern_gusto/webhooks/types/webhook_subscription_subscription_types_item.rb +25 -0
  507. data/lib/fern_gusto/webhooks/types/webhooks_create_request_subscription_types_item.rb +25 -0
  508. data/lib/fern_gusto/webhooks/types/webhooks_update_request_subscription_types_item.rb +25 -0
  509. data/lib/fern_gusto/wire_in_requests/client.rb +273 -0
  510. data/lib/fern_gusto.rb +310 -0
  511. data/lib/gemconfig.rb +13 -0
  512. data/lib/gusto_legacy.rb +19 -0
  513. data/lib/requests.rb +206 -0
  514. data/lib/types_export.rb +461 -0
  515. metadata +671 -0
@@ -0,0 +1,101 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module EmployeeEmployments
7
+ # The representation of an unprocessed termination pay period.
8
+ class UnprocessedTerminationPayPeriod
9
+ # @return [String] The start date of the pay period.
10
+ attr_reader :start_date
11
+ # @return [String] The end date of the pay period.
12
+ attr_reader :end_date
13
+ # @return [String] The check date of the pay period.
14
+ attr_reader :check_date
15
+ # @return [String] The debit date of the pay period.
16
+ attr_reader :debit_date
17
+ # @return [String] The full name of the employee.
18
+ attr_reader :employee_name
19
+ # @return [String] A unique identifier of the employee.
20
+ attr_reader :employee_uuid
21
+ # @return [String] A unique identifier of the pay schedule to which the pay period belongs.
22
+ attr_reader :pay_schedule_uuid
23
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
24
+ attr_reader :additional_properties
25
+ # @return [Object]
26
+ attr_reader :_field_set
27
+ protected :_field_set
28
+
29
+ OMIT = Object.new
30
+
31
+ # @param start_date [String] The start date of the pay period.
32
+ # @param end_date [String] The end date of the pay period.
33
+ # @param check_date [String] The check date of the pay period.
34
+ # @param debit_date [String] The debit date of the pay period.
35
+ # @param employee_name [String] The full name of the employee.
36
+ # @param employee_uuid [String] A unique identifier of the employee.
37
+ # @param pay_schedule_uuid [String] A unique identifier of the pay schedule to which the pay period belongs.
38
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
39
+ # @return [Gusto::EmployeeEmployments::UnprocessedTerminationPayPeriod]
40
+ def initialize(start_date: OMIT, end_date: OMIT, check_date: OMIT, debit_date: OMIT, employee_name: OMIT, employee_uuid: OMIT, pay_schedule_uuid: OMIT, additional_properties: nil)
41
+ @start_date = start_date if start_date != OMIT
42
+ @end_date = end_date if end_date != OMIT
43
+ @check_date = check_date if check_date != OMIT
44
+ @debit_date = debit_date if debit_date != OMIT
45
+ @employee_name = employee_name if employee_name != OMIT
46
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
47
+ @pay_schedule_uuid = pay_schedule_uuid if pay_schedule_uuid != OMIT
48
+ @additional_properties = additional_properties
49
+ @_field_set = { "start_date": start_date, "end_date": end_date, "check_date": check_date, "debit_date": debit_date, "employee_name": employee_name, "employee_uuid": employee_uuid, "pay_schedule_uuid": pay_schedule_uuid }.reject do | _k, v |
50
+ v == OMIT
51
+ end
52
+ end
53
+ # Deserialize a JSON object to an instance of UnprocessedTerminationPayPeriod
54
+ #
55
+ # @param json_object [String]
56
+ # @return [Gusto::EmployeeEmployments::UnprocessedTerminationPayPeriod]
57
+ def self.from_json(json_object:)
58
+ struct = JSON.parse(json_object, object_class: OpenStruct)
59
+ parsed_json = JSON.parse(json_object)
60
+ start_date = parsed_json["start_date"]
61
+ end_date = parsed_json["end_date"]
62
+ check_date = parsed_json["check_date"]
63
+ debit_date = parsed_json["debit_date"]
64
+ employee_name = parsed_json["employee_name"]
65
+ employee_uuid = parsed_json["employee_uuid"]
66
+ pay_schedule_uuid = parsed_json["pay_schedule_uuid"]
67
+ new(
68
+ start_date: start_date,
69
+ end_date: end_date,
70
+ check_date: check_date,
71
+ debit_date: debit_date,
72
+ employee_name: employee_name,
73
+ employee_uuid: employee_uuid,
74
+ pay_schedule_uuid: pay_schedule_uuid,
75
+ additional_properties: struct
76
+ )
77
+ end
78
+ # Serialize an instance of UnprocessedTerminationPayPeriod to a JSON object
79
+ #
80
+ # @return [String]
81
+ def to_json
82
+ @_field_set&.to_json
83
+ end
84
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
85
+ # hash and check each fields type against the current object's property
86
+ # definitions.
87
+ #
88
+ # @param obj [Object]
89
+ # @return [Void]
90
+ def self.validate_raw(obj:)
91
+ obj.start_date&.is_a?(String) != false || raise("Passed value for field obj.start_date is not the expected type, validation failed.")
92
+ obj.end_date&.is_a?(String) != false || raise("Passed value for field obj.end_date is not the expected type, validation failed.")
93
+ obj.check_date&.is_a?(String) != false || raise("Passed value for field obj.check_date is not the expected type, validation failed.")
94
+ obj.debit_date&.is_a?(String) != false || raise("Passed value for field obj.debit_date is not the expected type, validation failed.")
95
+ obj.employee_name&.is_a?(String) != false || raise("Passed value for field obj.employee_name is not the expected type, validation failed.")
96
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
97
+ obj.pay_schedule_uuid&.is_a?(String) != false || raise("Passed value for field obj.pay_schedule_uuid is not the expected type, validation failed.")
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_bank_account_account_type"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module EmployeePaymentMethod
8
+ class EmployeeBankAccount
9
+ # @return [String] UUID of the bank account
10
+ attr_reader :uuid
11
+ # @return [String] UUID of the employee
12
+ attr_reader :employee_uuid
13
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccountAccountType] Bank account type
14
+ attr_reader :account_type
15
+ # @return [String] Name for the bank account
16
+ attr_reader :name
17
+ # @return [String] The bank account's routing number
18
+ attr_reader :routing_number
19
+ # @return [String] Masked bank account number
20
+ attr_reader :hidden_account_number
21
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
22
+ attr_reader :additional_properties
23
+ # @return [Object]
24
+ attr_reader :_field_set
25
+ protected :_field_set
26
+
27
+ OMIT = Object.new
28
+
29
+ # @param uuid [String] UUID of the bank account
30
+ # @param employee_uuid [String] UUID of the employee
31
+ # @param account_type [Gusto::EmployeePaymentMethod::EmployeeBankAccountAccountType] Bank account type
32
+ # @param name [String] Name for the bank account
33
+ # @param routing_number [String] The bank account's routing number
34
+ # @param hidden_account_number [String] Masked bank account number
35
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
36
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccount]
37
+ def initialize(uuid:, employee_uuid: OMIT, account_type: OMIT, name: OMIT, routing_number: OMIT, hidden_account_number: OMIT, additional_properties: nil)
38
+ @uuid = uuid
39
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
40
+ @account_type = account_type if account_type != OMIT
41
+ @name = name if name != OMIT
42
+ @routing_number = routing_number if routing_number != OMIT
43
+ @hidden_account_number = hidden_account_number if hidden_account_number != OMIT
44
+ @additional_properties = additional_properties
45
+ @_field_set = { "uuid": uuid, "employee_uuid": employee_uuid, "account_type": account_type, "name": name, "routing_number": routing_number, "hidden_account_number": hidden_account_number }.reject do | _k, v |
46
+ v == OMIT
47
+ end
48
+ end
49
+ # Deserialize a JSON object to an instance of EmployeeBankAccount
50
+ #
51
+ # @param json_object [String]
52
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccount]
53
+ def self.from_json(json_object:)
54
+ struct = JSON.parse(json_object, object_class: OpenStruct)
55
+ parsed_json = JSON.parse(json_object)
56
+ uuid = parsed_json["uuid"]
57
+ employee_uuid = parsed_json["employee_uuid"]
58
+ account_type = parsed_json["account_type"]
59
+ name = parsed_json["name"]
60
+ routing_number = parsed_json["routing_number"]
61
+ hidden_account_number = parsed_json["hidden_account_number"]
62
+ new(
63
+ uuid: uuid,
64
+ employee_uuid: employee_uuid,
65
+ account_type: account_type,
66
+ name: name,
67
+ routing_number: routing_number,
68
+ hidden_account_number: hidden_account_number,
69
+ additional_properties: struct
70
+ )
71
+ end
72
+ # Serialize an instance of EmployeeBankAccount to a JSON object
73
+ #
74
+ # @return [String]
75
+ def to_json
76
+ @_field_set&.to_json
77
+ end
78
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
79
+ # hash and check each fields type against the current object's property
80
+ # definitions.
81
+ #
82
+ # @param obj [Object]
83
+ # @return [Void]
84
+ def self.validate_raw(obj:)
85
+ obj.uuid.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
86
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
87
+ obj.account_type&.is_a?(Gusto::EmployeePaymentMethod::EmployeeBankAccountAccountType) != false || raise("Passed value for field obj.account_type is not the expected type, validation failed.")
88
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
89
+ obj.routing_number&.is_a?(String) != false || raise("Passed value for field obj.routing_number is not the expected type, validation failed.")
90
+ obj.hidden_account_number&.is_a?(String) != false || raise("Passed value for field obj.hidden_account_number is not the expected type, validation failed.")
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module EmployeePaymentMethod
5
+ # Bank account type
6
+ class EmployeeBankAccountAccountType
7
+
8
+ CHECKING = "Checking"
9
+ SAVINGS = "Savings"
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_payment_method_type"
3
+ require_relative "employee_payment_method_split_by"
4
+ require_relative "../../types/payment_method_bank_account"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Gusto
9
+ module EmployeePaymentMethod
10
+
11
+ class EmployeePaymentMethodInfo
12
+ # @return [String] The current version of the object. See the [versioning
13
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
14
+ # on how to use this field.
15
+ attr_reader :version
16
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodType] The payment method type. If type is Check, then split_by and splits do not need
17
+ # to be populated. If type is Direct Deposit, split_by and splits are required.
18
+ attr_reader :type
19
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodSplitBy] Describes how the payment will be split. If split_by is Percentage, then the
20
+ # split amounts must add up to exactly 100. If split_by is Amount, then the last
21
+ # split amount must be nil to capture the remainder.
22
+ attr_reader :split_by
23
+ # @return [Array<Gusto::PaymentMethodBankAccount>]
24
+ attr_reader :splits
25
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
26
+ attr_reader :additional_properties
27
+ # @return [Object]
28
+ attr_reader :_field_set
29
+ protected :_field_set
30
+
31
+ OMIT = Object.new
32
+
33
+ # @param version [String] The current version of the object. See the [versioning
34
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
35
+ # on how to use this field.
36
+ # @param type [Gusto::EmployeePaymentMethod::EmployeePaymentMethodType] The payment method type. If type is Check, then split_by and splits do not need
37
+ # to be populated. If type is Direct Deposit, split_by and splits are required.
38
+ # @param split_by [Gusto::EmployeePaymentMethod::EmployeePaymentMethodSplitBy] Describes how the payment will be split. If split_by is Percentage, then the
39
+ # split amounts must add up to exactly 100. If split_by is Amount, then the last
40
+ # split amount must be nil to capture the remainder.
41
+ # @param splits [Array<Gusto::PaymentMethodBankAccount>]
42
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
43
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo]
44
+ def initialize(version: OMIT, type: OMIT, split_by: OMIT, splits: OMIT, additional_properties: nil)
45
+ @version = version if version != OMIT
46
+ @type = type if type != OMIT
47
+ @split_by = split_by if split_by != OMIT
48
+ @splits = splits if splits != OMIT
49
+ @additional_properties = additional_properties
50
+ @_field_set = { "version": version, "type": type, "split_by": split_by, "splits": splits }.reject do | _k, v |
51
+ v == OMIT
52
+ end
53
+ end
54
+ # Deserialize a JSON object to an instance of EmployeePaymentMethodInfo
55
+ #
56
+ # @param json_object [String]
57
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo]
58
+ def self.from_json(json_object:)
59
+ struct = JSON.parse(json_object, object_class: OpenStruct)
60
+ parsed_json = JSON.parse(json_object)
61
+ version = parsed_json["version"]
62
+ type = parsed_json["type"]
63
+ split_by = parsed_json["split_by"]
64
+ splits = parsed_json["splits"]&.map do | item |
65
+ item = item.to_json
66
+ Gusto::PaymentMethodBankAccount.from_json(json_object: item)
67
+ end
68
+ new(
69
+ version: version,
70
+ type: type,
71
+ split_by: split_by,
72
+ splits: splits,
73
+ additional_properties: struct
74
+ )
75
+ end
76
+ # Serialize an instance of EmployeePaymentMethodInfo to a JSON object
77
+ #
78
+ # @return [String]
79
+ def to_json
80
+ @_field_set&.to_json
81
+ end
82
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
83
+ # hash and check each fields type against the current object's property
84
+ # definitions.
85
+ #
86
+ # @param obj [Object]
87
+ # @return [Void]
88
+ def self.validate_raw(obj:)
89
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
90
+ obj.type&.is_a?(Gusto::EmployeePaymentMethod::EmployeePaymentMethodType) != false || raise("Passed value for field obj.type is not the expected type, validation failed.")
91
+ obj.split_by&.is_a?(Gusto::EmployeePaymentMethod::EmployeePaymentMethodSplitBy) != false || raise("Passed value for field obj.split_by is not the expected type, validation failed.")
92
+ obj.splits&.is_a?(Array) != false || raise("Passed value for field obj.splits is not the expected type, validation failed.")
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module EmployeePaymentMethod
5
+ # Describes how the payment will be split. If split_by is Percentage, then the
6
+ # split amounts must add up to exactly 100. If split_by is Amount, then the last
7
+ # split amount must be nil to capture the remainder.
8
+ class EmployeePaymentMethodSplitBy
9
+
10
+ AMOUNT = "Amount"
11
+ PERCENTAGE = "Percentage"
12
+
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module EmployeePaymentMethod
5
+ # The payment method type. If type is Check, then split_by and splits do not need
6
+ # to be populated. If type is Direct Deposit, split_by and splits are required.
7
+ class EmployeePaymentMethodType
8
+
9
+ DIRECT_DEPOSIT = "Direct Deposit"
10
+ CHECK = "Check"
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,144 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_federal_tax_w4data_type"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module EmployeeTaxSetup
8
+ class EmployeeFederalTax
9
+ # @return [String] The current version of the object. See the [versioning
10
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
11
+ # on how to use this field.
12
+ attr_reader :version
13
+ # @return [String] It determines which tax return form an individual will use and is an important
14
+ # factor in computing taxable income. One of:
15
+ # - Single
16
+ # - Married
17
+ # - Head of Household
18
+ # - Exempt from withholding
19
+ # - Married, but withhold as Single (does not apply to rev_2020_w4 form)
20
+ attr_reader :filing_status
21
+ # @return [String] An employee can request an additional amount to be withheld from each paycheck.
22
+ attr_reader :extra_withholding
23
+ # @return [Boolean] If there are only two jobs (i.e., you and your spouse each have a job, or you
24
+ # have two), you can set it to true.
25
+ attr_reader :two_jobs
26
+ # @return [String] A dependent is a person other than the taxpayer or spouse who entitles the
27
+ # taxpayer to claim a dependency exemption.
28
+ attr_reader :dependents_amount
29
+ # @return [String] Other income amount.
30
+ attr_reader :other_income
31
+ # @return [String]
32
+ attr_reader :deductions
33
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTaxW4DataType] The version of w4 form.
34
+ attr_reader :w4data_type
35
+ # @return [Float] _does not apply to rev_2020_w4 form_
36
+ # An exemption from paying a certain amount of income tax.
37
+ attr_reader :federal_withholding_allowance
38
+ # @return [Boolean] _does not apply to rev_2020_w4 form_
39
+ attr_reader :additional_withholding
40
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
41
+ attr_reader :additional_properties
42
+ # @return [Object]
43
+ attr_reader :_field_set
44
+ protected :_field_set
45
+
46
+ OMIT = Object.new
47
+
48
+ # @param version [String] The current version of the object. See the [versioning
49
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
50
+ # on how to use this field.
51
+ # @param filing_status [String] It determines which tax return form an individual will use and is an important
52
+ # factor in computing taxable income. One of:
53
+ # - Single
54
+ # - Married
55
+ # - Head of Household
56
+ # - Exempt from withholding
57
+ # - Married, but withhold as Single (does not apply to rev_2020_w4 form)
58
+ # @param extra_withholding [String] An employee can request an additional amount to be withheld from each paycheck.
59
+ # @param two_jobs [Boolean] If there are only two jobs (i.e., you and your spouse each have a job, or you
60
+ # have two), you can set it to true.
61
+ # @param dependents_amount [String] A dependent is a person other than the taxpayer or spouse who entitles the
62
+ # taxpayer to claim a dependency exemption.
63
+ # @param other_income [String] Other income amount.
64
+ # @param deductions [String]
65
+ # @param w4data_type [Gusto::EmployeeTaxSetup::EmployeeFederalTaxW4DataType] The version of w4 form.
66
+ # @param federal_withholding_allowance [Float] _does not apply to rev_2020_w4 form_
67
+ # An exemption from paying a certain amount of income tax.
68
+ # @param additional_withholding [Boolean] _does not apply to rev_2020_w4 form_
69
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
70
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTax]
71
+ def initialize(version: OMIT, filing_status: OMIT, extra_withholding: OMIT, two_jobs: OMIT, dependents_amount: OMIT, other_income: OMIT, deductions: OMIT, w4data_type: OMIT, federal_withholding_allowance: OMIT, additional_withholding: OMIT, additional_properties: nil)
72
+ @version = version if version != OMIT
73
+ @filing_status = filing_status if filing_status != OMIT
74
+ @extra_withholding = extra_withholding if extra_withholding != OMIT
75
+ @two_jobs = two_jobs if two_jobs != OMIT
76
+ @dependents_amount = dependents_amount if dependents_amount != OMIT
77
+ @other_income = other_income if other_income != OMIT
78
+ @deductions = deductions if deductions != OMIT
79
+ @w4data_type = w4data_type if w4data_type != OMIT
80
+ @federal_withholding_allowance = federal_withholding_allowance if federal_withholding_allowance != OMIT
81
+ @additional_withholding = additional_withholding if additional_withholding != OMIT
82
+ @additional_properties = additional_properties
83
+ @_field_set = { "version": version, "filing_status": filing_status, "extra_withholding": extra_withholding, "two_jobs": two_jobs, "dependents_amount": dependents_amount, "other_income": other_income, "deductions": deductions, "w4_data_type": w4data_type, "federal_withholding_allowance": federal_withholding_allowance, "additional_withholding": additional_withholding }.reject do | _k, v |
84
+ v == OMIT
85
+ end
86
+ end
87
+ # Deserialize a JSON object to an instance of EmployeeFederalTax
88
+ #
89
+ # @param json_object [String]
90
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTax]
91
+ def self.from_json(json_object:)
92
+ struct = JSON.parse(json_object, object_class: OpenStruct)
93
+ parsed_json = JSON.parse(json_object)
94
+ version = parsed_json["version"]
95
+ filing_status = parsed_json["filing_status"]
96
+ extra_withholding = parsed_json["extra_withholding"]
97
+ two_jobs = parsed_json["two_jobs"]
98
+ dependents_amount = parsed_json["dependents_amount"]
99
+ other_income = parsed_json["other_income"]
100
+ deductions = parsed_json["deductions"]
101
+ w4data_type = parsed_json["w4_data_type"]
102
+ federal_withholding_allowance = parsed_json["federal_withholding_allowance"]
103
+ additional_withholding = parsed_json["additional_withholding"]
104
+ new(
105
+ version: version,
106
+ filing_status: filing_status,
107
+ extra_withholding: extra_withholding,
108
+ two_jobs: two_jobs,
109
+ dependents_amount: dependents_amount,
110
+ other_income: other_income,
111
+ deductions: deductions,
112
+ w4data_type: w4data_type,
113
+ federal_withholding_allowance: federal_withholding_allowance,
114
+ additional_withholding: additional_withholding,
115
+ additional_properties: struct
116
+ )
117
+ end
118
+ # Serialize an instance of EmployeeFederalTax to a JSON object
119
+ #
120
+ # @return [String]
121
+ def to_json
122
+ @_field_set&.to_json
123
+ end
124
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
125
+ # hash and check each fields type against the current object's property
126
+ # definitions.
127
+ #
128
+ # @param obj [Object]
129
+ # @return [Void]
130
+ def self.validate_raw(obj:)
131
+ obj.version&.is_a?(String) != false || raise("Passed value for field obj.version is not the expected type, validation failed.")
132
+ obj.filing_status&.is_a?(String) != false || raise("Passed value for field obj.filing_status is not the expected type, validation failed.")
133
+ obj.extra_withholding&.is_a?(String) != false || raise("Passed value for field obj.extra_withholding is not the expected type, validation failed.")
134
+ obj.two_jobs&.is_a?(Boolean) != false || raise("Passed value for field obj.two_jobs is not the expected type, validation failed.")
135
+ obj.dependents_amount&.is_a?(String) != false || raise("Passed value for field obj.dependents_amount is not the expected type, validation failed.")
136
+ obj.other_income&.is_a?(String) != false || raise("Passed value for field obj.other_income is not the expected type, validation failed.")
137
+ obj.deductions&.is_a?(String) != false || raise("Passed value for field obj.deductions is not the expected type, validation failed.")
138
+ obj.w4data_type&.is_a?(Gusto::EmployeeTaxSetup::EmployeeFederalTaxW4DataType) != false || raise("Passed value for field obj.w4data_type is not the expected type, validation failed.")
139
+ obj.federal_withholding_allowance&.is_a?(Float) != false || raise("Passed value for field obj.federal_withholding_allowance is not the expected type, validation failed.")
140
+ obj.additional_withholding&.is_a?(Boolean) != false || raise("Passed value for field obj.additional_withholding is not the expected type, validation failed.")
141
+ end
142
+ end
143
+ end
144
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module EmployeeTaxSetup
5
+ # The version of w4 form.
6
+ class EmployeeFederalTaxW4DataType
7
+
8
+ PRE2020W4 = "pre_2020_w4"
9
+ REV2020W4 = "rev_2020_w4"
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,90 @@
1
+ # frozen_string_literal: true
2
+ require_relative "employee_state_tax_question"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module EmployeeTaxSetup
8
+ class EmployeeStateTax
9
+ # @return [String] The employee's uuid
10
+ attr_reader :employee_uuid
11
+ # @return [String] Two letter US state abbreviation
12
+ attr_reader :state
13
+ # @return [Boolean]
14
+ attr_reader :file_new_hire_report
15
+ # @return [Boolean]
16
+ attr_reader :is_work_state
17
+ # @return [Array<Gusto::EmployeeTaxSetup::EmployeeStateTaxQuestion>]
18
+ attr_reader :questions
19
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
20
+ attr_reader :additional_properties
21
+ # @return [Object]
22
+ attr_reader :_field_set
23
+ protected :_field_set
24
+
25
+ OMIT = Object.new
26
+
27
+ # @param employee_uuid [String] The employee's uuid
28
+ # @param state [String] Two letter US state abbreviation
29
+ # @param file_new_hire_report [Boolean]
30
+ # @param is_work_state [Boolean]
31
+ # @param questions [Array<Gusto::EmployeeTaxSetup::EmployeeStateTaxQuestion>]
32
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
33
+ # @return [Gusto::EmployeeTaxSetup::EmployeeStateTax]
34
+ def initialize(employee_uuid:, state:, file_new_hire_report: OMIT, is_work_state: OMIT, questions:, additional_properties: nil)
35
+ @employee_uuid = employee_uuid
36
+ @state = state
37
+ @file_new_hire_report = file_new_hire_report if file_new_hire_report != OMIT
38
+ @is_work_state = is_work_state if is_work_state != OMIT
39
+ @questions = questions
40
+ @additional_properties = additional_properties
41
+ @_field_set = { "employee_uuid": employee_uuid, "state": state, "file_new_hire_report": file_new_hire_report, "is_work_state": is_work_state, "questions": questions }.reject do | _k, v |
42
+ v == OMIT
43
+ end
44
+ end
45
+ # Deserialize a JSON object to an instance of EmployeeStateTax
46
+ #
47
+ # @param json_object [String]
48
+ # @return [Gusto::EmployeeTaxSetup::EmployeeStateTax]
49
+ def self.from_json(json_object:)
50
+ struct = JSON.parse(json_object, object_class: OpenStruct)
51
+ parsed_json = JSON.parse(json_object)
52
+ employee_uuid = parsed_json["employee_uuid"]
53
+ state = parsed_json["state"]
54
+ file_new_hire_report = parsed_json["file_new_hire_report"]
55
+ is_work_state = parsed_json["is_work_state"]
56
+ questions = parsed_json["questions"]&.map do | item |
57
+ item = item.to_json
58
+ Gusto::EmployeeTaxSetup::EmployeeStateTaxQuestion.from_json(json_object: item)
59
+ end
60
+ new(
61
+ employee_uuid: employee_uuid,
62
+ state: state,
63
+ file_new_hire_report: file_new_hire_report,
64
+ is_work_state: is_work_state,
65
+ questions: questions,
66
+ additional_properties: struct
67
+ )
68
+ end
69
+ # Serialize an instance of EmployeeStateTax to a JSON object
70
+ #
71
+ # @return [String]
72
+ def to_json
73
+ @_field_set&.to_json
74
+ end
75
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
76
+ # hash and check each fields type against the current object's property
77
+ # definitions.
78
+ #
79
+ # @param obj [Object]
80
+ # @return [Void]
81
+ def self.validate_raw(obj:)
82
+ obj.employee_uuid.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
83
+ obj.state.is_a?(String) != false || raise("Passed value for field obj.state is not the expected type, validation failed.")
84
+ obj.file_new_hire_report&.is_a?(Boolean) != false || raise("Passed value for field obj.file_new_hire_report is not the expected type, validation failed.")
85
+ obj.is_work_state&.is_a?(Boolean) != false || raise("Passed value for field obj.is_work_state is not the expected type, validation failed.")
86
+ obj.questions.is_a?(Array) != false || raise("Passed value for field obj.questions is not the expected type, validation failed.")
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module EmployeeTaxSetup
7
+ class EmployeeStateTaxAnswer
8
+ # @return [String] The answer to the corresponding question - this may be a string, number,
9
+ # boolean, or null.
10
+ attr_reader :value
11
+ # @return [String] The effective date of the answer - currently always “2010-01-01”.
12
+ attr_reader :valid_from
13
+ # @return [Object]
14
+ attr_reader :valid_up_to
15
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
16
+ attr_reader :additional_properties
17
+ # @return [Object]
18
+ attr_reader :_field_set
19
+ protected :_field_set
20
+
21
+ OMIT = Object.new
22
+
23
+ # @param value [String] The answer to the corresponding question - this may be a string, number,
24
+ # boolean, or null.
25
+ # @param valid_from [String] The effective date of the answer - currently always “2010-01-01”.
26
+ # @param valid_up_to [Object]
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [Gusto::EmployeeTaxSetup::EmployeeStateTaxAnswer]
29
+ def initialize(value: OMIT, valid_from: OMIT, valid_up_to: OMIT, additional_properties: nil)
30
+ @value = value if value != OMIT
31
+ @valid_from = valid_from if valid_from != OMIT
32
+ @valid_up_to = valid_up_to if valid_up_to != OMIT
33
+ @additional_properties = additional_properties
34
+ @_field_set = { "value": value, "valid_from": valid_from, "valid_up_to": valid_up_to }.reject do | _k, v |
35
+ v == OMIT
36
+ end
37
+ end
38
+ # Deserialize a JSON object to an instance of EmployeeStateTaxAnswer
39
+ #
40
+ # @param json_object [String]
41
+ # @return [Gusto::EmployeeTaxSetup::EmployeeStateTaxAnswer]
42
+ def self.from_json(json_object:)
43
+ struct = JSON.parse(json_object, object_class: OpenStruct)
44
+ parsed_json = JSON.parse(json_object)
45
+ value = parsed_json["value"]
46
+ valid_from = parsed_json["valid_from"]
47
+ valid_up_to = parsed_json["valid_up_to"]
48
+ new(
49
+ value: value,
50
+ valid_from: valid_from,
51
+ valid_up_to: valid_up_to,
52
+ additional_properties: struct
53
+ )
54
+ end
55
+ # Serialize an instance of EmployeeStateTaxAnswer to a JSON object
56
+ #
57
+ # @return [String]
58
+ def to_json
59
+ @_field_set&.to_json
60
+ end
61
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
62
+ # hash and check each fields type against the current object's property
63
+ # definitions.
64
+ #
65
+ # @param obj [Object]
66
+ # @return [Void]
67
+ def self.validate_raw(obj:)
68
+ obj.value&.is_a?(String) != false || raise("Passed value for field obj.value is not the expected type, validation failed.")
69
+ obj.valid_from&.is_a?(String) != false || raise("Passed value for field obj.valid_from is not the expected type, validation failed.")
70
+ obj.valid_up_to&.is_a?(Object) != false || raise("Passed value for field obj.valid_up_to is not the expected type, validation failed.")
71
+ end
72
+ end
73
+ end
74
+ end