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,656 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../types/employee_benefit"
4
+ require "json"
5
+ require_relative "types/benefits_create_request_contribution"
6
+ require_relative "types/benefits_create_request_deduction_reduces_taxable_income"
7
+ require_relative "types/benefits_update_request_contribution"
8
+ require_relative "types/benefits_update_request_deduction_reduces_taxable_income"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require "async"
15
+ require_relative "../../../requests"
16
+
17
+ module Gusto
18
+ module Employees
19
+ class BenefitsClient
20
+ # @return [Gusto::RequestClient]
21
+ attr_reader :request_client
22
+
23
+
24
+ # @param request_client [Gusto::RequestClient]
25
+ # @return [Gusto::Employees::BenefitsClient]
26
+ def initialize(request_client:)
27
+ @request_client = request_client
28
+ end
29
+ # Employee benefits represent an employee enrolled in a particular company
30
+ # benefit. It includes information specific to that employee’s enrollment.
31
+ # Returns an array of all employee benefits for this employee
32
+ # Benefits containing PHI are only visible to applications with the
33
+ # `employee_benefits:read:phi` scope.
34
+ # scope: `employee_benefits:read`
35
+ #
36
+ # @param employee_id [String] The UUID of the employee
37
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
38
+ # endpoint forces pagination.
39
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
40
+ # @param request_options [Gusto::RequestOptions]
41
+ # @return [Array<Gusto::EmployeeBenefit>]
42
+ # @example
43
+ # api = Gusto::Client.new(
44
+ # base_url: "https://api.example.com",
45
+ # environment: Gusto::Environment::DEMO,
46
+ # token: "YOUR_AUTH_TOKEN"
47
+ # )
48
+ # api.employees.benefits.list(employee_id: "employee_id")
49
+ def list(employee_id:, page: nil, per: nil, request_options: nil)
50
+ response = @request_client.conn.get do | req |
51
+ unless request_options&.timeout_in_seconds.nil?
52
+ req.options.timeout = request_options.timeout_in_seconds
53
+ end
54
+ unless request_options&.token.nil?
55
+ req.headers["Authorization"] = request_options.token
56
+ end
57
+ unless request_options&.gusto_api_version.nil?
58
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
59
+ end
60
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
61
+ req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
62
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
63
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
64
+ end
65
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
66
+ end
67
+ parsed_json = JSON.parse(response.body)
68
+ parsed_json&.map do | item |
69
+ item = item.to_json
70
+ Gusto::EmployeeBenefit.from_json(json_object: item)
71
+ end
72
+ end
73
+ # Employee benefits represent an employee enrolled in a particular company
74
+ # benefit. It includes information specific to that employee’s enrollment.
75
+ # scope: `employee_benefits:write`
76
+ #
77
+ # @param employee_id [String] The UUID of the employee
78
+ # @param company_benefit_uuid [String] The UUID of the company benefit.
79
+ # @param active [Boolean] Whether the employee benefit is active.
80
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
81
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
82
+ # deducted from each payroll.
83
+ # @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
84
+ # @param contribution [Hash] An object representing the company contribution type and value.Request of type Gusto::Employees::Benefits::BenefitsCreateRequestContribution, as a Hash
85
+ # * :type (Gusto::Employees::Benefits::BenefitsCreateRequestContributionType)
86
+ # * :value (Hash)
87
+ # @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
88
+ # `elective_amount`, and `elective_percentage` contribution types this is ignored
89
+ # and assumed to be `true`.
90
+ # @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
91
+ # limit.
92
+ # @param limit_option [String] Some benefits require additional information to determine their limit. For
93
+ # example, for an HSA benefit, the limit option should be either "Family" or
94
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
95
+ # either "Joint Filing or Single" or "Married and Filing Separately".
96
+ # @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
97
+ # 401k benefits use this value for employees over 50.
98
+ # @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
99
+ # be present if coverage amount is set.
100
+ # @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
101
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
102
+ # @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsCreateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
103
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
104
+ # and coverage salary multiplier are ignored.
105
+ # @param company_contribution [String] The amount to be paid, per pay period, by the company.
106
+ # @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
107
+ # deducted from each payroll.
108
+ # @param request_options [Gusto::RequestOptions]
109
+ # @return [Gusto::EmployeeBenefit]
110
+ # @example
111
+ # api = Gusto::Client.new(
112
+ # base_url: "https://api.example.com",
113
+ # environment: Gusto::Environment::DEMO,
114
+ # token: "YOUR_AUTH_TOKEN"
115
+ # )
116
+ # api.employees.benefits.create(
117
+ # employee_id: "employee_id",
118
+ # company_benefit_uuid: "f68abb42-431e-4392-bc3f-2795627e00f3",
119
+ # active: true,
120
+ # employee_deduction: "100.00",
121
+ # contribution: { type: AMOUNT, value: "100.00" }
122
+ # )
123
+ def create(employee_id:, company_benefit_uuid:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, coverage_salary_multiplier: nil, deduction_reduces_taxable_income: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
124
+ response = @request_client.conn.post do | req |
125
+ unless request_options&.timeout_in_seconds.nil?
126
+ req.options.timeout = request_options.timeout_in_seconds
127
+ end
128
+ unless request_options&.token.nil?
129
+ req.headers["Authorization"] = request_options.token
130
+ end
131
+ unless request_options&.gusto_api_version.nil?
132
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
133
+ end
134
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
135
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
136
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
137
+ end
138
+ req.body = { **(request_options&.additional_body_parameters || {}), company_benefit_uuid: company_benefit_uuid, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, coverage_salary_multiplier: coverage_salary_multiplier, deduction_reduces_taxable_income: deduction_reduces_taxable_income, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
139
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
140
+ end
141
+ Gusto::EmployeeBenefit.from_json(json_object: response.body)
142
+ end
143
+ # Employee benefits represent an employee enrolled in a particular company
144
+ # benefit. It includes information specific to that employee’s enrollment.
145
+ # Benefits containing PHI are only visible to applications with the
146
+ # `employee_benefits:read:phi` scope.
147
+ # scope: `employee_benefits:read`
148
+ #
149
+ # @param employee_benefit_id [String] The UUID of the employee benefit.
150
+ # @param request_options [Gusto::RequestOptions]
151
+ # @return [Gusto::EmployeeBenefit]
152
+ # @example
153
+ # api = Gusto::Client.new(
154
+ # base_url: "https://api.example.com",
155
+ # environment: Gusto::Environment::DEMO,
156
+ # token: "YOUR_AUTH_TOKEN"
157
+ # )
158
+ # api.employees.benefits.get(employee_benefit_id: "employee_benefit_id")
159
+ def get(employee_benefit_id:, request_options: nil)
160
+ response = @request_client.conn.get do | req |
161
+ unless request_options&.timeout_in_seconds.nil?
162
+ req.options.timeout = request_options.timeout_in_seconds
163
+ end
164
+ unless request_options&.token.nil?
165
+ req.headers["Authorization"] = request_options.token
166
+ end
167
+ unless request_options&.gusto_api_version.nil?
168
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
169
+ end
170
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
171
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
172
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
173
+ end
174
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
175
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
176
+ end
177
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
178
+ end
179
+ Gusto::EmployeeBenefit.from_json(json_object: response.body)
180
+ end
181
+ # Employee benefits represent an employee enrolled in a particular company
182
+ # benefit. It includes information specific to that employee’s enrollment.
183
+ # scope: `employee_benefits:write`
184
+ #
185
+ # @param employee_benefit_id [String] The UUID of the employee benefit.
186
+ # @param version [String] The current version of the object. See the [versioning
187
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
188
+ # information on how to use this field.
189
+ # @param active [Boolean] Whether the employee benefit is active.
190
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
191
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
192
+ # deducted from each payroll.
193
+ # @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
194
+ # @param contribution [Hash] An object representing the type and value of the company contribution.Request of type Gusto::Employees::Benefits::BenefitsUpdateRequestContribution, as a Hash
195
+ # * :type (Gusto::Employees::Benefits::BenefitsUpdateRequestContributionType)
196
+ # * :value (Hash)
197
+ # @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
198
+ # `elective_amount`, and `elective_percentage` contribution types this is ignored
199
+ # and assumed to be `true`.
200
+ # @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
201
+ # limit.
202
+ # @param limit_option [String] Some benefits require additional information to determine their limit. For
203
+ # example, for an HSA benefit, the limit option should be either "Family" or
204
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
205
+ # either "Joint Filing or Single" or "Married and Filing Separately".
206
+ # @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
207
+ # 401k benefits use this value for employees over 50.
208
+ # @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
209
+ # be present if coverage amount is set.
210
+ # @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsUpdateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
211
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
212
+ # and coverage salary multiplier are ignored.
213
+ # @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
214
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
215
+ # @param company_contribution [String] The amount to be paid, per pay period, by the company.
216
+ # @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
217
+ # deducted from each payroll.
218
+ # @param request_options [Gusto::RequestOptions]
219
+ # @return [Gusto::EmployeeBenefit]
220
+ # @example
221
+ # api = Gusto::Client.new(
222
+ # base_url: "https://api.example.com",
223
+ # environment: Gusto::Environment::DEMO,
224
+ # token: "YOUR_AUTH_TOKEN"
225
+ # )
226
+ # api.employees.benefits.update(
227
+ # employee_benefit_id: "employee_benefit_id",
228
+ # version: "09j3d29jqdpj92109j9j2d90dq",
229
+ # employee_deduction: "250.00"
230
+ # )
231
+ def update(employee_benefit_id:, version:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, deduction_reduces_taxable_income: nil, coverage_salary_multiplier: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
232
+ response = @request_client.conn.put do | req |
233
+ unless request_options&.timeout_in_seconds.nil?
234
+ req.options.timeout = request_options.timeout_in_seconds
235
+ end
236
+ unless request_options&.token.nil?
237
+ req.headers["Authorization"] = request_options.token
238
+ end
239
+ unless request_options&.gusto_api_version.nil?
240
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
241
+ end
242
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
243
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
244
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
245
+ end
246
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, deduction_reduces_taxable_income: deduction_reduces_taxable_income, coverage_salary_multiplier: coverage_salary_multiplier, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
247
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
248
+ end
249
+ Gusto::EmployeeBenefit.from_json(json_object: response.body)
250
+ end
251
+ # Employee benefits represent an employee enrolled in a particular company
252
+ # benefit. It includes information specific to that employee’s enrollment.
253
+ # scope: `employee_benefits:write`
254
+ #
255
+ # @param employee_benefit_id [String] The UUID of the employee benefit.
256
+ # @param request_options [Gusto::RequestOptions]
257
+ # @return [Void]
258
+ # @example
259
+ # api = Gusto::Client.new(
260
+ # base_url: "https://api.example.com",
261
+ # environment: Gusto::Environment::DEMO,
262
+ # token: "YOUR_AUTH_TOKEN"
263
+ # )
264
+ # api.employees.benefits.delete(employee_benefit_id: "employee_benefit_id")
265
+ def delete(employee_benefit_id:, request_options: nil)
266
+ response = @request_client.conn.delete do | req |
267
+ unless request_options&.timeout_in_seconds.nil?
268
+ req.options.timeout = request_options.timeout_in_seconds
269
+ end
270
+ unless request_options&.token.nil?
271
+ req.headers["Authorization"] = request_options.token
272
+ end
273
+ unless request_options&.gusto_api_version.nil?
274
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
275
+ end
276
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
277
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
278
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
279
+ end
280
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
281
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
282
+ end
283
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
284
+ end
285
+ end
286
+ # Year-to-date benefit amounts from a different company represents the amount of
287
+ # money added to an employee's plan during a current year, made outside of the
288
+ # current contribution when they were employed at a different company.
289
+ # This endpoint only supports passing outside contributions for 401(k) benefits.
290
+ # scope: `employee_benefits:write`
291
+ #
292
+ # @param employee_id [String] The UUID of the employee
293
+ # @param benefit_type [Float] The benefit type supported by Gusto.
294
+ # @param tax_year [Float] The tax year for which this amount applies.
295
+ # @param ytd_employee_deduction_amount [String] The year-to-date employee deduction made outside the current company.
296
+ # @param ytd_company_contribution_amount [String] The year-to-date company contribution made outside the current company.
297
+ # @param request_options [Gusto::RequestOptions]
298
+ # @return [Void]
299
+ # @example
300
+ # api = Gusto::Client.new(
301
+ # base_url: "https://api.example.com",
302
+ # environment: Gusto::Environment::DEMO,
303
+ # token: "YOUR_AUTH_TOKEN"
304
+ # )
305
+ # api.employees.benefits.add_ytd_benefit_amounts(
306
+ # employee_id: "employee_id",
307
+ # tax_year: 1.1,
308
+ # ytd_employee_deduction_amount: "ytd_employee_deduction_amount",
309
+ # ytd_company_contribution_amount: "ytd_company_contribution_amount"
310
+ # )
311
+ def add_ytd_benefit_amounts(employee_id:, benefit_type: nil, tax_year:, ytd_employee_deduction_amount:, ytd_company_contribution_amount:, request_options: nil)
312
+ response = @request_client.conn.post do | req |
313
+ unless request_options&.timeout_in_seconds.nil?
314
+ req.options.timeout = request_options.timeout_in_seconds
315
+ end
316
+ unless request_options&.token.nil?
317
+ req.headers["Authorization"] = request_options.token
318
+ end
319
+ unless request_options&.gusto_api_version.nil?
320
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
321
+ end
322
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
323
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
324
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
325
+ end
326
+ req.body = { **(request_options&.additional_body_parameters || {}), benefit_type: benefit_type, tax_year: tax_year, ytd_employee_deduction_amount: ytd_employee_deduction_amount, ytd_company_contribution_amount: ytd_company_contribution_amount }.compact
327
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/ytd_benefit_amounts_from_different_company"
328
+ end
329
+ end
330
+ end
331
+ class AsyncBenefitsClient
332
+ # @return [Gusto::AsyncRequestClient]
333
+ attr_reader :request_client
334
+
335
+
336
+ # @param request_client [Gusto::RequestClient]
337
+ # @return [Gusto::Employees::AsyncBenefitsClient]
338
+ def initialize(request_client:)
339
+ @request_client = request_client
340
+ end
341
+ # Employee benefits represent an employee enrolled in a particular company
342
+ # benefit. It includes information specific to that employee’s enrollment.
343
+ # Returns an array of all employee benefits for this employee
344
+ # Benefits containing PHI are only visible to applications with the
345
+ # `employee_benefits:read:phi` scope.
346
+ # scope: `employee_benefits:read`
347
+ #
348
+ # @param employee_id [String] The UUID of the employee
349
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
350
+ # endpoint forces pagination.
351
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
352
+ # @param request_options [Gusto::RequestOptions]
353
+ # @return [Array<Gusto::EmployeeBenefit>]
354
+ # @example
355
+ # api = Gusto::Client.new(
356
+ # base_url: "https://api.example.com",
357
+ # environment: Gusto::Environment::DEMO,
358
+ # token: "YOUR_AUTH_TOKEN"
359
+ # )
360
+ # api.employees.benefits.list(employee_id: "employee_id")
361
+ def list(employee_id:, page: nil, per: nil, request_options: nil)
362
+ Async do
363
+ response = @request_client.conn.get 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
+ req.params = { **(request_options&.additional_query_parameters || {}), "page": page, "per": per }.compact
375
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
376
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
377
+ end
378
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
379
+ end
380
+ parsed_json = JSON.parse(response.body)
381
+ parsed_json&.map do | item |
382
+ item = item.to_json
383
+ Gusto::EmployeeBenefit.from_json(json_object: item)
384
+ end
385
+ end
386
+ end
387
+ # Employee benefits represent an employee enrolled in a particular company
388
+ # benefit. It includes information specific to that employee’s enrollment.
389
+ # scope: `employee_benefits:write`
390
+ #
391
+ # @param employee_id [String] The UUID of the employee
392
+ # @param company_benefit_uuid [String] The UUID of the company benefit.
393
+ # @param active [Boolean] Whether the employee benefit is active.
394
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
395
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
396
+ # deducted from each payroll.
397
+ # @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
398
+ # @param contribution [Hash] An object representing the company contribution type and value.Request of type Gusto::Employees::Benefits::BenefitsCreateRequestContribution, as a Hash
399
+ # * :type (Gusto::Employees::Benefits::BenefitsCreateRequestContributionType)
400
+ # * :value (Hash)
401
+ # @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
402
+ # `elective_amount`, and `elective_percentage` contribution types this is ignored
403
+ # and assumed to be `true`.
404
+ # @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
405
+ # limit.
406
+ # @param limit_option [String] Some benefits require additional information to determine their limit. For
407
+ # example, for an HSA benefit, the limit option should be either "Family" or
408
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
409
+ # either "Joint Filing or Single" or "Married and Filing Separately".
410
+ # @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
411
+ # 401k benefits use this value for employees over 50.
412
+ # @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
413
+ # be present if coverage amount is set.
414
+ # @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
415
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
416
+ # @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsCreateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
417
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
418
+ # and coverage salary multiplier are ignored.
419
+ # @param company_contribution [String] The amount to be paid, per pay period, by the company.
420
+ # @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
421
+ # deducted from each payroll.
422
+ # @param request_options [Gusto::RequestOptions]
423
+ # @return [Gusto::EmployeeBenefit]
424
+ # @example
425
+ # api = Gusto::Client.new(
426
+ # base_url: "https://api.example.com",
427
+ # environment: Gusto::Environment::DEMO,
428
+ # token: "YOUR_AUTH_TOKEN"
429
+ # )
430
+ # api.employees.benefits.create(
431
+ # employee_id: "employee_id",
432
+ # company_benefit_uuid: "f68abb42-431e-4392-bc3f-2795627e00f3",
433
+ # active: true,
434
+ # employee_deduction: "100.00",
435
+ # contribution: { type: AMOUNT, value: "100.00" }
436
+ # )
437
+ def create(employee_id:, company_benefit_uuid:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, coverage_salary_multiplier: nil, deduction_reduces_taxable_income: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
438
+ Async do
439
+ response = @request_client.conn.post do | req |
440
+ unless request_options&.timeout_in_seconds.nil?
441
+ req.options.timeout = request_options.timeout_in_seconds
442
+ end
443
+ unless request_options&.token.nil?
444
+ req.headers["Authorization"] = request_options.token
445
+ end
446
+ unless request_options&.gusto_api_version.nil?
447
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
448
+ end
449
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
450
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
451
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
452
+ end
453
+ req.body = { **(request_options&.additional_body_parameters || {}), company_benefit_uuid: company_benefit_uuid, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, coverage_salary_multiplier: coverage_salary_multiplier, deduction_reduces_taxable_income: deduction_reduces_taxable_income, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
454
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/employee_benefits"
455
+ end
456
+ Gusto::EmployeeBenefit.from_json(json_object: response.body)
457
+ end
458
+ end
459
+ # Employee benefits represent an employee enrolled in a particular company
460
+ # benefit. It includes information specific to that employee’s enrollment.
461
+ # Benefits containing PHI are only visible to applications with the
462
+ # `employee_benefits:read:phi` scope.
463
+ # scope: `employee_benefits:read`
464
+ #
465
+ # @param employee_benefit_id [String] The UUID of the employee benefit.
466
+ # @param request_options [Gusto::RequestOptions]
467
+ # @return [Gusto::EmployeeBenefit]
468
+ # @example
469
+ # api = Gusto::Client.new(
470
+ # base_url: "https://api.example.com",
471
+ # environment: Gusto::Environment::DEMO,
472
+ # token: "YOUR_AUTH_TOKEN"
473
+ # )
474
+ # api.employees.benefits.get(employee_benefit_id: "employee_benefit_id")
475
+ def get(employee_benefit_id:, request_options: nil)
476
+ Async do
477
+ response = @request_client.conn.get do | req |
478
+ unless request_options&.timeout_in_seconds.nil?
479
+ req.options.timeout = request_options.timeout_in_seconds
480
+ end
481
+ unless request_options&.token.nil?
482
+ req.headers["Authorization"] = request_options.token
483
+ end
484
+ unless request_options&.gusto_api_version.nil?
485
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
486
+ end
487
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
488
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
489
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
490
+ end
491
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
492
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
493
+ end
494
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
495
+ end
496
+ Gusto::EmployeeBenefit.from_json(json_object: response.body)
497
+ end
498
+ end
499
+ # Employee benefits represent an employee enrolled in a particular company
500
+ # benefit. It includes information specific to that employee’s enrollment.
501
+ # scope: `employee_benefits:write`
502
+ #
503
+ # @param employee_benefit_id [String] The UUID of the employee benefit.
504
+ # @param version [String] The current version of the object. See the [versioning
505
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
506
+ # information on how to use this field.
507
+ # @param active [Boolean] Whether the employee benefit is active.
508
+ # @param employee_deduction [String] The amount to be deducted, per pay period, from the employee's pay.
509
+ # @param deduct_as_percentage [Boolean] Whether the employee deduction amount should be treated as a percentage to be
510
+ # deducted from each payroll.
511
+ # @param employee_deduction_annual_maximum [String] The maximum employee deduction amount per year. A null value signifies no limit.
512
+ # @param contribution [Hash] An object representing the type and value of the company contribution.Request of type Gusto::Employees::Benefits::BenefitsUpdateRequestContribution, as a Hash
513
+ # * :type (Gusto::Employees::Benefits::BenefitsUpdateRequestContributionType)
514
+ # * :value (Hash)
515
+ # @param elective [Boolean] Whether the company contribution is elective (aka "matching"). For `tiered`,
516
+ # `elective_amount`, and `elective_percentage` contribution types this is ignored
517
+ # and assumed to be `true`.
518
+ # @param company_contribution_annual_maximum [String] The maximum company contribution amount per year. A null value signifies no
519
+ # limit.
520
+ # @param limit_option [String] Some benefits require additional information to determine their limit. For
521
+ # example, for an HSA benefit, the limit option should be either "Family" or
522
+ # "Individual". For a Dependent Care FSA benefit, the limit option should be
523
+ # either "Joint Filing or Single" or "Married and Filing Separately".
524
+ # @param catch_up [Boolean] Whether the employee should use a benefit’s "catch up" rate. Only Roth 401k and
525
+ # 401k benefits use this value for employees over 50.
526
+ # @param coverage_amount [String] The amount that the employee is insured for. Note: company contribution cannot
527
+ # be present if coverage amount is set.
528
+ # @param deduction_reduces_taxable_income [Gusto::Employees::Benefits::BenefitsUpdateRequestDeductionReducesTaxableIncome] Whether the employee deduction reduces taxable income or not. Only valid for
529
+ # Group Term Life benefits. Note: when the value is not "unset", coverage amount
530
+ # and coverage salary multiplier are ignored.
531
+ # @param coverage_salary_multiplier [String] The coverage amount as a multiple of the employee’s salary. Only applicable for
532
+ # Group Term Life benefits. Note: cannot be set if coverage amount is also set.
533
+ # @param company_contribution [String] The amount to be paid, per pay period, by the company.
534
+ # @param contribute_as_percentage [Boolean] Whether the company contribution amount should be treated as a percentage to be
535
+ # deducted from each payroll.
536
+ # @param request_options [Gusto::RequestOptions]
537
+ # @return [Gusto::EmployeeBenefit]
538
+ # @example
539
+ # api = Gusto::Client.new(
540
+ # base_url: "https://api.example.com",
541
+ # environment: Gusto::Environment::DEMO,
542
+ # token: "YOUR_AUTH_TOKEN"
543
+ # )
544
+ # api.employees.benefits.update(
545
+ # employee_benefit_id: "employee_benefit_id",
546
+ # version: "09j3d29jqdpj92109j9j2d90dq",
547
+ # employee_deduction: "250.00"
548
+ # )
549
+ def update(employee_benefit_id:, version:, active: nil, employee_deduction: nil, deduct_as_percentage: nil, employee_deduction_annual_maximum: nil, contribution: nil, elective: nil, company_contribution_annual_maximum: nil, limit_option: nil, catch_up: nil, coverage_amount: nil, deduction_reduces_taxable_income: nil, coverage_salary_multiplier: nil, company_contribution: nil, contribute_as_percentage: nil, request_options: nil)
550
+ Async do
551
+ response = @request_client.conn.put do | req |
552
+ unless request_options&.timeout_in_seconds.nil?
553
+ req.options.timeout = request_options.timeout_in_seconds
554
+ end
555
+ unless request_options&.token.nil?
556
+ req.headers["Authorization"] = request_options.token
557
+ end
558
+ unless request_options&.gusto_api_version.nil?
559
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
560
+ end
561
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
562
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
563
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
564
+ end
565
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, active: active, employee_deduction: employee_deduction, deduct_as_percentage: deduct_as_percentage, employee_deduction_annual_maximum: employee_deduction_annual_maximum, contribution: contribution, elective: elective, company_contribution_annual_maximum: company_contribution_annual_maximum, limit_option: limit_option, catch_up: catch_up, coverage_amount: coverage_amount, deduction_reduces_taxable_income: deduction_reduces_taxable_income, coverage_salary_multiplier: coverage_salary_multiplier, company_contribution: company_contribution, contribute_as_percentage: contribute_as_percentage }.compact
566
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
567
+ end
568
+ Gusto::EmployeeBenefit.from_json(json_object: response.body)
569
+ end
570
+ end
571
+ # Employee benefits represent an employee enrolled in a particular company
572
+ # benefit. It includes information specific to that employee’s enrollment.
573
+ # scope: `employee_benefits:write`
574
+ #
575
+ # @param employee_benefit_id [String] The UUID of the employee benefit.
576
+ # @param request_options [Gusto::RequestOptions]
577
+ # @return [Void]
578
+ # @example
579
+ # api = Gusto::Client.new(
580
+ # base_url: "https://api.example.com",
581
+ # environment: Gusto::Environment::DEMO,
582
+ # token: "YOUR_AUTH_TOKEN"
583
+ # )
584
+ # api.employees.benefits.delete(employee_benefit_id: "employee_benefit_id")
585
+ def delete(employee_benefit_id:, request_options: nil)
586
+ Async do
587
+ response = @request_client.conn.delete do | req |
588
+ unless request_options&.timeout_in_seconds.nil?
589
+ req.options.timeout = request_options.timeout_in_seconds
590
+ end
591
+ unless request_options&.token.nil?
592
+ req.headers["Authorization"] = request_options.token
593
+ end
594
+ unless request_options&.gusto_api_version.nil?
595
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
596
+ end
597
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
598
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
599
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
600
+ end
601
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
602
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
603
+ end
604
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employee_benefits/#{employee_benefit_id}"
605
+ end
606
+ end
607
+ end
608
+ # Year-to-date benefit amounts from a different company represents the amount of
609
+ # money added to an employee's plan during a current year, made outside of the
610
+ # current contribution when they were employed at a different company.
611
+ # This endpoint only supports passing outside contributions for 401(k) benefits.
612
+ # scope: `employee_benefits:write`
613
+ #
614
+ # @param employee_id [String] The UUID of the employee
615
+ # @param benefit_type [Float] The benefit type supported by Gusto.
616
+ # @param tax_year [Float] The tax year for which this amount applies.
617
+ # @param ytd_employee_deduction_amount [String] The year-to-date employee deduction made outside the current company.
618
+ # @param ytd_company_contribution_amount [String] The year-to-date company contribution made outside the current company.
619
+ # @param request_options [Gusto::RequestOptions]
620
+ # @return [Void]
621
+ # @example
622
+ # api = Gusto::Client.new(
623
+ # base_url: "https://api.example.com",
624
+ # environment: Gusto::Environment::DEMO,
625
+ # token: "YOUR_AUTH_TOKEN"
626
+ # )
627
+ # api.employees.benefits.add_ytd_benefit_amounts(
628
+ # employee_id: "employee_id",
629
+ # tax_year: 1.1,
630
+ # ytd_employee_deduction_amount: "ytd_employee_deduction_amount",
631
+ # ytd_company_contribution_amount: "ytd_company_contribution_amount"
632
+ # )
633
+ def add_ytd_benefit_amounts(employee_id:, benefit_type: nil, tax_year:, ytd_employee_deduction_amount:, ytd_company_contribution_amount:, request_options: nil)
634
+ Async do
635
+ response = @request_client.conn.post do | req |
636
+ unless request_options&.timeout_in_seconds.nil?
637
+ req.options.timeout = request_options.timeout_in_seconds
638
+ end
639
+ unless request_options&.token.nil?
640
+ req.headers["Authorization"] = request_options.token
641
+ end
642
+ unless request_options&.gusto_api_version.nil?
643
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
644
+ end
645
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
646
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
647
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
648
+ end
649
+ req.body = { **(request_options&.additional_body_parameters || {}), benefit_type: benefit_type, tax_year: tax_year, ytd_employee_deduction_amount: ytd_employee_deduction_amount, ytd_company_contribution_amount: ytd_company_contribution_amount }.compact
650
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/ytd_benefit_amounts_from_different_company"
651
+ end
652
+ end
653
+ end
654
+ end
655
+ end
656
+ end