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,98 @@
1
+ # frozen_string_literal: true
2
+ require_relative "external_payrolls_update_request_external_payroll_items_item_earnings_item"
3
+ require_relative "external_payrolls_update_request_external_payroll_items_item_benefits_item"
4
+ require_relative "external_payrolls_update_request_external_payroll_items_item_taxes_item"
5
+ require "ostruct"
6
+ require "json"
7
+
8
+ module Gusto
9
+ module Companies
10
+ module ExternalPayrolls
11
+ # Submit wages, benefits, taxes for each employee
12
+ class ExternalPayrollsUpdateRequestExternalPayrollItemsItem
13
+ # @return [String] The UUID of the employee.
14
+ attr_reader :employee_uuid
15
+ # @return [Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem>]
16
+ attr_reader :earnings
17
+ # @return [Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem>]
18
+ attr_reader :benefits
19
+ # @return [Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem>] An array of taxes for the employee. Depends on your company selections, taxes
20
+ # include federal income tax, social security, medicare, and more.
21
+ attr_reader :taxes
22
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
23
+ attr_reader :additional_properties
24
+ # @return [Object]
25
+ attr_reader :_field_set
26
+ protected :_field_set
27
+
28
+ OMIT = Object.new
29
+
30
+ # @param employee_uuid [String] The UUID of the employee.
31
+ # @param earnings [Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem>]
32
+ # @param benefits [Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem>]
33
+ # @param taxes [Array<Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem>] An array of taxes for the employee. Depends on your company selections, taxes
34
+ # include federal income tax, social security, medicare, and more.
35
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
36
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItem]
37
+ def initialize(employee_uuid: OMIT, earnings: OMIT, benefits: OMIT, taxes: OMIT, additional_properties: nil)
38
+ @employee_uuid = employee_uuid if employee_uuid != OMIT
39
+ @earnings = earnings if earnings != OMIT
40
+ @benefits = benefits if benefits != OMIT
41
+ @taxes = taxes if taxes != OMIT
42
+ @additional_properties = additional_properties
43
+ @_field_set = { "employee_uuid": employee_uuid, "earnings": earnings, "benefits": benefits, "taxes": taxes }.reject do | _k, v |
44
+ v == OMIT
45
+ end
46
+ end
47
+ # Deserialize a JSON object to an instance of
48
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItem
49
+ #
50
+ # @param json_object [String]
51
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItem]
52
+ def self.from_json(json_object:)
53
+ struct = JSON.parse(json_object, object_class: OpenStruct)
54
+ parsed_json = JSON.parse(json_object)
55
+ employee_uuid = parsed_json["employee_uuid"]
56
+ earnings = parsed_json["earnings"]&.map do | item |
57
+ item = item.to_json
58
+ Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem.from_json(json_object: item)
59
+ end
60
+ benefits = parsed_json["benefits"]&.map do | item |
61
+ item = item.to_json
62
+ Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem.from_json(json_object: item)
63
+ end
64
+ taxes = parsed_json["taxes"]&.map do | item |
65
+ item = item.to_json
66
+ Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem.from_json(json_object: item)
67
+ end
68
+ new(
69
+ employee_uuid: employee_uuid,
70
+ earnings: earnings,
71
+ benefits: benefits,
72
+ taxes: taxes,
73
+ additional_properties: struct
74
+ )
75
+ end
76
+ # Serialize an instance of ExternalPayrollsUpdateRequestExternalPayrollItemsItem
77
+ # to a JSON object
78
+ #
79
+ # @return [String]
80
+ def to_json
81
+ @_field_set&.to_json
82
+ end
83
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
84
+ # hash and check each fields type against the current object's property
85
+ # definitions.
86
+ #
87
+ # @param obj [Object]
88
+ # @return [Void]
89
+ def self.validate_raw(obj:)
90
+ obj.employee_uuid&.is_a?(String) != false || raise("Passed value for field obj.employee_uuid is not the expected type, validation failed.")
91
+ obj.earnings&.is_a?(Array) != false || raise("Passed value for field obj.earnings is not the expected type, validation failed.")
92
+ obj.benefits&.is_a?(Array) != false || raise("Passed value for field obj.benefits is not the expected type, validation failed.")
93
+ obj.taxes&.is_a?(Array) != false || raise("Passed value for field obj.taxes is not the expected type, validation failed.")
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Companies
7
+ module ExternalPayrolls
8
+ # An array of benefits for the employee. Depends on your company selections,
9
+ # benefits include 401k, health insurance and more.
10
+ class ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem
11
+ # @return [String] Company contribution amount towards the benefit
12
+ attr_reader :company_contribution_amount
13
+ # @return [String] Employee deduction amount towards the benefit
14
+ attr_reader :employee_deduction_amount
15
+ # @return [Integer] The ID of the benefit.
16
+ attr_reader :benefit_id
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param company_contribution_amount [String] Company contribution amount towards the benefit
26
+ # @param employee_deduction_amount [String] Employee deduction amount towards the benefit
27
+ # @param benefit_id [Integer] The ID of the benefit.
28
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
29
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem]
30
+ def initialize(company_contribution_amount: OMIT, employee_deduction_amount: OMIT, benefit_id: OMIT, additional_properties: nil)
31
+ @company_contribution_amount = company_contribution_amount if company_contribution_amount != OMIT
32
+ @employee_deduction_amount = employee_deduction_amount if employee_deduction_amount != OMIT
33
+ @benefit_id = benefit_id if benefit_id != OMIT
34
+ @additional_properties = additional_properties
35
+ @_field_set = { "company_contribution_amount": company_contribution_amount, "employee_deduction_amount": employee_deduction_amount, "benefit_id": benefit_id }.reject do | _k, v |
36
+ v == OMIT
37
+ end
38
+ end
39
+ # Deserialize a JSON object to an instance of
40
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem
41
+ #
42
+ # @param json_object [String]
43
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem]
44
+ def self.from_json(json_object:)
45
+ struct = JSON.parse(json_object, object_class: OpenStruct)
46
+ parsed_json = JSON.parse(json_object)
47
+ company_contribution_amount = parsed_json["company_contribution_amount"]
48
+ employee_deduction_amount = parsed_json["employee_deduction_amount"]
49
+ benefit_id = parsed_json["benefit_id"]
50
+ new(
51
+ company_contribution_amount: company_contribution_amount,
52
+ employee_deduction_amount: employee_deduction_amount,
53
+ benefit_id: benefit_id,
54
+ additional_properties: struct
55
+ )
56
+ end
57
+ # Serialize an instance of
58
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItemBenefitsItem to a JSON
59
+ # object
60
+ #
61
+ # @return [String]
62
+ def to_json
63
+ @_field_set&.to_json
64
+ end
65
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
66
+ # hash and check each fields type against the current object's property
67
+ # definitions.
68
+ #
69
+ # @param obj [Object]
70
+ # @return [Void]
71
+ def self.validate_raw(obj:)
72
+ obj.company_contribution_amount&.is_a?(String) != false || raise("Passed value for field obj.company_contribution_amount is not the expected type, validation failed.")
73
+ obj.employee_deduction_amount&.is_a?(String) != false || raise("Passed value for field obj.employee_deduction_amount is not the expected type, validation failed.")
74
+ obj.benefit_id&.is_a?(Integer) != false || raise("Passed value for field obj.benefit_id is not the expected type, validation failed.")
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+ require_relative "external_payrolls_update_request_external_payroll_items_item_earnings_item_earning_type"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module Companies
8
+ module ExternalPayrolls
9
+ # An array of earnings for the employee. Depends on your company selections,
10
+ # earnings includes wages, hours, bonuses, tips, commission and more.
11
+ class ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem
12
+ # @return [String] The hour of the compensation for the pay period.
13
+ attr_reader :hours
14
+ # @return [String] The amount of the earning.
15
+ attr_reader :amount
16
+ # @return [Integer] The ID of the earning.
17
+ attr_reader :earning_id
18
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItemEarningType] The earning type for the compensation.
19
+ attr_reader :earning_type
20
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
21
+ attr_reader :additional_properties
22
+ # @return [Object]
23
+ attr_reader :_field_set
24
+ protected :_field_set
25
+
26
+ OMIT = Object.new
27
+
28
+ # @param hours [String] The hour of the compensation for the pay period.
29
+ # @param amount [String] The amount of the earning.
30
+ # @param earning_id [Integer] The ID of the earning.
31
+ # @param earning_type [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItemEarningType] The earning type for the compensation.
32
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
33
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem]
34
+ def initialize(hours: OMIT, amount: OMIT, earning_id: OMIT, earning_type: OMIT, additional_properties: nil)
35
+ @hours = hours if hours != OMIT
36
+ @amount = amount if amount != OMIT
37
+ @earning_id = earning_id if earning_id != OMIT
38
+ @earning_type = earning_type if earning_type != OMIT
39
+ @additional_properties = additional_properties
40
+ @_field_set = { "hours": hours, "amount": amount, "earning_id": earning_id, "earning_type": earning_type }.reject do | _k, v |
41
+ v == OMIT
42
+ end
43
+ end
44
+ # Deserialize a JSON object to an instance of
45
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem
46
+ #
47
+ # @param json_object [String]
48
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem]
49
+ def self.from_json(json_object:)
50
+ struct = JSON.parse(json_object, object_class: OpenStruct)
51
+ parsed_json = JSON.parse(json_object)
52
+ hours = parsed_json["hours"]
53
+ amount = parsed_json["amount"]
54
+ earning_id = parsed_json["earning_id"]
55
+ earning_type = parsed_json["earning_type"]
56
+ new(
57
+ hours: hours,
58
+ amount: amount,
59
+ earning_id: earning_id,
60
+ earning_type: earning_type,
61
+ additional_properties: struct
62
+ )
63
+ end
64
+ # Serialize an instance of
65
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItem to a JSON
66
+ # object
67
+ #
68
+ # @return [String]
69
+ def to_json
70
+ @_field_set&.to_json
71
+ end
72
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
73
+ # hash and check each fields type against the current object's property
74
+ # definitions.
75
+ #
76
+ # @param obj [Object]
77
+ # @return [Void]
78
+ def self.validate_raw(obj:)
79
+ obj.hours&.is_a?(String) != false || raise("Passed value for field obj.hours is not the expected type, validation failed.")
80
+ obj.amount&.is_a?(String) != false || raise("Passed value for field obj.amount is not the expected type, validation failed.")
81
+ obj.earning_id&.is_a?(Integer) != false || raise("Passed value for field obj.earning_id is not the expected type, validation failed.")
82
+ obj.earning_type&.is_a?(Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItemEarningType) != false || raise("Passed value for field obj.earning_type is not the expected type, validation failed.")
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Companies
5
+ module ExternalPayrolls
6
+ # The earning type for the compensation.
7
+ class ExternalPayrollsUpdateRequestExternalPayrollItemsItemEarningsItemEarningType
8
+
9
+ COMPANY_PAY_TYPE = "CompanyPayType"
10
+ COMPANY_EARNING_TYPE = "CompanyEarningType"
11
+
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Companies
7
+ module ExternalPayrolls
8
+ class ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem
9
+ # @return [String] The amount of the tax.
10
+ attr_reader :amount
11
+ # @return [Integer] The ID of the tax.
12
+ attr_reader :tax_id
13
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
14
+ attr_reader :additional_properties
15
+ # @return [Object]
16
+ attr_reader :_field_set
17
+ protected :_field_set
18
+
19
+ OMIT = Object.new
20
+
21
+ # @param amount [String] The amount of the tax.
22
+ # @param tax_id [Integer] The ID of the tax.
23
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
24
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem]
25
+ def initialize(amount: OMIT, tax_id: OMIT, additional_properties: nil)
26
+ @amount = amount if amount != OMIT
27
+ @tax_id = tax_id if tax_id != OMIT
28
+ @additional_properties = additional_properties
29
+ @_field_set = { "amount": amount, "tax_id": tax_id }.reject do | _k, v |
30
+ v == OMIT
31
+ end
32
+ end
33
+ # Deserialize a JSON object to an instance of
34
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem
35
+ #
36
+ # @param json_object [String]
37
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem]
38
+ def self.from_json(json_object:)
39
+ struct = JSON.parse(json_object, object_class: OpenStruct)
40
+ parsed_json = JSON.parse(json_object)
41
+ amount = parsed_json["amount"]
42
+ tax_id = parsed_json["tax_id"]
43
+ new(
44
+ amount: amount,
45
+ tax_id: tax_id,
46
+ additional_properties: struct
47
+ )
48
+ end
49
+ # Serialize an instance of
50
+ # ExternalPayrollsUpdateRequestExternalPayrollItemsItemTaxesItem to a JSON object
51
+ #
52
+ # @return [String]
53
+ def to_json
54
+ @_field_set&.to_json
55
+ end
56
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
57
+ # hash and check each fields type against the current object's property
58
+ # definitions.
59
+ #
60
+ # @param obj [Object]
61
+ # @return [Void]
62
+ def self.validate_raw(obj:)
63
+ obj.amount&.is_a?(String) != false || raise("Passed value for field obj.amount is not the expected type, validation failed.")
64
+ obj.tax_id&.is_a?(Integer) != false || raise("Passed value for field obj.tax_id is not the expected type, validation failed.")
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,80 @@
1
+ # frozen_string_literal: true
2
+ require "ostruct"
3
+ require "json"
4
+
5
+ module Gusto
6
+ module Companies
7
+ module ExternalPayrolls
8
+
9
+ class ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem
10
+ # @return [Integer] The ID of the tax.
11
+ attr_reader :tax_id
12
+ # @return [String] The UUID of the last unpaid external payroll uuid. It should be null when the
13
+ # full amount of tax liability has been paid.
14
+ attr_reader :last_unpaid_external_payroll_uuid
15
+ # @return [Float] A selection of unpaid liability amount.
16
+ attr_reader :unpaid_liability_amount
17
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
18
+ attr_reader :additional_properties
19
+ # @return [Object]
20
+ attr_reader :_field_set
21
+ protected :_field_set
22
+
23
+ OMIT = Object.new
24
+
25
+ # @param tax_id [Integer] The ID of the tax.
26
+ # @param last_unpaid_external_payroll_uuid [String] The UUID of the last unpaid external payroll uuid. It should be null when the
27
+ # full amount of tax liability has been paid.
28
+ # @param unpaid_liability_amount [Float] A selection of unpaid liability amount.
29
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
30
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem]
31
+ def initialize(tax_id: OMIT, last_unpaid_external_payroll_uuid: OMIT, unpaid_liability_amount: OMIT, additional_properties: nil)
32
+ @tax_id = tax_id if tax_id != OMIT
33
+ @last_unpaid_external_payroll_uuid = last_unpaid_external_payroll_uuid if last_unpaid_external_payroll_uuid != OMIT
34
+ @unpaid_liability_amount = unpaid_liability_amount if unpaid_liability_amount != OMIT
35
+ @additional_properties = additional_properties
36
+ @_field_set = { "tax_id": tax_id, "last_unpaid_external_payroll_uuid": last_unpaid_external_payroll_uuid, "unpaid_liability_amount": unpaid_liability_amount }.reject do | _k, v |
37
+ v == OMIT
38
+ end
39
+ end
40
+ # Deserialize a JSON object to an instance of
41
+ # ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem
42
+ #
43
+ # @param json_object [String]
44
+ # @return [Gusto::Companies::ExternalPayrolls::ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem]
45
+ def self.from_json(json_object:)
46
+ struct = JSON.parse(json_object, object_class: OpenStruct)
47
+ parsed_json = JSON.parse(json_object)
48
+ tax_id = parsed_json["tax_id"]
49
+ last_unpaid_external_payroll_uuid = parsed_json["last_unpaid_external_payroll_uuid"]
50
+ unpaid_liability_amount = parsed_json["unpaid_liability_amount"]
51
+ new(
52
+ tax_id: tax_id,
53
+ last_unpaid_external_payroll_uuid: last_unpaid_external_payroll_uuid,
54
+ unpaid_liability_amount: unpaid_liability_amount,
55
+ additional_properties: struct
56
+ )
57
+ end
58
+ # Serialize an instance of
59
+ # ExternalPayrollsUpdateTaxLiabilitiesRequestLiabilitySelectionsItem to a JSON
60
+ # object
61
+ #
62
+ # @return [String]
63
+ def to_json
64
+ @_field_set&.to_json
65
+ end
66
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
67
+ # hash and check each fields type against the current object's property
68
+ # definitions.
69
+ #
70
+ # @param obj [Object]
71
+ # @return [Void]
72
+ def self.validate_raw(obj:)
73
+ obj.tax_id&.is_a?(Integer) != false || raise("Passed value for field obj.tax_id is not the expected type, validation failed.")
74
+ obj.last_unpaid_external_payroll_uuid&.is_a?(String) != false || raise("Passed value for field obj.last_unpaid_external_payroll_uuid is not the expected type, validation failed.")
75
+ obj.unpaid_liability_amount&.is_a?(Float) != false || raise("Passed value for field obj.unpaid_liability_amount is not the expected type, validation failed.")
76
+ end
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,212 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../federal_tax_details/types/federal_tax_details"
4
+ require_relative "types/federal_tax_details_update_request_tax_payer_type"
5
+ require "async"
6
+ require "async"
7
+ require_relative "../../../requests"
8
+
9
+ module Gusto
10
+ module Companies
11
+ class FederalTaxDetailsClient
12
+ # @return [Gusto::RequestClient]
13
+ attr_reader :request_client
14
+
15
+
16
+ # @param request_client [Gusto::RequestClient]
17
+ # @return [Gusto::Companies::FederalTaxDetailsClient]
18
+ def initialize(request_client:)
19
+ @request_client = request_client
20
+ end
21
+ # Fetches attributes relevant for a company's federal taxes.
22
+ # scope: `company_federal_taxes:read`
23
+ #
24
+ # @param company_id [String] The UUID of the company
25
+ # @param request_options [Gusto::RequestOptions]
26
+ # @return [Gusto::FederalTaxDetails::FederalTaxDetails]
27
+ # @example
28
+ # api = Gusto::Client.new(
29
+ # base_url: "https://api.example.com",
30
+ # environment: Gusto::Environment::DEMO,
31
+ # token: "YOUR_AUTH_TOKEN"
32
+ # )
33
+ # api.companies.federal_tax_details.get(company_id: "company_id")
34
+ def get(company_id:, request_options: nil)
35
+ response = @request_client.conn.get do | req |
36
+ unless request_options&.timeout_in_seconds.nil?
37
+ req.options.timeout = request_options.timeout_in_seconds
38
+ end
39
+ unless request_options&.token.nil?
40
+ req.headers["Authorization"] = request_options.token
41
+ end
42
+ unless request_options&.gusto_api_version.nil?
43
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
44
+ end
45
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
46
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
47
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
48
+ end
49
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
50
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
51
+ end
52
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/federal_tax_details"
53
+ end
54
+ Gusto::FederalTaxDetails::FederalTaxDetails.from_json(json_object: response.body)
55
+ end
56
+ # Updates attributes relevant for a company's federal taxes.
57
+ # This information is required is to onboard a company for use with Gusto Embedded
58
+ # Payroll.
59
+ # scope: `company_federal_taxes:write`
60
+ #
61
+ # @param company_id [String] The UUID of the company
62
+ # @param legal_name [String] The legal name of the company
63
+ # @param ein [String] The EIN of of the company
64
+ # @param tax_payer_type [Gusto::Companies::FederalTaxDetails::FederalTaxDetailsUpdateRequestTaxPayerType] What type of tax entity the company is
65
+ # @param filing_form [String] The form used by the company for federal tax filing. One of:
66
+ # - 941 (Quarterly federal tax return)
67
+ # - 944 (Annual federal tax return)
68
+ # @param taxable_as_scorp [Boolean] Whether this company should be taxed as an S-Corporation
69
+ # @param version [String] The current version of the object. See the [versioning
70
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
71
+ # information on how to use this field.
72
+ # @param request_options [Gusto::RequestOptions]
73
+ # @return [Gusto::FederalTaxDetails::FederalTaxDetails]
74
+ # @example
75
+ # api = Gusto::Client.new(
76
+ # base_url: "https://api.example.com",
77
+ # environment: Gusto::Environment::DEMO,
78
+ # token: "YOUR_AUTH_TOKEN"
79
+ # )
80
+ # api.companies.federal_tax_details.update(
81
+ # company_id: "company_id",
82
+ # legal_name: "Acme Corp.",
83
+ # tax_payer_type: LLP,
84
+ # filing_form: "944",
85
+ # taxable_as_scorp: false,
86
+ # version: "6cb95e00540706ca48d4577b3c839fbe"
87
+ # )
88
+ def update(company_id:, legal_name: nil, ein: nil, tax_payer_type: nil, filing_form: nil, taxable_as_scorp: nil, version:, request_options: nil)
89
+ response = @request_client.conn.put do | req |
90
+ unless request_options&.timeout_in_seconds.nil?
91
+ req.options.timeout = request_options.timeout_in_seconds
92
+ end
93
+ unless request_options&.token.nil?
94
+ req.headers["Authorization"] = request_options.token
95
+ end
96
+ unless request_options&.gusto_api_version.nil?
97
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
98
+ end
99
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
100
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
101
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
102
+ end
103
+ req.body = { **(request_options&.additional_body_parameters || {}), legal_name: legal_name, ein: ein, tax_payer_type: tax_payer_type, filing_form: filing_form, taxable_as_scorp: taxable_as_scorp, version: version }.compact
104
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/federal_tax_details"
105
+ end
106
+ Gusto::FederalTaxDetails::FederalTaxDetails.from_json(json_object: response.body)
107
+ end
108
+ end
109
+ class AsyncFederalTaxDetailsClient
110
+ # @return [Gusto::AsyncRequestClient]
111
+ attr_reader :request_client
112
+
113
+
114
+ # @param request_client [Gusto::RequestClient]
115
+ # @return [Gusto::Companies::AsyncFederalTaxDetailsClient]
116
+ def initialize(request_client:)
117
+ @request_client = request_client
118
+ end
119
+ # Fetches attributes relevant for a company's federal taxes.
120
+ # scope: `company_federal_taxes:read`
121
+ #
122
+ # @param company_id [String] The UUID of the company
123
+ # @param request_options [Gusto::RequestOptions]
124
+ # @return [Gusto::FederalTaxDetails::FederalTaxDetails]
125
+ # @example
126
+ # api = Gusto::Client.new(
127
+ # base_url: "https://api.example.com",
128
+ # environment: Gusto::Environment::DEMO,
129
+ # token: "YOUR_AUTH_TOKEN"
130
+ # )
131
+ # api.companies.federal_tax_details.get(company_id: "company_id")
132
+ def get(company_id:, request_options: nil)
133
+ Async do
134
+ response = @request_client.conn.get do | req |
135
+ unless request_options&.timeout_in_seconds.nil?
136
+ req.options.timeout = request_options.timeout_in_seconds
137
+ end
138
+ unless request_options&.token.nil?
139
+ req.headers["Authorization"] = request_options.token
140
+ end
141
+ unless request_options&.gusto_api_version.nil?
142
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
143
+ end
144
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
145
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
146
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
147
+ end
148
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
149
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
150
+ end
151
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/federal_tax_details"
152
+ end
153
+ Gusto::FederalTaxDetails::FederalTaxDetails.from_json(json_object: response.body)
154
+ end
155
+ end
156
+ # Updates attributes relevant for a company's federal taxes.
157
+ # This information is required is to onboard a company for use with Gusto Embedded
158
+ # Payroll.
159
+ # scope: `company_federal_taxes:write`
160
+ #
161
+ # @param company_id [String] The UUID of the company
162
+ # @param legal_name [String] The legal name of the company
163
+ # @param ein [String] The EIN of of the company
164
+ # @param tax_payer_type [Gusto::Companies::FederalTaxDetails::FederalTaxDetailsUpdateRequestTaxPayerType] What type of tax entity the company is
165
+ # @param filing_form [String] The form used by the company for federal tax filing. One of:
166
+ # - 941 (Quarterly federal tax return)
167
+ # - 944 (Annual federal tax return)
168
+ # @param taxable_as_scorp [Boolean] Whether this company should be taxed as an S-Corporation
169
+ # @param version [String] The current version of the object. See the [versioning
170
+ # guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for
171
+ # information on how to use this field.
172
+ # @param request_options [Gusto::RequestOptions]
173
+ # @return [Gusto::FederalTaxDetails::FederalTaxDetails]
174
+ # @example
175
+ # api = Gusto::Client.new(
176
+ # base_url: "https://api.example.com",
177
+ # environment: Gusto::Environment::DEMO,
178
+ # token: "YOUR_AUTH_TOKEN"
179
+ # )
180
+ # api.companies.federal_tax_details.update(
181
+ # company_id: "company_id",
182
+ # legal_name: "Acme Corp.",
183
+ # tax_payer_type: LLP,
184
+ # filing_form: "944",
185
+ # taxable_as_scorp: false,
186
+ # version: "6cb95e00540706ca48d4577b3c839fbe"
187
+ # )
188
+ def update(company_id:, legal_name: nil, ein: nil, tax_payer_type: nil, filing_form: nil, taxable_as_scorp: nil, version:, request_options: nil)
189
+ Async do
190
+ response = @request_client.conn.put do | req |
191
+ unless request_options&.timeout_in_seconds.nil?
192
+ req.options.timeout = request_options.timeout_in_seconds
193
+ end
194
+ unless request_options&.token.nil?
195
+ req.headers["Authorization"] = request_options.token
196
+ end
197
+ unless request_options&.gusto_api_version.nil?
198
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
199
+ end
200
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
201
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
202
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
203
+ end
204
+ req.body = { **(request_options&.additional_body_parameters || {}), legal_name: legal_name, ein: ein, tax_payer_type: tax_payer_type, filing_form: filing_form, taxable_as_scorp: taxable_as_scorp, version: version }.compact
205
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/federal_tax_details"
206
+ end
207
+ Gusto::FederalTaxDetails::FederalTaxDetails.from_json(json_object: response.body)
208
+ end
209
+ end
210
+ end
211
+ end
212
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Companies
5
+ module FederalTaxDetails
6
+ # What type of tax entity the company is
7
+ class FederalTaxDetailsUpdateRequestTaxPayerType
8
+
9
+ C_CORPORATION = "C-Corporation"
10
+ S_CORPORATION = "S-Corporation"
11
+ SOLE_PROPRIETOR = "Sole proprietor"
12
+ LLC = "LLC"
13
+ LLP = "LLP"
14
+ LIMITED_PARTNERSHIP = "Limited partnership"
15
+ CO_OWNERSHIP = "Co-ownership"
16
+ ASSOCIATION = "Association"
17
+ TRUSTEESHIP = "Trusteeship"
18
+ GENERAL_PARTNERSHIP = "General partnership"
19
+ JOINT_VENTURE = "Joint venture"
20
+ NON_PROFIT = "Non-Profit"
21
+
22
+ end
23
+ end
24
+ end
25
+ end