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,62 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Employees
7
+ module JobsAndCompensations
8
+ # The minimum wage record you want to apply to the compensation
9
+ class JobsAndCompensationsCreateCompensationRequestMinimumWagesItem
10
+ # @return [String] The UUID of the minimum wage record. Required if adjust_for_minimum_wage set to
11
+ # true
12
+ attr_reader :uuid
13
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
14
+ attr_reader :additional_properties
15
+ # @return [Object]
16
+ attr_reader :_field_set
17
+ protected :_field_set
18
+
19
+ OMIT = Object.new
20
+
21
+ # @param uuid [String] The UUID of the minimum wage record. Required if adjust_for_minimum_wage set to
22
+ # true
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [Gusto::Employees::JobsAndCompensations::JobsAndCompensationsCreateCompensationRequestMinimumWagesItem]
25
+ def initialize(uuid: OMIT, additional_properties: nil)
26
+ @uuid = uuid if uuid != OMIT
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "uuid": uuid }.reject do | _k, v |
29
+ v == OMIT
30
+ end
31
+ end
32
+ # Deserialize a JSON object to an instance of
33
+ # JobsAndCompensationsCreateCompensationRequestMinimumWagesItem
34
+ #
35
+ # @param json_object [String]
36
+ # @return [Gusto::Employees::JobsAndCompensations::JobsAndCompensationsCreateCompensationRequestMinimumWagesItem]
37
+ def self.from_json(json_object:)
38
+ struct = JSON.parse(json_object, object_class: OpenStruct)
39
+ parsed_json = JSON.parse(json_object)
40
+ uuid = parsed_json["uuid"]
41
+ new(uuid: uuid, additional_properties: struct)
42
+ end
43
+ # Serialize an instance of
44
+ # JobsAndCompensationsCreateCompensationRequestMinimumWagesItem to a JSON object
45
+ #
46
+ # @return [String]
47
+ def to_json
48
+ @_field_set&.to_json
49
+ end
50
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
51
+ # hash and check each fields type against the current object's property
52
+ # definitions.
53
+ #
54
+ # @param obj [Object]
55
+ # @return [Void]
56
+ def self.validate_raw(obj:)
57
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module JobsAndCompensations
6
+ # The unit accompanying the compensation rate. If the employee is an owner, rate
7
+ # should be 'Paycheck'.
8
+ class JobsAndCompensationsCreateCompensationRequestPaymentUnit
9
+
10
+ HOUR = "Hour"
11
+ WEEK = "Week"
12
+ MONTH = "Month"
13
+ YEAR = "Year"
14
+ PAYCHECK = "Paycheck"
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Employees
7
+ module JobsAndCompensations
8
+ # The minimum wage record you want to apply to the compensation
9
+ class JobsAndCompensationsUpdateCompensationRequestMinimumWagesItem
10
+ # @return [String] The UUID of the minimum wage record. Required if adjust_for_minimum_wage set to
11
+ # true
12
+ attr_reader :uuid
13
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
14
+ attr_reader :additional_properties
15
+ # @return [Object]
16
+ attr_reader :_field_set
17
+ protected :_field_set
18
+
19
+ OMIT = Object.new
20
+
21
+ # @param uuid [String] The UUID of the minimum wage record. Required if adjust_for_minimum_wage set to
22
+ # true
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [Gusto::Employees::JobsAndCompensations::JobsAndCompensationsUpdateCompensationRequestMinimumWagesItem]
25
+ def initialize(uuid: OMIT, additional_properties: nil)
26
+ @uuid = uuid if uuid != OMIT
27
+ @additional_properties = additional_properties
28
+ @_field_set = { "uuid": uuid }.reject do | _k, v |
29
+ v == OMIT
30
+ end
31
+ end
32
+ # Deserialize a JSON object to an instance of
33
+ # JobsAndCompensationsUpdateCompensationRequestMinimumWagesItem
34
+ #
35
+ # @param json_object [String]
36
+ # @return [Gusto::Employees::JobsAndCompensations::JobsAndCompensationsUpdateCompensationRequestMinimumWagesItem]
37
+ def self.from_json(json_object:)
38
+ struct = JSON.parse(json_object, object_class: OpenStruct)
39
+ parsed_json = JSON.parse(json_object)
40
+ uuid = parsed_json["uuid"]
41
+ new(uuid: uuid, additional_properties: struct)
42
+ end
43
+ # Serialize an instance of
44
+ # JobsAndCompensationsUpdateCompensationRequestMinimumWagesItem to a JSON object
45
+ #
46
+ # @return [String]
47
+ def to_json
48
+ @_field_set&.to_json
49
+ end
50
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
51
+ # hash and check each fields type against the current object's property
52
+ # definitions.
53
+ #
54
+ # @param obj [Object]
55
+ # @return [Void]
56
+ def self.validate_raw(obj:)
57
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module JobsAndCompensations
6
+ # The unit accompanying the compensation rate. If the employee is an owner, rate
7
+ # should be 'Paycheck'.
8
+ class JobsAndCompensationsUpdateCompensationRequestPaymentUnit
9
+
10
+ HOUR = "Hour"
11
+ WEEK = "Week"
12
+ MONTH = "Month"
13
+ YEAR = "Year"
14
+ PAYCHECK = "Paycheck"
15
+
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,484 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "types/payment_method_create_bank_account_request_account_type"
4
+ require_relative "../../employee_payment_method/types/employee_bank_account"
5
+ require_relative "types/payment_method_update_bank_account_request_account_type"
6
+ require_relative "../../employee_payment_method/types/employee_payment_method_info"
7
+ require_relative "types/payment_method_update_request_type"
8
+ require_relative "types/payment_method_update_request_split_by"
9
+ require_relative "types/payment_method_update_request_splits_item"
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 PaymentMethodClient
20
+ # @return [Gusto::RequestClient]
21
+ attr_reader :request_client
22
+
23
+
24
+ # @param request_client [Gusto::RequestClient]
25
+ # @return [Gusto::Employees::PaymentMethodClient]
26
+ def initialize(request_client:)
27
+ @request_client = request_client
28
+ end
29
+ # Creates an employee bank account. An employee can have multiple
30
+ # bank accounts. Note that creating an employee bank account will also update
31
+ # the employee's payment method.
32
+ # scope: `employee_payment_methods:write`
33
+ #
34
+ # @param employee_id [String] The UUID of the employee
35
+ # @param name [String]
36
+ # @param routing_number [String]
37
+ # @param account_number [String]
38
+ # @param account_type [Gusto::Employees::PaymentMethod::PaymentMethodCreateBankAccountRequestAccountType]
39
+ # @param request_options [Gusto::RequestOptions]
40
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccount]
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.payment_method.create_bank_account(
48
+ # employee_id: "employee_id",
49
+ # name: "BoA Checking Account",
50
+ # routing_number: "266905059",
51
+ # account_number: "5809431207",
52
+ # account_type: CHECKING
53
+ # )
54
+ def create_bank_account(employee_id:, name:, routing_number:, account_number:, account_type:, request_options: nil)
55
+ response = @request_client.conn.post do | req |
56
+ unless request_options&.timeout_in_seconds.nil?
57
+ req.options.timeout = request_options.timeout_in_seconds
58
+ end
59
+ unless request_options&.token.nil?
60
+ req.headers["Authorization"] = request_options.token
61
+ end
62
+ unless request_options&.gusto_api_version.nil?
63
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
64
+ end
65
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
66
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
67
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
68
+ end
69
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, routing_number: routing_number, account_number: account_number, account_type: account_type }.compact
70
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/bank_accounts"
71
+ end
72
+ Gusto::EmployeePaymentMethod::EmployeeBankAccount.from_json(json_object: response.body)
73
+ end
74
+ # Updates an employee bank account.
75
+ # scope: `employee_payment_methods:write`
76
+ #
77
+ # @param employee_id [String] The UUID of the employee
78
+ # @param bank_account_uuid [String] The UUID of the bank account
79
+ # @param name [String]
80
+ # @param routing_number [String]
81
+ # @param account_number [String]
82
+ # @param account_type [Gusto::Employees::PaymentMethod::PaymentMethodUpdateBankAccountRequestAccountType]
83
+ # @param request_options [Gusto::RequestOptions]
84
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccount]
85
+ # @example
86
+ # api = Gusto::Client.new(
87
+ # base_url: "https://api.example.com",
88
+ # environment: Gusto::Environment::DEMO,
89
+ # token: "YOUR_AUTH_TOKEN"
90
+ # )
91
+ # api.employees.payment_method.update_bank_account(
92
+ # employee_id: "employee_id",
93
+ # bank_account_uuid: "bank_account_uuid",
94
+ # name: "BoA Checking Account",
95
+ # routing_number: "266905059",
96
+ # account_number: "5809431207",
97
+ # account_type: CHECKING
98
+ # )
99
+ def update_bank_account(employee_id:, bank_account_uuid:, name:, routing_number:, account_number:, account_type:, request_options: nil)
100
+ response = @request_client.conn.put do | req |
101
+ unless request_options&.timeout_in_seconds.nil?
102
+ req.options.timeout = request_options.timeout_in_seconds
103
+ end
104
+ unless request_options&.token.nil?
105
+ req.headers["Authorization"] = request_options.token
106
+ end
107
+ unless request_options&.gusto_api_version.nil?
108
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
109
+ end
110
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
111
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
112
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
113
+ end
114
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, routing_number: routing_number, account_number: account_number, account_type: account_type }.compact
115
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/bank_accounts/#{bank_account_uuid}"
116
+ end
117
+ Gusto::EmployeePaymentMethod::EmployeeBankAccount.from_json(json_object: response.body)
118
+ end
119
+ # Deletes an employee bank account. To update an employee's bank
120
+ # account details, delete the bank account first and create a new one.
121
+ # scope: `employee_payment_methods:write`
122
+ #
123
+ # @param employee_id [String] The UUID of the employee
124
+ # @param bank_account_uuid [String] The UUID of the bank account
125
+ # @param request_options [Gusto::RequestOptions]
126
+ # @return [Void]
127
+ # @example
128
+ # api = Gusto::Client.new(
129
+ # base_url: "https://api.example.com",
130
+ # environment: Gusto::Environment::DEMO,
131
+ # token: "YOUR_AUTH_TOKEN"
132
+ # )
133
+ # api.employees.payment_method.delete_bank_account(employee_id: "employee_id", bank_account_uuid: "bank_account_uuid")
134
+ def delete_bank_account(employee_id:, bank_account_uuid:, request_options: nil)
135
+ response = @request_client.conn.delete do | req |
136
+ unless request_options&.timeout_in_seconds.nil?
137
+ req.options.timeout = request_options.timeout_in_seconds
138
+ end
139
+ unless request_options&.token.nil?
140
+ req.headers["Authorization"] = request_options.token
141
+ end
142
+ unless request_options&.gusto_api_version.nil?
143
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
144
+ end
145
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
146
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
147
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
148
+ end
149
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
150
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
151
+ end
152
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/bank_accounts/#{bank_account_uuid}"
153
+ end
154
+ end
155
+ # Fetches an employee's payment method. An employee payment method
156
+ # describes how the payment should be split across the employee's associated
157
+ # bank accounts.
158
+ # scope: `employee_payment_methods:read`
159
+ #
160
+ # @param employee_id [String] The UUID of the employee
161
+ # @param request_options [Gusto::RequestOptions]
162
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo]
163
+ # @example
164
+ # api = Gusto::Client.new(
165
+ # base_url: "https://api.example.com",
166
+ # environment: Gusto::Environment::DEMO,
167
+ # token: "YOUR_AUTH_TOKEN"
168
+ # )
169
+ # api.employees.payment_method.get(employee_id: "employee_id")
170
+ def get(employee_id:, request_options: nil)
171
+ response = @request_client.conn.get do | req |
172
+ unless request_options&.timeout_in_seconds.nil?
173
+ req.options.timeout = request_options.timeout_in_seconds
174
+ end
175
+ unless request_options&.token.nil?
176
+ req.headers["Authorization"] = request_options.token
177
+ end
178
+ unless request_options&.gusto_api_version.nil?
179
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
180
+ end
181
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
182
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
183
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
184
+ end
185
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
186
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
187
+ end
188
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/payment_method"
189
+ end
190
+ Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo.from_json(json_object: response.body)
191
+ end
192
+ # Updates an employee's payment method. Note that creating an employee
193
+ # bank account will also update the employee's payment method.
194
+ # scope: `employee_payment_methods:write`
195
+ #
196
+ # @param employee_id [String] The UUID of the employee
197
+ # @param version [String] The current version of the object. See the [versioning
198
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
199
+ # information on how to use this field.
200
+ # @param type [Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestType] The payment method type. If type is Check, then split_by and splits do not need
201
+ # to be populated. If type is Direct Deposit, split_by and splits are required.
202
+ # @param split_by [Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestSplitBy] Describes how the payment will be split. If split_by is Percentage, then the
203
+ # split amounts must add up to exactly 100. If split_by is Amount, then the last
204
+ # split amount must be nil to capture the remainder.
205
+ # @param splits [Array<Hash>] Request of type Array<Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestSplitsItem>, as a Hash
206
+ # * :uuid (String)
207
+ # * :name (String)
208
+ # * :priority (Integer)
209
+ # * :split_amount (Integer)
210
+ # @param request_options [Gusto::RequestOptions]
211
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo]
212
+ # @example
213
+ # api = Gusto::Client.new(
214
+ # base_url: "https://api.example.com",
215
+ # environment: Gusto::Environment::DEMO,
216
+ # token: "YOUR_AUTH_TOKEN"
217
+ # )
218
+ # api.employees.payment_method.update(
219
+ # employee_id: "employee_id",
220
+ # version: "63859768485e218ccf8a449bb60f14ed",
221
+ # type: DIRECT_DEPOSIT,
222
+ # split_by: AMOUNT,
223
+ # splits: [{ uuid: "e88f9436-b74e-49a8-87e9-777b9bfe715e", name: "BoA Checking Account", priority: 1, split_amount: 500 }, { uuid: "0d2b7f73-05d6-4184-911d-269edeecc30a", name: "Chase Checking Account", priority: 2, split_amount: 1000 }, { uuid: "1531e824-8d9e-4bd8-9f90-0d04608125d7", name: "US Bank Checking Account", priority: 3 }]
224
+ # )
225
+ def update(employee_id:, version:, type:, split_by: nil, splits: nil, request_options: nil)
226
+ response = @request_client.conn.put do | req |
227
+ unless request_options&.timeout_in_seconds.nil?
228
+ req.options.timeout = request_options.timeout_in_seconds
229
+ end
230
+ unless request_options&.token.nil?
231
+ req.headers["Authorization"] = request_options.token
232
+ end
233
+ unless request_options&.gusto_api_version.nil?
234
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
235
+ end
236
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
237
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
238
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
239
+ end
240
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, type: type, split_by: split_by, splits: splits }.compact
241
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/payment_method"
242
+ end
243
+ Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo.from_json(json_object: response.body)
244
+ end
245
+ end
246
+ class AsyncPaymentMethodClient
247
+ # @return [Gusto::AsyncRequestClient]
248
+ attr_reader :request_client
249
+
250
+
251
+ # @param request_client [Gusto::RequestClient]
252
+ # @return [Gusto::Employees::AsyncPaymentMethodClient]
253
+ def initialize(request_client:)
254
+ @request_client = request_client
255
+ end
256
+ # Creates an employee bank account. An employee can have multiple
257
+ # bank accounts. Note that creating an employee bank account will also update
258
+ # the employee's payment method.
259
+ # scope: `employee_payment_methods:write`
260
+ #
261
+ # @param employee_id [String] The UUID of the employee
262
+ # @param name [String]
263
+ # @param routing_number [String]
264
+ # @param account_number [String]
265
+ # @param account_type [Gusto::Employees::PaymentMethod::PaymentMethodCreateBankAccountRequestAccountType]
266
+ # @param request_options [Gusto::RequestOptions]
267
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccount]
268
+ # @example
269
+ # api = Gusto::Client.new(
270
+ # base_url: "https://api.example.com",
271
+ # environment: Gusto::Environment::DEMO,
272
+ # token: "YOUR_AUTH_TOKEN"
273
+ # )
274
+ # api.employees.payment_method.create_bank_account(
275
+ # employee_id: "employee_id",
276
+ # name: "BoA Checking Account",
277
+ # routing_number: "266905059",
278
+ # account_number: "5809431207",
279
+ # account_type: CHECKING
280
+ # )
281
+ def create_bank_account(employee_id:, name:, routing_number:, account_number:, account_type:, request_options: nil)
282
+ Async do
283
+ response = @request_client.conn.post do | req |
284
+ unless request_options&.timeout_in_seconds.nil?
285
+ req.options.timeout = request_options.timeout_in_seconds
286
+ end
287
+ unless request_options&.token.nil?
288
+ req.headers["Authorization"] = request_options.token
289
+ end
290
+ unless request_options&.gusto_api_version.nil?
291
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
292
+ end
293
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
294
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
295
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
296
+ end
297
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, routing_number: routing_number, account_number: account_number, account_type: account_type }.compact
298
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/bank_accounts"
299
+ end
300
+ Gusto::EmployeePaymentMethod::EmployeeBankAccount.from_json(json_object: response.body)
301
+ end
302
+ end
303
+ # Updates an employee bank account.
304
+ # scope: `employee_payment_methods:write`
305
+ #
306
+ # @param employee_id [String] The UUID of the employee
307
+ # @param bank_account_uuid [String] The UUID of the bank account
308
+ # @param name [String]
309
+ # @param routing_number [String]
310
+ # @param account_number [String]
311
+ # @param account_type [Gusto::Employees::PaymentMethod::PaymentMethodUpdateBankAccountRequestAccountType]
312
+ # @param request_options [Gusto::RequestOptions]
313
+ # @return [Gusto::EmployeePaymentMethod::EmployeeBankAccount]
314
+ # @example
315
+ # api = Gusto::Client.new(
316
+ # base_url: "https://api.example.com",
317
+ # environment: Gusto::Environment::DEMO,
318
+ # token: "YOUR_AUTH_TOKEN"
319
+ # )
320
+ # api.employees.payment_method.update_bank_account(
321
+ # employee_id: "employee_id",
322
+ # bank_account_uuid: "bank_account_uuid",
323
+ # name: "BoA Checking Account",
324
+ # routing_number: "266905059",
325
+ # account_number: "5809431207",
326
+ # account_type: CHECKING
327
+ # )
328
+ def update_bank_account(employee_id:, bank_account_uuid:, name:, routing_number:, account_number:, account_type:, request_options: nil)
329
+ Async do
330
+ response = @request_client.conn.put do | req |
331
+ unless request_options&.timeout_in_seconds.nil?
332
+ req.options.timeout = request_options.timeout_in_seconds
333
+ end
334
+ unless request_options&.token.nil?
335
+ req.headers["Authorization"] = request_options.token
336
+ end
337
+ unless request_options&.gusto_api_version.nil?
338
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
339
+ end
340
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
341
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
342
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
343
+ end
344
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, routing_number: routing_number, account_number: account_number, account_type: account_type }.compact
345
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/bank_accounts/#{bank_account_uuid}"
346
+ end
347
+ Gusto::EmployeePaymentMethod::EmployeeBankAccount.from_json(json_object: response.body)
348
+ end
349
+ end
350
+ # Deletes an employee bank account. To update an employee's bank
351
+ # account details, delete the bank account first and create a new one.
352
+ # scope: `employee_payment_methods:write`
353
+ #
354
+ # @param employee_id [String] The UUID of the employee
355
+ # @param bank_account_uuid [String] The UUID of the bank account
356
+ # @param request_options [Gusto::RequestOptions]
357
+ # @return [Void]
358
+ # @example
359
+ # api = Gusto::Client.new(
360
+ # base_url: "https://api.example.com",
361
+ # environment: Gusto::Environment::DEMO,
362
+ # token: "YOUR_AUTH_TOKEN"
363
+ # )
364
+ # api.employees.payment_method.delete_bank_account(employee_id: "employee_id", bank_account_uuid: "bank_account_uuid")
365
+ def delete_bank_account(employee_id:, bank_account_uuid:, request_options: nil)
366
+ Async do
367
+ response = @request_client.conn.delete do | req |
368
+ unless request_options&.timeout_in_seconds.nil?
369
+ req.options.timeout = request_options.timeout_in_seconds
370
+ end
371
+ unless request_options&.token.nil?
372
+ req.headers["Authorization"] = request_options.token
373
+ end
374
+ unless request_options&.gusto_api_version.nil?
375
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
376
+ end
377
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
378
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
379
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
380
+ end
381
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
382
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
383
+ end
384
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/bank_accounts/#{bank_account_uuid}"
385
+ end
386
+ end
387
+ end
388
+ # Fetches an employee's payment method. An employee payment method
389
+ # describes how the payment should be split across the employee's associated
390
+ # bank accounts.
391
+ # scope: `employee_payment_methods:read`
392
+ #
393
+ # @param employee_id [String] The UUID of the employee
394
+ # @param request_options [Gusto::RequestOptions]
395
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo]
396
+ # @example
397
+ # api = Gusto::Client.new(
398
+ # base_url: "https://api.example.com",
399
+ # environment: Gusto::Environment::DEMO,
400
+ # token: "YOUR_AUTH_TOKEN"
401
+ # )
402
+ # api.employees.payment_method.get(employee_id: "employee_id")
403
+ def get(employee_id:, request_options: nil)
404
+ Async do
405
+ response = @request_client.conn.get do | req |
406
+ unless request_options&.timeout_in_seconds.nil?
407
+ req.options.timeout = request_options.timeout_in_seconds
408
+ end
409
+ unless request_options&.token.nil?
410
+ req.headers["Authorization"] = request_options.token
411
+ end
412
+ unless request_options&.gusto_api_version.nil?
413
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
414
+ end
415
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
416
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
417
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
418
+ end
419
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
420
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
421
+ end
422
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/payment_method"
423
+ end
424
+ Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo.from_json(json_object: response.body)
425
+ end
426
+ end
427
+ # Updates an employee's payment method. Note that creating an employee
428
+ # bank account will also update the employee's payment method.
429
+ # scope: `employee_payment_methods:write`
430
+ #
431
+ # @param employee_id [String] The UUID of the employee
432
+ # @param version [String] The current version of the object. See the [versioning
433
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
434
+ # information on how to use this field.
435
+ # @param type [Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestType] The payment method type. If type is Check, then split_by and splits do not need
436
+ # to be populated. If type is Direct Deposit, split_by and splits are required.
437
+ # @param split_by [Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestSplitBy] Describes how the payment will be split. If split_by is Percentage, then the
438
+ # split amounts must add up to exactly 100. If split_by is Amount, then the last
439
+ # split amount must be nil to capture the remainder.
440
+ # @param splits [Array<Hash>] Request of type Array<Gusto::Employees::PaymentMethod::PaymentMethodUpdateRequestSplitsItem>, as a Hash
441
+ # * :uuid (String)
442
+ # * :name (String)
443
+ # * :priority (Integer)
444
+ # * :split_amount (Integer)
445
+ # @param request_options [Gusto::RequestOptions]
446
+ # @return [Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo]
447
+ # @example
448
+ # api = Gusto::Client.new(
449
+ # base_url: "https://api.example.com",
450
+ # environment: Gusto::Environment::DEMO,
451
+ # token: "YOUR_AUTH_TOKEN"
452
+ # )
453
+ # api.employees.payment_method.update(
454
+ # employee_id: "employee_id",
455
+ # version: "63859768485e218ccf8a449bb60f14ed",
456
+ # type: DIRECT_DEPOSIT,
457
+ # split_by: AMOUNT,
458
+ # splits: [{ uuid: "e88f9436-b74e-49a8-87e9-777b9bfe715e", name: "BoA Checking Account", priority: 1, split_amount: 500 }, { uuid: "0d2b7f73-05d6-4184-911d-269edeecc30a", name: "Chase Checking Account", priority: 2, split_amount: 1000 }, { uuid: "1531e824-8d9e-4bd8-9f90-0d04608125d7", name: "US Bank Checking Account", priority: 3 }]
459
+ # )
460
+ def update(employee_id:, version:, type:, split_by: nil, splits: nil, request_options: nil)
461
+ Async do
462
+ response = @request_client.conn.put do | req |
463
+ unless request_options&.timeout_in_seconds.nil?
464
+ req.options.timeout = request_options.timeout_in_seconds
465
+ end
466
+ unless request_options&.token.nil?
467
+ req.headers["Authorization"] = request_options.token
468
+ end
469
+ unless request_options&.gusto_api_version.nil?
470
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
471
+ end
472
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
473
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
474
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
475
+ end
476
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, type: type, split_by: split_by, splits: splits }.compact
477
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/employees/#{employee_id}/payment_method"
478
+ end
479
+ Gusto::EmployeePaymentMethod::EmployeePaymentMethodInfo.from_json(json_object: response.body)
480
+ end
481
+ end
482
+ end
483
+ end
484
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module PaymentMethod
6
+ class PaymentMethodCreateBankAccountRequestAccountType
7
+
8
+ CHECKING = "Checking"
9
+ SAVINGS = "Savings"
10
+
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Employees
5
+ module PaymentMethod
6
+ class PaymentMethodUpdateBankAccountRequestAccountType
7
+
8
+ CHECKING = "Checking"
9
+ SAVINGS = "Savings"
10
+
11
+ end
12
+ end
13
+ end
14
+ end