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,377 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../employee_employments/types/unprocessed_termination_pay_period"
4
+ require "json"
5
+ require_relative "../../pay_schedules/types/pay_schedule_assignment"
6
+ require_relative "../../types/pay_schedule_assignment_body"
7
+ require_relative "../../pay_schedules/types/pay_schedule_assignment_preview"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require_relative "../../../requests"
13
+
14
+ module Gusto
15
+ module Companies
16
+ class PaySchedulesClient
17
+ # @return [Gusto::RequestClient]
18
+ attr_reader :request_client
19
+
20
+
21
+ # @param request_client [Gusto::RequestClient]
22
+ # @return [Gusto::Companies::PaySchedulesClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+ # When a payroll admin terminates an employee and selects "Dismissal Payroll" as
27
+ # the employee's final payroll, their last pay period will appear on the list.
28
+ # This endpoint returns the unprocessed pay periods for past and future terminated
29
+ # employees in a given company.
30
+ # scope: `payrolls:read`
31
+ #
32
+ # @param company_id [String] The UUID of the company
33
+ # @param request_options [Gusto::RequestOptions]
34
+ # @return [Array<Gusto::EmployeeEmployments::UnprocessedTerminationPayPeriod>]
35
+ # @example
36
+ # api = Gusto::Client.new(
37
+ # base_url: "https://api.example.com",
38
+ # environment: Gusto::Environment::DEMO,
39
+ # token: "YOUR_AUTH_TOKEN"
40
+ # )
41
+ # api.companies.pay_schedules.get_unprocessed_terminations(company_id: "company_id")
42
+ def get_unprocessed_terminations(company_id:, request_options: nil)
43
+ response = @request_client.conn.get do | req |
44
+ unless request_options&.timeout_in_seconds.nil?
45
+ req.options.timeout = request_options.timeout_in_seconds
46
+ end
47
+ unless request_options&.token.nil?
48
+ req.headers["Authorization"] = request_options.token
49
+ end
50
+ unless request_options&.gusto_api_version.nil?
51
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
52
+ end
53
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
54
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
55
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
56
+ end
57
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
58
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
59
+ end
60
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_periods/unprocessed_termination_pay_periods"
61
+ end
62
+ parsed_json = JSON.parse(response.body)
63
+ parsed_json&.map do | item |
64
+ item = item.to_json
65
+ Gusto::EmployeeEmployments::UnprocessedTerminationPayPeriod.from_json(json_object: item)
66
+ end
67
+ end
68
+ # This endpoint returns the current pay schedule assignment for a company, with
69
+ # pay schedule and employee/department mappings depending on the pay schedule
70
+ # type.
71
+ # scope: `pay_schedules:read`
72
+ #
73
+ # @param company_id [String] The UUID of the company
74
+ # @param request_options [Gusto::RequestOptions]
75
+ # @return [Gusto::PaySchedules::PayScheduleAssignment]
76
+ # @example
77
+ # api = Gusto::Client.new(
78
+ # base_url: "https://api.example.com",
79
+ # environment: Gusto::Environment::DEMO,
80
+ # token: "YOUR_AUTH_TOKEN"
81
+ # )
82
+ # api.companies.pay_schedules.get_assignments(company_id: "company_id")
83
+ def get_assignments(company_id:, request_options: nil)
84
+ response = @request_client.conn.get do | req |
85
+ unless request_options&.timeout_in_seconds.nil?
86
+ req.options.timeout = request_options.timeout_in_seconds
87
+ end
88
+ unless request_options&.token.nil?
89
+ req.headers["Authorization"] = request_options.token
90
+ end
91
+ unless request_options&.gusto_api_version.nil?
92
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
93
+ end
94
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
95
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
96
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
97
+ end
98
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
99
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
100
+ end
101
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/assignments"
102
+ end
103
+ Gusto::PaySchedules::PayScheduleAssignment.from_json(json_object: response.body)
104
+ end
105
+ # This endpoints returns the employee changes, including pay period and transition
106
+ # pay periods, for changing the pay schedule.
107
+ # scope: `pay_schedules:write`
108
+ #
109
+ # @param company_id [String] The UUID of the company
110
+ # @param request [Hash] Request of type Gusto::PayScheduleAssignmentBody, as a Hash
111
+ # * :type (Gusto::PayScheduleAssignmentBodyType)
112
+ # * :hourly_pay_schedule_uuid (String)
113
+ # * :salaried_pay_schedule_uuid (String)
114
+ # * :default_pay_schedule_uuid (String)
115
+ # * :partial_assignment (Boolean)
116
+ # * :employees (Array<Gusto::PayScheduleAssignmentBodyEmployeesItem>)
117
+ # * :departments (Array<Gusto::PayScheduleAssignmentBodyDepartmentsItem>)
118
+ # @param request_options [Gusto::RequestOptions]
119
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentPreview]
120
+ # @example
121
+ # api = Gusto::Client.new(
122
+ # base_url: "https://api.example.com",
123
+ # environment: Gusto::Environment::DEMO,
124
+ # token: "YOUR_AUTH_TOKEN"
125
+ # )
126
+ # api.companies.pay_schedules.preview_assignment(company_id: "company_id", request: { type: BY_EMPLOYEE, employees: [{ }] })
127
+ def preview_assignment(company_id:, request:, request_options: nil)
128
+ response = @request_client.conn.post do | req |
129
+ unless request_options&.timeout_in_seconds.nil?
130
+ req.options.timeout = request_options.timeout_in_seconds
131
+ end
132
+ unless request_options&.token.nil?
133
+ req.headers["Authorization"] = request_options.token
134
+ end
135
+ unless request_options&.gusto_api_version.nil?
136
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
137
+ end
138
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
139
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
140
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
141
+ end
142
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
143
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/assignment_preview"
144
+ end
145
+ Gusto::PaySchedules::PayScheduleAssignmentPreview.from_json(json_object: response.body)
146
+ end
147
+ # This endpoint assigns employees to pay schedules based on the schedule type.
148
+ # For `by_employee` and `by_department` schedules, use the `partial_assignment`
149
+ # parameter to control the assignment scope. Set it to `true` for partial
150
+ # assignments (only some employees or departments at a time) and `false` for full
151
+ # assignments (all employees or departments at once).
152
+ # scope: `pay_schedules:write`
153
+ #
154
+ # @param company_id [String] The UUID of the company
155
+ # @param request [Hash] Request of type Gusto::PayScheduleAssignmentBody, as a Hash
156
+ # * :type (Gusto::PayScheduleAssignmentBodyType)
157
+ # * :hourly_pay_schedule_uuid (String)
158
+ # * :salaried_pay_schedule_uuid (String)
159
+ # * :default_pay_schedule_uuid (String)
160
+ # * :partial_assignment (Boolean)
161
+ # * :employees (Array<Gusto::PayScheduleAssignmentBodyEmployeesItem>)
162
+ # * :departments (Array<Gusto::PayScheduleAssignmentBodyDepartmentsItem>)
163
+ # @param request_options [Gusto::RequestOptions]
164
+ # @return [Void]
165
+ # @example
166
+ # api = Gusto::Client.new(
167
+ # base_url: "https://api.example.com",
168
+ # environment: Gusto::Environment::DEMO,
169
+ # token: "YOUR_AUTH_TOKEN"
170
+ # )
171
+ # api.companies.pay_schedules.assign(company_id: "company_id", request: { type: BY_EMPLOYEE, employees: [{ }] })
172
+ def assign(company_id:, request:, request_options: nil)
173
+ response = @request_client.conn.post do | req |
174
+ unless request_options&.timeout_in_seconds.nil?
175
+ req.options.timeout = request_options.timeout_in_seconds
176
+ end
177
+ unless request_options&.token.nil?
178
+ req.headers["Authorization"] = request_options.token
179
+ end
180
+ unless request_options&.gusto_api_version.nil?
181
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
182
+ end
183
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
184
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
185
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
186
+ end
187
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
188
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/assign"
189
+ end
190
+ end
191
+ end
192
+ class AsyncPaySchedulesClient
193
+ # @return [Gusto::AsyncRequestClient]
194
+ attr_reader :request_client
195
+
196
+
197
+ # @param request_client [Gusto::RequestClient]
198
+ # @return [Gusto::Companies::AsyncPaySchedulesClient]
199
+ def initialize(request_client:)
200
+ @request_client = request_client
201
+ end
202
+ # When a payroll admin terminates an employee and selects "Dismissal Payroll" as
203
+ # the employee's final payroll, their last pay period will appear on the list.
204
+ # This endpoint returns the unprocessed pay periods for past and future terminated
205
+ # employees in a given company.
206
+ # scope: `payrolls:read`
207
+ #
208
+ # @param company_id [String] The UUID of the company
209
+ # @param request_options [Gusto::RequestOptions]
210
+ # @return [Array<Gusto::EmployeeEmployments::UnprocessedTerminationPayPeriod>]
211
+ # @example
212
+ # api = Gusto::Client.new(
213
+ # base_url: "https://api.example.com",
214
+ # environment: Gusto::Environment::DEMO,
215
+ # token: "YOUR_AUTH_TOKEN"
216
+ # )
217
+ # api.companies.pay_schedules.get_unprocessed_terminations(company_id: "company_id")
218
+ def get_unprocessed_terminations(company_id:, request_options: nil)
219
+ Async do
220
+ response = @request_client.conn.get do | req |
221
+ unless request_options&.timeout_in_seconds.nil?
222
+ req.options.timeout = request_options.timeout_in_seconds
223
+ end
224
+ unless request_options&.token.nil?
225
+ req.headers["Authorization"] = request_options.token
226
+ end
227
+ unless request_options&.gusto_api_version.nil?
228
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
229
+ end
230
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
231
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
232
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
233
+ end
234
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
235
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
236
+ end
237
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_periods/unprocessed_termination_pay_periods"
238
+ end
239
+ parsed_json = JSON.parse(response.body)
240
+ parsed_json&.map do | item |
241
+ item = item.to_json
242
+ Gusto::EmployeeEmployments::UnprocessedTerminationPayPeriod.from_json(json_object: item)
243
+ end
244
+ end
245
+ end
246
+ # This endpoint returns the current pay schedule assignment for a company, with
247
+ # pay schedule and employee/department mappings depending on the pay schedule
248
+ # type.
249
+ # scope: `pay_schedules:read`
250
+ #
251
+ # @param company_id [String] The UUID of the company
252
+ # @param request_options [Gusto::RequestOptions]
253
+ # @return [Gusto::PaySchedules::PayScheduleAssignment]
254
+ # @example
255
+ # api = Gusto::Client.new(
256
+ # base_url: "https://api.example.com",
257
+ # environment: Gusto::Environment::DEMO,
258
+ # token: "YOUR_AUTH_TOKEN"
259
+ # )
260
+ # api.companies.pay_schedules.get_assignments(company_id: "company_id")
261
+ def get_assignments(company_id:, request_options: nil)
262
+ Async do
263
+ response = @request_client.conn.get do | req |
264
+ unless request_options&.timeout_in_seconds.nil?
265
+ req.options.timeout = request_options.timeout_in_seconds
266
+ end
267
+ unless request_options&.token.nil?
268
+ req.headers["Authorization"] = request_options.token
269
+ end
270
+ unless request_options&.gusto_api_version.nil?
271
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
272
+ end
273
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
274
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
275
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
276
+ end
277
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
278
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
279
+ end
280
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/assignments"
281
+ end
282
+ Gusto::PaySchedules::PayScheduleAssignment.from_json(json_object: response.body)
283
+ end
284
+ end
285
+ # This endpoints returns the employee changes, including pay period and transition
286
+ # pay periods, for changing the pay schedule.
287
+ # scope: `pay_schedules:write`
288
+ #
289
+ # @param company_id [String] The UUID of the company
290
+ # @param request [Hash] Request of type Gusto::PayScheduleAssignmentBody, as a Hash
291
+ # * :type (Gusto::PayScheduleAssignmentBodyType)
292
+ # * :hourly_pay_schedule_uuid (String)
293
+ # * :salaried_pay_schedule_uuid (String)
294
+ # * :default_pay_schedule_uuid (String)
295
+ # * :partial_assignment (Boolean)
296
+ # * :employees (Array<Gusto::PayScheduleAssignmentBodyEmployeesItem>)
297
+ # * :departments (Array<Gusto::PayScheduleAssignmentBodyDepartmentsItem>)
298
+ # @param request_options [Gusto::RequestOptions]
299
+ # @return [Gusto::PaySchedules::PayScheduleAssignmentPreview]
300
+ # @example
301
+ # api = Gusto::Client.new(
302
+ # base_url: "https://api.example.com",
303
+ # environment: Gusto::Environment::DEMO,
304
+ # token: "YOUR_AUTH_TOKEN"
305
+ # )
306
+ # api.companies.pay_schedules.preview_assignment(company_id: "company_id", request: { type: BY_EMPLOYEE, employees: [{ }] })
307
+ def preview_assignment(company_id:, request:, request_options: nil)
308
+ Async do
309
+ response = @request_client.conn.post do | req |
310
+ unless request_options&.timeout_in_seconds.nil?
311
+ req.options.timeout = request_options.timeout_in_seconds
312
+ end
313
+ unless request_options&.token.nil?
314
+ req.headers["Authorization"] = request_options.token
315
+ end
316
+ unless request_options&.gusto_api_version.nil?
317
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
318
+ end
319
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
320
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
321
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
322
+ end
323
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
324
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/assignment_preview"
325
+ end
326
+ Gusto::PaySchedules::PayScheduleAssignmentPreview.from_json(json_object: response.body)
327
+ end
328
+ end
329
+ # This endpoint assigns employees to pay schedules based on the schedule type.
330
+ # For `by_employee` and `by_department` schedules, use the `partial_assignment`
331
+ # parameter to control the assignment scope. Set it to `true` for partial
332
+ # assignments (only some employees or departments at a time) and `false` for full
333
+ # assignments (all employees or departments at once).
334
+ # scope: `pay_schedules:write`
335
+ #
336
+ # @param company_id [String] The UUID of the company
337
+ # @param request [Hash] Request of type Gusto::PayScheduleAssignmentBody, as a Hash
338
+ # * :type (Gusto::PayScheduleAssignmentBodyType)
339
+ # * :hourly_pay_schedule_uuid (String)
340
+ # * :salaried_pay_schedule_uuid (String)
341
+ # * :default_pay_schedule_uuid (String)
342
+ # * :partial_assignment (Boolean)
343
+ # * :employees (Array<Gusto::PayScheduleAssignmentBodyEmployeesItem>)
344
+ # * :departments (Array<Gusto::PayScheduleAssignmentBodyDepartmentsItem>)
345
+ # @param request_options [Gusto::RequestOptions]
346
+ # @return [Void]
347
+ # @example
348
+ # api = Gusto::Client.new(
349
+ # base_url: "https://api.example.com",
350
+ # environment: Gusto::Environment::DEMO,
351
+ # token: "YOUR_AUTH_TOKEN"
352
+ # )
353
+ # api.companies.pay_schedules.assign(company_id: "company_id", request: { type: BY_EMPLOYEE, employees: [{ }] })
354
+ def assign(company_id:, request:, request_options: nil)
355
+ Async do
356
+ response = @request_client.conn.post do | req |
357
+ unless request_options&.timeout_in_seconds.nil?
358
+ req.options.timeout = request_options.timeout_in_seconds
359
+ end
360
+ unless request_options&.token.nil?
361
+ req.headers["Authorization"] = request_options.token
362
+ end
363
+ unless request_options&.gusto_api_version.nil?
364
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
365
+ end
366
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
367
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
368
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
369
+ end
370
+ req.body = { **(request || {}), **(request_options&.additional_body_parameters || {}) }.compact
371
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/pay_schedules/assign"
372
+ end
373
+ end
374
+ end
375
+ end
376
+ end
377
+ end
@@ -0,0 +1,198 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../payment_configs/types/payment_configs"
4
+ require_relative "types/payment_configs_update_request_payment_speed"
5
+ require "async"
6
+ require "async"
7
+ require_relative "../../../requests"
8
+
9
+ module Gusto
10
+ module Companies
11
+ class PaymentConfigsClient
12
+ # @return [Gusto::RequestClient]
13
+ attr_reader :request_client
14
+
15
+
16
+ # @param request_client [Gusto::RequestClient]
17
+ # @return [Gusto::Companies::PaymentConfigsClient]
18
+ def initialize(request_client:)
19
+ @request_client = request_client
20
+ end
21
+ # Get payment speed for the company and fast payment limit (1-day is only
22
+ # applicable to partners that opt in).
23
+ # scope: `company_payment_configs:read`
24
+ #
25
+ # @param company_uuid [String] The UUID of the company
26
+ # @param request_options [Gusto::RequestOptions]
27
+ # @return [Gusto::PaymentConfigs::PaymentConfigs]
28
+ # @example
29
+ # api = Gusto::Client.new(
30
+ # base_url: "https://api.example.com",
31
+ # environment: Gusto::Environment::DEMO,
32
+ # token: "YOUR_AUTH_TOKEN"
33
+ # )
34
+ # api.companies.payment_configs.get(company_uuid: "company_uuid")
35
+ def get(company_uuid:, request_options: nil)
36
+ response = @request_client.conn.get do | req |
37
+ unless request_options&.timeout_in_seconds.nil?
38
+ req.options.timeout = request_options.timeout_in_seconds
39
+ end
40
+ unless request_options&.token.nil?
41
+ req.headers["Authorization"] = request_options.token
42
+ end
43
+ unless request_options&.gusto_api_version.nil?
44
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
45
+ end
46
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
47
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
48
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
49
+ end
50
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
51
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
52
+ end
53
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/payment_configs"
54
+ end
55
+ Gusto::PaymentConfigs::PaymentConfigs.from_json(json_object: response.body)
56
+ end
57
+ # Update payment speed and fast payment limit for a company. At least one of
58
+ # `payment_speed` or `fast_payment_limit` parameters is required. 1-day option is
59
+ # only applicable to partners that opt in.
60
+ # scope: `company_payment_configs:write`
61
+ #
62
+ # @param company_uuid [String] The UUID of the company
63
+ # @param fast_payment_limit [String] Fast payment limit. This limit is an aggregate of all fast payrolls amount.
64
+ # @param payment_speed [Gusto::Companies::PaymentConfigs::PaymentConfigsUpdateRequestPaymentSpeed] Gusto Embedded supports three payment speeds (1-day, 2-day, and 4-day). For
65
+ # next-day payments, funds are deposited in your team's bank account by the end of
66
+ # the next business day. Most people will see the funds arrive the next afternoon,
67
+ # but payments may arrive as late as the end of the business day.
68
+ # @param request_options [Gusto::RequestOptions]
69
+ # @return [Gusto::PaymentConfigs::PaymentConfigs]
70
+ # @example
71
+ # api = Gusto::Client.new(
72
+ # base_url: "https://api.example.com",
73
+ # environment: Gusto::Environment::DEMO,
74
+ # token: "YOUR_AUTH_TOKEN"
75
+ # )
76
+ # api.companies.payment_configs.update(
77
+ # company_uuid: "company_uuid",
78
+ # fast_payment_limit: "5000",
79
+ # payment_speed: TWO_DAY
80
+ # )
81
+ def update(company_uuid:, fast_payment_limit:, payment_speed:, request_options: nil)
82
+ response = @request_client.conn.put do | req |
83
+ unless request_options&.timeout_in_seconds.nil?
84
+ req.options.timeout = request_options.timeout_in_seconds
85
+ end
86
+ unless request_options&.token.nil?
87
+ req.headers["Authorization"] = request_options.token
88
+ end
89
+ unless request_options&.gusto_api_version.nil?
90
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
91
+ end
92
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
93
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
94
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
95
+ end
96
+ req.body = { **(request_options&.additional_body_parameters || {}), fast_payment_limit: fast_payment_limit, payment_speed: payment_speed }.compact
97
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/payment_configs"
98
+ end
99
+ Gusto::PaymentConfigs::PaymentConfigs.from_json(json_object: response.body)
100
+ end
101
+ end
102
+ class AsyncPaymentConfigsClient
103
+ # @return [Gusto::AsyncRequestClient]
104
+ attr_reader :request_client
105
+
106
+
107
+ # @param request_client [Gusto::RequestClient]
108
+ # @return [Gusto::Companies::AsyncPaymentConfigsClient]
109
+ def initialize(request_client:)
110
+ @request_client = request_client
111
+ end
112
+ # Get payment speed for the company and fast payment limit (1-day is only
113
+ # applicable to partners that opt in).
114
+ # scope: `company_payment_configs:read`
115
+ #
116
+ # @param company_uuid [String] The UUID of the company
117
+ # @param request_options [Gusto::RequestOptions]
118
+ # @return [Gusto::PaymentConfigs::PaymentConfigs]
119
+ # @example
120
+ # api = Gusto::Client.new(
121
+ # base_url: "https://api.example.com",
122
+ # environment: Gusto::Environment::DEMO,
123
+ # token: "YOUR_AUTH_TOKEN"
124
+ # )
125
+ # api.companies.payment_configs.get(company_uuid: "company_uuid")
126
+ def get(company_uuid:, request_options: nil)
127
+ Async do
128
+ response = @request_client.conn.get do | req |
129
+ unless request_options&.timeout_in_seconds.nil?
130
+ req.options.timeout = request_options.timeout_in_seconds
131
+ end
132
+ unless request_options&.token.nil?
133
+ req.headers["Authorization"] = request_options.token
134
+ end
135
+ unless request_options&.gusto_api_version.nil?
136
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
137
+ end
138
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
139
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
140
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
141
+ end
142
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
143
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
144
+ end
145
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/payment_configs"
146
+ end
147
+ Gusto::PaymentConfigs::PaymentConfigs.from_json(json_object: response.body)
148
+ end
149
+ end
150
+ # Update payment speed and fast payment limit for a company. At least one of
151
+ # `payment_speed` or `fast_payment_limit` parameters is required. 1-day option is
152
+ # only applicable to partners that opt in.
153
+ # scope: `company_payment_configs:write`
154
+ #
155
+ # @param company_uuid [String] The UUID of the company
156
+ # @param fast_payment_limit [String] Fast payment limit. This limit is an aggregate of all fast payrolls amount.
157
+ # @param payment_speed [Gusto::Companies::PaymentConfigs::PaymentConfigsUpdateRequestPaymentSpeed] Gusto Embedded supports three payment speeds (1-day, 2-day, and 4-day). For
158
+ # next-day payments, funds are deposited in your team's bank account by the end of
159
+ # the next business day. Most people will see the funds arrive the next afternoon,
160
+ # but payments may arrive as late as the end of the business day.
161
+ # @param request_options [Gusto::RequestOptions]
162
+ # @return [Gusto::PaymentConfigs::PaymentConfigs]
163
+ # @example
164
+ # api = Gusto::Client.new(
165
+ # base_url: "https://api.example.com",
166
+ # environment: Gusto::Environment::DEMO,
167
+ # token: "YOUR_AUTH_TOKEN"
168
+ # )
169
+ # api.companies.payment_configs.update(
170
+ # company_uuid: "company_uuid",
171
+ # fast_payment_limit: "5000",
172
+ # payment_speed: TWO_DAY
173
+ # )
174
+ def update(company_uuid:, fast_payment_limit:, payment_speed:, request_options: nil)
175
+ Async do
176
+ response = @request_client.conn.put do | req |
177
+ unless request_options&.timeout_in_seconds.nil?
178
+ req.options.timeout = request_options.timeout_in_seconds
179
+ end
180
+ unless request_options&.token.nil?
181
+ req.headers["Authorization"] = request_options.token
182
+ end
183
+ unless request_options&.gusto_api_version.nil?
184
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
185
+ end
186
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
187
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
188
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
189
+ end
190
+ req.body = { **(request_options&.additional_body_parameters || {}), fast_payment_limit: fast_payment_limit, payment_speed: payment_speed }.compact
191
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_uuid}/payment_configs"
192
+ end
193
+ Gusto::PaymentConfigs::PaymentConfigs.from_json(json_object: response.body)
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Companies
5
+ module PaymentConfigs
6
+ # Gusto Embedded supports three payment speeds (1-day, 2-day, and 4-day). For
7
+ # next-day payments, funds are deposited in your team's bank account by the end of
8
+ # the next business day. Most people will see the funds arrive the next afternoon,
9
+ # but payments may arrive as late as the end of the business day.
10
+ class PaymentConfigsUpdateRequestPaymentSpeed
11
+
12
+ ONE_DAY = "1-day"
13
+ TWO_DAY = "2-day"
14
+ FOUR_DAY = "4-day"
15
+
16
+ end
17
+ end
18
+ end
19
+ end