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,584 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../pay_schedules/types/pay_schedule"
4
+ require_relative "types/pay_schedules_create_request_frequency"
5
+ require_relative "types/pay_schedules_preview_request_frequency"
6
+ require_relative "types/pay_schedules_preview_response"
7
+ require_relative "types/pay_schedules_update_request_frequency"
8
+ require_relative "../../payrolls/types/pay_period"
9
+ require "json"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require "async"
15
+ require_relative "../../../requests"
16
+
17
+ module Gusto
18
+ module Payroll
19
+ class PaySchedulesClient
20
+ # @return [Gusto::RequestClient]
21
+ attr_reader :request_client
22
+
23
+
24
+ # @param request_client [Gusto::RequestClient]
25
+ # @return [Gusto::Payroll::PaySchedulesClient]
26
+ def initialize(request_client:)
27
+ @request_client = request_client
28
+ end
29
+ # The pay schedule object in Gusto captures the details of when employees work and
30
+ # when they should be paid. A company can have multiple pay schedules.
31
+ # scope: `pay_schedules:read`
32
+ #
33
+ # @param company_id [String] The UUID of the company
34
+ # @param pay_schedule_id [String] The UUID of the pay schedule
35
+ # @param request_options [Gusto::RequestOptions]
36
+ # @return [Gusto::PaySchedules::PaySchedule]
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.payroll.pay_schedules.get(company_id: "company_id", pay_schedule_id: "pay_schedule_id")
44
+ def get(company_id:, pay_schedule_id:, request_options: nil)
45
+ response = @request_client.conn.get do | req |
46
+ unless request_options&.timeout_in_seconds.nil?
47
+ req.options.timeout = request_options.timeout_in_seconds
48
+ end
49
+ unless request_options&.token.nil?
50
+ req.headers["Authorization"] = request_options.token
51
+ end
52
+ unless request_options&.gusto_api_version.nil?
53
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
54
+ end
55
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
56
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
57
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
58
+ end
59
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
60
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
61
+ end
62
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/#{pay_schedule_id}"
63
+ end
64
+ Gusto::PaySchedules::PaySchedule.from_json(json_object: response.body)
65
+ end
66
+ # If a company does not have any pay schedules, this endpoint will create a single
67
+ # pay schedule and assign it to all employees. This is a common use case during
68
+ # company onboarding.
69
+ # If a company has an existing active pay schedule and want to support multiple
70
+ # pay schedules, this endpoint will create a pay schedule that is not assigned to
71
+ # any employee.
72
+ # Be sure to **[check state laws](https://www.dol.gov/agencies/whd/state/payday)**
73
+ # to know what schedule is right for your customers.
74
+ #
75
+ # @param company_id [String] The UUID of the company
76
+ # @param frequency [Gusto::Payroll::PaySchedules::PaySchedulesCreateRequestFrequency] The frequency that employees on this pay schedule are paid with Gusto.
77
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
78
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
79
+ # pay date.
80
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
81
+ # are paid. This field is only relevant for pay schedules with the “Twice per
82
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
83
+ # frequencies.
84
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
85
+ # employees are paid. This field is the second pay date for pay schedules with the
86
+ # "Twice per month" frequency. For semi-monthly pay schedules, set this field to
87
+ # 31. For months shorter than 31 days, we will set the second pay date to the last
88
+ # day of the month. It will be null for pay schedules with other frequencies.
89
+ # @param custom_name [String] A custom pay schedule name, defaults to the pay frequency description.
90
+ # @param request_options [Gusto::RequestOptions]
91
+ # @return [Gusto::PaySchedules::PaySchedule]
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.payroll.pay_schedules.create(
99
+ # company_id: "company_id",
100
+ # frequency: TWICE_PER_MONTH,
101
+ # anchor_pay_date: "2021-10-15",
102
+ # anchor_end_of_pay_period: "2021-10-15",
103
+ # day1: 15,
104
+ # day2: 31,
105
+ # custom_name: "demo pay schedule"
106
+ # )
107
+ def create(company_id:, frequency:, anchor_pay_date:, anchor_end_of_pay_period:, day1: nil, day2: nil, custom_name: nil, request_options: nil)
108
+ response = @request_client.conn.post do | req |
109
+ unless request_options&.timeout_in_seconds.nil?
110
+ req.options.timeout = request_options.timeout_in_seconds
111
+ end
112
+ unless request_options&.token.nil?
113
+ req.headers["Authorization"] = request_options.token
114
+ end
115
+ unless request_options&.gusto_api_version.nil?
116
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
117
+ end
118
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
119
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
120
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
121
+ end
122
+ req.body = { **(request_options&.additional_body_parameters || {}), frequency: frequency, anchor_pay_date: anchor_pay_date, anchor_end_of_pay_period: anchor_end_of_pay_period, day_1: day1, day_2: day2, custom_name: custom_name }.compact
123
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules"
124
+ end
125
+ Gusto::PaySchedules::PaySchedule.from_json(json_object: response.body)
126
+ end
127
+ # Provides a preview of a pay schedule with the specified parameters
128
+ # scope: `pay_schedules:write`
129
+ #
130
+ # @param company_id [String] The UUID of the company
131
+ # @param frequency [Gusto::Payroll::PaySchedules::PaySchedulesPreviewRequestFrequency] The frequency that employees on this pay schedule are paid with Gusto.
132
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
133
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
134
+ # pay date.
135
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
136
+ # are paid. This field is only relevant for pay schedules with the “Twice per
137
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
138
+ # frequencies.
139
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
140
+ # employees are paid. This field is the second pay date for pay schedules with the
141
+ # "Twice per month" frequency. For semi-monthly pay schedules, set this field to
142
+ # 31. For months shorter than 31 days, we will set the second pay date to the last
143
+ # day of the month. It will be null for pay schedules with other frequencies.
144
+ # @param request_options [Gusto::RequestOptions]
145
+ # @return [Gusto::Payroll::PaySchedules::PaySchedulesPreviewResponse]
146
+ # @example
147
+ # api = Gusto::Client.new(
148
+ # base_url: "https://api.example.com",
149
+ # environment: Gusto::Environment::DEMO,
150
+ # token: "YOUR_AUTH_TOKEN"
151
+ # )
152
+ # api.payroll.pay_schedules.preview(
153
+ # company_id: "company_id",
154
+ # anchor_pay_date: "2020-05-15",
155
+ # anchor_end_of_pay_period: "2020-05-08"
156
+ # )
157
+ def preview(company_id:, frequency: nil, anchor_pay_date: nil, anchor_end_of_pay_period: nil, day1: nil, day2: nil, request_options: nil)
158
+ response = @request_client.conn.get do | req |
159
+ unless request_options&.timeout_in_seconds.nil?
160
+ req.options.timeout = request_options.timeout_in_seconds
161
+ end
162
+ unless request_options&.token.nil?
163
+ req.headers["Authorization"] = request_options.token
164
+ end
165
+ unless request_options&.gusto_api_version.nil?
166
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
167
+ end
168
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
169
+ req.params = { **(request_options&.additional_query_parameters || {}), "frequency": frequency, "anchor_pay_date": anchor_pay_date, "anchor_end_of_pay_period": anchor_end_of_pay_period, "day_1": day1, "day_2": day2 }.compact
170
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
171
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
172
+ end
173
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/preview"
174
+ end
175
+ Gusto::Payroll::PaySchedules::PaySchedulesPreviewResponse.from_json(json_object: response.body)
176
+ end
177
+ # Updates a pay schedule.
178
+ # scope: `pay_schedules:write`
179
+ #
180
+ # @param company_id [String] The UUID of the company
181
+ # @param pay_schedule_id [String] The UUID of the pay schedule
182
+ # @param version [String] The current version of the object. See the [versioning
183
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
184
+ # information on how to use this field.
185
+ # @param frequency [Gusto::Payroll::PaySchedules::PaySchedulesUpdateRequestFrequency] The frequency that employees on this pay schedule are paid with Gusto.
186
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
187
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
188
+ # pay date.
189
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
190
+ # are paid. This field is only relevant for pay schedules with the “Twice per
191
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
192
+ # frequencies.
193
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
194
+ # employees are paid. This field is the second pay date for pay schedules with the
195
+ # "Twice per month" frequency. For semi-monthly pay schedules, set this field to
196
+ # 31. For months shorter than 31 days, we will set the second pay date to the last
197
+ # day of the month. It will be null for pay schedules with other frequencies.
198
+ # @param custom_name [String] A custom pay schedule name.
199
+ # @param auto_pilot [Boolean] With Autopilot® enabled, payroll will run automatically one day before your
200
+ # payroll deadlines.
201
+ # @param request_options [Gusto::RequestOptions]
202
+ # @return [Gusto::PaySchedules::PaySchedule]
203
+ # @example
204
+ # api = Gusto::Client.new(
205
+ # base_url: "https://api.example.com",
206
+ # environment: Gusto::Environment::DEMO,
207
+ # token: "YOUR_AUTH_TOKEN"
208
+ # )
209
+ # api.payroll.pay_schedules.update(
210
+ # company_id: "company_id",
211
+ # pay_schedule_id: "pay_schedule_id",
212
+ # version: "68934a3e9455fa72420237eb05902327",
213
+ # frequency: TWICE_PER_MONTH,
214
+ # anchor_pay_date: "2021-10-15",
215
+ # anchor_end_of_pay_period: "2021-10-15",
216
+ # day1: 15,
217
+ # day2: 31,
218
+ # custom_name: "demo pay schedule",
219
+ # auto_pilot: true
220
+ # )
221
+ def update(company_id:, pay_schedule_id:, version:, frequency: nil, anchor_pay_date: nil, anchor_end_of_pay_period: nil, day1: nil, day2: nil, custom_name: nil, auto_pilot: nil, request_options: nil)
222
+ response = @request_client.conn.put do | req |
223
+ unless request_options&.timeout_in_seconds.nil?
224
+ req.options.timeout = request_options.timeout_in_seconds
225
+ end
226
+ unless request_options&.token.nil?
227
+ req.headers["Authorization"] = request_options.token
228
+ end
229
+ unless request_options&.gusto_api_version.nil?
230
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
231
+ end
232
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
233
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
234
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
235
+ end
236
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, frequency: frequency, anchor_pay_date: anchor_pay_date, anchor_end_of_pay_period: anchor_end_of_pay_period, day_1: day1, day_2: day2, custom_name: custom_name, auto_pilot: auto_pilot }.compact
237
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/#{pay_schedule_id}"
238
+ end
239
+ Gusto::PaySchedules::PaySchedule.from_json(json_object: response.body)
240
+ end
241
+ # Pay periods are the foundation of payroll. Compensation, time & attendance,
242
+ # taxes, and expense reports all rely on when they happened. To begin submitting
243
+ # information for a given payroll, we need to agree on the time period.
244
+ # By default, this endpoint returns pay periods starting from 6 months ago to the
245
+ # date today. Use the `start_date` and `end_date` parameters to change the scope
246
+ # of the response. End dates can be up to 3 months in the future and there is no
247
+ # limit on start dates.
248
+ # Starting in version '2023-04-01', the eligible_employees attribute was removed
249
+ # from the response. The eligible employees for a payroll are determined by the
250
+ # employee_compensations returned from the payrolls#prepare endpoint.
251
+ # scope: `payrolls:read`
252
+ #
253
+ # @param company_id [String] The UUID of the company
254
+ # @param start_date [String]
255
+ # @param end_date [String] If left empty, defaults to today's date.
256
+ # @param payroll_types [String] regular and/or transition. Multiple options are comma separated. The default is
257
+ # regular pay periods if nothing is passed in.
258
+ # @param request_options [Gusto::RequestOptions]
259
+ # @return [Array<Gusto::Payrolls::PayPeriod>]
260
+ # @example
261
+ # api = Gusto::Client.new(
262
+ # base_url: "https://api.example.com",
263
+ # environment: Gusto::Environment::DEMO,
264
+ # token: "YOUR_AUTH_TOKEN"
265
+ # )
266
+ # api.payroll.pay_schedules.get_pay_periods(
267
+ # company_id: "company_id",
268
+ # start_date: "2020-01-01",
269
+ # end_date: "2020-01-31"
270
+ # )
271
+ def get_pay_periods(company_id:, start_date: nil, end_date: nil, payroll_types: nil, request_options: nil)
272
+ response = @request_client.conn.get do | req |
273
+ unless request_options&.timeout_in_seconds.nil?
274
+ req.options.timeout = request_options.timeout_in_seconds
275
+ end
276
+ unless request_options&.token.nil?
277
+ req.headers["Authorization"] = request_options.token
278
+ end
279
+ unless request_options&.gusto_api_version.nil?
280
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
281
+ end
282
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
283
+ req.params = { **(request_options&.additional_query_parameters || {}), "start_date": start_date, "end_date": end_date, "payroll_types": payroll_types }.compact
284
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
285
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
286
+ end
287
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_periods"
288
+ end
289
+ parsed_json = JSON.parse(response.body)
290
+ parsed_json&.map do | item |
291
+ item = item.to_json
292
+ Gusto::Payrolls::PayPeriod.from_json(json_object: item)
293
+ end
294
+ end
295
+ end
296
+ class AsyncPaySchedulesClient
297
+ # @return [Gusto::AsyncRequestClient]
298
+ attr_reader :request_client
299
+
300
+
301
+ # @param request_client [Gusto::RequestClient]
302
+ # @return [Gusto::Payroll::AsyncPaySchedulesClient]
303
+ def initialize(request_client:)
304
+ @request_client = request_client
305
+ end
306
+ # The pay schedule object in Gusto captures the details of when employees work and
307
+ # when they should be paid. A company can have multiple pay schedules.
308
+ # scope: `pay_schedules:read`
309
+ #
310
+ # @param company_id [String] The UUID of the company
311
+ # @param pay_schedule_id [String] The UUID of the pay schedule
312
+ # @param request_options [Gusto::RequestOptions]
313
+ # @return [Gusto::PaySchedules::PaySchedule]
314
+ # @example
315
+ # api = Gusto::Client.new(
316
+ # base_url: "https://api.example.com",
317
+ # environment: Gusto::Environment::DEMO,
318
+ # token: "YOUR_AUTH_TOKEN"
319
+ # )
320
+ # api.payroll.pay_schedules.get(company_id: "company_id", pay_schedule_id: "pay_schedule_id")
321
+ def get(company_id:, pay_schedule_id:, request_options: nil)
322
+ Async do
323
+ response = @request_client.conn.get do | req |
324
+ unless request_options&.timeout_in_seconds.nil?
325
+ req.options.timeout = request_options.timeout_in_seconds
326
+ end
327
+ unless request_options&.token.nil?
328
+ req.headers["Authorization"] = request_options.token
329
+ end
330
+ unless request_options&.gusto_api_version.nil?
331
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
332
+ end
333
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
334
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
335
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
336
+ end
337
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
338
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
339
+ end
340
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/#{pay_schedule_id}"
341
+ end
342
+ Gusto::PaySchedules::PaySchedule.from_json(json_object: response.body)
343
+ end
344
+ end
345
+ # If a company does not have any pay schedules, this endpoint will create a single
346
+ # pay schedule and assign it to all employees. This is a common use case during
347
+ # company onboarding.
348
+ # If a company has an existing active pay schedule and want to support multiple
349
+ # pay schedules, this endpoint will create a pay schedule that is not assigned to
350
+ # any employee.
351
+ # Be sure to **[check state laws](https://www.dol.gov/agencies/whd/state/payday)**
352
+ # to know what schedule is right for your customers.
353
+ #
354
+ # @param company_id [String] The UUID of the company
355
+ # @param frequency [Gusto::Payroll::PaySchedules::PaySchedulesCreateRequestFrequency] The frequency that employees on this pay schedule are paid with Gusto.
356
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
357
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
358
+ # pay date.
359
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
360
+ # are paid. This field is only relevant for pay schedules with the “Twice per
361
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
362
+ # frequencies.
363
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
364
+ # employees are paid. This field is the second pay date for pay schedules with the
365
+ # "Twice per month" frequency. For semi-monthly pay schedules, set this field to
366
+ # 31. For months shorter than 31 days, we will set the second pay date to the last
367
+ # day of the month. It will be null for pay schedules with other frequencies.
368
+ # @param custom_name [String] A custom pay schedule name, defaults to the pay frequency description.
369
+ # @param request_options [Gusto::RequestOptions]
370
+ # @return [Gusto::PaySchedules::PaySchedule]
371
+ # @example
372
+ # api = Gusto::Client.new(
373
+ # base_url: "https://api.example.com",
374
+ # environment: Gusto::Environment::DEMO,
375
+ # token: "YOUR_AUTH_TOKEN"
376
+ # )
377
+ # api.payroll.pay_schedules.create(
378
+ # company_id: "company_id",
379
+ # frequency: TWICE_PER_MONTH,
380
+ # anchor_pay_date: "2021-10-15",
381
+ # anchor_end_of_pay_period: "2021-10-15",
382
+ # day1: 15,
383
+ # day2: 31,
384
+ # custom_name: "demo pay schedule"
385
+ # )
386
+ def create(company_id:, frequency:, anchor_pay_date:, anchor_end_of_pay_period:, day1: nil, day2: nil, custom_name: 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 || {}), frequency: frequency, anchor_pay_date: anchor_pay_date, anchor_end_of_pay_period: anchor_end_of_pay_period, day_1: day1, day_2: day2, custom_name: custom_name }.compact
403
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules"
404
+ end
405
+ Gusto::PaySchedules::PaySchedule.from_json(json_object: response.body)
406
+ end
407
+ end
408
+ # Provides a preview of a pay schedule with the specified parameters
409
+ # scope: `pay_schedules:write`
410
+ #
411
+ # @param company_id [String] The UUID of the company
412
+ # @param frequency [Gusto::Payroll::PaySchedules::PaySchedulesPreviewRequestFrequency] The frequency that employees on this pay schedule are paid with Gusto.
413
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
414
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
415
+ # pay date.
416
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
417
+ # are paid. This field is only relevant for pay schedules with the “Twice per
418
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
419
+ # frequencies.
420
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
421
+ # employees are paid. This field is the second pay date for pay schedules with the
422
+ # "Twice per month" frequency. For semi-monthly pay schedules, set this field to
423
+ # 31. For months shorter than 31 days, we will set the second pay date to the last
424
+ # day of the month. It will be null for pay schedules with other frequencies.
425
+ # @param request_options [Gusto::RequestOptions]
426
+ # @return [Gusto::Payroll::PaySchedules::PaySchedulesPreviewResponse]
427
+ # @example
428
+ # api = Gusto::Client.new(
429
+ # base_url: "https://api.example.com",
430
+ # environment: Gusto::Environment::DEMO,
431
+ # token: "YOUR_AUTH_TOKEN"
432
+ # )
433
+ # api.payroll.pay_schedules.preview(
434
+ # company_id: "company_id",
435
+ # anchor_pay_date: "2020-05-15",
436
+ # anchor_end_of_pay_period: "2020-05-08"
437
+ # )
438
+ def preview(company_id:, frequency: nil, anchor_pay_date: nil, anchor_end_of_pay_period: nil, day1: nil, day2: nil, request_options: nil)
439
+ Async do
440
+ response = @request_client.conn.get do | req |
441
+ unless request_options&.timeout_in_seconds.nil?
442
+ req.options.timeout = request_options.timeout_in_seconds
443
+ end
444
+ unless request_options&.token.nil?
445
+ req.headers["Authorization"] = request_options.token
446
+ end
447
+ unless request_options&.gusto_api_version.nil?
448
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
449
+ end
450
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
451
+ req.params = { **(request_options&.additional_query_parameters || {}), "frequency": frequency, "anchor_pay_date": anchor_pay_date, "anchor_end_of_pay_period": anchor_end_of_pay_period, "day_1": day1, "day_2": day2 }.compact
452
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
453
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
454
+ end
455
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/preview"
456
+ end
457
+ Gusto::Payroll::PaySchedules::PaySchedulesPreviewResponse.from_json(json_object: response.body)
458
+ end
459
+ end
460
+ # Updates a pay schedule.
461
+ # scope: `pay_schedules:write`
462
+ #
463
+ # @param company_id [String] The UUID of the company
464
+ # @param pay_schedule_id [String] The UUID of the pay schedule
465
+ # @param version [String] The current version of the object. See the [versioning
466
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
467
+ # information on how to use this field.
468
+ # @param frequency [Gusto::Payroll::PaySchedules::PaySchedulesUpdateRequestFrequency] The frequency that employees on this pay schedule are paid with Gusto.
469
+ # @param anchor_pay_date [String] The first date that employees on this pay schedule are paid with Gusto.
470
+ # @param anchor_end_of_pay_period [String] The last date of the first pay period. This can be the same date as the anchor
471
+ # pay date.
472
+ # @param day1 [Integer] An integer between 1 and 31 indicating the first day of the month that employees
473
+ # are paid. This field is only relevant for pay schedules with the “Twice per
474
+ # month” and “Monthly” frequencies. It will be null for pay schedules with other
475
+ # frequencies.
476
+ # @param day2 [Integer] An integer between 1 and 31 indicating the second day of the month that
477
+ # employees are paid. This field is the second pay date for pay schedules with the
478
+ # "Twice per month" frequency. For semi-monthly pay schedules, set this field to
479
+ # 31. For months shorter than 31 days, we will set the second pay date to the last
480
+ # day of the month. It will be null for pay schedules with other frequencies.
481
+ # @param custom_name [String] A custom pay schedule name.
482
+ # @param auto_pilot [Boolean] With Autopilot® enabled, payroll will run automatically one day before your
483
+ # payroll deadlines.
484
+ # @param request_options [Gusto::RequestOptions]
485
+ # @return [Gusto::PaySchedules::PaySchedule]
486
+ # @example
487
+ # api = Gusto::Client.new(
488
+ # base_url: "https://api.example.com",
489
+ # environment: Gusto::Environment::DEMO,
490
+ # token: "YOUR_AUTH_TOKEN"
491
+ # )
492
+ # api.payroll.pay_schedules.update(
493
+ # company_id: "company_id",
494
+ # pay_schedule_id: "pay_schedule_id",
495
+ # version: "68934a3e9455fa72420237eb05902327",
496
+ # frequency: TWICE_PER_MONTH,
497
+ # anchor_pay_date: "2021-10-15",
498
+ # anchor_end_of_pay_period: "2021-10-15",
499
+ # day1: 15,
500
+ # day2: 31,
501
+ # custom_name: "demo pay schedule",
502
+ # auto_pilot: true
503
+ # )
504
+ def update(company_id:, pay_schedule_id:, version:, frequency: nil, anchor_pay_date: nil, anchor_end_of_pay_period: nil, day1: nil, day2: nil, custom_name: nil, auto_pilot: nil, request_options: nil)
505
+ Async do
506
+ response = @request_client.conn.put do | req |
507
+ unless request_options&.timeout_in_seconds.nil?
508
+ req.options.timeout = request_options.timeout_in_seconds
509
+ end
510
+ unless request_options&.token.nil?
511
+ req.headers["Authorization"] = request_options.token
512
+ end
513
+ unless request_options&.gusto_api_version.nil?
514
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
515
+ end
516
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
517
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
518
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
519
+ end
520
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, frequency: frequency, anchor_pay_date: anchor_pay_date, anchor_end_of_pay_period: anchor_end_of_pay_period, day_1: day1, day_2: day2, custom_name: custom_name, auto_pilot: auto_pilot }.compact
521
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/#{pay_schedule_id}"
522
+ end
523
+ Gusto::PaySchedules::PaySchedule.from_json(json_object: response.body)
524
+ end
525
+ end
526
+ # Pay periods are the foundation of payroll. Compensation, time & attendance,
527
+ # taxes, and expense reports all rely on when they happened. To begin submitting
528
+ # information for a given payroll, we need to agree on the time period.
529
+ # By default, this endpoint returns pay periods starting from 6 months ago to the
530
+ # date today. Use the `start_date` and `end_date` parameters to change the scope
531
+ # of the response. End dates can be up to 3 months in the future and there is no
532
+ # limit on start dates.
533
+ # Starting in version '2023-04-01', the eligible_employees attribute was removed
534
+ # from the response. The eligible employees for a payroll are determined by the
535
+ # employee_compensations returned from the payrolls#prepare endpoint.
536
+ # scope: `payrolls:read`
537
+ #
538
+ # @param company_id [String] The UUID of the company
539
+ # @param start_date [String]
540
+ # @param end_date [String] If left empty, defaults to today's date.
541
+ # @param payroll_types [String] regular and/or transition. Multiple options are comma separated. The default is
542
+ # regular pay periods if nothing is passed in.
543
+ # @param request_options [Gusto::RequestOptions]
544
+ # @return [Array<Gusto::Payrolls::PayPeriod>]
545
+ # @example
546
+ # api = Gusto::Client.new(
547
+ # base_url: "https://api.example.com",
548
+ # environment: Gusto::Environment::DEMO,
549
+ # token: "YOUR_AUTH_TOKEN"
550
+ # )
551
+ # api.payroll.pay_schedules.get_pay_periods(
552
+ # company_id: "company_id",
553
+ # start_date: "2020-01-01",
554
+ # end_date: "2020-01-31"
555
+ # )
556
+ def get_pay_periods(company_id:, start_date: nil, end_date: nil, payroll_types: nil, request_options: nil)
557
+ Async do
558
+ response = @request_client.conn.get do | req |
559
+ unless request_options&.timeout_in_seconds.nil?
560
+ req.options.timeout = request_options.timeout_in_seconds
561
+ end
562
+ unless request_options&.token.nil?
563
+ req.headers["Authorization"] = request_options.token
564
+ end
565
+ unless request_options&.gusto_api_version.nil?
566
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
567
+ end
568
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
569
+ req.params = { **(request_options&.additional_query_parameters || {}), "start_date": start_date, "end_date": end_date, "payroll_types": payroll_types }.compact
570
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
571
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
572
+ end
573
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_periods"
574
+ end
575
+ parsed_json = JSON.parse(response.body)
576
+ parsed_json&.map do | item |
577
+ item = item.to_json
578
+ Gusto::Payrolls::PayPeriod.from_json(json_object: item)
579
+ end
580
+ end
581
+ end
582
+ end
583
+ end
584
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Payroll
5
+ module PaySchedules
6
+ # The frequency that employees on this pay schedule are paid with Gusto.
7
+ class PaySchedulesCreateRequestFrequency
8
+
9
+ EVERY_WEEK = "Every week"
10
+ EVERY_OTHER_WEEK = "Every other week"
11
+ TWICE_PER_MONTH = "Twice per month"
12
+ MONTHLY = "Monthly"
13
+
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Payroll
5
+ module PaySchedules
6
+ class PaySchedulesPreviewRequestFrequency
7
+
8
+ EVERY_WEEK = "Every week"
9
+ EVERY_OTHER_WEEK = "Every other week"
10
+ TWICE_PER_MONTH = "Twice per month"
11
+ MONTHLY = "Monthly"
12
+
13
+ end
14
+ end
15
+ end
16
+ end