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,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Contractors
5
+ module PaymentGroups
6
+ class PaymentGroupsCreateRequestContractorPaymentsItemPaymentMethod
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,102 @@
1
+ # frozen_string_literal: true
2
+ require_relative "payment_groups_preview_request_contractor_payments_item_payment_method"
3
+ require "ostruct"
4
+ require "json"
5
+
6
+ module Gusto
7
+ module Contractors
8
+ module PaymentGroups
9
+ class PaymentGroupsPreviewRequestContractorPaymentsItem
10
+ # @return [String] The contractor receiving the payment
11
+ attr_reader :contractor_uuid
12
+ # @return [Gusto::Contractors::PaymentGroups::PaymentGroupsPreviewRequestContractorPaymentsItemPaymentMethod]
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::PaymentGroupsPreviewRequestContractorPaymentsItemPaymentMethod]
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::PaymentGroupsPreviewRequestContractorPaymentsItem]
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
+ # PaymentGroupsPreviewRequestContractorPaymentsItem
56
+ #
57
+ # @param json_object [String]
58
+ # @return [Gusto::Contractors::PaymentGroups::PaymentGroupsPreviewRequestContractorPaymentsItem]
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 PaymentGroupsPreviewRequestContractorPaymentsItem 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::PaymentGroupsPreviewRequestContractorPaymentsItemPaymentMethod) != 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
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Contractors
5
+ module PaymentGroups
6
+ class PaymentGroupsPreviewRequestContractorPaymentsItemPaymentMethod
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,369 @@
1
+ # frozen_string_literal: true
2
+ require_relative "../../../requests"
3
+ require_relative "../../contractor_payment_method/types/contractor_bank_account"
4
+ require "json"
5
+ require_relative "types/payment_method_create_bank_account_request_account_type"
6
+ require_relative "../../contractor_payment_method/types/contractor_payment_method"
7
+ require_relative "types/payment_method_update_request_type"
8
+ require "async"
9
+ require "async"
10
+ require "async"
11
+ require "async"
12
+ require_relative "../../../requests"
13
+
14
+ module Gusto
15
+ module Contractors
16
+ class PaymentMethodClient
17
+ # @return [Gusto::RequestClient]
18
+ attr_reader :request_client
19
+
20
+
21
+ # @param request_client [Gusto::RequestClient]
22
+ # @return [Gusto::Contractors::PaymentMethodClient]
23
+ def initialize(request_client:)
24
+ @request_client = request_client
25
+ end
26
+ # Returns all contractor bank accounts.
27
+ # scope: `contractor_payment_methods:read`
28
+ #
29
+ # @param contractor_uuid [String] The UUID of the contractor
30
+ # @param request_options [Gusto::RequestOptions]
31
+ # @return [Array<Gusto::ContractorPaymentMethod::ContractorBankAccount>]
32
+ # @example
33
+ # api = Gusto::Client.new(
34
+ # base_url: "https://api.example.com",
35
+ # environment: Gusto::Environment::DEMO,
36
+ # token: "YOUR_AUTH_TOKEN"
37
+ # )
38
+ # api.contractors.payment_method.get_bank_accounts(contractor_uuid: "contractor_uuid")
39
+ def get_bank_accounts(contractor_uuid:, request_options: nil)
40
+ response = @request_client.conn.get do | req |
41
+ unless request_options&.timeout_in_seconds.nil?
42
+ req.options.timeout = request_options.timeout_in_seconds
43
+ end
44
+ unless request_options&.token.nil?
45
+ req.headers["Authorization"] = request_options.token
46
+ end
47
+ unless request_options&.gusto_api_version.nil?
48
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
49
+ end
50
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
51
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
52
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
53
+ end
54
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
55
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
56
+ end
57
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/bank_accounts"
58
+ end
59
+ parsed_json = JSON.parse(response.body)
60
+ parsed_json&.map do | item |
61
+ item = item.to_json
62
+ Gusto::ContractorPaymentMethod::ContractorBankAccount.from_json(json_object: item)
63
+ end
64
+ end
65
+ # Creates a contractor bank account.
66
+ # Note: We currently only support one bank account per contractor. Using this
67
+ # endpoint on a contractor who already has a bank account will just replace it.
68
+ # scope: `contractor_payment_methods:write`
69
+ #
70
+ # @param contractor_uuid [String] The UUID of the contractor
71
+ # @param name [String]
72
+ # @param routing_number [String]
73
+ # @param account_number [String]
74
+ # @param account_type [Gusto::Contractors::PaymentMethod::PaymentMethodCreateBankAccountRequestAccountType]
75
+ # @param request_options [Gusto::RequestOptions]
76
+ # @return [Gusto::ContractorPaymentMethod::ContractorBankAccount]
77
+ # @example
78
+ # api = Gusto::Client.new(
79
+ # base_url: "https://api.example.com",
80
+ # environment: Gusto::Environment::DEMO,
81
+ # token: "YOUR_AUTH_TOKEN"
82
+ # )
83
+ # api.contractors.payment_method.create_bank_account(
84
+ # contractor_uuid: "contractor_uuid",
85
+ # name: "BoA Checking Account",
86
+ # routing_number: "266905059",
87
+ # account_number: "5809431207",
88
+ # account_type: CHECKING
89
+ # )
90
+ def create_bank_account(contractor_uuid:, name:, routing_number:, account_number:, account_type:, request_options: nil)
91
+ response = @request_client.conn.post do | req |
92
+ unless request_options&.timeout_in_seconds.nil?
93
+ req.options.timeout = request_options.timeout_in_seconds
94
+ end
95
+ unless request_options&.token.nil?
96
+ req.headers["Authorization"] = request_options.token
97
+ end
98
+ unless request_options&.gusto_api_version.nil?
99
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
100
+ end
101
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
102
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
103
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
104
+ end
105
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, routing_number: routing_number, account_number: account_number, account_type: account_type }.compact
106
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/bank_accounts"
107
+ end
108
+ Gusto::ContractorPaymentMethod::ContractorBankAccount.from_json(json_object: response.body)
109
+ end
110
+ # Fetches a contractor's payment method. A contractor payment method
111
+ # describes how the payment should be split across the contractor's associated
112
+ # bank accounts.
113
+ # scope: `contractor_payment_methods:read`
114
+ #
115
+ # @param contractor_uuid [String] The UUID of the contractor
116
+ # @param request_options [Gusto::RequestOptions]
117
+ # @return [Gusto::ContractorPaymentMethod::ContractorPaymentMethod]
118
+ # @example
119
+ # api = Gusto::Client.new(
120
+ # base_url: "https://api.example.com",
121
+ # environment: Gusto::Environment::DEMO,
122
+ # token: "YOUR_AUTH_TOKEN"
123
+ # )
124
+ # api.contractors.payment_method.get(contractor_uuid: "contractor_uuid")
125
+ def get(contractor_uuid:, request_options: nil)
126
+ response = @request_client.conn.get do | req |
127
+ unless request_options&.timeout_in_seconds.nil?
128
+ req.options.timeout = request_options.timeout_in_seconds
129
+ end
130
+ unless request_options&.token.nil?
131
+ req.headers["Authorization"] = request_options.token
132
+ end
133
+ unless request_options&.gusto_api_version.nil?
134
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
135
+ end
136
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
137
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
138
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
139
+ end
140
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
141
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
142
+ end
143
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/payment_method"
144
+ end
145
+ Gusto::ContractorPaymentMethod::ContractorPaymentMethod.from_json(json_object: response.body)
146
+ end
147
+ # Updates a contractor's payment method. Note that creating a contractor
148
+ # bank account will also update the contractor's payment method.
149
+ # scope: `contractor_payment_methods:write`
150
+ #
151
+ # @param contractor_uuid [String] The UUID of the contractor
152
+ # @param version [String] The current version of the object. See the [versioning
153
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
154
+ # on how to use this field.
155
+ # @param type [Gusto::Contractors::PaymentMethod::PaymentMethodUpdateRequestType] The payment method type. If type is Direct Deposit, the contractor is required
156
+ # to have a bank account.
157
+ # see [Bank account endpoint](./post-v1-contractors-contractor_uuid-bank_accounts)
158
+ # @param request_options [Gusto::RequestOptions]
159
+ # @return [Gusto::ContractorPaymentMethod::ContractorPaymentMethod]
160
+ # @example
161
+ # api = Gusto::Client.new(
162
+ # base_url: "https://api.example.com",
163
+ # environment: Gusto::Environment::DEMO,
164
+ # token: "YOUR_AUTH_TOKEN"
165
+ # )
166
+ # api.contractors.payment_method.update(contractor_uuid: "contractor_uuid", type: DIRECT_DEPOSIT)
167
+ def update(contractor_uuid:, version:, type:, request_options: nil)
168
+ response = @request_client.conn.put do | req |
169
+ unless request_options&.timeout_in_seconds.nil?
170
+ req.options.timeout = request_options.timeout_in_seconds
171
+ end
172
+ unless request_options&.token.nil?
173
+ req.headers["Authorization"] = request_options.token
174
+ end
175
+ unless request_options&.gusto_api_version.nil?
176
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
177
+ end
178
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
179
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
180
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
181
+ end
182
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, type: type }.compact
183
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/payment_method"
184
+ end
185
+ Gusto::ContractorPaymentMethod::ContractorPaymentMethod.from_json(json_object: response.body)
186
+ end
187
+ end
188
+ class AsyncPaymentMethodClient
189
+ # @return [Gusto::AsyncRequestClient]
190
+ attr_reader :request_client
191
+
192
+
193
+ # @param request_client [Gusto::RequestClient]
194
+ # @return [Gusto::Contractors::AsyncPaymentMethodClient]
195
+ def initialize(request_client:)
196
+ @request_client = request_client
197
+ end
198
+ # Returns all contractor bank accounts.
199
+ # scope: `contractor_payment_methods:read`
200
+ #
201
+ # @param contractor_uuid [String] The UUID of the contractor
202
+ # @param request_options [Gusto::RequestOptions]
203
+ # @return [Array<Gusto::ContractorPaymentMethod::ContractorBankAccount>]
204
+ # @example
205
+ # api = Gusto::Client.new(
206
+ # base_url: "https://api.example.com",
207
+ # environment: Gusto::Environment::DEMO,
208
+ # token: "YOUR_AUTH_TOKEN"
209
+ # )
210
+ # api.contractors.payment_method.get_bank_accounts(contractor_uuid: "contractor_uuid")
211
+ def get_bank_accounts(contractor_uuid:, request_options: nil)
212
+ Async do
213
+ response = @request_client.conn.get do | req |
214
+ unless request_options&.timeout_in_seconds.nil?
215
+ req.options.timeout = request_options.timeout_in_seconds
216
+ end
217
+ unless request_options&.token.nil?
218
+ req.headers["Authorization"] = request_options.token
219
+ end
220
+ unless request_options&.gusto_api_version.nil?
221
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
222
+ end
223
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
224
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
225
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
226
+ end
227
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
228
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
229
+ end
230
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/bank_accounts"
231
+ end
232
+ parsed_json = JSON.parse(response.body)
233
+ parsed_json&.map do | item |
234
+ item = item.to_json
235
+ Gusto::ContractorPaymentMethod::ContractorBankAccount.from_json(json_object: item)
236
+ end
237
+ end
238
+ end
239
+ # Creates a contractor bank account.
240
+ # Note: We currently only support one bank account per contractor. Using this
241
+ # endpoint on a contractor who already has a bank account will just replace it.
242
+ # scope: `contractor_payment_methods:write`
243
+ #
244
+ # @param contractor_uuid [String] The UUID of the contractor
245
+ # @param name [String]
246
+ # @param routing_number [String]
247
+ # @param account_number [String]
248
+ # @param account_type [Gusto::Contractors::PaymentMethod::PaymentMethodCreateBankAccountRequestAccountType]
249
+ # @param request_options [Gusto::RequestOptions]
250
+ # @return [Gusto::ContractorPaymentMethod::ContractorBankAccount]
251
+ # @example
252
+ # api = Gusto::Client.new(
253
+ # base_url: "https://api.example.com",
254
+ # environment: Gusto::Environment::DEMO,
255
+ # token: "YOUR_AUTH_TOKEN"
256
+ # )
257
+ # api.contractors.payment_method.create_bank_account(
258
+ # contractor_uuid: "contractor_uuid",
259
+ # name: "BoA Checking Account",
260
+ # routing_number: "266905059",
261
+ # account_number: "5809431207",
262
+ # account_type: CHECKING
263
+ # )
264
+ def create_bank_account(contractor_uuid:, name:, routing_number:, account_number:, account_type:, request_options: nil)
265
+ Async do
266
+ response = @request_client.conn.post do | req |
267
+ unless request_options&.timeout_in_seconds.nil?
268
+ req.options.timeout = request_options.timeout_in_seconds
269
+ end
270
+ unless request_options&.token.nil?
271
+ req.headers["Authorization"] = request_options.token
272
+ end
273
+ unless request_options&.gusto_api_version.nil?
274
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
275
+ end
276
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
277
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
278
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
279
+ end
280
+ req.body = { **(request_options&.additional_body_parameters || {}), name: name, routing_number: routing_number, account_number: account_number, account_type: account_type }.compact
281
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/bank_accounts"
282
+ end
283
+ Gusto::ContractorPaymentMethod::ContractorBankAccount.from_json(json_object: response.body)
284
+ end
285
+ end
286
+ # Fetches a contractor's payment method. A contractor payment method
287
+ # describes how the payment should be split across the contractor's associated
288
+ # bank accounts.
289
+ # scope: `contractor_payment_methods:read`
290
+ #
291
+ # @param contractor_uuid [String] The UUID of the contractor
292
+ # @param request_options [Gusto::RequestOptions]
293
+ # @return [Gusto::ContractorPaymentMethod::ContractorPaymentMethod]
294
+ # @example
295
+ # api = Gusto::Client.new(
296
+ # base_url: "https://api.example.com",
297
+ # environment: Gusto::Environment::DEMO,
298
+ # token: "YOUR_AUTH_TOKEN"
299
+ # )
300
+ # api.contractors.payment_method.get(contractor_uuid: "contractor_uuid")
301
+ def get(contractor_uuid:, request_options: nil)
302
+ Async do
303
+ response = @request_client.conn.get do | req |
304
+ unless request_options&.timeout_in_seconds.nil?
305
+ req.options.timeout = request_options.timeout_in_seconds
306
+ end
307
+ unless request_options&.token.nil?
308
+ req.headers["Authorization"] = request_options.token
309
+ end
310
+ unless request_options&.gusto_api_version.nil?
311
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
312
+ end
313
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
314
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
315
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
316
+ end
317
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
318
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
319
+ end
320
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/payment_method"
321
+ end
322
+ Gusto::ContractorPaymentMethod::ContractorPaymentMethod.from_json(json_object: response.body)
323
+ end
324
+ end
325
+ # Updates a contractor's payment method. Note that creating a contractor
326
+ # bank account will also update the contractor's payment method.
327
+ # scope: `contractor_payment_methods:write`
328
+ #
329
+ # @param contractor_uuid [String] The UUID of the contractor
330
+ # @param version [String] The current version of the object. See the [versioning
331
+ # guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information
332
+ # on how to use this field.
333
+ # @param type [Gusto::Contractors::PaymentMethod::PaymentMethodUpdateRequestType] The payment method type. If type is Direct Deposit, the contractor is required
334
+ # to have a bank account.
335
+ # see [Bank account endpoint](./post-v1-contractors-contractor_uuid-bank_accounts)
336
+ # @param request_options [Gusto::RequestOptions]
337
+ # @return [Gusto::ContractorPaymentMethod::ContractorPaymentMethod]
338
+ # @example
339
+ # api = Gusto::Client.new(
340
+ # base_url: "https://api.example.com",
341
+ # environment: Gusto::Environment::DEMO,
342
+ # token: "YOUR_AUTH_TOKEN"
343
+ # )
344
+ # api.contractors.payment_method.update(contractor_uuid: "contractor_uuid", type: DIRECT_DEPOSIT)
345
+ def update(contractor_uuid:, version:, type:, request_options: nil)
346
+ Async do
347
+ response = @request_client.conn.put do | req |
348
+ unless request_options&.timeout_in_seconds.nil?
349
+ req.options.timeout = request_options.timeout_in_seconds
350
+ end
351
+ unless request_options&.token.nil?
352
+ req.headers["Authorization"] = request_options.token
353
+ end
354
+ unless request_options&.gusto_api_version.nil?
355
+ req.headers["X-Gusto-API-Version"] = request_options.gusto_api_version
356
+ end
357
+ req.headers = { **(req.headers || {}), **@request_client.get_headers, **(request_options&.additional_headers || {}) }.compact
358
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
359
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
360
+ end
361
+ req.body = { **(request_options&.additional_body_parameters || {}), version: version, type: type }.compact
362
+ req.url "#{@request_client.get_url(request_options: request_options)}/v1/contractors/#{contractor_uuid}/payment_method"
363
+ end
364
+ Gusto::ContractorPaymentMethod::ContractorPaymentMethod.from_json(json_object: response.body)
365
+ end
366
+ end
367
+ end
368
+ end
369
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Contractors
5
+ module PaymentMethod
6
+ class PaymentMethodCreateBankAccountRequestAccountType
7
+
8
+ CHECKING = "Checking"
9
+ SAVINGS = "Savings"
10
+
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Gusto
4
+ module Contractors
5
+ module PaymentMethod
6
+ # The payment method type. If type is Direct Deposit, the contractor is required
7
+ # to have a bank account.
8
+ # see [Bank account endpoint](./post-v1-contractors-contractor_uuid-bank_accounts)
9
+ class PaymentMethodUpdateRequestType
10
+
11
+ DIRECT_DEPOSIT = "Direct Deposit"
12
+ CHECK = "Check"
13
+
14
+ end
15
+ end
16
+ end
17
+ end