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,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module PaymentMethod
6
+ # Describes how the payment will be split. If split_by is Percentage, then the
7
+ # split amounts must add up to exactly 100. If split_by is Amount, then the last
8
+ # split amount must be nil to capture the remainder.
9
+ class PaymentMethodUpdateRequestSplitBy
10
+
11
+ AMOUNT = "Amount"
12
+ PERCENTAGE = "Percentage"
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,83 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Employees
7
+ module PaymentMethod
8
+ class PaymentMethodUpdateRequestSplitsItem
9
+ # @return [String] The bank account ID
10
+ attr_reader :uuid
11
+ # @return [String] The bank account name
12
+ attr_reader :name
13
+ # @return [Integer] The order of priority for each payment split, with priority 1 being the first
14
+ # bank account paid. Priority must be unique and sequential.
15
+ attr_reader :priority
16
+ # @return [Integer] The cents amount allocated for each payment split
17
+ attr_reader :split_amount
18
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
19
+ attr_reader :additional_properties
20
+ # @return [Object]
21
+ attr_reader :_field_set
22
+ protected :_field_set
23
+
24
+ OMIT = Object.new
25
+
26
+ # @param uuid [String] The bank account ID
27
+ # @param name [String] The bank account name
28
+ # @param priority [Integer] The order of priority for each payment split, with priority 1 being the first
29
+ # bank account paid. Priority must be unique and sequential.
30
+ # @param split_amount [Integer] The cents amount allocated for each payment split
31
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
32
+ # @return [Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestSplitsItem]
33
+ def initialize(uuid: OMIT, name: OMIT, priority: OMIT, split_amount: OMIT, additional_properties: nil)
34
+ @uuid = uuid if uuid != OMIT
35
+ @name = name if name != OMIT
36
+ @priority = priority if priority != OMIT
37
+ @split_amount = split_amount if split_amount != OMIT
38
+ @additional_properties = additional_properties
39
+ @_field_set = { "uuid": uuid, "name": name, "priority": priority, "split_amount": split_amount }.reject do | _k, v |
40
+ v == OMIT
41
+ end
42
+ end
43
+ # Deserialize a JSON object to an instance of PaymentMethodUpdateRequestSplitsItem
44
+ #
45
+ # @param json_object [String]
46
+ # @return [Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestSplitsItem]
47
+ def self.from_json(json_object:)
48
+ struct = JSON.parse(json_object, object_class: OpenStruct)
49
+ parsed_json = JSON.parse(json_object)
50
+ uuid = parsed_json["uuid"]
51
+ name = parsed_json["name"]
52
+ priority = parsed_json["priority"]
53
+ split_amount = parsed_json["split_amount"]
54
+ new(
55
+ uuid: uuid,
56
+ name: name,
57
+ priority: priority,
58
+ split_amount: split_amount,
59
+ additional_properties: struct
60
+ )
61
+ end
62
+ # Serialize an instance of PaymentMethodUpdateRequestSplitsItem to a JSON object
63
+ #
64
+ # @return [String]
65
+ def to_json
66
+ @_field_set&.to_json
67
+ end
68
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
69
+ # hash and check each fields type against the current object's property
70
+ # definitions.
71
+ #
72
+ # @param obj [Object]
73
+ # @return [Void]
74
+ def self.validate_raw(obj:)
75
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
76
+ obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
77
+ obj.priority&.is_a?(Integer) != false || raise("Passed value for field obj.priority is not the expected type, validation failed.")
78
+ obj.split_amount&.is_a?(Integer) != false || raise("Passed value for field obj.split_amount is not the expected type, validation failed.")
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module PaymentMethod
6
+ # The payment method type. If type is Check, then split_by and splits do not need
7
+ # to be populated. If type is Direct Deposit, split_by and splits are required.
8
+ class PaymentMethodUpdateRequestType
9
+
10
+ DIRECT_DEPOSIT = "Direct Deposit"
11
+ CHECK = "Check"
12
+
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,422 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../employee_tax_setup/types/employee_federal_tax"
4
+ require_relative "../../employee_tax_setup/types/employee_state_tax"
5
+ require "json"
6
+ require_relative "types/tax_setup_update_state_taxes_request_states_item"
7
+ require "async"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require_relative "../../../requests"
12
+
13
+ module Gusto
14
+ module Employees
15
+ class TaxSetupClient
16
+ # @return [Gusto::RequestClient]
17
+ attr_reader :request_client
18
+
19
+
20
+ # @param request_client [Gusto::RequestClient]
21
+ # @return [Gusto::Employees::TaxSetupClient]
22
+ def initialize(request_client:)
23
+ @request_client = request_client
24
+ end
25
+ # Get attributes relevant for an employee's federal taxes.
26
+ # scope: `employee_federal_taxes:read`
27
+ #
28
+ # @param employee_uuid [String] The UUID of the employee
29
+ # @param request_options [Gusto::RequestOptions]
30
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTax]
31
+ # @example
32
+ # api = Gusto::Client.new(
33
+ # base_url: "https://api.example.com",
34
+ # environment: Gusto::Environment::DEMO,
35
+ # token: "YOUR_AUTH_TOKEN"
36
+ # )
37
+ # api.employees.tax_setup.get_federal_taxes(employee_uuid: "employee_uuid")
38
+ def get_federal_taxes(employee_uuid:, request_options: nil)
39
+ response = @request_client.conn.get do | req |
40
+ unless request_options&.timeout_in_seconds.nil?
41
+ req.options.timeout = request_options.timeout_in_seconds
42
+ end
43
+ unless request_options&.token.nil?
44
+ req.headers["Authorization"] = request_options.token
45
+ end
46
+ unless request_options&.gusto_api_version.nil?
47
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
48
+ end
49
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
50
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
51
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
52
+ end
53
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
54
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
55
+ end
56
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/federal_taxes"
57
+ end
58
+ Gusto::EmployeeTaxSetup::EmployeeFederalTax.from_json(json_object: response.body)
59
+ end
60
+ # Update attributes relevant for an employee's federal taxes.
61
+ # scope: `employee_federal_taxes:write`
62
+ #
63
+ # @param employee_uuid [String] The UUID of the employee
64
+ # @param version [String] The current version of the object. See the [versioning
65
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
66
+ # information on how to use this field.
67
+ # @param filing_status [String]
68
+ # @param extra_withholding [String]
69
+ # @param two_jobs [Boolean]
70
+ # @param dependents_amount [String]
71
+ # @param other_income [String]
72
+ # @param deductions [String]
73
+ # @param w4data_type [String]
74
+ # @param request_options [Gusto::RequestOptions]
75
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTax]
76
+ # @example
77
+ # api = Gusto::Client.new(
78
+ # base_url: "https://api.example.com",
79
+ # environment: Gusto::Environment::DEMO,
80
+ # token: "YOUR_AUTH_TOKEN"
81
+ # )
82
+ # api.employees.tax_setup.update_federal_taxes(
83
+ # employee_uuid: "employee_uuid",
84
+ # version: "56a489ce86ed6c1b0f0cecc4050a0b01",
85
+ # filing_status: "Single",
86
+ # extra_withholding: "0.0",
87
+ # two_jobs: true,
88
+ # dependents_amount: "0.0",
89
+ # other_income: "0.0",
90
+ # deductions: "0.0",
91
+ # w4data_type: "rev_2020_w4"
92
+ # )
93
+ def update_federal_taxes(employee_uuid:, version:, filing_status: nil, extra_withholding: nil, two_jobs: nil, dependents_amount: nil, other_income: nil, deductions: nil, w4data_type: nil, request_options: nil)
94
+ response = @request_client.conn.put do | req |
95
+ unless request_options&.timeout_in_seconds.nil?
96
+ req.options.timeout = request_options.timeout_in_seconds
97
+ end
98
+ unless request_options&.token.nil?
99
+ req.headers["Authorization"] = request_options.token
100
+ end
101
+ unless request_options&.gusto_api_version.nil?
102
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
103
+ end
104
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
105
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
106
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
107
+ end
108
+ req.body = { **(request_options&.additional_body_parameters || {}), 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 }.compact
109
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/federal_taxes"
110
+ end
111
+ Gusto::EmployeeTaxSetup::EmployeeFederalTax.from_json(json_object: response.body)
112
+ end
113
+ # Get attributes relevant for an employee's state taxes.
114
+ # The data required to correctly calculate an employee's state taxes varies by
115
+ # both home and work location. This API returns information about each question
116
+ # that must be answered grouped by state. Mostly commonly, an employee lives and
117
+ # works in the same state and will only have questions for a single state. The
118
+ # response contains metadata about each question, the type of answer expected, and
119
+ # the current answer stored in Gusto for that question.
120
+ # Answers are represented by an array. Today, this array can only be empty or
121
+ # contain exactly one element, but is designed to allow for forward compatibility
122
+ # with effective-dated fields. Until effective dated answers are supported, the
123
+ # `valid_from` and `valid_up_to` must always be `"2010-01-01"` and `null`
124
+ # respectively.
125
+ # ## About filing new hire reports
126
+ # Payroll Admins are responsible for filing a new hire report for each Employee.
127
+ # The `file_new_hire_report` question will only be listed if:
128
+ # - the `employee.onboarding_status` is one of the following:
129
+ # - `admin_onboarding_incomplete`
130
+ # - `self_onboarding_awaiting_admin_review`
131
+ # - that employee's work state requires filing a new hire report
132
+ # scope: `employee_state_taxes:read`
133
+ #
134
+ # @param employee_uuid [String] The UUID of the employee
135
+ # @param request_options [Gusto::RequestOptions]
136
+ # @return [Array<Gusto::EmployeeTaxSetup::EmployeeStateTax>]
137
+ # @example
138
+ # api = Gusto::Client.new(
139
+ # base_url: "https://api.example.com",
140
+ # environment: Gusto::Environment::DEMO,
141
+ # token: "YOUR_AUTH_TOKEN"
142
+ # )
143
+ # api.employees.tax_setup.get_state_taxes(employee_uuid: "employee_uuid")
144
+ def get_state_taxes(employee_uuid:, request_options: nil)
145
+ response = @request_client.conn.get do | req |
146
+ unless request_options&.timeout_in_seconds.nil?
147
+ req.options.timeout = request_options.timeout_in_seconds
148
+ end
149
+ unless request_options&.token.nil?
150
+ req.headers["Authorization"] = request_options.token
151
+ end
152
+ unless request_options&.gusto_api_version.nil?
153
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
154
+ end
155
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
156
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
157
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
158
+ end
159
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
160
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
161
+ end
162
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/state_taxes"
163
+ end
164
+ parsed_json = JSON.parse(response.body)
165
+ parsed_json&.map do | item |
166
+ item = item.to_json
167
+ Gusto::EmployeeTaxSetup::EmployeeStateTax.from_json(json_object: item)
168
+ end
169
+ end
170
+ # Update attributes relevant for an employee's state taxes.
171
+ # As described for the GET endpoint, the answers must be supplied in the
172
+ # effective-dated format, but currently only a single answer will be accepted -
173
+ # `valid_from` and `valid_up_to` must be `"2010-01-01"` and `null` respectively.
174
+ # scope: `employee_state_taxes:write`
175
+ #
176
+ # @param employee_uuid [String] The UUID of the employee
177
+ # @param states [Array<Hash>] Request of type Array<Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItem>, as a Hash
178
+ # * :state (String)
179
+ # * :questions (Array<Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItemQuestionsItem>)
180
+ # @param request_options [Gusto::RequestOptions]
181
+ # @return [Array<Gusto::EmployeeTaxSetup::EmployeeStateTax>]
182
+ # @example
183
+ # api = Gusto::Client.new(
184
+ # base_url: "https://api.example.com",
185
+ # environment: Gusto::Environment::DEMO,
186
+ # token: "YOUR_AUTH_TOKEN"
187
+ # )
188
+ # api.employees.tax_setup.update_state_taxes(employee_uuid: "employee_uuid", states: [{ state: "CA", questions: [{ key: "filing_status", answers: [{ value: "M", valid_from: "2010-01-01" }] }, { key: "withholding_allowance", answers: [{ value: "value", valid_from: "2010-01-01" }] }, { key: "additional_withholding", answers: [{ value: "25.0", valid_from: "2010-01-01" }] }, { key: "file_new_hire_report", answers: [{ value: "value", valid_from: "2010-01-01" }] }] }])
189
+ def update_state_taxes(employee_uuid:, states:, request_options: nil)
190
+ response = @request_client.conn.put do | req |
191
+ unless request_options&.timeout_in_seconds.nil?
192
+ req.options.timeout = request_options.timeout_in_seconds
193
+ end
194
+ unless request_options&.token.nil?
195
+ req.headers["Authorization"] = request_options.token
196
+ end
197
+ unless request_options&.gusto_api_version.nil?
198
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
199
+ end
200
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
201
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
202
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
203
+ end
204
+ req.body = { **(request_options&.additional_body_parameters || {}), states: states }.compact
205
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/state_taxes"
206
+ end
207
+ parsed_json = JSON.parse(response.body)
208
+ parsed_json&.map do | item |
209
+ item = item.to_json
210
+ Gusto::EmployeeTaxSetup::EmployeeStateTax.from_json(json_object: item)
211
+ end
212
+ end
213
+ end
214
+ class AsyncTaxSetupClient
215
+ # @return [Gusto::AsyncRequestClient]
216
+ attr_reader :request_client
217
+
218
+
219
+ # @param request_client [Gusto::RequestClient]
220
+ # @return [Gusto::Employees::AsyncTaxSetupClient]
221
+ def initialize(request_client:)
222
+ @request_client = request_client
223
+ end
224
+ # Get attributes relevant for an employee's federal taxes.
225
+ # scope: `employee_federal_taxes:read`
226
+ #
227
+ # @param employee_uuid [String] The UUID of the employee
228
+ # @param request_options [Gusto::RequestOptions]
229
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTax]
230
+ # @example
231
+ # api = Gusto::Client.new(
232
+ # base_url: "https://api.example.com",
233
+ # environment: Gusto::Environment::DEMO,
234
+ # token: "YOUR_AUTH_TOKEN"
235
+ # )
236
+ # api.employees.tax_setup.get_federal_taxes(employee_uuid: "employee_uuid")
237
+ def get_federal_taxes(employee_uuid:, request_options: nil)
238
+ Async do
239
+ response = @request_client.conn.get do | req |
240
+ unless request_options&.timeout_in_seconds.nil?
241
+ req.options.timeout = request_options.timeout_in_seconds
242
+ end
243
+ unless request_options&.token.nil?
244
+ req.headers["Authorization"] = request_options.token
245
+ end
246
+ unless request_options&.gusto_api_version.nil?
247
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
248
+ end
249
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
250
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
251
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
252
+ end
253
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
254
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
255
+ end
256
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/federal_taxes"
257
+ end
258
+ Gusto::EmployeeTaxSetup::EmployeeFederalTax.from_json(json_object: response.body)
259
+ end
260
+ end
261
+ # Update attributes relevant for an employee's federal taxes.
262
+ # scope: `employee_federal_taxes:write`
263
+ #
264
+ # @param employee_uuid [String] The UUID of the employee
265
+ # @param version [String] The current version of the object. See the [versioning
266
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
267
+ # information on how to use this field.
268
+ # @param filing_status [String]
269
+ # @param extra_withholding [String]
270
+ # @param two_jobs [Boolean]
271
+ # @param dependents_amount [String]
272
+ # @param other_income [String]
273
+ # @param deductions [String]
274
+ # @param w4data_type [String]
275
+ # @param request_options [Gusto::RequestOptions]
276
+ # @return [Gusto::EmployeeTaxSetup::EmployeeFederalTax]
277
+ # @example
278
+ # api = Gusto::Client.new(
279
+ # base_url: "https://api.example.com",
280
+ # environment: Gusto::Environment::DEMO,
281
+ # token: "YOUR_AUTH_TOKEN"
282
+ # )
283
+ # api.employees.tax_setup.update_federal_taxes(
284
+ # employee_uuid: "employee_uuid",
285
+ # version: "56a489ce86ed6c1b0f0cecc4050a0b01",
286
+ # filing_status: "Single",
287
+ # extra_withholding: "0.0",
288
+ # two_jobs: true,
289
+ # dependents_amount: "0.0",
290
+ # other_income: "0.0",
291
+ # deductions: "0.0",
292
+ # w4data_type: "rev_2020_w4"
293
+ # )
294
+ def update_federal_taxes(employee_uuid:, version:, filing_status: nil, extra_withholding: nil, two_jobs: nil, dependents_amount: nil, other_income: nil, deductions: nil, w4data_type: nil, request_options: nil)
295
+ Async do
296
+ response = @request_client.conn.put do | req |
297
+ unless request_options&.timeout_in_seconds.nil?
298
+ req.options.timeout = request_options.timeout_in_seconds
299
+ end
300
+ unless request_options&.token.nil?
301
+ req.headers["Authorization"] = request_options.token
302
+ end
303
+ unless request_options&.gusto_api_version.nil?
304
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
305
+ end
306
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
307
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
308
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
309
+ end
310
+ req.body = { **(request_options&.additional_body_parameters || {}), 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 }.compact
311
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/federal_taxes"
312
+ end
313
+ Gusto::EmployeeTaxSetup::EmployeeFederalTax.from_json(json_object: response.body)
314
+ end
315
+ end
316
+ # Get attributes relevant for an employee's state taxes.
317
+ # The data required to correctly calculate an employee's state taxes varies by
318
+ # both home and work location. This API returns information about each question
319
+ # that must be answered grouped by state. Mostly commonly, an employee lives and
320
+ # works in the same state and will only have questions for a single state. The
321
+ # response contains metadata about each question, the type of answer expected, and
322
+ # the current answer stored in Gusto for that question.
323
+ # Answers are represented by an array. Today, this array can only be empty or
324
+ # contain exactly one element, but is designed to allow for forward compatibility
325
+ # with effective-dated fields. Until effective dated answers are supported, the
326
+ # `valid_from` and `valid_up_to` must always be `"2010-01-01"` and `null`
327
+ # respectively.
328
+ # ## About filing new hire reports
329
+ # Payroll Admins are responsible for filing a new hire report for each Employee.
330
+ # The `file_new_hire_report` question will only be listed if:
331
+ # - the `employee.onboarding_status` is one of the following:
332
+ # - `admin_onboarding_incomplete`
333
+ # - `self_onboarding_awaiting_admin_review`
334
+ # - that employee's work state requires filing a new hire report
335
+ # scope: `employee_state_taxes:read`
336
+ #
337
+ # @param employee_uuid [String] The UUID of the employee
338
+ # @param request_options [Gusto::RequestOptions]
339
+ # @return [Array<Gusto::EmployeeTaxSetup::EmployeeStateTax>]
340
+ # @example
341
+ # api = Gusto::Client.new(
342
+ # base_url: "https://api.example.com",
343
+ # environment: Gusto::Environment::DEMO,
344
+ # token: "YOUR_AUTH_TOKEN"
345
+ # )
346
+ # api.employees.tax_setup.get_state_taxes(employee_uuid: "employee_uuid")
347
+ def get_state_taxes(employee_uuid:, request_options: nil)
348
+ Async do
349
+ response = @request_client.conn.get do | req |
350
+ unless request_options&.timeout_in_seconds.nil?
351
+ req.options.timeout = request_options.timeout_in_seconds
352
+ end
353
+ unless request_options&.token.nil?
354
+ req.headers["Authorization"] = request_options.token
355
+ end
356
+ unless request_options&.gusto_api_version.nil?
357
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
358
+ end
359
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
360
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
361
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
362
+ end
363
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
364
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
365
+ end
366
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/state_taxes"
367
+ end
368
+ parsed_json = JSON.parse(response.body)
369
+ parsed_json&.map do | item |
370
+ item = item.to_json
371
+ Gusto::EmployeeTaxSetup::EmployeeStateTax.from_json(json_object: item)
372
+ end
373
+ end
374
+ end
375
+ # Update attributes relevant for an employee's state taxes.
376
+ # As described for the GET endpoint, the answers must be supplied in the
377
+ # effective-dated format, but currently only a single answer will be accepted -
378
+ # `valid_from` and `valid_up_to` must be `"2010-01-01"` and `null` respectively.
379
+ # scope: `employee_state_taxes:write`
380
+ #
381
+ # @param employee_uuid [String] The UUID of the employee
382
+ # @param states [Array<Hash>] Request of type Array<Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItem>, as a Hash
383
+ # * :state (String)
384
+ # * :questions (Array<Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItemQuestionsItem>)
385
+ # @param request_options [Gusto::RequestOptions]
386
+ # @return [Array<Gusto::EmployeeTaxSetup::EmployeeStateTax>]
387
+ # @example
388
+ # api = Gusto::Client.new(
389
+ # base_url: "https://api.example.com",
390
+ # environment: Gusto::Environment::DEMO,
391
+ # token: "YOUR_AUTH_TOKEN"
392
+ # )
393
+ # api.employees.tax_setup.update_state_taxes(employee_uuid: "employee_uuid", states: [{ state: "CA", questions: [{ key: "filing_status", answers: [{ value: "M", valid_from: "2010-01-01" }] }, { key: "withholding_allowance", answers: [{ value: "value", valid_from: "2010-01-01" }] }, { key: "additional_withholding", answers: [{ value: "25.0", valid_from: "2010-01-01" }] }, { key: "file_new_hire_report", answers: [{ value: "value", valid_from: "2010-01-01" }] }] }])
394
+ def update_state_taxes(employee_uuid:, states:, request_options: nil)
395
+ Async do
396
+ response = @request_client.conn.put do | req |
397
+ unless request_options&.timeout_in_seconds.nil?
398
+ req.options.timeout = request_options.timeout_in_seconds
399
+ end
400
+ unless request_options&.token.nil?
401
+ req.headers["Authorization"] = request_options.token
402
+ end
403
+ unless request_options&.gusto_api_version.nil?
404
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
405
+ end
406
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
407
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
408
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
409
+ end
410
+ req.body = { **(request_options&.additional_body_parameters || {}), states: states }.compact
411
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/state_taxes"
412
+ end
413
+ parsed_json = JSON.parse(response.body)
414
+ parsed_json&.map do | item |
415
+ item = item.to_json
416
+ Gusto::EmployeeTaxSetup::EmployeeStateTax.from_json(json_object: item)
417
+ end
418
+ end
419
+ end
420
+ end
421
+ end
422
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+ require_relative "tax_setup_update_state_taxes_request_states_item_questions_item"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module Employees
8
+ module TaxSetup
9
+ class TaxSetupUpdateStateTaxesRequestStatesItem
10
+ # @return [String]
11
+ attr_reader :state
12
+ # @return [Array<Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItemQuestionsItem>]
13
+ attr_reader :questions
14
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
15
+ attr_reader :additional_properties
16
+ # @return [Object]
17
+ attr_reader :_field_set
18
+ protected :_field_set
19
+
20
+ OMIT = Object.new
21
+
22
+ # @param state [String]
23
+ # @param questions [Array<Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItemQuestionsItem>]
24
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
25
+ # @return [Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItem]
26
+ def initialize(state:, questions: OMIT, additional_properties: nil)
27
+ @state = state
28
+ @questions = questions if questions != OMIT
29
+ @additional_properties = additional_properties
30
+ @_field_set = { "state": state, "questions": questions }.reject do | _k, v |
31
+ v == OMIT
32
+ end
33
+ end
34
+ # Deserialize a JSON object to an instance of
35
+ # TaxSetupUpdateStateTaxesRequestStatesItem
36
+ #
37
+ # @param json_object [String]
38
+ # @return [Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItem]
39
+ def self.from_json(json_object:)
40
+ struct = JSON.parse(json_object, object_class: OpenStruct)
41
+ parsed_json = JSON.parse(json_object)
42
+ state = parsed_json["state"]
43
+ questions = parsed_json["questions"]&.map do | item |
44
+ item = item.to_json
45
+ Gusto::Employees::TaxSetup::TaxSetupUpdateStateTaxesRequestStatesItemQuestionsItem.from_json(json_object: item)
46
+ end
47
+ new(
48
+ state: state,
49
+ questions: questions,
50
+ additional_properties: struct
51
+ )
52
+ end
53
+ # Serialize an instance of TaxSetupUpdateStateTaxesRequestStatesItem to a JSON
54
+ # object
55
+ #
56
+ # @return [String]
57
+ def to_json
58
+ @_field_set&.to_json
59
+ end
60
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
61
+ # hash and check each fields type against the current object's property
62
+ # definitions.
63
+ #
64
+ # @param obj [Object]
65
+ # @return [Void]
66
+ def self.validate_raw(obj:)
67
+ obj.state.is_a?(String) != false || raise("Passed value for field obj.state is not the expected type, validation failed.")
68
+ obj.questions&.is_a?(Array) != false || raise("Passed value for field obj.questions is not the expected type, validation failed.")
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end