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