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,558 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../types/garnishment"
4
+ require "json"
5
+ require_relative "types/garnishments_create_request_garnishment_type"
6
+ require_relative "../../types/garnishment_child_support"
7
+ require_relative "../../types/child_support_data"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require_relative "../../../requests"
14
+
15
+ module Gusto
16
+ module Employees
17
+ class GarnishmentsClient
18
+ # @return [Gusto::RequestClient]
19
+ attr_reader :request_client
20
+
21
+
22
+ # @param request_client [Gusto::RequestClient]
23
+ # @return [Gusto::Employees::GarnishmentsClient]
24
+ def initialize(request_client:)
25
+ @request_client = request_client
26
+ end
27
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
28
+ # from an employee’s pay. They can be deducted a specific number of times or on a
29
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
30
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
31
+ # for child support or back taxes. Some companies provide loans to their employees
32
+ # that are repaid via garnishments.
33
+ # scope: `garnishments:read`
34
+ #
35
+ # @param employee_id [String] The UUID of the employee
36
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
37
+ # endpoint forces pagination.
38
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
39
+ # @param request_options [Gusto::RequestOptions]
40
+ # @return [Array<Gusto::Garnishment>]
41
+ # @example
42
+ # api = Gusto::Client.new(
43
+ # base_url: "https://api.example.com",
44
+ # environment: Gusto::Environment::DEMO,
45
+ # token: "YOUR_AUTH_TOKEN"
46
+ # )
47
+ # api.employees.garnishments.list(employee_id: "employee_id")
48
+ def list(employee_id:, page: nil, per: nil, request_options: nil)
49
+ response = @request_client.conn.get do | req |
50
+ unless request_options&.timeout_in_seconds.nil?
51
+ req.options.timeout = request_options.timeout_in_seconds
52
+ end
53
+ unless request_options&.token.nil?
54
+ req.headers["Authorization"] = request_options.token
55
+ end
56
+ unless request_options&.gusto_api_version.nil?
57
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
58
+ end
59
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
60
+ req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
61
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
62
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
63
+ end
64
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/garnishments"
65
+ end
66
+ parsed_json = JSON.parse(response.body)
67
+ parsed_json&.map do | item |
68
+ item = item.to_json
69
+ Gusto::Garnishment.from_json(json_object: item)
70
+ end
71
+ end
72
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
73
+ # from an employee’s pay. They can be deducted a specific number of times or on a
74
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
75
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
76
+ # for child support or back taxes. Some companies provide loans to their employees
77
+ # that are repaid via garnishments.
78
+ # scope: `garnishments:write`
79
+ #
80
+ # @param employee_id [String] The UUID of the employee
81
+ # @param active [Boolean] Whether or not this garnishment is currently active.
82
+ # @param amount [String] The amount of the garnishment. Either a percentage or a fixed dollar amount.
83
+ # Represented as a float, e.g. "8.00".
84
+ # @param description [String] The description of the garnishment.
85
+ # @param court_ordered [Boolean] Whether the garnishment is court ordered.
86
+ # @param garnishment_type [Gusto::Employees::Garnishments::GarnishmentsCreateRequestGarnishmentType] The specific type of garnishment for court ordered garnishments.
87
+ # @param times [Integer] The number of times to apply the garnishment. Ignored if recurring is true.
88
+ # @param recurring [Boolean] Whether the garnishment should recur indefinitely.
89
+ # @param annual_maximum [String] The maximum deduction per annum. A null value indicates no maximum. Represented
90
+ # as a float, e.g. "200.00".
91
+ # @param pay_period_maximum [String] The maximum deduction per pay period. A null value indicates no maximum.
92
+ # Represented as a float, e.g. "16.00".
93
+ # @param deduct_as_percentage [Boolean] Whether the amount should be treated as a percentage to be deducted per pay
94
+ # period.
95
+ # @param total_amount [String] A maximum total deduction for the lifetime of this garnishment. A null value
96
+ # indicates no maximum.
97
+ # @param child_support [Hash] Request of type Gusto::GarnishmentChildSupport, as a Hash
98
+ # * :state (String)
99
+ # * :payment_period (Gusto::GarnishmentChildSupportPaymentPeriod)
100
+ # * :fips_code (String)
101
+ # * :case_number (String)
102
+ # * :order_number (String)
103
+ # * :remittance_number (String)
104
+ # @param request_options [Gusto::RequestOptions]
105
+ # @return [Gusto::Garnishment]
106
+ # @example
107
+ # api = Gusto::Client.new(
108
+ # base_url: "https://api.example.com",
109
+ # environment: Gusto::Environment::DEMO,
110
+ # token: "YOUR_AUTH_TOKEN"
111
+ # )
112
+ # api.employees.garnishments.create(
113
+ # employee_id: "employee_id",
114
+ # amount: "150.00",
115
+ # description: "Back taxes",
116
+ # court_ordered: true,
117
+ # recurring: true,
118
+ # deduct_as_percentage: false
119
+ # )
120
+ def create(employee_id:, active: nil, amount:, description: nil, court_ordered:, garnishment_type: nil, times: nil, recurring: nil, annual_maximum: nil, pay_period_maximum: nil, deduct_as_percentage: nil, total_amount: nil, child_support: nil, request_options: nil)
121
+ response = @request_client.conn.post do | req |
122
+ unless request_options&.timeout_in_seconds.nil?
123
+ req.options.timeout = request_options.timeout_in_seconds
124
+ end
125
+ unless request_options&.token.nil?
126
+ req.headers["Authorization"] = request_options.token
127
+ end
128
+ unless request_options&.gusto_api_version.nil?
129
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
130
+ end
131
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
132
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
133
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
134
+ end
135
+ req.body = { **(request_options&.additional_body_parameters || {}), active: active, amount: amount, description: description, court_ordered: court_ordered, garnishment_type: garnishment_type, times: times, recurring: recurring, annual_maximum: annual_maximum, pay_period_maximum: pay_period_maximum, deduct_as_percentage: deduct_as_percentage, total_amount: total_amount, child_support: child_support }.compact
136
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/garnishments"
137
+ end
138
+ Gusto::Garnishment.from_json(json_object: response.body)
139
+ end
140
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
141
+ # from an employee’s pay. They can be deducted a specific number of times or on a
142
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
143
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
144
+ # for child support or back taxes. Some companies provide loans to their employees
145
+ # that are repaid via garnishments.
146
+ # scope: `garnishments:read`
147
+ #
148
+ # @param garnishment_id [String] The UUID of the garnishment
149
+ # @param request_options [Gusto::RequestOptions]
150
+ # @return [Gusto::Garnishment]
151
+ # @example
152
+ # api = Gusto::Client.new(
153
+ # base_url: "https://api.example.com",
154
+ # environment: Gusto::Environment::DEMO,
155
+ # token: "YOUR_AUTH_TOKEN"
156
+ # )
157
+ # api.employees.garnishments.get(garnishment_id: "garnishment_id")
158
+ def get(garnishment_id:, request_options: nil)
159
+ response = @request_client.conn.get do | req |
160
+ unless request_options&.timeout_in_seconds.nil?
161
+ req.options.timeout = request_options.timeout_in_seconds
162
+ end
163
+ unless request_options&.token.nil?
164
+ req.headers["Authorization"] = request_options.token
165
+ end
166
+ unless request_options&.gusto_api_version.nil?
167
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
168
+ end
169
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
170
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
171
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
172
+ end
173
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
174
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
175
+ end
176
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/garnishments/#{garnishment_id}"
177
+ end
178
+ Gusto::Garnishment.from_json(json_object: response.body)
179
+ end
180
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
181
+ # from an employee’s pay. They can be deducted a specific number of times or on a
182
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
183
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
184
+ # for child support or back taxes. Some companies provide loans to their employees
185
+ # that are repaid via garnishments.
186
+ # scope: `garnishments:write`
187
+ #
188
+ # @param garnishment_id [String] The UUID of the garnishment
189
+ # @param active [Boolean] Whether or not this garnishment is currently active.
190
+ # @param amount [String] The amount of the garnishment. Either a percentage or a fixed dollar amount.
191
+ # Represented as a float, e.g. "8.00".
192
+ # @param description [String] The description of the garnishment.
193
+ # @param court_ordered [Boolean] Whether the garnishment is court ordered.
194
+ # @param times [Integer] The number of times to apply the garnishment. Ignored if recurring is true.
195
+ # @param recurring [Boolean] Whether the garnishment should recur indefinitely.
196
+ # @param annual_maximum [String] The maximum deduction per annum. A null value indicates no maximum. Represented
197
+ # as a float, e.g. "200.00".
198
+ # @param pay_period_maximum [String] The maximum deduction per pay period. A null value indicates no maximum.
199
+ # Represented as a float, e.g. "16.00".
200
+ # @param deduct_as_percentage [Boolean] Whether the amount should be treated as a percentage to be deducted per pay
201
+ # period.
202
+ # @param total_amount [String] A maximum total deduction for the lifetime of this garnishment. A null value
203
+ # indicates no maximum.
204
+ # @param child_support [Hash] Request of type Gusto::GarnishmentChildSupport, as a Hash
205
+ # * :state (String)
206
+ # * :payment_period (Gusto::GarnishmentChildSupportPaymentPeriod)
207
+ # * :fips_code (String)
208
+ # * :case_number (String)
209
+ # * :order_number (String)
210
+ # * :remittance_number (String)
211
+ # @param version [String] The current version of the object. See the [versioning
212
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
213
+ # information on how to use this field.
214
+ # @param request_options [Gusto::RequestOptions]
215
+ # @return [Gusto::Garnishment]
216
+ # @example
217
+ # api = Gusto::Client.new(
218
+ # base_url: "https://api.example.com",
219
+ # environment: Gusto::Environment::DEMO,
220
+ # token: "YOUR_AUTH_TOKEN"
221
+ # )
222
+ # api.employees.garnishments.update(
223
+ # garnishment_id: "garnishment_id",
224
+ # active: false,
225
+ # version: "52b7c567242cb7452e89ba2bc02cb476"
226
+ # )
227
+ def update(garnishment_id:, active: nil, amount: nil, description: nil, court_ordered: nil, times: nil, recurring: nil, annual_maximum: nil, pay_period_maximum: nil, deduct_as_percentage: nil, total_amount: nil, child_support: nil, version:, request_options: nil)
228
+ response = @request_client.conn.put do | req |
229
+ unless request_options&.timeout_in_seconds.nil?
230
+ req.options.timeout = request_options.timeout_in_seconds
231
+ end
232
+ unless request_options&.token.nil?
233
+ req.headers["Authorization"] = request_options.token
234
+ end
235
+ unless request_options&.gusto_api_version.nil?
236
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
237
+ end
238
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
239
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
240
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
241
+ end
242
+ req.body = { **(request_options&.additional_body_parameters || {}), active: active, amount: amount, description: description, court_ordered: court_ordered, times: times, recurring: recurring, annual_maximum: annual_maximum, pay_period_maximum: pay_period_maximum, deduct_as_percentage: deduct_as_percentage, total_amount: total_amount, child_support: child_support, version: version }.compact
243
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/garnishments/#{garnishment_id}"
244
+ end
245
+ Gusto::Garnishment.from_json(json_object: response.body)
246
+ end
247
+ # Agency data and requirements to be used for creating child support garnishments
248
+ # scope: `garnishments:read`
249
+ #
250
+ # @param request_options [Gusto::RequestOptions]
251
+ # @return [Gusto::ChildSupportData]
252
+ # @example
253
+ # api = Gusto::Client.new(
254
+ # base_url: "https://api.example.com",
255
+ # environment: Gusto::Environment::DEMO,
256
+ # token: "YOUR_AUTH_TOKEN"
257
+ # )
258
+ # api.employees.garnishments.list_child_support
259
+ def list_child_support(request_options: nil)
260
+ response = @request_client.conn.get do | req |
261
+ unless request_options&.timeout_in_seconds.nil?
262
+ req.options.timeout = request_options.timeout_in_seconds
263
+ end
264
+ unless request_options&.token.nil?
265
+ req.headers["Authorization"] = request_options.token
266
+ end
267
+ unless request_options&.gusto_api_version.nil?
268
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
269
+ end
270
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
271
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
272
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
273
+ end
274
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
275
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
276
+ end
277
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/garnishments/child_support"
278
+ end
279
+ Gusto::ChildSupportData.from_json(json_object: response.body)
280
+ end
281
+ end
282
+ class AsyncGarnishmentsClient
283
+ # @return [Gusto::AsyncRequestClient]
284
+ attr_reader :request_client
285
+
286
+
287
+ # @param request_client [Gusto::RequestClient]
288
+ # @return [Gusto::Employees::AsyncGarnishmentsClient]
289
+ def initialize(request_client:)
290
+ @request_client = request_client
291
+ end
292
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
293
+ # from an employee’s pay. They can be deducted a specific number of times or on a
294
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
295
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
296
+ # for child support or back taxes. Some companies provide loans to their employees
297
+ # that are repaid via garnishments.
298
+ # scope: `garnishments:read`
299
+ #
300
+ # @param employee_id [String] The UUID of the employee
301
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
302
+ # endpoint forces pagination.
303
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
304
+ # @param request_options [Gusto::RequestOptions]
305
+ # @return [Array<Gusto::Garnishment>]
306
+ # @example
307
+ # api = Gusto::Client.new(
308
+ # base_url: "https://api.example.com",
309
+ # environment: Gusto::Environment::DEMO,
310
+ # token: "YOUR_AUTH_TOKEN"
311
+ # )
312
+ # api.employees.garnishments.list(employee_id: "employee_id")
313
+ def list(employee_id:, page: nil, per: nil, request_options: nil)
314
+ Async do
315
+ response = @request_client.conn.get do | req |
316
+ unless request_options&.timeout_in_seconds.nil?
317
+ req.options.timeout = request_options.timeout_in_seconds
318
+ end
319
+ unless request_options&.token.nil?
320
+ req.headers["Authorization"] = request_options.token
321
+ end
322
+ unless request_options&.gusto_api_version.nil?
323
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
324
+ end
325
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
326
+ req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
327
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
328
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
329
+ end
330
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/garnishments"
331
+ end
332
+ parsed_json = JSON.parse(response.body)
333
+ parsed_json&.map do | item |
334
+ item = item.to_json
335
+ Gusto::Garnishment.from_json(json_object: item)
336
+ end
337
+ end
338
+ end
339
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
340
+ # from an employee’s pay. They can be deducted a specific number of times or on a
341
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
342
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
343
+ # for child support or back taxes. Some companies provide loans to their employees
344
+ # that are repaid via garnishments.
345
+ # scope: `garnishments:write`
346
+ #
347
+ # @param employee_id [String] The UUID of the employee
348
+ # @param active [Boolean] Whether or not this garnishment is currently active.
349
+ # @param amount [String] The amount of the garnishment. Either a percentage or a fixed dollar amount.
350
+ # Represented as a float, e.g. "8.00".
351
+ # @param description [String] The description of the garnishment.
352
+ # @param court_ordered [Boolean] Whether the garnishment is court ordered.
353
+ # @param garnishment_type [Gusto::Employees::Garnishments::GarnishmentsCreateRequestGarnishmentType] The specific type of garnishment for court ordered garnishments.
354
+ # @param times [Integer] The number of times to apply the garnishment. Ignored if recurring is true.
355
+ # @param recurring [Boolean] Whether the garnishment should recur indefinitely.
356
+ # @param annual_maximum [String] The maximum deduction per annum. A null value indicates no maximum. Represented
357
+ # as a float, e.g. "200.00".
358
+ # @param pay_period_maximum [String] The maximum deduction per pay period. A null value indicates no maximum.
359
+ # Represented as a float, e.g. "16.00".
360
+ # @param deduct_as_percentage [Boolean] Whether the amount should be treated as a percentage to be deducted per pay
361
+ # period.
362
+ # @param total_amount [String] A maximum total deduction for the lifetime of this garnishment. A null value
363
+ # indicates no maximum.
364
+ # @param child_support [Hash] Request of type Gusto::GarnishmentChildSupport, as a Hash
365
+ # * :state (String)
366
+ # * :payment_period (Gusto::GarnishmentChildSupportPaymentPeriod)
367
+ # * :fips_code (String)
368
+ # * :case_number (String)
369
+ # * :order_number (String)
370
+ # * :remittance_number (String)
371
+ # @param request_options [Gusto::RequestOptions]
372
+ # @return [Gusto::Garnishment]
373
+ # @example
374
+ # api = Gusto::Client.new(
375
+ # base_url: "https://api.example.com",
376
+ # environment: Gusto::Environment::DEMO,
377
+ # token: "YOUR_AUTH_TOKEN"
378
+ # )
379
+ # api.employees.garnishments.create(
380
+ # employee_id: "employee_id",
381
+ # amount: "150.00",
382
+ # description: "Back taxes",
383
+ # court_ordered: true,
384
+ # recurring: true,
385
+ # deduct_as_percentage: false
386
+ # )
387
+ def create(employee_id:, active: nil, amount:, description: nil, court_ordered:, garnishment_type: nil, times: nil, recurring: nil, annual_maximum: nil, pay_period_maximum: nil, deduct_as_percentage: nil, total_amount: nil, child_support: nil, request_options: nil)
388
+ Async do
389
+ response = @request_client.conn.post do | req |
390
+ unless request_options&.timeout_in_seconds.nil?
391
+ req.options.timeout = request_options.timeout_in_seconds
392
+ end
393
+ unless request_options&.token.nil?
394
+ req.headers["Authorization"] = request_options.token
395
+ end
396
+ unless request_options&.gusto_api_version.nil?
397
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
398
+ end
399
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
400
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
401
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
402
+ end
403
+ req.body = { **(request_options&.additional_body_parameters || {}), active: active, amount: amount, description: description, court_ordered: court_ordered, garnishment_type: garnishment_type, times: times, recurring: recurring, annual_maximum: annual_maximum, pay_period_maximum: pay_period_maximum, deduct_as_percentage: deduct_as_percentage, total_amount: total_amount, child_support: child_support }.compact
404
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/garnishments"
405
+ end
406
+ Gusto::Garnishment.from_json(json_object: response.body)
407
+ end
408
+ end
409
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
410
+ # from an employee’s pay. They can be deducted a specific number of times or on a
411
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
412
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
413
+ # for child support or back taxes. Some companies provide loans to their employees
414
+ # that are repaid via garnishments.
415
+ # scope: `garnishments:read`
416
+ #
417
+ # @param garnishment_id [String] The UUID of the garnishment
418
+ # @param request_options [Gusto::RequestOptions]
419
+ # @return [Gusto::Garnishment]
420
+ # @example
421
+ # api = Gusto::Client.new(
422
+ # base_url: "https://api.example.com",
423
+ # environment: Gusto::Environment::DEMO,
424
+ # token: "YOUR_AUTH_TOKEN"
425
+ # )
426
+ # api.employees.garnishments.get(garnishment_id: "garnishment_id")
427
+ def get(garnishment_id:, request_options: nil)
428
+ Async do
429
+ response = @request_client.conn.get do | req |
430
+ unless request_options&.timeout_in_seconds.nil?
431
+ req.options.timeout = request_options.timeout_in_seconds
432
+ end
433
+ unless request_options&.token.nil?
434
+ req.headers["Authorization"] = request_options.token
435
+ end
436
+ unless request_options&.gusto_api_version.nil?
437
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
438
+ end
439
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
440
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
441
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
442
+ end
443
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
444
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
445
+ end
446
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/garnishments/#{garnishment_id}"
447
+ end
448
+ Gusto::Garnishment.from_json(json_object: response.body)
449
+ end
450
+ end
451
+ # Garnishments, or employee deductions, are fixed amounts or percentages deducted
452
+ # from an employee’s pay. They can be deducted a specific number of times or on a
453
+ # recurring basis. Garnishments can also have maximum deductions on a yearly or
454
+ # per-pay-period bases. Common uses for garnishments are court-ordered payments
455
+ # for child support or back taxes. Some companies provide loans to their employees
456
+ # that are repaid via garnishments.
457
+ # scope: `garnishments:write`
458
+ #
459
+ # @param garnishment_id [String] The UUID of the garnishment
460
+ # @param active [Boolean] Whether or not this garnishment is currently active.
461
+ # @param amount [String] The amount of the garnishment. Either a percentage or a fixed dollar amount.
462
+ # Represented as a float, e.g. "8.00".
463
+ # @param description [String] The description of the garnishment.
464
+ # @param court_ordered [Boolean] Whether the garnishment is court ordered.
465
+ # @param times [Integer] The number of times to apply the garnishment. Ignored if recurring is true.
466
+ # @param recurring [Boolean] Whether the garnishment should recur indefinitely.
467
+ # @param annual_maximum [String] The maximum deduction per annum. A null value indicates no maximum. Represented
468
+ # as a float, e.g. "200.00".
469
+ # @param pay_period_maximum [String] The maximum deduction per pay period. A null value indicates no maximum.
470
+ # Represented as a float, e.g. "16.00".
471
+ # @param deduct_as_percentage [Boolean] Whether the amount should be treated as a percentage to be deducted per pay
472
+ # period.
473
+ # @param total_amount [String] A maximum total deduction for the lifetime of this garnishment. A null value
474
+ # indicates no maximum.
475
+ # @param child_support [Hash] Request of type Gusto::GarnishmentChildSupport, as a Hash
476
+ # * :state (String)
477
+ # * :payment_period (Gusto::GarnishmentChildSupportPaymentPeriod)
478
+ # * :fips_code (String)
479
+ # * :case_number (String)
480
+ # * :order_number (String)
481
+ # * :remittance_number (String)
482
+ # @param version [String] The current version of the object. See the [versioning
483
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
484
+ # information on how to use this field.
485
+ # @param request_options [Gusto::RequestOptions]
486
+ # @return [Gusto::Garnishment]
487
+ # @example
488
+ # api = Gusto::Client.new(
489
+ # base_url: "https://api.example.com",
490
+ # environment: Gusto::Environment::DEMO,
491
+ # token: "YOUR_AUTH_TOKEN"
492
+ # )
493
+ # api.employees.garnishments.update(
494
+ # garnishment_id: "garnishment_id",
495
+ # active: false,
496
+ # version: "52b7c567242cb7452e89ba2bc02cb476"
497
+ # )
498
+ def update(garnishment_id:, active: nil, amount: nil, description: nil, court_ordered: nil, times: nil, recurring: nil, annual_maximum: nil, pay_period_maximum: nil, deduct_as_percentage: nil, total_amount: nil, child_support: nil, version:, request_options: nil)
499
+ Async do
500
+ response = @request_client.conn.put do | req |
501
+ unless request_options&.timeout_in_seconds.nil?
502
+ req.options.timeout = request_options.timeout_in_seconds
503
+ end
504
+ unless request_options&.token.nil?
505
+ req.headers["Authorization"] = request_options.token
506
+ end
507
+ unless request_options&.gusto_api_version.nil?
508
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
509
+ end
510
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
511
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
512
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
513
+ end
514
+ req.body = { **(request_options&.additional_body_parameters || {}), active: active, amount: amount, description: description, court_ordered: court_ordered, times: times, recurring: recurring, annual_maximum: annual_maximum, pay_period_maximum: pay_period_maximum, deduct_as_percentage: deduct_as_percentage, total_amount: total_amount, child_support: child_support, version: version }.compact
515
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/garnishments/#{garnishment_id}"
516
+ end
517
+ Gusto::Garnishment.from_json(json_object: response.body)
518
+ end
519
+ end
520
+ # Agency data and requirements to be used for creating child support garnishments
521
+ # scope: `garnishments:read`
522
+ #
523
+ # @param request_options [Gusto::RequestOptions]
524
+ # @return [Gusto::ChildSupportData]
525
+ # @example
526
+ # api = Gusto::Client.new(
527
+ # base_url: "https://api.example.com",
528
+ # environment: Gusto::Environment::DEMO,
529
+ # token: "YOUR_AUTH_TOKEN"
530
+ # )
531
+ # api.employees.garnishments.list_child_support
532
+ def list_child_support(request_options: nil)
533
+ Async do
534
+ response = @request_client.conn.get do | req |
535
+ unless request_options&.timeout_in_seconds.nil?
536
+ req.options.timeout = request_options.timeout_in_seconds
537
+ end
538
+ unless request_options&.token.nil?
539
+ req.headers["Authorization"] = request_options.token
540
+ end
541
+ unless request_options&.gusto_api_version.nil?
542
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
543
+ end
544
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
545
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
546
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
547
+ end
548
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
549
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
550
+ end
551
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/garnishments/child_support"
552
+ end
553
+ Gusto::ChildSupportData.from_json(json_object: response.body)
554
+ end
555
+ end
556
+ end
557
+ end
558
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module Garnishments
6
+ # The specific type of garnishment for court ordered garnishments.
7
+ class GarnishmentsCreateRequestGarnishmentType
8
+
9
+ CHILD_SUPPORT = "child_support"
10
+ FEDERAL_TAX_LIEN = "federal_tax_lien"
11
+ STATE_TAX_LIEN = "state_tax_lien"
12
+ STUDENT_LOAN = "student_loan"
13
+ CREDITOR_GARNISHMENT = "creditor_garnishment"
14
+ FEDERAL_LOAN = "federal_loan"
15
+ OTHER_GARNISHMENT = "other_garnishment"
16
+
17
+ end
18
+ end
19
+ end
20
+ end