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,822 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../requests"
3
+ require_relative "employments/client"
4
+ require_relative "adresses/client"
5
+ require_relative "tax_setup/client"
6
+ require_relative "payment_method/client"
7
+ require_relative "jobs_and_compensations/client"
8
+ require_relative "forms/client"
9
+ require_relative "benefits/client"
10
+ require_relative "garnishments/client"
11
+ require_relative "types/employees_get_request_include"
12
+ require_relative "types/employee"
13
+ require_relative "types/employees_get_custom_fields_response"
14
+ require_relative "types/employee_onboarding_info"
15
+ require_relative "../types/time_off_activity"
16
+ require "async"
17
+ require "async"
18
+ require "async"
19
+ require "async"
20
+ require "async"
21
+ require "async"
22
+ require "async"
23
+ require_relative "../../requests"
24
+
25
+ module Gusto
26
+ class EmployeesClient
27
+ # @return [Gusto::RequestClient]
28
+ attr_reader :request_client
29
+ # @return [Gusto::Employees::EmploymentsClient]
30
+ attr_reader :employments
31
+ # @return [Gusto::Employees::AdressesClient]
32
+ attr_reader :adresses
33
+ # @return [Gusto::Employees::TaxSetupClient]
34
+ attr_reader :tax_setup
35
+ # @return [Gusto::Employees::PaymentMethodClient]
36
+ attr_reader :payment_method
37
+ # @return [Gusto::Employees::JobsAndCompensationsClient]
38
+ attr_reader :jobs_and_compensations
39
+ # @return [Gusto::Employees::FormsClient]
40
+ attr_reader :forms
41
+ # @return [Gusto::Employees::BenefitsClient]
42
+ attr_reader :benefits
43
+ # @return [Gusto::Employees::GarnishmentsClient]
44
+ attr_reader :garnishments
45
+
46
+
47
+ # @param request_client [Gusto::RequestClient]
48
+ # @return [Gusto::EmployeesClient]
49
+ def initialize(request_client:)
50
+ @request_client = request_client
51
+ @employments = Gusto::Employees::EmploymentsClient.new(request_client: request_client)
52
+ @adresses = Gusto::Employees::AdressesClient.new(request_client: request_client)
53
+ @tax_setup = Gusto::Employees::TaxSetupClient.new(request_client: request_client)
54
+ @payment_method = Gusto::Employees::PaymentMethodClient.new(request_client: request_client)
55
+ @jobs_and_compensations = Gusto::Employees::JobsAndCompensationsClient.new(request_client: request_client)
56
+ @forms = Gusto::Employees::FormsClient.new(request_client: request_client)
57
+ @benefits = Gusto::Employees::BenefitsClient.new(request_client: request_client)
58
+ @garnishments = Gusto::Employees::GarnishmentsClient.new(request_client: request_client)
59
+ end
60
+ # Get an employee.
61
+ # scope: `employees:read`
62
+ #
63
+ # @param employee_id [String] The UUID of the employee
64
+ # @param include [Gusto::Employees::EmployeesGetRequestInclude] Include the requested attribute(s) in each employee response, multiple options
65
+ # are comma separated. Available options:
66
+ # - all_compensations: Include all effective dated compensations for each job
67
+ # instead of only the current compensation
68
+ # - custom_fields: Include employees' custom fields
69
+ # @param request_options [Gusto::RequestOptions]
70
+ # @return [Gusto::Employees::Employee]
71
+ # @example
72
+ # api = Gusto::Client.new(
73
+ # base_url: "https://api.example.com",
74
+ # environment: Gusto::Environment::DEMO,
75
+ # token: "YOUR_AUTH_TOKEN"
76
+ # )
77
+ # api.employees.get(employee_id: "employee_id")
78
+ def get(employee_id:, include: nil, request_options: nil)
79
+ response = @request_client.conn.get do | req |
80
+ unless request_options&.timeout_in_seconds.nil?
81
+ req.options.timeout = request_options.timeout_in_seconds
82
+ end
83
+ unless request_options&.token.nil?
84
+ req.headers["Authorization"] = request_options.token
85
+ end
86
+ unless request_options&.gusto_api_version.nil?
87
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
88
+ end
89
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
90
+ req.params = { **(request_options&.additional_query_parameters || {}), "include": include }.compact
91
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
92
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
93
+ end
94
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}"
95
+ end
96
+ Gusto::Employees::Employee.from_json(json_object: response.body)
97
+ end
98
+ # Update an employee.
99
+ # scope: `employees:write`
100
+ #
101
+ # @param employee_id [String] The UUID of the employee
102
+ # @param version [String] The current version of the object. See the [versioning
103
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
104
+ # information on how to use this field.
105
+ # @param first_name [String]
106
+ # @param middle_initial [String]
107
+ # @param last_name [String]
108
+ # @param preferred_first_name [String]
109
+ # @param date_of_birth [String]
110
+ # @param email [String] The employee's personal email address.
111
+ # @param ssn [String]
112
+ # @param two_percent_shareholder [Boolean] Whether the employee is a two percent shareholder of the company. This field
113
+ # only applies to companies with an S-Corp entity type.
114
+ # @param request_options [Gusto::RequestOptions]
115
+ # @return [Gusto::Employees::Employee]
116
+ # @example
117
+ # api = Gusto::Client.new(
118
+ # base_url: "https://api.example.com",
119
+ # environment: Gusto::Environment::DEMO,
120
+ # token: "YOUR_AUTH_TOKEN"
121
+ # )
122
+ # api.employees.update(
123
+ # employee_id: "employee_id",
124
+ # version: "db0edd04aaac4506f7edab03ac855d56",
125
+ # first_name: "Soren",
126
+ # middle_initial: "A",
127
+ # last_name: "Kierkegaard",
128
+ # preferred_first_name: "Angel",
129
+ # date_of_birth: "1995-05-05",
130
+ # email: "knight0faith@example.com",
131
+ # ssn: "123456294",
132
+ # two_percent_shareholder: false
133
+ # )
134
+ def update(employee_id:, version:, first_name: nil, middle_initial: nil, last_name: nil, preferred_first_name: nil, date_of_birth: nil, email: nil, ssn: nil, two_percent_shareholder: nil, request_options: nil)
135
+ response = @request_client.conn.put do | req |
136
+ unless request_options&.timeout_in_seconds.nil?
137
+ req.options.timeout = request_options.timeout_in_seconds
138
+ end
139
+ unless request_options&.token.nil?
140
+ req.headers["Authorization"] = request_options.token
141
+ end
142
+ unless request_options&.gusto_api_version.nil?
143
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
144
+ end
145
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
146
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
147
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
148
+ end
149
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, first_name: first_name, middle_initial: middle_initial, last_name: last_name, preferred_first_name: preferred_first_name, date_of_birth: date_of_birth, email: email, ssn: ssn, two_percent_shareholder: two_percent_shareholder }.compact
150
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}"
151
+ end
152
+ Gusto::Employees::Employee.from_json(json_object: response.body)
153
+ end
154
+ # Use this endpoint to delete an employee who is in onboarding. Deleting
155
+ # an onboarded employee is not allowed and will return a 422 response. Please
156
+ # check out the Terminations api
157
+ # if you need to terminate an onboarded employee.
158
+ # scope: `employees:manage`
159
+ #
160
+ # @param employee_id [String] The UUID of the employee
161
+ # @param request_options [Gusto::RequestOptions]
162
+ # @return [Void]
163
+ # @example
164
+ # api = Gusto::Client.new(
165
+ # base_url: "https://api.example.com",
166
+ # environment: Gusto::Environment::DEMO,
167
+ # token: "YOUR_AUTH_TOKEN"
168
+ # )
169
+ # api.employees.delete(employee_id: "employee_id")
170
+ def delete(employee_id:, request_options: nil)
171
+ response = @request_client.conn.delete do | req |
172
+ unless request_options&.timeout_in_seconds.nil?
173
+ req.options.timeout = request_options.timeout_in_seconds
174
+ end
175
+ unless request_options&.token.nil?
176
+ req.headers["Authorization"] = request_options.token
177
+ end
178
+ unless request_options&.gusto_api_version.nil?
179
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
180
+ end
181
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
182
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
183
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
184
+ end
185
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
186
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
187
+ end
188
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}"
189
+ end
190
+ end
191
+ # Returns a list of the employee's custom fields.
192
+ # scope: `employees:read`
193
+ #
194
+ # @param employee_id [String] The UUID of the employee
195
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
196
+ # endpoint forces pagination.
197
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
198
+ # @param request_options [Gusto::RequestOptions]
199
+ # @return [Gusto::Employees::EmployeesGetCustomFieldsResponse]
200
+ # @example
201
+ # api = Gusto::Client.new(
202
+ # base_url: "https://api.example.com",
203
+ # environment: Gusto::Environment::DEMO,
204
+ # token: "YOUR_AUTH_TOKEN"
205
+ # )
206
+ # api.employees.get_custom_fields(employee_id: "employee_id")
207
+ def get_custom_fields(employee_id:, page: nil, per: nil, request_options: nil)
208
+ response = @request_client.conn.get do | req |
209
+ unless request_options&.timeout_in_seconds.nil?
210
+ req.options.timeout = request_options.timeout_in_seconds
211
+ end
212
+ unless request_options&.token.nil?
213
+ req.headers["Authorization"] = request_options.token
214
+ end
215
+ unless request_options&.gusto_api_version.nil?
216
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
217
+ end
218
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
219
+ req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
220
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
221
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
222
+ end
223
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/custom_fields"
224
+ end
225
+ Gusto::Employees::EmployeesGetCustomFieldsResponse.from_json(json_object: response.body)
226
+ end
227
+ # # Description
228
+ # Retrieves an employee's onboarding status. The data returned helps inform the
229
+ # required onboarding steps and respective completion status.
230
+ # scope: `employees:read`
231
+ # ## onboarding_status
232
+ # ### Admin-facilitated onboarding
233
+ # | onboarding_status |
234
+ # Description |
235
+ # | :---------------------------- |
236
+ # ----------------------------------------------------: |
237
+ # | `admin_onboarding_incomplete` | Admin needs to complete the full
238
+ # employee-onboarding. |
239
+ # | `onboarding_completed` | Employee has been fully onboarded and
240
+ # verified. |
241
+ # ### Employee self-onboarding
242
+ # | onboarding_status |
243
+ # Description |
244
+ # | :-------------------------------------- |
245
+ # -------------------------------------------------------------------------------:
246
+ # |
247
+ # | `admin_onboarding_incomplete` |
248
+ # Admin needs to enter basic information about the employee. |
249
+ # | `self_onboarding_pending_invite` |
250
+ # Admin has the intention to invite the employee to self-onboard (e.g.,
251
+ # marking a checkbox), but the system has not yet sent the invitation. |
252
+ # | `self_onboarding_invited` |
253
+ # Employee has been sent an invitation to self-onboard. |
254
+ # | `self_onboarding_invited_started` |
255
+ # Employee has started the self-onboarding process. |
256
+ # | `self_onboarding_invited_overdue` |
257
+ # Employee's start date
258
+ # has passed, and employee has still not completed self-onboarding. |
259
+ # | `self_onboarding_completed_by_employee` | Employee has completed entering in
260
+ # their information. The status should be updated via API to
261
+ # "self_onboarding_awaiting_admin_review" from here, once the Admin has started
262
+ # reviewing. |
263
+ # | `self_onboarding_awaiting_admin_review` |
264
+ # Admin has started to verify the employee's information. |
265
+ # | `onboarding_completed` |
266
+ # Employee has been fully onboarded and verified. |
267
+ # ## onboarding_steps
268
+ # | onboarding_steps |
269
+ # Requirement(s) to be completed |
270
+ # | :---------------------- |
271
+ # -------------------------------------------------------------------------------:
272
+ # |
273
+ # | `personal_details` | Add employee's first name, last name, email,
274
+ # date of birth, social security number |
275
+ # | `compensation_details` | Associate
276
+ # employee to a job & compensation. |
277
+ # | `add_work_address` |
278
+ # Add employee work address. |
279
+ # | `add_home_address` |
280
+ # Add employee home address. |
281
+ # | `federal_tax_setup` |
282
+ # Set up federal tax withholdings. |
283
+ # | `state_tax_setup` |
284
+ # Set up state tax withholdings. |
285
+ # | `direct_deposit_setup` | (optional)
286
+ # Set up employee's direct deposit. |
287
+ # | `employee_form_signing` | Employee forms (e.g., W4, direct deposit
288
+ # authorization) are generated & signed. |
289
+ # | `file_new_hire_report` | File a
290
+ # new hire report for this employee. |
291
+ # | `admin_review` | Admin reviews & confirms employee details (only
292
+ # required for Employee self-onboarding) |
293
+ #
294
+ # @param employee_id [String] The UUID of the employee
295
+ # @param request_options [Gusto::RequestOptions]
296
+ # @return [Gusto::Employees::EmployeeOnboardingInfo]
297
+ # @example
298
+ # api = Gusto::Client.new(
299
+ # base_url: "https://api.example.com",
300
+ # environment: Gusto::Environment::DEMO,
301
+ # token: "YOUR_AUTH_TOKEN"
302
+ # )
303
+ # api.employees.get_onboarding_status(employee_id: "employee_id")
304
+ def get_onboarding_status(employee_id:, request_options: nil)
305
+ response = @request_client.conn.get do | req |
306
+ unless request_options&.timeout_in_seconds.nil?
307
+ req.options.timeout = request_options.timeout_in_seconds
308
+ end
309
+ unless request_options&.token.nil?
310
+ req.headers["Authorization"] = request_options.token
311
+ end
312
+ unless request_options&.gusto_api_version.nil?
313
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
314
+ end
315
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
316
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
317
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
318
+ end
319
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
320
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
321
+ end
322
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/onboarding_status"
323
+ end
324
+ Gusto::Employees::EmployeeOnboardingInfo.from_json(json_object: response.body)
325
+ end
326
+ # scope: `employees:manage`
327
+ # Updates an employee's onboarding status.
328
+ # Below is a list of valid onboarding status changes depending on the intended
329
+ # action to be performed on behalf of the employee.
330
+ # | Action | current
331
+ # onboarding_status | new
332
+ # onboarding_status |
333
+ # | :--------------------------------------- |
334
+ # :----------------------------------------------------------------------: |
335
+ # --------------------------------------: |
336
+ # | Mark an employee as self-onboarding |
337
+ # `admin_onboarding_incomplete` |
338
+ # `self_onboarding_pending_invite` |
339
+ # | Invite an employee to self-onboard | `admin_onboarding_incomplete` or
340
+ # `self_onboarding_pending_invite` | `self_onboarding_invited` |
341
+ # | Cancel an employee's self-onboarding | `self_onboarding_invited` or
342
+ # `self_onboarding_pending_invite` | `admin_onboarding_incomplete`
343
+ # |
344
+ # | Review an employee's self-onboarded info |
345
+ # `self_onboarding_completed_by_employee` |
346
+ # `self_onboarding_awaiting_admin_review` |
347
+ # | Finish an employee's onboarding | `admin_onboarding_incomplete` or
348
+ # `self_onboarding_awaiting_admin_review` |
349
+ # `onboarding_completed` |
350
+ #
351
+ # @param employee_id [String] The UUID of the employee
352
+ # @param onboarding_status [String] The updated onboarding status for the employee
353
+ # @param request_options [Gusto::RequestOptions]
354
+ # @return [Gusto::Employees::EmployeeOnboardingInfo]
355
+ # @example
356
+ # api = Gusto::Client.new(
357
+ # base_url: "https://api.example.com",
358
+ # environment: Gusto::Environment::DEMO,
359
+ # token: "YOUR_AUTH_TOKEN"
360
+ # )
361
+ # api.employees.update_onboarding_status(employee_id: "employee_id", onboarding_status: "onboarding_status")
362
+ def update_onboarding_status(employee_id:, onboarding_status:, request_options: nil)
363
+ response = @request_client.conn.put do | req |
364
+ unless request_options&.timeout_in_seconds.nil?
365
+ req.options.timeout = request_options.timeout_in_seconds
366
+ end
367
+ unless request_options&.token.nil?
368
+ req.headers["Authorization"] = request_options.token
369
+ end
370
+ unless request_options&.gusto_api_version.nil?
371
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
372
+ end
373
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
374
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
375
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
376
+ end
377
+ req.body = { **(request_options&.additional_body_parameters || {}), onboarding_status: onboarding_status }.compact
378
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/onboarding_status"
379
+ end
380
+ Gusto::Employees::EmployeeOnboardingInfo.from_json(json_object: response.body)
381
+ end
382
+ # Get employee time off activities.
383
+ # scope: `employee_time_off_activities:read`
384
+ #
385
+ # @param employee_uuid [String] The UUID of the employee
386
+ # @param time_off_type [String] The time off type name you want to query data for. ex: 'sick' or 'vacation'
387
+ # @param request_options [Gusto::RequestOptions]
388
+ # @return [Gusto::TimeOffActivity]
389
+ # @example
390
+ # api = Gusto::Client.new(
391
+ # base_url: "https://api.example.com",
392
+ # environment: Gusto::Environment::DEMO,
393
+ # token: "YOUR_AUTH_TOKEN"
394
+ # )
395
+ # api.employees.get_time_off_activities(employee_uuid: "employee_uuid", time_off_type: "time_off_type")
396
+ def get_time_off_activities(employee_uuid:, time_off_type:, request_options: nil)
397
+ response = @request_client.conn.get do | req |
398
+ unless request_options&.timeout_in_seconds.nil?
399
+ req.options.timeout = request_options.timeout_in_seconds
400
+ end
401
+ unless request_options&.token.nil?
402
+ req.headers["Authorization"] = request_options.token
403
+ end
404
+ unless request_options&.gusto_api_version.nil?
405
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
406
+ end
407
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
408
+ req.params = { **(request_options&.additional_query_parameters || {}), "time_off_type": time_off_type }.compact
409
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
410
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
411
+ end
412
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/time_off_activities"
413
+ end
414
+ Gusto::TimeOffActivity.from_json(json_object: response.body)
415
+ end
416
+ end
417
+ class AsyncEmployeesClient
418
+ # @return [Gusto::AsyncRequestClient]
419
+ attr_reader :request_client
420
+ # @return [Gusto::Employees::EmploymentsClient]
421
+ attr_reader :employments
422
+ # @return [Gusto::Employees::AdressesClient]
423
+ attr_reader :adresses
424
+ # @return [Gusto::Employees::TaxSetupClient]
425
+ attr_reader :tax_setup
426
+ # @return [Gusto::Employees::PaymentMethodClient]
427
+ attr_reader :payment_method
428
+ # @return [Gusto::Employees::JobsAndCompensationsClient]
429
+ attr_reader :jobs_and_compensations
430
+ # @return [Gusto::Employees::FormsClient]
431
+ attr_reader :forms
432
+ # @return [Gusto::Employees::BenefitsClient]
433
+ attr_reader :benefits
434
+ # @return [Gusto::Employees::GarnishmentsClient]
435
+ attr_reader :garnishments
436
+
437
+
438
+ # @param request_client [Gusto::RequestClient]
439
+ # @return [Gusto::AsyncEmployeesClient]
440
+ def initialize(request_client:)
441
+ @request_client = request_client
442
+ @employments = Gusto::Employees::AsyncEmploymentsClient.new(request_client: request_client)
443
+ @adresses = Gusto::Employees::AsyncAdressesClient.new(request_client: request_client)
444
+ @tax_setup = Gusto::Employees::AsyncTaxSetupClient.new(request_client: request_client)
445
+ @payment_method = Gusto::Employees::AsyncPaymentMethodClient.new(request_client: request_client)
446
+ @jobs_and_compensations = Gusto::Employees::AsyncJobsAndCompensationsClient.new(request_client: request_client)
447
+ @forms = Gusto::Employees::AsyncFormsClient.new(request_client: request_client)
448
+ @benefits = Gusto::Employees::AsyncBenefitsClient.new(request_client: request_client)
449
+ @garnishments = Gusto::Employees::AsyncGarnishmentsClient.new(request_client: request_client)
450
+ end
451
+ # Get an employee.
452
+ # scope: `employees:read`
453
+ #
454
+ # @param employee_id [String] The UUID of the employee
455
+ # @param include [Gusto::Employees::EmployeesGetRequestInclude] Include the requested attribute(s) in each employee response, multiple options
456
+ # are comma separated. Available options:
457
+ # - all_compensations: Include all effective dated compensations for each job
458
+ # instead of only the current compensation
459
+ # - custom_fields: Include employees' custom fields
460
+ # @param request_options [Gusto::RequestOptions]
461
+ # @return [Gusto::Employees::Employee]
462
+ # @example
463
+ # api = Gusto::Client.new(
464
+ # base_url: "https://api.example.com",
465
+ # environment: Gusto::Environment::DEMO,
466
+ # token: "YOUR_AUTH_TOKEN"
467
+ # )
468
+ # api.employees.get(employee_id: "employee_id")
469
+ def get(employee_id:, include: nil, request_options: nil)
470
+ Async do
471
+ response = @request_client.conn.get do | req |
472
+ unless request_options&.timeout_in_seconds.nil?
473
+ req.options.timeout = request_options.timeout_in_seconds
474
+ end
475
+ unless request_options&.token.nil?
476
+ req.headers["Authorization"] = request_options.token
477
+ end
478
+ unless request_options&.gusto_api_version.nil?
479
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
480
+ end
481
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
482
+ req.params = { **(request_options&.additional_query_parameters || {}), "include": include }.compact
483
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
484
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
485
+ end
486
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}"
487
+ end
488
+ Gusto::Employees::Employee.from_json(json_object: response.body)
489
+ end
490
+ end
491
+ # Update an employee.
492
+ # scope: `employees:write`
493
+ #
494
+ # @param employee_id [String] The UUID of the employee
495
+ # @param version [String] The current version of the object. See the [versioning
496
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
497
+ # information on how to use this field.
498
+ # @param first_name [String]
499
+ # @param middle_initial [String]
500
+ # @param last_name [String]
501
+ # @param preferred_first_name [String]
502
+ # @param date_of_birth [String]
503
+ # @param email [String] The employee's personal email address.
504
+ # @param ssn [String]
505
+ # @param two_percent_shareholder [Boolean] Whether the employee is a two percent shareholder of the company. This field
506
+ # only applies to companies with an S-Corp entity type.
507
+ # @param request_options [Gusto::RequestOptions]
508
+ # @return [Gusto::Employees::Employee]
509
+ # @example
510
+ # api = Gusto::Client.new(
511
+ # base_url: "https://api.example.com",
512
+ # environment: Gusto::Environment::DEMO,
513
+ # token: "YOUR_AUTH_TOKEN"
514
+ # )
515
+ # api.employees.update(
516
+ # employee_id: "employee_id",
517
+ # version: "db0edd04aaac4506f7edab03ac855d56",
518
+ # first_name: "Soren",
519
+ # middle_initial: "A",
520
+ # last_name: "Kierkegaard",
521
+ # preferred_first_name: "Angel",
522
+ # date_of_birth: "1995-05-05",
523
+ # email: "knight0faith@example.com",
524
+ # ssn: "123456294",
525
+ # two_percent_shareholder: false
526
+ # )
527
+ def update(employee_id:, version:, first_name: nil, middle_initial: nil, last_name: nil, preferred_first_name: nil, date_of_birth: nil, email: nil, ssn: nil, two_percent_shareholder: nil, request_options: nil)
528
+ Async do
529
+ response = @request_client.conn.put do | req |
530
+ unless request_options&.timeout_in_seconds.nil?
531
+ req.options.timeout = request_options.timeout_in_seconds
532
+ end
533
+ unless request_options&.token.nil?
534
+ req.headers["Authorization"] = request_options.token
535
+ end
536
+ unless request_options&.gusto_api_version.nil?
537
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
538
+ end
539
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
540
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
541
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
542
+ end
543
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, first_name: first_name, middle_initial: middle_initial, last_name: last_name, preferred_first_name: preferred_first_name, date_of_birth: date_of_birth, email: email, ssn: ssn, two_percent_shareholder: two_percent_shareholder }.compact
544
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}"
545
+ end
546
+ Gusto::Employees::Employee.from_json(json_object: response.body)
547
+ end
548
+ end
549
+ # Use this endpoint to delete an employee who is in onboarding. Deleting
550
+ # an onboarded employee is not allowed and will return a 422 response. Please
551
+ # check out the Terminations api
552
+ # if you need to terminate an onboarded employee.
553
+ # scope: `employees:manage`
554
+ #
555
+ # @param employee_id [String] The UUID of the employee
556
+ # @param request_options [Gusto::RequestOptions]
557
+ # @return [Void]
558
+ # @example
559
+ # api = Gusto::Client.new(
560
+ # base_url: "https://api.example.com",
561
+ # environment: Gusto::Environment::DEMO,
562
+ # token: "YOUR_AUTH_TOKEN"
563
+ # )
564
+ # api.employees.delete(employee_id: "employee_id")
565
+ def delete(employee_id:, request_options: nil)
566
+ Async do
567
+ response = @request_client.conn.delete do | req |
568
+ unless request_options&.timeout_in_seconds.nil?
569
+ req.options.timeout = request_options.timeout_in_seconds
570
+ end
571
+ unless request_options&.token.nil?
572
+ req.headers["Authorization"] = request_options.token
573
+ end
574
+ unless request_options&.gusto_api_version.nil?
575
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
576
+ end
577
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
578
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
579
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
580
+ end
581
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
582
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
583
+ end
584
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}"
585
+ end
586
+ end
587
+ end
588
+ # Returns a list of the employee's custom fields.
589
+ # scope: `employees:read`
590
+ #
591
+ # @param employee_id [String] The UUID of the employee
592
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
593
+ # endpoint forces pagination.
594
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
595
+ # @param request_options [Gusto::RequestOptions]
596
+ # @return [Gusto::Employees::EmployeesGetCustomFieldsResponse]
597
+ # @example
598
+ # api = Gusto::Client.new(
599
+ # base_url: "https://api.example.com",
600
+ # environment: Gusto::Environment::DEMO,
601
+ # token: "YOUR_AUTH_TOKEN"
602
+ # )
603
+ # api.employees.get_custom_fields(employee_id: "employee_id")
604
+ def get_custom_fields(employee_id:, page: nil, per: nil, request_options: nil)
605
+ Async do
606
+ response = @request_client.conn.get do | req |
607
+ unless request_options&.timeout_in_seconds.nil?
608
+ req.options.timeout = request_options.timeout_in_seconds
609
+ end
610
+ unless request_options&.token.nil?
611
+ req.headers["Authorization"] = request_options.token
612
+ end
613
+ unless request_options&.gusto_api_version.nil?
614
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
615
+ end
616
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
617
+ req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
618
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
619
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
620
+ end
621
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/custom_fields"
622
+ end
623
+ Gusto::Employees::EmployeesGetCustomFieldsResponse.from_json(json_object: response.body)
624
+ end
625
+ end
626
+ # # Description
627
+ # Retrieves an employee's onboarding status. The data returned helps inform the
628
+ # required onboarding steps and respective completion status.
629
+ # scope: `employees:read`
630
+ # ## onboarding_status
631
+ # ### Admin-facilitated onboarding
632
+ # | onboarding_status |
633
+ # Description |
634
+ # | :---------------------------- |
635
+ # ----------------------------------------------------: |
636
+ # | `admin_onboarding_incomplete` | Admin needs to complete the full
637
+ # employee-onboarding. |
638
+ # | `onboarding_completed` | Employee has been fully onboarded and
639
+ # verified. |
640
+ # ### Employee self-onboarding
641
+ # | onboarding_status |
642
+ # Description |
643
+ # | :-------------------------------------- |
644
+ # -------------------------------------------------------------------------------:
645
+ # |
646
+ # | `admin_onboarding_incomplete` |
647
+ # Admin needs to enter basic information about the employee. |
648
+ # | `self_onboarding_pending_invite` |
649
+ # Admin has the intention to invite the employee to self-onboard (e.g.,
650
+ # marking a checkbox), but the system has not yet sent the invitation. |
651
+ # | `self_onboarding_invited` |
652
+ # Employee has been sent an invitation to self-onboard. |
653
+ # | `self_onboarding_invited_started` |
654
+ # Employee has started the self-onboarding process. |
655
+ # | `self_onboarding_invited_overdue` |
656
+ # Employee's start date
657
+ # has passed, and employee has still not completed self-onboarding. |
658
+ # | `self_onboarding_completed_by_employee` | Employee has completed entering in
659
+ # their information. The status should be updated via API to
660
+ # "self_onboarding_awaiting_admin_review" from here, once the Admin has started
661
+ # reviewing. |
662
+ # | `self_onboarding_awaiting_admin_review` |
663
+ # Admin has started to verify the employee's information. |
664
+ # | `onboarding_completed` |
665
+ # Employee has been fully onboarded and verified. |
666
+ # ## onboarding_steps
667
+ # | onboarding_steps |
668
+ # Requirement(s) to be completed |
669
+ # | :---------------------- |
670
+ # -------------------------------------------------------------------------------:
671
+ # |
672
+ # | `personal_details` | Add employee's first name, last name, email,
673
+ # date of birth, social security number |
674
+ # | `compensation_details` | Associate
675
+ # employee to a job & compensation. |
676
+ # | `add_work_address` |
677
+ # Add employee work address. |
678
+ # | `add_home_address` |
679
+ # Add employee home address. |
680
+ # | `federal_tax_setup` |
681
+ # Set up federal tax withholdings. |
682
+ # | `state_tax_setup` |
683
+ # Set up state tax withholdings. |
684
+ # | `direct_deposit_setup` | (optional)
685
+ # Set up employee's direct deposit. |
686
+ # | `employee_form_signing` | Employee forms (e.g., W4, direct deposit
687
+ # authorization) are generated & signed. |
688
+ # | `file_new_hire_report` | File a
689
+ # new hire report for this employee. |
690
+ # | `admin_review` | Admin reviews & confirms employee details (only
691
+ # required for Employee self-onboarding) |
692
+ #
693
+ # @param employee_id [String] The UUID of the employee
694
+ # @param request_options [Gusto::RequestOptions]
695
+ # @return [Gusto::Employees::EmployeeOnboardingInfo]
696
+ # @example
697
+ # api = Gusto::Client.new(
698
+ # base_url: "https://api.example.com",
699
+ # environment: Gusto::Environment::DEMO,
700
+ # token: "YOUR_AUTH_TOKEN"
701
+ # )
702
+ # api.employees.get_onboarding_status(employee_id: "employee_id")
703
+ def get_onboarding_status(employee_id:, request_options: nil)
704
+ Async do
705
+ response = @request_client.conn.get do | req |
706
+ unless request_options&.timeout_in_seconds.nil?
707
+ req.options.timeout = request_options.timeout_in_seconds
708
+ end
709
+ unless request_options&.token.nil?
710
+ req.headers["Authorization"] = request_options.token
711
+ end
712
+ unless request_options&.gusto_api_version.nil?
713
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
714
+ end
715
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
716
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
717
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
718
+ end
719
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
720
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
721
+ end
722
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/onboarding_status"
723
+ end
724
+ Gusto::Employees::EmployeeOnboardingInfo.from_json(json_object: response.body)
725
+ end
726
+ end
727
+ # scope: `employees:manage`
728
+ # Updates an employee's onboarding status.
729
+ # Below is a list of valid onboarding status changes depending on the intended
730
+ # action to be performed on behalf of the employee.
731
+ # | Action | current
732
+ # onboarding_status | new
733
+ # onboarding_status |
734
+ # | :--------------------------------------- |
735
+ # :----------------------------------------------------------------------: |
736
+ # --------------------------------------: |
737
+ # | Mark an employee as self-onboarding |
738
+ # `admin_onboarding_incomplete` |
739
+ # `self_onboarding_pending_invite` |
740
+ # | Invite an employee to self-onboard | `admin_onboarding_incomplete` or
741
+ # `self_onboarding_pending_invite` | `self_onboarding_invited` |
742
+ # | Cancel an employee's self-onboarding | `self_onboarding_invited` or
743
+ # `self_onboarding_pending_invite` | `admin_onboarding_incomplete`
744
+ # |
745
+ # | Review an employee's self-onboarded info |
746
+ # `self_onboarding_completed_by_employee` |
747
+ # `self_onboarding_awaiting_admin_review` |
748
+ # | Finish an employee's onboarding | `admin_onboarding_incomplete` or
749
+ # `self_onboarding_awaiting_admin_review` |
750
+ # `onboarding_completed` |
751
+ #
752
+ # @param employee_id [String] The UUID of the employee
753
+ # @param onboarding_status [String] The updated onboarding status for the employee
754
+ # @param request_options [Gusto::RequestOptions]
755
+ # @return [Gusto::Employees::EmployeeOnboardingInfo]
756
+ # @example
757
+ # api = Gusto::Client.new(
758
+ # base_url: "https://api.example.com",
759
+ # environment: Gusto::Environment::DEMO,
760
+ # token: "YOUR_AUTH_TOKEN"
761
+ # )
762
+ # api.employees.update_onboarding_status(employee_id: "employee_id", onboarding_status: "onboarding_status")
763
+ def update_onboarding_status(employee_id:, onboarding_status:, request_options: nil)
764
+ Async do
765
+ response = @request_client.conn.put do | req |
766
+ unless request_options&.timeout_in_seconds.nil?
767
+ req.options.timeout = request_options.timeout_in_seconds
768
+ end
769
+ unless request_options&.token.nil?
770
+ req.headers["Authorization"] = request_options.token
771
+ end
772
+ unless request_options&.gusto_api_version.nil?
773
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
774
+ end
775
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
776
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
777
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
778
+ end
779
+ req.body = { **(request_options&.additional_body_parameters || {}), onboarding_status: onboarding_status }.compact
780
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/onboarding_status"
781
+ end
782
+ Gusto::Employees::EmployeeOnboardingInfo.from_json(json_object: response.body)
783
+ end
784
+ end
785
+ # Get employee time off activities.
786
+ # scope: `employee_time_off_activities:read`
787
+ #
788
+ # @param employee_uuid [String] The UUID of the employee
789
+ # @param time_off_type [String] The time off type name you want to query data for. ex: 'sick' or 'vacation'
790
+ # @param request_options [Gusto::RequestOptions]
791
+ # @return [Gusto::TimeOffActivity]
792
+ # @example
793
+ # api = Gusto::Client.new(
794
+ # base_url: "https://api.example.com",
795
+ # environment: Gusto::Environment::DEMO,
796
+ # token: "YOUR_AUTH_TOKEN"
797
+ # )
798
+ # api.employees.get_time_off_activities(employee_uuid: "employee_uuid", time_off_type: "time_off_type")
799
+ def get_time_off_activities(employee_uuid:, time_off_type:, request_options: nil)
800
+ Async do
801
+ response = @request_client.conn.get do | req |
802
+ unless request_options&.timeout_in_seconds.nil?
803
+ req.options.timeout = request_options.timeout_in_seconds
804
+ end
805
+ unless request_options&.token.nil?
806
+ req.headers["Authorization"] = request_options.token
807
+ end
808
+ unless request_options&.gusto_api_version.nil?
809
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
810
+ end
811
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
812
+ req.params = { **(request_options&.additional_query_parameters || {}), "time_off_type": time_off_type }.compact
813
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
814
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
815
+ end
816
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_uuid}/time_off_activities"
817
+ end
818
+ Gusto::TimeOffActivity.from_json(json_object: response.body)
819
+ end
820
+ end
821
+ end
822
+ end