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,569 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../contractor_payment_groups/types/contractor_payment_group_minimal"
4
+ require "json"
5
+ require_relative "types/payment_groups_create_request_contractor_payments_item"
6
+ require_relative "../../contractor_payment_groups/types/contractor_payment_group"
7
+ require_relative "types/payment_groups_preview_request_contractor_payments_item"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require "async"
13
+ require "async"
14
+ require_relative "../../../requests"
15
+
16
+ module Gusto
17
+ module Contractors
18
+ class PaymentGroupsClient
19
+ # @return [Gusto::RequestClient]
20
+ attr_reader :request_client
21
+
22
+
23
+ # @param request_client [Gusto::RequestClient]
24
+ # @return [Gusto::Contractors::PaymentGroupsClient]
25
+ def initialize(request_client:)
26
+ @request_client = request_client
27
+ end
28
+ # Returns a list of minimal contractor payment groups within a given time period,
29
+ # including totals but not associated contractor payments.
30
+ # scope: `payrolls:read`
31
+ #
32
+ # @param company_id [String] The UUID of the company
33
+ # @param start_date [String] The time period for which to retrieve contractor payment groups. Defaults to 6
34
+ # months ago.
35
+ # @param end_date [String] The time period for which to retrieve contractor payment groups. Defaults to
36
+ # today's date.
37
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
38
+ # endpoint forces pagination.
39
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
40
+ # @param request_options [Gusto::RequestOptions]
41
+ # @return [Array<Gusto::ContractorPaymentGroups::ContractorPaymentGroupMinimal>]
42
+ # @example
43
+ # api = Gusto::Client.new(
44
+ # base_url: "https://api.example.com",
45
+ # environment: Gusto::Environment::DEMO,
46
+ # token: "YOUR_AUTH_TOKEN"
47
+ # )
48
+ # api.contractors.payment_groups.list(
49
+ # company_id: "company_id",
50
+ # start_date: "2020-01-01",
51
+ # end_date: "2020-12-31"
52
+ # )
53
+ def list(company_id:, start_date: nil, end_date: nil, page: nil, per: nil, request_options: nil)
54
+ response = @request_client.conn.get do | req |
55
+ unless request_options&.timeout_in_seconds.nil?
56
+ req.options.timeout = request_options.timeout_in_seconds
57
+ end
58
+ unless request_options&.token.nil?
59
+ req.headers["Authorization"] = request_options.token
60
+ end
61
+ unless request_options&.gusto_api_version.nil?
62
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
63
+ end
64
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
65
+ req.params = { **(request_options&.additional_query_parameters || {}), "start_date": start_date, "end_date": end_date, "page": page, "per": per }.compact
66
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
67
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
68
+ end
69
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractor_payment_groups"
70
+ end
71
+ parsed_json = JSON.parse(response.body)
72
+ parsed_json&.map do | item |
73
+ item = item.to_json
74
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroupMinimal.from_json(json_object: item)
75
+ end
76
+ end
77
+ # Pay a group of contractors. Information needed depends on the contractor's wage
78
+ # type (hourly vs fixed)
79
+ # scope: `payrolls:run`
80
+ #
81
+ # @param company_id [String] The UUID of the company
82
+ # @param check_date [String] The payment check date
83
+ # @param creation_token [String] Optional token used to make contractor payment group creation idempotent. If
84
+ # provided, string must be unique for each group you intend to create.
85
+ # @param contractor_payments [Array<Hash>] Request of type Array<Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItem>, as a Hash
86
+ # * :contractor_uuid (String)
87
+ # * :payment_method (Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItemPaymentMethod)
88
+ # * :wage (Float)
89
+ # * :hours (Float)
90
+ # * :bonus (Float)
91
+ # * :reimbursement (Float)
92
+ # @param request_options [Gusto::RequestOptions]
93
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
94
+ # @example
95
+ # api = Gusto::Client.new(
96
+ # base_url: "https://api.example.com",
97
+ # environment: Gusto::Environment::DEMO,
98
+ # token: "YOUR_AUTH_TOKEN"
99
+ # )
100
+ # api.contractors.payment_groups.create(
101
+ # company_id: "company_id",
102
+ # check_date: "2020-01-01",
103
+ # contractor_payments: [{ }]
104
+ # )
105
+ def create(company_id:, check_date:, creation_token: nil, contractor_payments:, request_options: nil)
106
+ response = @request_client.conn.post do | req |
107
+ unless request_options&.timeout_in_seconds.nil?
108
+ req.options.timeout = request_options.timeout_in_seconds
109
+ end
110
+ unless request_options&.token.nil?
111
+ req.headers["Authorization"] = request_options.token
112
+ end
113
+ unless request_options&.gusto_api_version.nil?
114
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
115
+ end
116
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
117
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
118
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
119
+ end
120
+ req.body = { **(request_options&.additional_body_parameters || {}), check_date: check_date, creation_token: creation_token, contractor_payments: contractor_payments }.compact
121
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractor_payment_groups"
122
+ end
123
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
124
+ end
125
+ # Preview a group of contractor payments. Request will validate inputs and return
126
+ # preview of the contractor payment group including the expected debit_date. Uuid
127
+ # will be null in the response.
128
+ # scope: `payrolls:read`
129
+ #
130
+ # @param company_id [String] The UUID of the company
131
+ # @param check_date [String] The payment check date
132
+ # @param creation_token [String] Optional token used to make contractor payment group creation idempotent. If
133
+ # provided, string must be unique for each group you intend to create.
134
+ # @param contractor_payments [Array<Hash>] Request of type Array<Gusto::Contractors::PaymentGroups::PaymentGroupsPreviewRequestContractorPaymentsItem>, as a Hash
135
+ # * :contractor_uuid (String)
136
+ # * :payment_method (Gusto::Contractors::PaymentGroups::PaymentGroupsPreviewRequestContractorPaymentsItemPaymentMethod)
137
+ # * :wage (Float)
138
+ # * :hours (Float)
139
+ # * :bonus (Float)
140
+ # * :reimbursement (Float)
141
+ # @param request_options [Gusto::RequestOptions]
142
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
143
+ # @example
144
+ # api = Gusto::Client.new(
145
+ # base_url: "https://api.example.com",
146
+ # environment: Gusto::Environment::DEMO,
147
+ # token: "YOUR_AUTH_TOKEN"
148
+ # )
149
+ # api.contractors.payment_groups.preview(
150
+ # company_id: "company_id",
151
+ # check_date: "2020-01-01",
152
+ # contractor_payments: [{ }]
153
+ # )
154
+ def preview(company_id:, check_date:, creation_token: nil, contractor_payments:, request_options: nil)
155
+ response = @request_client.conn.post do | req |
156
+ unless request_options&.timeout_in_seconds.nil?
157
+ req.options.timeout = request_options.timeout_in_seconds
158
+ end
159
+ unless request_options&.token.nil?
160
+ req.headers["Authorization"] = request_options.token
161
+ end
162
+ unless request_options&.gusto_api_version.nil?
163
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
164
+ end
165
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
166
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
167
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
168
+ end
169
+ req.body = { **(request_options&.additional_body_parameters || {}), check_date: check_date, creation_token: creation_token, contractor_payments: contractor_payments }.compact
170
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractor_payment_groups/preview"
171
+ end
172
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
173
+ end
174
+ # Returns a contractor payment group with all associated contractor payments.
175
+ # scope: `payrolls:read`
176
+ #
177
+ # @param contractor_payment_group_uuid [String] The UUID of the contractor payment group
178
+ # @param request_options [Gusto::RequestOptions]
179
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
180
+ # @example
181
+ # api = Gusto::Client.new(
182
+ # base_url: "https://api.example.com",
183
+ # environment: Gusto::Environment::DEMO,
184
+ # token: "YOUR_AUTH_TOKEN"
185
+ # )
186
+ # api.contractors.payment_groups.get(contractor_payment_group_uuid: "contractor_payment_group_uuid")
187
+ def get(contractor_payment_group_uuid:, request_options: nil)
188
+ response = @request_client.conn.get do | req |
189
+ unless request_options&.timeout_in_seconds.nil?
190
+ req.options.timeout = request_options.timeout_in_seconds
191
+ end
192
+ unless request_options&.token.nil?
193
+ req.headers["Authorization"] = request_options.token
194
+ end
195
+ unless request_options&.gusto_api_version.nil?
196
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
197
+ end
198
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
199
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
200
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
201
+ end
202
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
203
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
204
+ end
205
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractor_payment_groups/#{contractor_payment_group_uuid}"
206
+ end
207
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
208
+ end
209
+ # Cancels a contractor payment group and all associated contractor payments. All
210
+ # contractor payments must be cancellable, unfunded.
211
+ # scope: `payrolls:run`
212
+ #
213
+ # @param contractor_payment_group_uuid [String] The UUID of the contractor payment group
214
+ # @param request_options [Gusto::RequestOptions]
215
+ # @return [Void]
216
+ # @example
217
+ # api = Gusto::Client.new(
218
+ # base_url: "https://api.example.com",
219
+ # environment: Gusto::Environment::DEMO,
220
+ # token: "YOUR_AUTH_TOKEN"
221
+ # )
222
+ # api.contractors.payment_groups.delete(contractor_payment_group_uuid: "contractor_payment_group_uuid")
223
+ def delete(contractor_payment_group_uuid:, request_options: nil)
224
+ response = @request_client.conn.delete do | req |
225
+ unless request_options&.timeout_in_seconds.nil?
226
+ req.options.timeout = request_options.timeout_in_seconds
227
+ end
228
+ unless request_options&.token.nil?
229
+ req.headers["Authorization"] = request_options.token
230
+ end
231
+ unless request_options&.gusto_api_version.nil?
232
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
233
+ end
234
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
235
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
236
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
237
+ end
238
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
239
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
240
+ end
241
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractor_payment_groups/#{contractor_payment_group_uuid}"
242
+ end
243
+ end
244
+ # > 🚧 Demo action
245
+ # >
246
+ # > This action is only available in the Demo environment
247
+ # Simulate funding a contractor payment group. Funding only occurs automatically
248
+ # in the production environment when bank transactions are generated. Use this
249
+ # action in the demo environment to transition a contractor payment group's
250
+ # `status` from `Unfunded` to `Funded`. A `Funded` status is required for
251
+ # generating a contractor payment receipt.
252
+ # scope: `payrolls:run`
253
+ #
254
+ # @param contractor_payment_group_uuid [String] The UUID of the contractor payment group
255
+ # @param request_options [Gusto::RequestOptions]
256
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
257
+ # @example
258
+ # api = Gusto::Client.new(
259
+ # base_url: "https://api.example.com",
260
+ # environment: Gusto::Environment::DEMO,
261
+ # token: "YOUR_AUTH_TOKEN"
262
+ # )
263
+ # api.contractors.payment_groups.fund(contractor_payment_group_uuid: "contractor_payment_group_uuid")
264
+ def fund(contractor_payment_group_uuid:, request_options: nil)
265
+ response = @request_client.conn.put do | req |
266
+ unless request_options&.timeout_in_seconds.nil?
267
+ req.options.timeout = request_options.timeout_in_seconds
268
+ end
269
+ unless request_options&.token.nil?
270
+ req.headers["Authorization"] = request_options.token
271
+ end
272
+ unless request_options&.gusto_api_version.nil?
273
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
274
+ end
275
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
276
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
277
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
278
+ end
279
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
280
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
281
+ end
282
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractor_payment_groups/#{contractor_payment_group_uuid}/fund"
283
+ end
284
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
285
+ end
286
+ end
287
+ class AsyncPaymentGroupsClient
288
+ # @return [Gusto::AsyncRequestClient]
289
+ attr_reader :request_client
290
+
291
+
292
+ # @param request_client [Gusto::RequestClient]
293
+ # @return [Gusto::Contractors::AsyncPaymentGroupsClient]
294
+ def initialize(request_client:)
295
+ @request_client = request_client
296
+ end
297
+ # Returns a list of minimal contractor payment groups within a given time period,
298
+ # including totals but not associated contractor payments.
299
+ # scope: `payrolls:read`
300
+ #
301
+ # @param company_id [String] The UUID of the company
302
+ # @param start_date [String] The time period for which to retrieve contractor payment groups. Defaults to 6
303
+ # months ago.
304
+ # @param end_date [String] The time period for which to retrieve contractor payment groups. Defaults to
305
+ # today's date.
306
+ # @param page [Float] The page that is requested. When unspecified, will load all objects unless
307
+ # endpoint forces pagination.
308
+ # @param per [Float] Number of objects per page. For majority of endpoints will default to 25
309
+ # @param request_options [Gusto::RequestOptions]
310
+ # @return [Array<Gusto::ContractorPaymentGroups::ContractorPaymentGroupMinimal>]
311
+ # @example
312
+ # api = Gusto::Client.new(
313
+ # base_url: "https://api.example.com",
314
+ # environment: Gusto::Environment::DEMO,
315
+ # token: "YOUR_AUTH_TOKEN"
316
+ # )
317
+ # api.contractors.payment_groups.list(
318
+ # company_id: "company_id",
319
+ # start_date: "2020-01-01",
320
+ # end_date: "2020-12-31"
321
+ # )
322
+ def list(company_id:, start_date: nil, end_date: nil, page: nil, per: nil, request_options: nil)
323
+ Async do
324
+ response = @request_client.conn.get do | req |
325
+ unless request_options&.timeout_in_seconds.nil?
326
+ req.options.timeout = request_options.timeout_in_seconds
327
+ end
328
+ unless request_options&.token.nil?
329
+ req.headers["Authorization"] = request_options.token
330
+ end
331
+ unless request_options&.gusto_api_version.nil?
332
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
333
+ end
334
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
335
+ req.params = { **(request_options&.additional_query_parameters || {}), "start_date": start_date, "end_date": end_date, "page": page, "per": per }.compact
336
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
337
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
338
+ end
339
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractor_payment_groups"
340
+ end
341
+ parsed_json = JSON.parse(response.body)
342
+ parsed_json&.map do | item |
343
+ item = item.to_json
344
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroupMinimal.from_json(json_object: item)
345
+ end
346
+ end
347
+ end
348
+ # Pay a group of contractors. Information needed depends on the contractor's wage
349
+ # type (hourly vs fixed)
350
+ # scope: `payrolls:run`
351
+ #
352
+ # @param company_id [String] The UUID of the company
353
+ # @param check_date [String] The payment check date
354
+ # @param creation_token [String] Optional token used to make contractor payment group creation idempotent. If
355
+ # provided, string must be unique for each group you intend to create.
356
+ # @param contractor_payments [Array<Hash>] Request of type Array<Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItem>, as a Hash
357
+ # * :contractor_uuid (String)
358
+ # * :payment_method (Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItemPaymentMethod)
359
+ # * :wage (Float)
360
+ # * :hours (Float)
361
+ # * :bonus (Float)
362
+ # * :reimbursement (Float)
363
+ # @param request_options [Gusto::RequestOptions]
364
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
365
+ # @example
366
+ # api = Gusto::Client.new(
367
+ # base_url: "https://api.example.com",
368
+ # environment: Gusto::Environment::DEMO,
369
+ # token: "YOUR_AUTH_TOKEN"
370
+ # )
371
+ # api.contractors.payment_groups.create(
372
+ # company_id: "company_id",
373
+ # check_date: "2020-01-01",
374
+ # contractor_payments: [{ }]
375
+ # )
376
+ def create(company_id:, check_date:, creation_token: nil, contractor_payments:, request_options: nil)
377
+ Async do
378
+ response = @request_client.conn.post do | req |
379
+ unless request_options&.timeout_in_seconds.nil?
380
+ req.options.timeout = request_options.timeout_in_seconds
381
+ end
382
+ unless request_options&.token.nil?
383
+ req.headers["Authorization"] = request_options.token
384
+ end
385
+ unless request_options&.gusto_api_version.nil?
386
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
387
+ end
388
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
389
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
390
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
391
+ end
392
+ req.body = { **(request_options&.additional_body_parameters || {}), check_date: check_date, creation_token: creation_token, contractor_payments: contractor_payments }.compact
393
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractor_payment_groups"
394
+ end
395
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
396
+ end
397
+ end
398
+ # Preview a group of contractor payments. Request will validate inputs and return
399
+ # preview of the contractor payment group including the expected debit_date. Uuid
400
+ # will be null in the response.
401
+ # scope: `payrolls:read`
402
+ #
403
+ # @param company_id [String] The UUID of the company
404
+ # @param check_date [String] The payment check date
405
+ # @param creation_token [String] Optional token used to make contractor payment group creation idempotent. If
406
+ # provided, string must be unique for each group you intend to create.
407
+ # @param contractor_payments [Array<Hash>] Request of type Array<Gusto::Contractors::PaymentGroups::PaymentGroupsPreviewRequestContractorPaymentsItem>, as a Hash
408
+ # * :contractor_uuid (String)
409
+ # * :payment_method (Gusto::Contractors::PaymentGroups::PaymentGroupsPreviewRequestContractorPaymentsItemPaymentMethod)
410
+ # * :wage (Float)
411
+ # * :hours (Float)
412
+ # * :bonus (Float)
413
+ # * :reimbursement (Float)
414
+ # @param request_options [Gusto::RequestOptions]
415
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
416
+ # @example
417
+ # api = Gusto::Client.new(
418
+ # base_url: "https://api.example.com",
419
+ # environment: Gusto::Environment::DEMO,
420
+ # token: "YOUR_AUTH_TOKEN"
421
+ # )
422
+ # api.contractors.payment_groups.preview(
423
+ # company_id: "company_id",
424
+ # check_date: "2020-01-01",
425
+ # contractor_payments: [{ }]
426
+ # )
427
+ def preview(company_id:, check_date:, creation_token: nil, contractor_payments:, request_options: nil)
428
+ Async do
429
+ response = @request_client.conn.post do | req |
430
+ unless request_options&.timeout_in_seconds.nil?
431
+ req.options.timeout = request_options.timeout_in_seconds
432
+ end
433
+ unless request_options&.token.nil?
434
+ req.headers["Authorization"] = request_options.token
435
+ end
436
+ unless request_options&.gusto_api_version.nil?
437
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
438
+ end
439
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
440
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
441
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
442
+ end
443
+ req.body = { **(request_options&.additional_body_parameters || {}), check_date: check_date, creation_token: creation_token, contractor_payments: contractor_payments }.compact
444
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/companies/#{company_id}/contractor_payment_groups/preview"
445
+ end
446
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
447
+ end
448
+ end
449
+ # Returns a contractor payment group with all associated contractor payments.
450
+ # scope: `payrolls:read`
451
+ #
452
+ # @param contractor_payment_group_uuid [String] The UUID of the contractor payment group
453
+ # @param request_options [Gusto::RequestOptions]
454
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
455
+ # @example
456
+ # api = Gusto::Client.new(
457
+ # base_url: "https://api.example.com",
458
+ # environment: Gusto::Environment::DEMO,
459
+ # token: "YOUR_AUTH_TOKEN"
460
+ # )
461
+ # api.contractors.payment_groups.get(contractor_payment_group_uuid: "contractor_payment_group_uuid")
462
+ def get(contractor_payment_group_uuid:, request_options: nil)
463
+ Async do
464
+ response = @request_client.conn.get do | req |
465
+ unless request_options&.timeout_in_seconds.nil?
466
+ req.options.timeout = request_options.timeout_in_seconds
467
+ end
468
+ unless request_options&.token.nil?
469
+ req.headers["Authorization"] = request_options.token
470
+ end
471
+ unless request_options&.gusto_api_version.nil?
472
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
473
+ end
474
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
475
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
476
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
477
+ end
478
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
479
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
480
+ end
481
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractor_payment_groups/#{contractor_payment_group_uuid}"
482
+ end
483
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
484
+ end
485
+ end
486
+ # Cancels a contractor payment group and all associated contractor payments. All
487
+ # contractor payments must be cancellable, unfunded.
488
+ # scope: `payrolls:run`
489
+ #
490
+ # @param contractor_payment_group_uuid [String] The UUID of the contractor payment group
491
+ # @param request_options [Gusto::RequestOptions]
492
+ # @return [Void]
493
+ # @example
494
+ # api = Gusto::Client.new(
495
+ # base_url: "https://api.example.com",
496
+ # environment: Gusto::Environment::DEMO,
497
+ # token: "YOUR_AUTH_TOKEN"
498
+ # )
499
+ # api.contractors.payment_groups.delete(contractor_payment_group_uuid: "contractor_payment_group_uuid")
500
+ def delete(contractor_payment_group_uuid:, request_options: nil)
501
+ Async do
502
+ response = @request_client.conn.delete do | req |
503
+ unless request_options&.timeout_in_seconds.nil?
504
+ req.options.timeout = request_options.timeout_in_seconds
505
+ end
506
+ unless request_options&.token.nil?
507
+ req.headers["Authorization"] = request_options.token
508
+ end
509
+ unless request_options&.gusto_api_version.nil?
510
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
511
+ end
512
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
513
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
514
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
515
+ end
516
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
517
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
518
+ end
519
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractor_payment_groups/#{contractor_payment_group_uuid}"
520
+ end
521
+ end
522
+ end
523
+ # > 🚧 Demo action
524
+ # >
525
+ # > This action is only available in the Demo environment
526
+ # Simulate funding a contractor payment group. Funding only occurs automatically
527
+ # in the production environment when bank transactions are generated. Use this
528
+ # action in the demo environment to transition a contractor payment group's
529
+ # `status` from `Unfunded` to `Funded`. A `Funded` status is required for
530
+ # generating a contractor payment receipt.
531
+ # scope: `payrolls:run`
532
+ #
533
+ # @param contractor_payment_group_uuid [String] The UUID of the contractor payment group
534
+ # @param request_options [Gusto::RequestOptions]
535
+ # @return [Gusto::ContractorPaymentGroups::ContractorPaymentGroup]
536
+ # @example
537
+ # api = Gusto::Client.new(
538
+ # base_url: "https://api.example.com",
539
+ # environment: Gusto::Environment::DEMO,
540
+ # token: "YOUR_AUTH_TOKEN"
541
+ # )
542
+ # api.contractors.payment_groups.fund(contractor_payment_group_uuid: "contractor_payment_group_uuid")
543
+ def fund(contractor_payment_group_uuid:, request_options: nil)
544
+ Async do
545
+ response = @request_client.conn.put do | req |
546
+ unless request_options&.timeout_in_seconds.nil?
547
+ req.options.timeout = request_options.timeout_in_seconds
548
+ end
549
+ unless request_options&.token.nil?
550
+ req.headers["Authorization"] = request_options.token
551
+ end
552
+ unless request_options&.gusto_api_version.nil?
553
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
554
+ end
555
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
556
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
557
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
558
+ end
559
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
560
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
561
+ end
562
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractor_payment_groups/#{contractor_payment_group_uuid}/fund"
563
+ end
564
+ Gusto::ContractorPaymentGroups::ContractorPaymentGroup.from_json(json_object: response.body)
565
+ end
566
+ end
567
+ end
568
+ end
569
+ end
@@ -0,0 +1,102 @@
1
+ # frozen_string_literal: true
2
+ require_relative "payment_groups_create_request_contractor_payments_item_payment_method"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module Contractors
8
+ module PaymentGroups
9
+ class PaymentGroupsCreateRequestContractorPaymentsItem
10
+ # @return [String] The contractor receiving the payment
11
+ attr_reader :contractor_uuid
12
+ # @return [Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItemPaymentMethod]
13
+ attr_reader :payment_method
14
+ # @return [Float] If the contractor is on a fixed wage, this is the fixed wage payment for the
15
+ # contractor, regardless of hours worked
16
+ attr_reader :wage
17
+ # @return [Float] If the contractor is on an hourly wage, this is the number of hours that the
18
+ # contractor worked for the payment
19
+ attr_reader :hours
20
+ # @return [Float] If the contractor is on an hourly wage, this is the bonus the contractor earned
21
+ attr_reader :bonus
22
+ # @return [Float] Reimbursed wages for the contractor
23
+ attr_reader :reimbursement
24
+ # @return [OpenStruct] Additional properties unmapped to the current class definition
25
+ attr_reader :additional_properties
26
+ # @return [Object]
27
+ attr_reader :_field_set
28
+ protected :_field_set
29
+
30
+ OMIT = Object.new
31
+
32
+ # @param contractor_uuid [String] The contractor receiving the payment
33
+ # @param payment_method [Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItemPaymentMethod]
34
+ # @param wage [Float] If the contractor is on a fixed wage, this is the fixed wage payment for the
35
+ # contractor, regardless of hours worked
36
+ # @param hours [Float] If the contractor is on an hourly wage, this is the number of hours that the
37
+ # contractor worked for the payment
38
+ # @param bonus [Float] If the contractor is on an hourly wage, this is the bonus the contractor earned
39
+ # @param reimbursement [Float] Reimbursed wages for the contractor
40
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
41
+ # @return [Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItem]
42
+ def initialize(contractor_uuid: OMIT, payment_method: OMIT, wage: OMIT, hours: OMIT, bonus: OMIT, reimbursement: OMIT, additional_properties: nil)
43
+ @contractor_uuid = contractor_uuid if contractor_uuid != OMIT
44
+ @payment_method = payment_method if payment_method != OMIT
45
+ @wage = wage if wage != OMIT
46
+ @hours = hours if hours != OMIT
47
+ @bonus = bonus if bonus != OMIT
48
+ @reimbursement = reimbursement if reimbursement != OMIT
49
+ @additional_properties = additional_properties
50
+ @_field_set = { "contractor_uuid": contractor_uuid, "payment_method": payment_method, "wage": wage, "hours": hours, "bonus": bonus, "reimbursement": reimbursement }.reject do | _k, v |
51
+ v == OMIT
52
+ end
53
+ end
54
+ # Deserialize a JSON object to an instance of
55
+ # PaymentGroupsCreateRequestContractorPaymentsItem
56
+ #
57
+ # @param json_object [String]
58
+ # @return [Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItem]
59
+ def self.from_json(json_object:)
60
+ struct = JSON.parse(json_object, object_class: OpenStruct)
61
+ parsed_json = JSON.parse(json_object)
62
+ contractor_uuid = parsed_json["contractor_uuid"]
63
+ payment_method = parsed_json["payment_method"]
64
+ wage = parsed_json["wage"]
65
+ hours = parsed_json["hours"]
66
+ bonus = parsed_json["bonus"]
67
+ reimbursement = parsed_json["reimbursement"]
68
+ new(
69
+ contractor_uuid: contractor_uuid,
70
+ payment_method: payment_method,
71
+ wage: wage,
72
+ hours: hours,
73
+ bonus: bonus,
74
+ reimbursement: reimbursement,
75
+ additional_properties: struct
76
+ )
77
+ end
78
+ # Serialize an instance of PaymentGroupsCreateRequestContractorPaymentsItem to a
79
+ # JSON object
80
+ #
81
+ # @return [String]
82
+ def to_json
83
+ @_field_set&.to_json
84
+ end
85
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
86
+ # hash and check each fields type against the current object's property
87
+ # definitions.
88
+ #
89
+ # @param obj [Object]
90
+ # @return [Void]
91
+ def self.validate_raw(obj:)
92
+ obj.contractor_uuid&.is_a?(String) != false || raise("Passed value for field obj.contractor_uuid is not the expected type, validation failed.")
93
+ obj.payment_method&.is_a?(Gusto::Contractors::PaymentGroups::PaymentGroupsCreateRequestContractorPaymentsItemPaymentMethod) != false || raise("Passed value for field obj.payment_method is not the expected type, validation failed.")
94
+ obj.wage&.is_a?(Float) != false || raise("Passed value for field obj.wage is not the expected type, validation failed.")
95
+ obj.hours&.is_a?(Float) != false || raise("Passed value for field obj.hours is not the expected type, validation failed.")
96
+ obj.bonus&.is_a?(Float) != false || raise("Passed value for field obj.bonus is not the expected type, validation failed.")
97
+ obj.reimbursement&.is_a?(Float) != false || raise("Passed value for field obj.reimbursement is not the expected type, validation failed.")
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end