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,587 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../types/department"
4
+ require "json"
5
+ require_relative "types/departments_add_people_request_employees_item"
6
+ require_relative "types/departments_add_people_request_contractors_item"
7
+ require_relative "types/departments_remove_people_request_employees_item"
8
+ require_relative "types/departments_remove_people_request_contractors_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 DepartmentsClient
21
+ # @return [Gusto::RequestClient]
22
+ attr_reader :request_client
23
+
24
+
25
+ # @param request_client [Gusto::RequestClient]
26
+ # @return [Gusto::Companies::DepartmentsClient]
27
+ def initialize(request_client:)
28
+ @request_client = request_client
29
+ end
30
+ # Get all of the departments for a given company with the employees and
31
+ # contractors assigned to that department.
32
+ # scope: `departments:read`
33
+ #
34
+ # @param company_uuid [String] The UUID of the company
35
+ # @param request_options [Gusto::RequestOptions]
36
+ # @return [Array<Gusto::Department>]
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.departments.list(company_uuid: "company_uuid")
44
+ def list(company_uuid:, 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}/departments"
63
+ end
64
+ parsed_json = JSON.parse(response.body)
65
+ parsed_json&.map do | item |
66
+ item = item.to_json
67
+ Gusto::Department.from_json(json_object: item)
68
+ end
69
+ end
70
+ # Create a department
71
+ # scope: `departments:write`
72
+ #
73
+ # @param company_uuid [String] The UUID of the company
74
+ # @param title [String]
75
+ # @param request_options [Gusto::RequestOptions]
76
+ # @return [Gusto::Department]
77
+ # @example
78
+ # api = Gusto::Client.new(
79
+ # base_url: "https://api.example.com",
80
+ # environment: Gusto::Environment::DEMO,
81
+ # token: "YOUR_AUTH_TOKEN"
82
+ # )
83
+ # api.companies.departments.create(company_uuid: "company_uuid", title: "Stage Hand")
84
+ def create(company_uuid:, title: nil, request_options: nil)
85
+ response = @request_client.conn.post do | req |
86
+ unless request_options&.timeout_in_seconds.nil?
87
+ req.options.timeout = request_options.timeout_in_seconds
88
+ end
89
+ unless request_options&.token.nil?
90
+ req.headers["Authorization"] = request_options.token
91
+ end
92
+ unless request_options&.gusto_api_version.nil?
93
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
94
+ end
95
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
96
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
97
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
98
+ end
99
+ req.body = { **(request_options&.additional_body_parameters || {}), title: title }.compact
100
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/departments"
101
+ end
102
+ Gusto::Department.from_json(json_object: response.body)
103
+ end
104
+ # Get a department given the UUID
105
+ # scope: `departments:read`
106
+ #
107
+ # @param department_uuid [String] The UUID of the department
108
+ # @param request_options [Gusto::RequestOptions]
109
+ # @return [Gusto::Department]
110
+ # @example
111
+ # api = Gusto::Client.new(
112
+ # base_url: "https://api.example.com",
113
+ # environment: Gusto::Environment::DEMO,
114
+ # token: "YOUR_AUTH_TOKEN"
115
+ # )
116
+ # api.companies.departments.get(department_uuid: "department_uuid")
117
+ def get(department_uuid:, request_options: nil)
118
+ response = @request_client.conn.get do | req |
119
+ unless request_options&.timeout_in_seconds.nil?
120
+ req.options.timeout = request_options.timeout_in_seconds
121
+ end
122
+ unless request_options&.token.nil?
123
+ req.headers["Authorization"] = request_options.token
124
+ end
125
+ unless request_options&.gusto_api_version.nil?
126
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
127
+ end
128
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
129
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
130
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
131
+ end
132
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
133
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
134
+ end
135
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}"
136
+ end
137
+ Gusto::Department.from_json(json_object: response.body)
138
+ end
139
+ # Update a department
140
+ # scope: `departments:write`
141
+ #
142
+ # @param department_uuid [String] The UUID of the department
143
+ # @param version [String] The current version of the object. See the [versioning
144
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
145
+ # information on how to use this field.
146
+ # @param title [String]
147
+ # @param request_options [Gusto::RequestOptions]
148
+ # @return [Gusto::Department]
149
+ # @example
150
+ # api = Gusto::Client.new(
151
+ # base_url: "https://api.example.com",
152
+ # environment: Gusto::Environment::DEMO,
153
+ # token: "YOUR_AUTH_TOKEN"
154
+ # )
155
+ # api.companies.departments.update(
156
+ # department_uuid: "department_uuid",
157
+ # version: "db0edd04aaac4506f7edab03ac855d56",
158
+ # title: "Backup Dancer"
159
+ # )
160
+ def update(department_uuid:, version:, title: nil, request_options: nil)
161
+ response = @request_client.conn.put do | req |
162
+ unless request_options&.timeout_in_seconds.nil?
163
+ req.options.timeout = request_options.timeout_in_seconds
164
+ end
165
+ unless request_options&.token.nil?
166
+ req.headers["Authorization"] = request_options.token
167
+ end
168
+ unless request_options&.gusto_api_version.nil?
169
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
170
+ end
171
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
172
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
173
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
174
+ end
175
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, title: title }.compact
176
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}"
177
+ end
178
+ Gusto::Department.from_json(json_object: response.body)
179
+ end
180
+ # Delete a department. You cannot delete a department until all employees and
181
+ # contractors have been removed.
182
+ # scope: `departments:write`
183
+ #
184
+ # @param department_uuid [String] The UUID of the department
185
+ # @param request_options [Gusto::RequestOptions]
186
+ # @return [Void]
187
+ # @example
188
+ # api = Gusto::Client.new(
189
+ # base_url: "https://api.example.com",
190
+ # environment: Gusto::Environment::DEMO,
191
+ # token: "YOUR_AUTH_TOKEN"
192
+ # )
193
+ # api.companies.departments.delete(department_uuid: "department_uuid")
194
+ def delete(department_uuid:, request_options: nil)
195
+ response = @request_client.conn.delete do | req |
196
+ unless request_options&.timeout_in_seconds.nil?
197
+ req.options.timeout = request_options.timeout_in_seconds
198
+ end
199
+ unless request_options&.token.nil?
200
+ req.headers["Authorization"] = request_options.token
201
+ end
202
+ unless request_options&.gusto_api_version.nil?
203
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
204
+ end
205
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
206
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
207
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
208
+ end
209
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
210
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
211
+ end
212
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}"
213
+ end
214
+ end
215
+ # Add employees and contractors to a department
216
+ # scope: `departments:write`
217
+ #
218
+ # @param department_uuid [String] The UUID of the department
219
+ # @param version [String] The current version of the object. See the [versioning
220
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
221
+ # information on how to use this field.
222
+ # @param employees [Array<Hash>] Array of employees to add to the departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsAddPeopleRequestEmployeesItem>, as a Hash
223
+ # * :uuid (String)
224
+ # @param contractors [Array<Hash>] Array of contractors to add to the departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsAddPeopleRequestContractorsItem>, as a Hash
225
+ # * :uuid (String)
226
+ # @param request_options [Gusto::RequestOptions]
227
+ # @return [Gusto::Department]
228
+ # @example
229
+ # api = Gusto::Client.new(
230
+ # base_url: "https://api.example.com",
231
+ # environment: Gusto::Environment::DEMO,
232
+ # token: "YOUR_AUTH_TOKEN"
233
+ # )
234
+ # api.companies.departments.add_people(department_uuid: "department_uuid")
235
+ def add_people(department_uuid:, version: nil, employees: nil, contractors: nil, request_options: nil)
236
+ response = @request_client.conn.put do | req |
237
+ unless request_options&.timeout_in_seconds.nil?
238
+ req.options.timeout = request_options.timeout_in_seconds
239
+ end
240
+ unless request_options&.token.nil?
241
+ req.headers["Authorization"] = request_options.token
242
+ end
243
+ unless request_options&.gusto_api_version.nil?
244
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
245
+ end
246
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
247
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
248
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
249
+ end
250
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, employees: employees, contractors: contractors }.compact
251
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}/add"
252
+ end
253
+ Gusto::Department.from_json(json_object: response.body)
254
+ end
255
+ # Remove employees and contractors from a department
256
+ # scope: `departments:write`
257
+ #
258
+ # @param department_uuid [String] The UUID of the department
259
+ # @param version [String] The current version of the object. See the [versioning
260
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
261
+ # information on how to use this field.
262
+ # @param employees [Array<Hash>] Array of employees to remove from a departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsRemovePeopleRequestEmployeesItem>, as a Hash
263
+ # * :uuid (String)
264
+ # @param contractors [Array<Hash>] Array of contractors to remove from a departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsRemovePeopleRequestContractorsItem>, as a Hash
265
+ # * :uuid (String)
266
+ # @param request_options [Gusto::RequestOptions]
267
+ # @return [Gusto::Department]
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.companies.departments.remove_people(department_uuid: "department_uuid")
275
+ def remove_people(department_uuid:, version: nil, employees: nil, contractors: nil, request_options: nil)
276
+ response = @request_client.conn.put do | req |
277
+ unless request_options&.timeout_in_seconds.nil?
278
+ req.options.timeout = request_options.timeout_in_seconds
279
+ end
280
+ unless request_options&.token.nil?
281
+ req.headers["Authorization"] = request_options.token
282
+ end
283
+ unless request_options&.gusto_api_version.nil?
284
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
285
+ end
286
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
287
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
288
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
289
+ end
290
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, employees: employees, contractors: contractors }.compact
291
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}/remove"
292
+ end
293
+ Gusto::Department.from_json(json_object: response.body)
294
+ end
295
+ end
296
+ class AsyncDepartmentsClient
297
+ # @return [Gusto::AsyncRequestClient]
298
+ attr_reader :request_client
299
+
300
+
301
+ # @param request_client [Gusto::RequestClient]
302
+ # @return [Gusto::Companies::AsyncDepartmentsClient]
303
+ def initialize(request_client:)
304
+ @request_client = request_client
305
+ end
306
+ # Get all of the departments for a given company with the employees and
307
+ # contractors assigned to that department.
308
+ # scope: `departments:read`
309
+ #
310
+ # @param company_uuid [String] The UUID of the company
311
+ # @param request_options [Gusto::RequestOptions]
312
+ # @return [Array<Gusto::Department>]
313
+ # @example
314
+ # api = Gusto::Client.new(
315
+ # base_url: "https://api.example.com",
316
+ # environment: Gusto::Environment::DEMO,
317
+ # token: "YOUR_AUTH_TOKEN"
318
+ # )
319
+ # api.companies.departments.list(company_uuid: "company_uuid")
320
+ def list(company_uuid:, request_options: nil)
321
+ Async do
322
+ response = @request_client.conn.get do | req |
323
+ unless request_options&.timeout_in_seconds.nil?
324
+ req.options.timeout = request_options.timeout_in_seconds
325
+ end
326
+ unless request_options&.token.nil?
327
+ req.headers["Authorization"] = request_options.token
328
+ end
329
+ unless request_options&.gusto_api_version.nil?
330
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
331
+ end
332
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
333
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
334
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
335
+ end
336
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
337
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
338
+ end
339
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/departments"
340
+ end
341
+ parsed_json = JSON.parse(response.body)
342
+ parsed_json&.map do | item |
343
+ item = item.to_json
344
+ Gusto::Department.from_json(json_object: item)
345
+ end
346
+ end
347
+ end
348
+ # Create a department
349
+ # scope: `departments:write`
350
+ #
351
+ # @param company_uuid [String] The UUID of the company
352
+ # @param title [String]
353
+ # @param request_options [Gusto::RequestOptions]
354
+ # @return [Gusto::Department]
355
+ # @example
356
+ # api = Gusto::Client.new(
357
+ # base_url: "https://api.example.com",
358
+ # environment: Gusto::Environment::DEMO,
359
+ # token: "YOUR_AUTH_TOKEN"
360
+ # )
361
+ # api.companies.departments.create(company_uuid: "company_uuid", title: "Stage Hand")
362
+ def create(company_uuid:, title: nil, request_options: nil)
363
+ Async do
364
+ response = @request_client.conn.post do | req |
365
+ unless request_options&.timeout_in_seconds.nil?
366
+ req.options.timeout = request_options.timeout_in_seconds
367
+ end
368
+ unless request_options&.token.nil?
369
+ req.headers["Authorization"] = request_options.token
370
+ end
371
+ unless request_options&.gusto_api_version.nil?
372
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
373
+ end
374
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
375
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
376
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
377
+ end
378
+ req.body = { **(request_options&.additional_body_parameters || {}), title: title }.compact
379
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/departments"
380
+ end
381
+ Gusto::Department.from_json(json_object: response.body)
382
+ end
383
+ end
384
+ # Get a department given the UUID
385
+ # scope: `departments:read`
386
+ #
387
+ # @param department_uuid [String] The UUID of the department
388
+ # @param request_options [Gusto::RequestOptions]
389
+ # @return [Gusto::Department]
390
+ # @example
391
+ # api = Gusto::Client.new(
392
+ # base_url: "https://api.example.com",
393
+ # environment: Gusto::Environment::DEMO,
394
+ # token: "YOUR_AUTH_TOKEN"
395
+ # )
396
+ # api.companies.departments.get(department_uuid: "department_uuid")
397
+ def get(department_uuid:, request_options: nil)
398
+ Async do
399
+ response = @request_client.conn.get do | req |
400
+ unless request_options&.timeout_in_seconds.nil?
401
+ req.options.timeout = request_options.timeout_in_seconds
402
+ end
403
+ unless request_options&.token.nil?
404
+ req.headers["Authorization"] = request_options.token
405
+ end
406
+ unless request_options&.gusto_api_version.nil?
407
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
408
+ end
409
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
410
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
411
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
412
+ end
413
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
414
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
415
+ end
416
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}"
417
+ end
418
+ Gusto::Department.from_json(json_object: response.body)
419
+ end
420
+ end
421
+ # Update a department
422
+ # scope: `departments:write`
423
+ #
424
+ # @param department_uuid [String] The UUID of the department
425
+ # @param version [String] The current version of the object. See the [versioning
426
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
427
+ # information on how to use this field.
428
+ # @param title [String]
429
+ # @param request_options [Gusto::RequestOptions]
430
+ # @return [Gusto::Department]
431
+ # @example
432
+ # api = Gusto::Client.new(
433
+ # base_url: "https://api.example.com",
434
+ # environment: Gusto::Environment::DEMO,
435
+ # token: "YOUR_AUTH_TOKEN"
436
+ # )
437
+ # api.companies.departments.update(
438
+ # department_uuid: "department_uuid",
439
+ # version: "db0edd04aaac4506f7edab03ac855d56",
440
+ # title: "Backup Dancer"
441
+ # )
442
+ def update(department_uuid:, version:, title: nil, request_options: nil)
443
+ Async do
444
+ response = @request_client.conn.put do | req |
445
+ unless request_options&.timeout_in_seconds.nil?
446
+ req.options.timeout = request_options.timeout_in_seconds
447
+ end
448
+ unless request_options&.token.nil?
449
+ req.headers["Authorization"] = request_options.token
450
+ end
451
+ unless request_options&.gusto_api_version.nil?
452
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
453
+ end
454
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
455
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
456
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
457
+ end
458
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, title: title }.compact
459
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}"
460
+ end
461
+ Gusto::Department.from_json(json_object: response.body)
462
+ end
463
+ end
464
+ # Delete a department. You cannot delete a department until all employees and
465
+ # contractors have been removed.
466
+ # scope: `departments:write`
467
+ #
468
+ # @param department_uuid [String] The UUID of the department
469
+ # @param request_options [Gusto::RequestOptions]
470
+ # @return [Void]
471
+ # @example
472
+ # api = Gusto::Client.new(
473
+ # base_url: "https://api.example.com",
474
+ # environment: Gusto::Environment::DEMO,
475
+ # token: "YOUR_AUTH_TOKEN"
476
+ # )
477
+ # api.companies.departments.delete(department_uuid: "department_uuid")
478
+ def delete(department_uuid:, request_options: nil)
479
+ Async do
480
+ response = @request_client.conn.delete do | req |
481
+ unless request_options&.timeout_in_seconds.nil?
482
+ req.options.timeout = request_options.timeout_in_seconds
483
+ end
484
+ unless request_options&.token.nil?
485
+ req.headers["Authorization"] = request_options.token
486
+ end
487
+ unless request_options&.gusto_api_version.nil?
488
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
489
+ end
490
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
491
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
492
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
493
+ end
494
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
495
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
496
+ end
497
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}"
498
+ end
499
+ end
500
+ end
501
+ # Add employees and contractors to a department
502
+ # scope: `departments:write`
503
+ #
504
+ # @param department_uuid [String] The UUID of the department
505
+ # @param version [String] The current version of the object. See the [versioning
506
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
507
+ # information on how to use this field.
508
+ # @param employees [Array<Hash>] Array of employees to add to the departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsAddPeopleRequestEmployeesItem>, as a Hash
509
+ # * :uuid (String)
510
+ # @param contractors [Array<Hash>] Array of contractors to add to the departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsAddPeopleRequestContractorsItem>, as a Hash
511
+ # * :uuid (String)
512
+ # @param request_options [Gusto::RequestOptions]
513
+ # @return [Gusto::Department]
514
+ # @example
515
+ # api = Gusto::Client.new(
516
+ # base_url: "https://api.example.com",
517
+ # environment: Gusto::Environment::DEMO,
518
+ # token: "YOUR_AUTH_TOKEN"
519
+ # )
520
+ # api.companies.departments.add_people(department_uuid: "department_uuid")
521
+ def add_people(department_uuid:, version: nil, employees: nil, contractors: nil, request_options: nil)
522
+ Async do
523
+ response = @request_client.conn.put do | req |
524
+ unless request_options&.timeout_in_seconds.nil?
525
+ req.options.timeout = request_options.timeout_in_seconds
526
+ end
527
+ unless request_options&.token.nil?
528
+ req.headers["Authorization"] = request_options.token
529
+ end
530
+ unless request_options&.gusto_api_version.nil?
531
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
532
+ end
533
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
534
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
535
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
536
+ end
537
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, employees: employees, contractors: contractors }.compact
538
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}/add"
539
+ end
540
+ Gusto::Department.from_json(json_object: response.body)
541
+ end
542
+ end
543
+ # Remove employees and contractors from a department
544
+ # scope: `departments:write`
545
+ #
546
+ # @param department_uuid [String] The UUID of the department
547
+ # @param version [String] The current version of the object. See the [versioning
548
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
549
+ # information on how to use this field.
550
+ # @param employees [Array<Hash>] Array of employees to remove from a departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsRemovePeopleRequestEmployeesItem>, as a Hash
551
+ # * :uuid (String)
552
+ # @param contractors [Array<Hash>] Array of contractors to remove from a departmentRequest of type Array<Gusto::Companies::Departments::DepartmentsRemovePeopleRequestContractorsItem>, as a Hash
553
+ # * :uuid (String)
554
+ # @param request_options [Gusto::RequestOptions]
555
+ # @return [Gusto::Department]
556
+ # @example
557
+ # api = Gusto::Client.new(
558
+ # base_url: "https://api.example.com",
559
+ # environment: Gusto::Environment::DEMO,
560
+ # token: "YOUR_AUTH_TOKEN"
561
+ # )
562
+ # api.companies.departments.remove_people(department_uuid: "department_uuid")
563
+ def remove_people(department_uuid:, version: nil, employees: nil, contractors: nil, request_options: nil)
564
+ Async do
565
+ response = @request_client.conn.put do | req |
566
+ unless request_options&.timeout_in_seconds.nil?
567
+ req.options.timeout = request_options.timeout_in_seconds
568
+ end
569
+ unless request_options&.token.nil?
570
+ req.headers["Authorization"] = request_options.token
571
+ end
572
+ unless request_options&.gusto_api_version.nil?
573
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
574
+ end
575
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
576
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
577
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
578
+ end
579
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, employees: employees, contractors: contractors }.compact
580
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/departments/#{department_uuid}/remove"
581
+ end
582
+ Gusto::Department.from_json(json_object: response.body)
583
+ end
584
+ end
585
+ end
586
+ end
587
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Companies
7
+ module Departments
8
+ class DepartmentsAddPeopleRequestContractorsItem
9
+ # @return [String]
10
+ attr_reader :uuid
11
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
12
+ attr_reader :additional_properties
13
+ # @return [Object]
14
+ attr_reader :_field_set
15
+ protected :_field_set
16
+
17
+ OMIT = Object.new
18
+
19
+ # @param uuid [String]
20
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
21
+ # @return [Gusto::Companies::Departments::DepartmentsAddPeopleRequestContractorsItem]
22
+ def initialize(uuid: OMIT, additional_properties: nil)
23
+ @uuid = uuid if uuid != OMIT
24
+ @additional_properties = additional_properties
25
+ @_field_set = { "uuid": uuid }.reject do | _k, v |
26
+ v == OMIT
27
+ end
28
+ end
29
+ # Deserialize a JSON object to an instance of
30
+ # DepartmentsAddPeopleRequestContractorsItem
31
+ #
32
+ # @param json_object [String]
33
+ # @return [Gusto::Companies::Departments::DepartmentsAddPeopleRequestContractorsItem]
34
+ def self.from_json(json_object:)
35
+ struct = JSON.parse(json_object, object_class: OpenStruct)
36
+ parsed_json = JSON.parse(json_object)
37
+ uuid = parsed_json["uuid"]
38
+ new(uuid: uuid, additional_properties: struct)
39
+ end
40
+ # Serialize an instance of DepartmentsAddPeopleRequestContractorsItem to a JSON
41
+ # object
42
+ #
43
+ # @return [String]
44
+ def to_json
45
+ @_field_set&.to_json
46
+ end
47
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
48
+ # hash and check each fields type against the current object's property
49
+ # definitions.
50
+ #
51
+ # @param obj [Object]
52
+ # @return [Void]
53
+ def self.validate_raw(obj:)
54
+ obj.uuid&.is_a?(String) != false || raise("Passed value for field obj.uuid is not the expected type, validation failed.")
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end