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