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,605 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../external_payrolls/types/external_payroll"
4
+ require_relative "types/external_payrolls_update_request_external_payroll_items_item"
5
+ require_relative "../../external_payrolls/types/external_payroll_tax_suggestions"
6
+ require "json"
7
+ require_relative "../../external_payrolls/types/tax_liabilities_selections"
8
+ require_relative "types/external_payrolls_update_tax_liabilities_request_liability_selections_item"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require "async"
15
+ require "async"
16
+ require_relative "../../../requests"
17
+
18
+ module Gusto
19
+ module Companies
20
+ class ExternalPayrollsClient
21
+ # @return [Gusto::RequestClient]
22
+ attr_reader :request_client
23
+
24
+
25
+ # @param request_client [Gusto::RequestClient]
26
+ # @return [Gusto::Companies::ExternalPayrollsClient]
27
+ def initialize(request_client:)
28
+ @request_client = request_client
29
+ end
30
+ # Get an external payroll for a given company.
31
+ # scope: `external_payrolls:read`
32
+ #
33
+ # @param company_uuid [String] The UUID of the company
34
+ # @param external_payroll_id [String] The UUID of the external payroll
35
+ # @param request_options [Gusto::RequestOptions]
36
+ # @return [Gusto::ExternalPayrolls::ExternalPayroll]
37
+ # @example
38
+ # api = Gusto::Client.new(
39
+ # base_url: "https://api.example.com",
40
+ # environment: Gusto::Environment::DEMO,
41
+ # token: "YOUR_AUTH_TOKEN"
42
+ # )
43
+ # api.companies.external_payrolls.get(company_uuid: "company_uuid", external_payroll_id: "external_payroll_id")
44
+ def get(company_uuid:, external_payroll_id:, request_options: nil)
45
+ response = @request_client.conn.get do | req |
46
+ unless request_options&.timeout_in_seconds.nil?
47
+ req.options.timeout = request_options.timeout_in_seconds
48
+ end
49
+ unless request_options&.token.nil?
50
+ req.headers["Authorization"] = request_options.token
51
+ end
52
+ unless request_options&.gusto_api_version.nil?
53
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
54
+ end
55
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
56
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
57
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
58
+ end
59
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
60
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
61
+ end
62
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}"
63
+ end
64
+ Gusto::ExternalPayrolls::ExternalPayroll.from_json(json_object: response.body)
65
+ end
66
+ # Update an external payroll with a list of external payroll items
67
+ # scope: `external_payrolls:write`
68
+ #
69
+ # @param company_uuid [String] The UUID of the company
70
+ # @param external_payroll_id [String] The UUID of the external payroll
71
+ # @param replace_fields [Boolean] Patch update external payroll items when set to true, otherwise it will
72
+ # overwrite the previous changes.
73
+ # @param external_payroll_items [Array<Hash>] Request of type Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItem>, as a Hash
74
+ # * :employee_uuid (String)
75
+ # * :earnings (Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem>)
76
+ # * :benefits (Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem>)
77
+ # * :taxes (Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem>)
78
+ # @param request_options [Gusto::RequestOptions]
79
+ # @return [Gusto::ExternalPayrolls::ExternalPayroll]
80
+ # @example
81
+ # api = Gusto::Client.new(
82
+ # base_url: "https://api.example.com",
83
+ # environment: Gusto::Environment::DEMO,
84
+ # token: "YOUR_AUTH_TOKEN"
85
+ # )
86
+ # api.companies.external_payrolls.update(
87
+ # company_uuid: "company_uuid",
88
+ # external_payroll_id: "external_payroll_id",
89
+ # replace_fields: true,
90
+ # external_payroll_items: [{ employee_uuid: "403c6ee3-5f58-40ef-a117-ff7175cd9ee3", earnings: [{ hours: "0.0", amount: "200.00", earning_id: 1, earning_type: COMPANY_PAY_TYPE }, { hours: "0.0", amount: "5000.00", earning_id: 2, earning_type: COMPANY_EARNING_TYPE }], benefits: [{ company_contribution_amount: "300.0", employee_deduction_amount: "300.0", benefit_id: 10 }, { company_contribution_amount: "50.0", employee_deduction_amount: "100.0", benefit_id: 21 }], taxes: [{ amount: "20.0", tax_id: 1 }, { amount: "100.0", tax_id: 2 }] }]
91
+ # )
92
+ def update(company_uuid:, external_payroll_id:, replace_fields: nil, external_payroll_items: nil, request_options: nil)
93
+ response = @request_client.conn.put do | req |
94
+ unless request_options&.timeout_in_seconds.nil?
95
+ req.options.timeout = request_options.timeout_in_seconds
96
+ end
97
+ unless request_options&.token.nil?
98
+ req.headers["Authorization"] = request_options.token
99
+ end
100
+ unless request_options&.gusto_api_version.nil?
101
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
102
+ end
103
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
104
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
105
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
106
+ end
107
+ req.body = { **(request_options&.additional_body_parameters || {}), replace_fields: replace_fields, external_payroll_items: external_payroll_items }.compact
108
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}"
109
+ end
110
+ Gusto::ExternalPayrolls::ExternalPayroll.from_json(json_object: response.body)
111
+ end
112
+ # Delete an external payroll.
113
+ # scope: `external_payrolls:write`
114
+ #
115
+ # @param company_uuid [String] The UUID of the company
116
+ # @param external_payroll_id [String] The UUID of the external payroll
117
+ # @param request_options [Gusto::RequestOptions]
118
+ # @return [Void]
119
+ # @example
120
+ # api = Gusto::Client.new(
121
+ # base_url: "https://api.example.com",
122
+ # environment: Gusto::Environment::DEMO,
123
+ # token: "YOUR_AUTH_TOKEN"
124
+ # )
125
+ # api.companies.external_payrolls.delete(company_uuid: "company_uuid", external_payroll_id: "external_payroll_id")
126
+ def delete(company_uuid:, external_payroll_id:, request_options: nil)
127
+ response = @request_client.conn.delete do | req |
128
+ unless request_options&.timeout_in_seconds.nil?
129
+ req.options.timeout = request_options.timeout_in_seconds
130
+ end
131
+ unless request_options&.token.nil?
132
+ req.headers["Authorization"] = request_options.token
133
+ end
134
+ unless request_options&.gusto_api_version.nil?
135
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
136
+ end
137
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
138
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
139
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
140
+ end
141
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
142
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
143
+ end
144
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}"
145
+ end
146
+ end
147
+ # Get tax suggestions for an external payroll. Earnings and/or benefits
148
+ # data must be saved prior to the calculation in order to retrieve accurate
149
+ # tax calculation.
150
+ # scope: `external_payrolls:read`
151
+ #
152
+ # @param company_uuid [String] The UUID of the company
153
+ # @param external_payroll_id [String] The UUID of the external payroll
154
+ # @param request_options [Gusto::RequestOptions]
155
+ # @return [Array<Gusto::ExternalPayrolls::ExternalPayrollTaxSuggestions>]
156
+ # @example
157
+ # api = Gusto::Client.new(
158
+ # base_url: "https://api.example.com",
159
+ # environment: Gusto::Environment::DEMO,
160
+ # token: "YOUR_AUTH_TOKEN"
161
+ # )
162
+ # api.companies.external_payrolls.get_tax_suggestions(company_uuid: "company_uuid", external_payroll_id: "external_payroll_id")
163
+ def get_tax_suggestions(company_uuid:, external_payroll_id:, request_options: nil)
164
+ response = @request_client.conn.get do | req |
165
+ unless request_options&.timeout_in_seconds.nil?
166
+ req.options.timeout = request_options.timeout_in_seconds
167
+ end
168
+ unless request_options&.token.nil?
169
+ req.headers["Authorization"] = request_options.token
170
+ end
171
+ unless request_options&.gusto_api_version.nil?
172
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
173
+ end
174
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
175
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
176
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
177
+ end
178
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
179
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
180
+ end
181
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}/calculate_taxes"
182
+ end
183
+ parsed_json = JSON.parse(response.body)
184
+ parsed_json&.map do | item |
185
+ item = item.to_json
186
+ Gusto::ExternalPayrolls::ExternalPayrollTaxSuggestions.from_json(json_object: item)
187
+ end
188
+ end
189
+ # Get tax liabilities from aggregate external payrolls for a company.
190
+ # scope: `external_payrolls:read`
191
+ #
192
+ # @param company_uuid [String] The UUID of the company
193
+ # @param request_options [Gusto::RequestOptions]
194
+ # @return [Array<Gusto::ExternalPayrolls::TaxLiabilitiesSelections>]
195
+ # @example
196
+ # api = Gusto::Client.new(
197
+ # base_url: "https://api.example.com",
198
+ # environment: Gusto::Environment::DEMO,
199
+ # token: "YOUR_AUTH_TOKEN"
200
+ # )
201
+ # api.companies.external_payrolls.get_tax_liabilities(company_uuid: "company_uuid")
202
+ def get_tax_liabilities(company_uuid:, request_options: nil)
203
+ response = @request_client.conn.get do | req |
204
+ unless request_options&.timeout_in_seconds.nil?
205
+ req.options.timeout = request_options.timeout_in_seconds
206
+ end
207
+ unless request_options&.token.nil?
208
+ req.headers["Authorization"] = request_options.token
209
+ end
210
+ unless request_options&.gusto_api_version.nil?
211
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
212
+ end
213
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
214
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
215
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
216
+ end
217
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
218
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
219
+ end
220
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/tax_liabilities"
221
+ end
222
+ parsed_json = JSON.parse(response.body)
223
+ parsed_json&.map do | item |
224
+ item = item.to_json
225
+ Gusto::ExternalPayrolls::TaxLiabilitiesSelections.from_json(json_object: item)
226
+ end
227
+ end
228
+ # Update tax liabilities for a company.
229
+ # scope: `external_payrolls:write`
230
+ #
231
+ # @param company_uuid [String] The UUID of the company
232
+ # @param liability_selections [Array<Hash>] Request of type Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem>, as a Hash
233
+ # * :tax_id (Integer)
234
+ # * :last_unpaid_external_payroll_uuid (String)
235
+ # * :unpaid_liability_amount (Float)
236
+ # @param request_options [Gusto::RequestOptions]
237
+ # @return [Array<Gusto::ExternalPayrolls::TaxLiabilitiesSelections>]
238
+ # @example
239
+ # api = Gusto::Client.new(
240
+ # base_url: "https://api.example.com",
241
+ # environment: Gusto::Environment::DEMO,
242
+ # token: "YOUR_AUTH_TOKEN"
243
+ # )
244
+ # api.companies.external_payrolls.update_tax_liabilities(company_uuid: "company_uuid", liability_selections: [{ tax_id: 1, last_unpaid_external_payroll_uuid: "7985032c-ee3a-4e98-af27-d56551eb5f1c", unpaid_liability_amount: 50 }, { tax_id: 2, last_unpaid_external_payroll_uuid: "5ed14dbb-958f-47c8-b16e-c4fed82dc486", unpaid_liability_amount: 400 }, { tax_id: 8, unpaid_liability_amount: 0 }])
245
+ def update_tax_liabilities(company_uuid:, liability_selections: nil, request_options: nil)
246
+ response = @request_client.conn.put do | req |
247
+ unless request_options&.timeout_in_seconds.nil?
248
+ req.options.timeout = request_options.timeout_in_seconds
249
+ end
250
+ unless request_options&.token.nil?
251
+ req.headers["Authorization"] = request_options.token
252
+ end
253
+ unless request_options&.gusto_api_version.nil?
254
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
255
+ end
256
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
257
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
258
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
259
+ end
260
+ req.body = { **(request_options&.additional_body_parameters || {}), liability_selections: liability_selections }.compact
261
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/tax_liabilities"
262
+ end
263
+ parsed_json = JSON.parse(response.body)
264
+ parsed_json&.map do | item |
265
+ item = item.to_json
266
+ Gusto::ExternalPayrolls::TaxLiabilitiesSelections.from_json(json_object: item)
267
+ end
268
+ end
269
+ # Finalizes tax liabilities for a company. All external payrolls edit action will
270
+ # be disabled.
271
+ # scope: `external_payrolls:write`
272
+ #
273
+ # @param company_uuid [String] The UUID of the company
274
+ # @param request_options [Gusto::RequestOptions]
275
+ # @return [Void]
276
+ # @example
277
+ # api = Gusto::Client.new(
278
+ # base_url: "https://api.example.com",
279
+ # environment: Gusto::Environment::DEMO,
280
+ # token: "YOUR_AUTH_TOKEN"
281
+ # )
282
+ # api.companies.external_payrolls.finalize_tax_liabilities(company_uuid: "company_uuid")
283
+ def finalize_tax_liabilities(company_uuid:, request_options: nil)
284
+ response = @request_client.conn.put do | req |
285
+ unless request_options&.timeout_in_seconds.nil?
286
+ req.options.timeout = request_options.timeout_in_seconds
287
+ end
288
+ unless request_options&.token.nil?
289
+ req.headers["Authorization"] = request_options.token
290
+ end
291
+ unless request_options&.gusto_api_version.nil?
292
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
293
+ end
294
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
295
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
296
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
297
+ end
298
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
299
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
300
+ end
301
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/tax_liabilities/finish"
302
+ end
303
+ end
304
+ end
305
+ class AsyncExternalPayrollsClient
306
+ # @return [Gusto::AsyncRequestClient]
307
+ attr_reader :request_client
308
+
309
+
310
+ # @param request_client [Gusto::RequestClient]
311
+ # @return [Gusto::Companies::AsyncExternalPayrollsClient]
312
+ def initialize(request_client:)
313
+ @request_client = request_client
314
+ end
315
+ # Get an external payroll for a given company.
316
+ # scope: `external_payrolls:read`
317
+ #
318
+ # @param company_uuid [String] The UUID of the company
319
+ # @param external_payroll_id [String] The UUID of the external payroll
320
+ # @param request_options [Gusto::RequestOptions]
321
+ # @return [Gusto::ExternalPayrolls::ExternalPayroll]
322
+ # @example
323
+ # api = Gusto::Client.new(
324
+ # base_url: "https://api.example.com",
325
+ # environment: Gusto::Environment::DEMO,
326
+ # token: "YOUR_AUTH_TOKEN"
327
+ # )
328
+ # api.companies.external_payrolls.get(company_uuid: "company_uuid", external_payroll_id: "external_payroll_id")
329
+ def get(company_uuid:, external_payroll_id:, request_options: nil)
330
+ Async do
331
+ response = @request_client.conn.get do | req |
332
+ unless request_options&.timeout_in_seconds.nil?
333
+ req.options.timeout = request_options.timeout_in_seconds
334
+ end
335
+ unless request_options&.token.nil?
336
+ req.headers["Authorization"] = request_options.token
337
+ end
338
+ unless request_options&.gusto_api_version.nil?
339
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
340
+ end
341
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
342
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
343
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
344
+ end
345
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
346
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
347
+ end
348
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}"
349
+ end
350
+ Gusto::ExternalPayrolls::ExternalPayroll.from_json(json_object: response.body)
351
+ end
352
+ end
353
+ # Update an external payroll with a list of external payroll items
354
+ # scope: `external_payrolls:write`
355
+ #
356
+ # @param company_uuid [String] The UUID of the company
357
+ # @param external_payroll_id [String] The UUID of the external payroll
358
+ # @param replace_fields [Boolean] Patch update external payroll items when set to true, otherwise it will
359
+ # overwrite the previous changes.
360
+ # @param external_payroll_items [Array<Hash>] Request of type Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItem>, as a Hash
361
+ # * :employee_uuid (String)
362
+ # * :earnings (Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem>)
363
+ # * :benefits (Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem>)
364
+ # * :taxes (Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem>)
365
+ # @param request_options [Gusto::RequestOptions]
366
+ # @return [Gusto::ExternalPayrolls::ExternalPayroll]
367
+ # @example
368
+ # api = Gusto::Client.new(
369
+ # base_url: "https://api.example.com",
370
+ # environment: Gusto::Environment::DEMO,
371
+ # token: "YOUR_AUTH_TOKEN"
372
+ # )
373
+ # api.companies.external_payrolls.update(
374
+ # company_uuid: "company_uuid",
375
+ # external_payroll_id: "external_payroll_id",
376
+ # replace_fields: true,
377
+ # external_payroll_items: [{ employee_uuid: "403c6ee3-5f58-40ef-a117-ff7175cd9ee3", earnings: [{ hours: "0.0", amount: "200.00", earning_id: 1, earning_type: COMPANY_PAY_TYPE }, { hours: "0.0", amount: "5000.00", earning_id: 2, earning_type: COMPANY_EARNING_TYPE }], benefits: [{ company_contribution_amount: "300.0", employee_deduction_amount: "300.0", benefit_id: 10 }, { company_contribution_amount: "50.0", employee_deduction_amount: "100.0", benefit_id: 21 }], taxes: [{ amount: "20.0", tax_id: 1 }, { amount: "100.0", tax_id: 2 }] }]
378
+ # )
379
+ def update(company_uuid:, external_payroll_id:, replace_fields: nil, external_payroll_items: nil, request_options: nil)
380
+ Async do
381
+ response = @request_client.conn.put do | req |
382
+ unless request_options&.timeout_in_seconds.nil?
383
+ req.options.timeout = request_options.timeout_in_seconds
384
+ end
385
+ unless request_options&.token.nil?
386
+ req.headers["Authorization"] = request_options.token
387
+ end
388
+ unless request_options&.gusto_api_version.nil?
389
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
390
+ end
391
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
392
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
393
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
394
+ end
395
+ req.body = { **(request_options&.additional_body_parameters || {}), replace_fields: replace_fields, external_payroll_items: external_payroll_items }.compact
396
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}"
397
+ end
398
+ Gusto::ExternalPayrolls::ExternalPayroll.from_json(json_object: response.body)
399
+ end
400
+ end
401
+ # Delete an external payroll.
402
+ # scope: `external_payrolls:write`
403
+ #
404
+ # @param company_uuid [String] The UUID of the company
405
+ # @param external_payroll_id [String] The UUID of the external payroll
406
+ # @param request_options [Gusto::RequestOptions]
407
+ # @return [Void]
408
+ # @example
409
+ # api = Gusto::Client.new(
410
+ # base_url: "https://api.example.com",
411
+ # environment: Gusto::Environment::DEMO,
412
+ # token: "YOUR_AUTH_TOKEN"
413
+ # )
414
+ # api.companies.external_payrolls.delete(company_uuid: "company_uuid", external_payroll_id: "external_payroll_id")
415
+ def delete(company_uuid:, external_payroll_id:, request_options: nil)
416
+ Async do
417
+ response = @request_client.conn.delete do | req |
418
+ unless request_options&.timeout_in_seconds.nil?
419
+ req.options.timeout = request_options.timeout_in_seconds
420
+ end
421
+ unless request_options&.token.nil?
422
+ req.headers["Authorization"] = request_options.token
423
+ end
424
+ unless request_options&.gusto_api_version.nil?
425
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
426
+ end
427
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
428
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
429
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
430
+ end
431
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
432
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
433
+ end
434
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}"
435
+ end
436
+ end
437
+ end
438
+ # Get tax suggestions for an external payroll. Earnings and/or benefits
439
+ # data must be saved prior to the calculation in order to retrieve accurate
440
+ # tax calculation.
441
+ # scope: `external_payrolls:read`
442
+ #
443
+ # @param company_uuid [String] The UUID of the company
444
+ # @param external_payroll_id [String] The UUID of the external payroll
445
+ # @param request_options [Gusto::RequestOptions]
446
+ # @return [Array<Gusto::ExternalPayrolls::ExternalPayrollTaxSuggestions>]
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.companies.external_payrolls.get_tax_suggestions(company_uuid: "company_uuid", external_payroll_id: "external_payroll_id")
454
+ def get_tax_suggestions(company_uuid:, external_payroll_id:, request_options: nil)
455
+ Async do
456
+ response = @request_client.conn.get do | req |
457
+ unless request_options&.timeout_in_seconds.nil?
458
+ req.options.timeout = request_options.timeout_in_seconds
459
+ end
460
+ unless request_options&.token.nil?
461
+ req.headers["Authorization"] = request_options.token
462
+ end
463
+ unless request_options&.gusto_api_version.nil?
464
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
465
+ end
466
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
467
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
468
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
469
+ end
470
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
471
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
472
+ end
473
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/#{external_payroll_id}/calculate_taxes"
474
+ end
475
+ parsed_json = JSON.parse(response.body)
476
+ parsed_json&.map do | item |
477
+ item = item.to_json
478
+ Gusto::ExternalPayrolls::ExternalPayrollTaxSuggestions.from_json(json_object: item)
479
+ end
480
+ end
481
+ end
482
+ # Get tax liabilities from aggregate external payrolls for a company.
483
+ # scope: `external_payrolls:read`
484
+ #
485
+ # @param company_uuid [String] The UUID of the company
486
+ # @param request_options [Gusto::RequestOptions]
487
+ # @return [Array<Gusto::ExternalPayrolls::TaxLiabilitiesSelections>]
488
+ # @example
489
+ # api = Gusto::Client.new(
490
+ # base_url: "https://api.example.com",
491
+ # environment: Gusto::Environment::DEMO,
492
+ # token: "YOUR_AUTH_TOKEN"
493
+ # )
494
+ # api.companies.external_payrolls.get_tax_liabilities(company_uuid: "company_uuid")
495
+ def get_tax_liabilities(company_uuid:, request_options: nil)
496
+ Async do
497
+ response = @request_client.conn.get do | req |
498
+ unless request_options&.timeout_in_seconds.nil?
499
+ req.options.timeout = request_options.timeout_in_seconds
500
+ end
501
+ unless request_options&.token.nil?
502
+ req.headers["Authorization"] = request_options.token
503
+ end
504
+ unless request_options&.gusto_api_version.nil?
505
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
506
+ end
507
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
508
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
509
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
510
+ end
511
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
512
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
513
+ end
514
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/tax_liabilities"
515
+ end
516
+ parsed_json = JSON.parse(response.body)
517
+ parsed_json&.map do | item |
518
+ item = item.to_json
519
+ Gusto::ExternalPayrolls::TaxLiabilitiesSelections.from_json(json_object: item)
520
+ end
521
+ end
522
+ end
523
+ # Update tax liabilities for a company.
524
+ # scope: `external_payrolls:write`
525
+ #
526
+ # @param company_uuid [String] The UUID of the company
527
+ # @param liability_selections [Array<Hash>] Request of type Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem>, as a Hash
528
+ # * :tax_id (Integer)
529
+ # * :last_unpaid_external_payroll_uuid (String)
530
+ # * :unpaid_liability_amount (Float)
531
+ # @param request_options [Gusto::RequestOptions]
532
+ # @return [Array<Gusto::ExternalPayrolls::TaxLiabilitiesSelections>]
533
+ # @example
534
+ # api = Gusto::Client.new(
535
+ # base_url: "https://api.example.com",
536
+ # environment: Gusto::Environment::DEMO,
537
+ # token: "YOUR_AUTH_TOKEN"
538
+ # )
539
+ # api.companies.external_payrolls.update_tax_liabilities(company_uuid: "company_uuid", liability_selections: [{ tax_id: 1, last_unpaid_external_payroll_uuid: "7985032c-ee3a-4e98-af27-d56551eb5f1c", unpaid_liability_amount: 50 }, { tax_id: 2, last_unpaid_external_payroll_uuid: "5ed14dbb-958f-47c8-b16e-c4fed82dc486", unpaid_liability_amount: 400 }, { tax_id: 8, unpaid_liability_amount: 0 }])
540
+ def update_tax_liabilities(company_uuid:, liability_selections: nil, request_options: nil)
541
+ Async do
542
+ response = @request_client.conn.put do | req |
543
+ unless request_options&.timeout_in_seconds.nil?
544
+ req.options.timeout = request_options.timeout_in_seconds
545
+ end
546
+ unless request_options&.token.nil?
547
+ req.headers["Authorization"] = request_options.token
548
+ end
549
+ unless request_options&.gusto_api_version.nil?
550
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
551
+ end
552
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
553
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
554
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
555
+ end
556
+ req.body = { **(request_options&.additional_body_parameters || {}), liability_selections: liability_selections }.compact
557
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/tax_liabilities"
558
+ end
559
+ parsed_json = JSON.parse(response.body)
560
+ parsed_json&.map do | item |
561
+ item = item.to_json
562
+ Gusto::ExternalPayrolls::TaxLiabilitiesSelections.from_json(json_object: item)
563
+ end
564
+ end
565
+ end
566
+ # Finalizes tax liabilities for a company. All external payrolls edit action will
567
+ # be disabled.
568
+ # scope: `external_payrolls:write`
569
+ #
570
+ # @param company_uuid [String] The UUID of the company
571
+ # @param request_options [Gusto::RequestOptions]
572
+ # @return [Void]
573
+ # @example
574
+ # api = Gusto::Client.new(
575
+ # base_url: "https://api.example.com",
576
+ # environment: Gusto::Environment::DEMO,
577
+ # token: "YOUR_AUTH_TOKEN"
578
+ # )
579
+ # api.companies.external_payrolls.finalize_tax_liabilities(company_uuid: "company_uuid")
580
+ def finalize_tax_liabilities(company_uuid:, request_options: nil)
581
+ Async do
582
+ response = @request_client.conn.put do | req |
583
+ unless request_options&.timeout_in_seconds.nil?
584
+ req.options.timeout = request_options.timeout_in_seconds
585
+ end
586
+ unless request_options&.token.nil?
587
+ req.headers["Authorization"] = request_options.token
588
+ end
589
+ unless request_options&.gusto_api_version.nil?
590
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
591
+ end
592
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
593
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
594
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
595
+ end
596
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
597
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
598
+ end
599
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/external_payrolls/tax_liabilities/finish"
600
+ end
601
+ end
602
+ end
603
+ end
604
+ end
605
+ end